FHEM Forum

FHEM - Energiemanagement und Energieerzeugung => Solaranlagen => Thema gestartet von: stefan.apetz am 15 August 2017, 20:42:49

Titel: solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 15 August 2017, 20:42:49
Moinsen alle zusammen,

ich habe einen solar xHybrid Wechselrichter, der auch immer fleißig alle 5 Minuten seine ganzen Daten (Ertrag, Verbrauch, Netzbezug, ...) zum Solar Portal schickt.

Ich möchte die Daten gerne lokal in meinem Netz auslesen und in einer DB speichern bzw. gerne direkt mit fhem auswerten, um bspw. bei zu viel Einspeisung einen Verbraucher hinzu zuschalten.

Gibt es in dieser Gemeinde hier im Forum solax User?

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: satprofi am 16 August 2017, 15:06:54
hat er rs485 schnittstelle?
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 23 August 2017, 21:38:31
Leider nein.

Eine rs485 hat mein gavazzi em24. Aber den bekomme ich auch nicht richtig ausgelesen.

Aber zu dem Thema gibt es auch schon einen thread: https://forum.fhem.de/index.php/topic,57257.msg672500.html#msg672500

Damit komme ich aber leider auch nicht weiter  :'(
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: archinaut220379 am 26 Oktober 2017, 18:43:53
Hallo, habe meinen Solax sk-su über httpmod und solaxportal in fhem eingelesen. Alle Daten abrufbar. Die Einstellungen für den Login sind nicht ganz einfach. Da gibt es im Forum eine Anleitung für senec die wunderbar funktioniert
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 09 November 2017, 09:28:46
Hallo Archinaut,

da kann ich dann ja immer nur auf alle 5Minuten aktuellen Werte zugreifen und muss dass dann ausserhalb meines Hauses auf dem Solar Portal machen.

Mein Ziel wäre es innerhalb meines Hauses auf die vorhandene Infrastruktur (Wechselrichter / Zähler em24) zuzugreifen und dort mit Echtzeitdaten zu arbeiten.

Ich bin auch schon einen ganzen Schritt weiter (siehe https://forum.fhem.de/index.php/topic,77814.msg697368.html#msg697368 (https://forum.fhem.de/index.php/topic,77814.msg697368.html#msg697368)

Aber da fehlt mir der letzte Schritt zu den negativen Werten (=Einspeisung) auf dem Gavazzi Zähler.

LG
Stefan
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 05 September 2018, 11:09:32
Hallo in die Runde!

Falls es noch andere Solax User gibt, hier eine gute Lösung: https://github.com/GitHobi/solax

LG
Stefan
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: archinaut220379 am 02 Februar 2019, 23:24:52
Ihr könnt den solax sk su per modbus-tcp port 502 per ethernet kabel komplett auslesen. Kann die modbusadressen gern zur verfügung stellen. Auch schreiben der einstellungen wäre möglic, leider bekommt man die schreibregister nicht vom hersteller zugesandt.
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: tschabet am 13 Februar 2019, 22:59:53
Hallo lieber Archinaut, das wäre fantastisch, wenn Du mir die Modbus Adressen des Solax xHybrid zur Verfügung stellen könntest!
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: archinaut220379 am 25 April 2019, 13:39:05
Hier der link. Dort sind alle Register ersichtlich. Auch ist es ohne Probleme möglich , ein Lademanagement selber zu programmieren und z.B. statt eines Gavazzi Zähler direkt mit dem SK-SU über fhem einen SDM630 zu nutzen. So lade ich die Batterie nur mit den 70% Überschuss aus der PV im Sommer. Dies reduziert die Ammortisationszeit erheblich.

https://github.com/InfernoEmbedded/PowerScraper/tree/master/Inputs

Grüsse
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: archinaut220379 am 25 April 2019, 13:43:25
anbei das abgeänderte modbus Modul vom SDM630m für den Solax. Ist aber nur ein Arbeitsstand. Bitte ggf. selber noch ergänzen und individuell anpassen.
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: döner123 am 02 Oktober 2019, 14:56:04
Zitat von: stefan.apetz am 05 September 2018, 11:09:32
Hallo in die Runde!

Falls es noch andere Solax User gibt, hier eine gute Lösung: https://github.com/GitHobi/solax

LG
Stefan

Vielen Dank für den Hinweis, ich hoffe, nach der langen Zeit hier noch Informationen zu bekommen. Hast du dies umgesetzt und wenn ja, wie schaffst du es, die Daten in das Netzwerk des Raspberrys zu bekommen? Bei mir verbindet sich das Pocket-Wifi-Modul von Solax mit meinem Router, ist so im Netzwerk und bekommt auch eine entsprechende Netzwerkadresse. Auf die lokale Adresse und somit auf die Live-Daten komme ich jedoch nur, wenn ich mich mir dem generierten Wlan des Wifi-Modules verbinde :(
Vielleicht kannst du mir ja helfen.

Vielen Dank
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: archinaut220379 am 02 Oktober 2019, 23:01:09
Der Solax sk-su kann über den rj45 Anschluss auslesen werden.netzwerkabel Anschlüssen.ip einstellen und mit meinem Modul bekommst du alle Infos und kannst über die Einstellung fernlenkung die Ladeleistung einstellen.funktioniert zusammen mit einem sdm630 viel besser als über den gavazzi Zähler. Und das mit nur einem notify im Thema.
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: döner123 am 03 Oktober 2019, 13:26:55
Na ich denke, ich stecke nicht ausreichend in der Materie oder mein Solax X1-Mini funktioniert noch ein wenig anders. Jedenfalls kann ich den RS485-Anschluss nicht direkt via Netzwerkkabel an den Router anschließen - kommt nichts an und nach nochmaliger Überprüfung erhalte ich weder direkt im Netzwerk des Wlan-Modules, noch Wlan-Modul verbunden mit Router, Zugriff auf die Live-Daten.....
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 30 Oktober 2019, 16:08:23
Hui, hier hat sich ja doch noch einiges getan :-)

Also:döner123: mit dem Module von Hobi auf Github kann man ein Device Solax Direct erstellen. In diesem liegen die ganzen Readings aus dem Wechselrichter vor. Mittels Logging kann man die Daten ganz normal in ein Logfile (oder DB) schreiben und dann auswerten. Die Echtzeitdaten kann man dann natürlich "einfach so" aus den Readings ziehen.
Ich verbinde mich nicht auf das lokale Wifi des Solax: im Lokalen Wifi (und in dem Admin-Modus dazu) trägst du ja die Wifi Adressen deines Wlans ein (damit der Solax in das Solaxportal funken kann). Wenn du dann in deinen Router schaust siehst du, dass der Solax in deinem Heimnetz auch eine IP zugewiesen bekommen hat. Über diese (kann man beim Anlegen des Solax-Direct Devices von Tobi angeben) verbindet sich ehem dann über das Netzwerk mit dem Solax.
Zur Visualisierung verwende ich fuip (dazu hat Tobi auch Beispielhaften im Github mit abgelegt).  Läuft alles prima.

archinaut220379: wenn du vom RJ45 sprichst, meinst du dann das normale Interface vom Solax für die Ethernet-Netzwerkanbindung am Router?
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: döner123 am 31 Oktober 2019, 13:06:59
Hallo Stefan,

Wlan-Modul ist im Netzwerk, Kommunikation mit der Cloud funktioniert, die von dir beschriebene Vorgehensweise funktioniert bei mir jedoch nicht. Die Beschreibung vom Modul spricht ja auch von der lokalen Netzwerkadresse des Wlan-Moduls im eigenen Netzwerk. Ich habe die lokale Netzwerkadresse im Haus-Wlan verwendet zur Einrichtung des Moduls, wird aber dann nur Error im State angezeigt. Wie bereits beschrieben, scheint es Unterschiede zw. Solax X1-Mini und Solax Hybrid zu geben.

Beste Grüße
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 31 Oktober 2019, 14:27:53
Hallo döner123,

schau bitte mal hier: https://github.com/GitHobi/solax/wiki/74_SolaxDirect.pm-module-description

Das steht da so nicht in der Doku, dass man eine andere URL / Host / IP eintragen kann, das hat Hobi aber im August 2018 hinzugefügt, siehe: https://github.com/GitHobi/solax/commit/9a3fe2ec6987007bbd1eb785830c4665199b8cb1

Meine Definition sieht bspw. so aus:

define solax SolaxDirect 192.168.178.55 80
attr solax DbLogExclude .*
attr solax alias Solax Wechselrichter LiveData
attr solax event-on-change-reading .*
attr solax host 192.168.178.55
attr solax interval 15
attr solax port 80
attr solax room hidden
attr solax userReadings pv_MoneyEarnings {sprintf("%.2f",ReadingsVal("solax","inverter_yield_month", 0)*0.26)}, pv_percentPower  {sprintf("%.2f",ReadingsVal("solax","pv_total_power", 0)/5415*100)}


Damit spreche ich die URL http://192.168.178.55/api/realTimeData.htm an. Das ist die (feste) IP, die mein Solax in meinem Netzwerk hat.

Über diese kommt das JSON Objekt für das Modul zurück.

{"method":"uploadsn","version":"Solax_SI_CH_2nd_20160912_DE02","type":"AL_SE","SN":"CD2360D3","Data":[3.7,5.5,215.8,206.9,3.6,235.9,823,33,5.5,10799.5,-58,798,1137,55.70,19.74,1100,23,79,0.0,2669.5,,,,,,,,,,,,,,,,,,,,,,4387.80,4827.30,,,,,,,,49.97,,,0.0,0.0,0,0.00,0,0,0,0.00,0,9,0,0,0.00,0,9],"Status":"2"}

Ich habe auch mal einen Screenshot von meiner Visualisierung angefügt, die ich mit ftui gebaut habe (auf Basis der HTMLs von Hobi)

Ich habe das so gebaut, dass das PopUp mit den Detailinformationen aufgeht, wenn ich auf den Prozentkreis (im Bild die 32,5 %) zur aktuellen Produktion klicke.
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: döner123 am 31 Oktober 2019, 15:00:50
Vielen Dank für deine Mühe aber wie gesagt, das Modul wurde auf einem Hybrid Wechselrichter aufgebaut, den du auch hast, oder?
Bei Anwahl meiner IP im Netzwerk mit  http://192.168.69.38/api/realTimeData.htm kommt kein Ergebnis. Bedeutet also, dass bei meinem Gerät kein Aufruf über API möglich zu sein scheint :(
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: döner123 am 31 Oktober 2019, 15:03:20
Schön umgesetzt bei dir!
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 31 Oktober 2019, 15:13:38
Danke (für das Lob an die Umsetzung)

Was kommt, wenn du im Browser nur die IP aufrufst? Ein Login Fenster?

Welchen Wechselrichter hast du?

Edit: x1, steht ja oben. Da hab ich nicht richtig geschaut.
Wenn du dich mit dem lokalen wifi vom Solax verbindest und dann die url unter der entsprechenden IP aufrufst kommt das json Objekt? Ich habe in anderen Foren gelesen, dass Solax wohl auf neueren Geräten die api im nicht lokalen Netz dicht gemacht hat.
Dann mögliche kompliziertere Lösungen: einen Raspi mit dem Solax wifi verbinden und mit dem anderen Hausnetz (lan oder zweites wlan) und dann den raspi als router mit reverse proxy konfigurieren.
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: döner123 am 31 Oktober 2019, 15:52:03
Ja genau, das ist das Problem. Offenbar ist sogar der Api Zugriff im lokalen Netz des Wlan Moduls gesperrt. Also selbst intern bekomme ich bei http://5.8.8.8/api/realTimeData.htm ein "The requested URL was not found on this server" und in meinem Heimnetz einzig die Einwahlseite wenn ich die lokale ID nutze.

Ich denke, das wurde komplett dicht gemacht, möglich wäre wahrscheinlich nur noch der HTML-Zugriff auf die Cloud. Aber da hab ich auch nicht wirklich einen Plan von.
Egal, wäre ein nice-to-have gewesen aber hängt nix von ab. Vielleicht ergibt sich später ja noch eine Möglichkeit.

edit:
Quark, Einwahlseite mit admin bekomme ich nur im lokalen Netz des Wechselrichters. Im Heimnetz funktioniert weder Api noch login
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: döner123 am 05 November 2019, 14:10:08
Ich habe in folgenden Thread in einem anderen Forum eine Anleitung zur Einbindung der Daten aus der Cloud für Node-Red gefunden.

https://community.home-assistant.io/t/solax-solar-inverter-setup-guide/48008/3 (https://community.home-assistant.io/t/solax-solar-inverter-setup-guide/48008/3)

hier ist folgende Konfigurationsdatei solax.yaml hinterlegt mit folgendem Inhalt:

[
    {
        "id": "e116cffd.09d8",
        "type": "http request",
        "z": "24df37fe.8d32f8",
        "name": "Get Token",
        "method": "POST",
        "ret": "obj",
        "url": "47.254.152.24:6080/proxy/login/login?password=PASSWORD&userName=USERNAME&userType=5",
        "tls": "",
        "x": 410,
        "y": 100,
        "wires": [
            [
                "65cfcd70.07b70c",
                "cceebdee.ed2d58"
            ]
        ]
    },
    {
        "id": "ea4af243.648128",
        "type": "inject",
        "z": "24df37fe.8d32f8",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "300",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "x": 150,
        "y": 100,
        "wires": [
            [
                "e116cffd.09d8"
            ]
        ]
    },
    {
        "id": "65cfcd70.07b70c",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 670,
        "y": 100,
        "wires": []
    },
    {
        "id": "3ea8f259.003716",
        "type": "http request",
        "z": "24df37fe.8d32f8",
        "name": "Get dailyInfo",
        "method": "POST",
        "ret": "obj",
        "url": "47.254.152.24:6080/proxy//inverter/getDailyInfo?inverterSn=SERIALNUMBER&today=2018-08-25&tokenId={{{tokenId}}}&wifiSn=WIFISERIALNUMBER",
        "tls": "",
        "x": 410,
        "y": 220,
        "wires": [
            [
                "8a32497e.90ac78"
            ]
        ]
    },
    {
        "id": "8a32497e.90ac78",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 680,
        "y": 220,
        "wires": []
    },
    {
        "id": "cceebdee.ed2d58",
        "type": "function",
        "z": "24df37fe.8d32f8",
        "name": "",
        "func": "msg.tokenId = msg.payload.result.tokenId;\nmsg.userId = msg.payload.result.userId;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 170,
        "y": 160,
        "wires": [
            [
                "3ea8f259.003716",
                "161a41e7.d0a926",
                "784ccb02.f10aac"
            ]
        ]
    },
    {
        "id": "161a41e7.d0a926",
        "type": "http request",
        "z": "24df37fe.8d32f8",
        "name": "Get inverterInfo",
        "method": "POST",
        "ret": "obj",
        "url": "47.254.152.24:6080/proxy//mysite/getInverterInfo?siteId=MYSITEID&tokenId={{{tokenId}}}",
        "tls": "",
        "x": 420,
        "y": 280,
        "wires": [
            [
                "28d9a3f1.7ffa34",
                "709e7142.9818f8"
            ]
        ]
    },
    {
        "id": "28d9a3f1.7ffa34",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 680,
        "y": 280,
        "wires": []
    },
    {
        "id": "784ccb02.f10aac",
        "type": "http request",
        "z": "24df37fe.8d32f8",
        "name": "Get siteId",
        "method": "POST",
        "ret": "obj",
        "url": "47.254.152.24:6080/proxy//mysite/mySite?tokenId={{{tokenId}}}&userId={{{userId}}}",
        "tls": "",
        "x": 400,
        "y": 160,
        "wires": [
            [
                "cd814d82.5bb45"
            ]
        ]
    },
    {
        "id": "cd814d82.5bb45",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 680,
        "y": 160,
        "wires": []
    },
    {
        "id": "645bfd93.2413bc",
        "type": "influxdb out",
        "z": "24df37fe.8d32f8",
        "influxdb": "90887afa.31e428",
        "name": "GridPower",
        "measurement": "GridPower",
        "precision": "",
        "retentionPolicy": "",
        "x": 810,
        "y": 520,
        "wires": []
    },
    {
        "id": "629f6371.66c11c",
        "type": "influxdb out",
        "z": "24df37fe.8d32f8",
        "influxdb": "90887afa.31e428",
        "name": "SolaxTemp",
        "measurement": "SolaxTemp",
        "precision": "",
        "retentionPolicy": "",
        "x": 810,
        "y": 560,
        "wires": []
    },
    {
        "id": "b5877413.78aa88",
        "type": "influxdb out",
        "z": "24df37fe.8d32f8",
        "influxdb": "90887afa.31e428",
        "name": "KwHToday",
        "measurement": "KwHToday",
        "precision": "",
        "retentionPolicy": "",
        "x": 810,
        "y": 600,
        "wires": []
    },
    {
        "id": "2de5110b.514f9e",
        "type": "influxdb out",
        "z": "24df37fe.8d32f8",
        "influxdb": "90887afa.31e428",
        "name": "KwHTotal",
        "measurement": "KwHTotal",
        "precision": "",
        "retentionPolicy": "",
        "x": 800,
        "y": 640,
        "wires": []
    },
    {
        "id": "709e7142.9818f8",
        "type": "function",
        "z": "24df37fe.8d32f8",
        "name": "Check request success",
        "func": "if(msg.payload.success === true){\n    return [msg, null];\n}else{\n    return [null, msg]\n}",
        "outputs": 2,
        "noerr": 0,
        "x": 230,
        "y": 340,
        "wires": [
            [
                "1b3ee1f0.6ea156"
            ],
            [
                "3124b3ac.574004",
                "bfa8eb8c.f2c08"
            ]
        ]
    },
    {
        "id": "3124b3ac.574004",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "Error",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 990,
        "y": 360,
        "wires": []
    },
    {
        "id": "20251465.4b9d24",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "Error <5 minuten",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "x": 1030,
        "y": 300,
        "wires": []
    },
    {
        "id": "bfa8eb8c.f2c08",
        "type": "api-call-service",
        "z": "24df37fe.8d32f8",
        "name": "Geen solaxCloud bericht",
        "server": "584183bf.4f42dc",
        "service_domain": "notify",
        "service": "ios_iphone_richard",
        "data": "{\"title\": \"SolaxCloud\", \"message\": \"Helaas, geen succesvolle response ontvangen\"}",
        "mergecontext": "ok",
        "x": 1050,
        "y": 400,
        "wires": [
            []
        ]
    },
    {
        "id": "a7a8cf53.08116",
        "type": "function",
        "z": "24df37fe.8d32f8",
        "name": "",
        "func": "//msg.payload = msg.payload.result[0];\nvar gridPower, todayYield, totalYield, temperatrure;\ngridPower= {payload: msg.payload.gridPower};\ntodayYield= {payload: msg.payload.todayYield};\ntotalYield={payload: msg.payload.totalYield};\ntemperature={payload: msg.payload.temperature};\nlastUpdateTimes={payload: msg.payload.lastUpdateTimes};\nreturn [[gridPower], [todayYield], [totalYield], [temperature], [lastUpdateTimes]];",
        "outputs": 5,
        "noerr": 0,
        "x": 170,
        "y": 540,
        "wires": [
            [
                "e5f9cdf.776afb",
                "645bfd93.2413bc",
                "2ac60dfb.ba2bca"
            ],
            [
                "1ad5d856.5d6ef8",
                "b5877413.78aa88"
            ],
            [
                "59b7a4dc.4e700c",
                "2de5110b.514f9e"
            ],
            [
                "cbf1ca54.d4baf8",
                "629f6371.66c11c"
            ],
            [
                "b8a2949b.852778"
            ]
        ]
    },
    {
        "id": "e5f9cdf.776afb",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 390,
        "y": 480,
        "wires": []
    },
    {
        "id": "1ad5d856.5d6ef8",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 390,
        "y": 540,
        "wires": []
    },
    {
        "id": "59b7a4dc.4e700c",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 390,
        "y": 580,
        "wires": []
    },
    {
        "id": "cbf1ca54.d4baf8",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 370,
        "y": 620,
        "wires": []
    },
    {
        "id": "b8a2949b.852778",
        "type": "debug",
        "z": "24df37fe.8d32f8",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 180,
        "y": 660,
        "wires": []
    },
    {
        "id": "2ac60dfb.ba2bca",
        "type": "mqtt out",
        "z": "24df37fe.8d32f8",
        "name": "MQTT publish",
        "topic": "power/current/solar",
        "qos": "",
        "retain": "",
        "broker": "80d9bcf2.ce518",
        "x": 820,
        "y": 480,
        "wires": []
    },
    {
        "id": "1b3ee1f0.6ea156",
        "type": "function",
        "z": "24df37fe.8d32f8",
        "name": "",
        "func": "// we checken of het tijdsverschil tussen solax last update en nu <= 10 minuten.\n\nmsg.payload = msg.payload.result[0];\nvar last = new Date(msg.payload.lastUpdateTime)\nvar current = new Date();\nvar difference = (current - last) / 1000  - (60*60*7);\n\nif(difference >= (10*60)){\n    // Alleeen error (push bericht sturen)\n    var msg1 = {};\n    msg1.payload = difference;\n    return[null, msg1];\n}else{\n    // Geen error, alleen data sturen.\n    return [msg ,null];\n}",
        "outputs": 2,
        "noerr": 0,
        "x": 590,
        "y": 320,
        "wires": [
            [
                "a7a8cf53.08116"
            ],
            [
                "20251465.4b9d24",
                "da1d798d.62f5e"
            ]
        ]
    },
    {
        "id": "da1d798d.62f5e",
        "type": "api-call-service",
        "z": "24df37fe.8d32f8",
        "name": "Solax cloud niet up to date",
        "server": "584183bf.4f42dc",
        "service_domain": "notify",
        "service": "ios_iphone_richard",
        "data": "{\"title\": \"SolaxCloud\", \"message\": \"Helaas, de SolaxCloud heeft geen recente meting binnengekregen\"}",
        "mergecontext": "ok",
        "x": 1060,
        "y": 260,
        "wires": [
            []
        ]
    },
    {
        "id": "90887afa.31e428",
        "type": "influxdb",
        "z": "",
        "hostname": "127.0.0.1",
        "port": "8086",
        "protocol": "http",
        "database": "homeassistant",
        "name": "Ha",
        "usetls": false,
        "tls": ""
    },
    {
        "id": "584183bf.4f42dc",
        "type": "server",
        "z": "",
        "name": "Home Assistant",
        "legacy": false
    },
    {
        "id": "80d9bcf2.ce518",
        "type": "mqtt-broker",
        "z": "",
        "name": "",
        "broker": "192.168.1.40",
        "port": "1883",
        "clientid": "NodeRed",
        "usetls": false,
        "compatmode": true,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthRetain": "false",
        "birthPayload": "",
        "closeTopic": "",
        "closePayload": "",
        "willTopic": "",
        "willQos": "0",
        "willRetain": "false",
        "willPayload": ""
    }
]


die Einrichtung scheint dort dann ziemlich einfach:

"The following items have to be customized in order to make it work.
USERNAME : the username (case sensitive) for the solax cloud site
PASSWORD: the password for the solax cloud site
SITEID: The ID of the site, you can find this ID by enabling the second debug switch.
InverterSN: you can find this serial number on the solax cloud site
WifiSN: the serial number of the WiFi dongle (printed on sticker)"

Ist hier jemand, der mir das für Fhem adaptieren kann ^^

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: abc2006 am 26 Dezember 2019, 12:02:54
Moin,
ich überlege einen X-Hybrid anzuschaffen (10kWp).
https://greenakku.de/Wechselrichter/Hybridwechselrichter/solaX-X-HYBRID-HV-Wechselrichter-3-PHASEN-X3-Hybrid-8-0T::1522.html
Gibt es jemanden, der diesen bereits erfolgreich ausliest?

Habe diesen Wechselrichter nirgends explizit erwähnt gefunden.

Grüße,
Stephan
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 09 Juli 2020, 16:29:26
Zitat von: archinaut220379 am 25 April 2019, 13:43:25
anbei das abgeänderte modbus Modul vom SDM630m für den Solax. Ist aber nur ein Arbeitsstand. Bitte ggf. selber noch ergänzen und individuell anpassen.

Moin Archinaut,
magst Du bitte kurz aufskizzieren, was man genau in ehem machen muss um da eine Verbindung mit hinzubekommen?

Es reicht ja nicht die Modul-Datei auf dem Server abzulegen.

Ich habe bislang die Modus Datei im FHEM Verzeichnis abgelegt und dann die Module neu eingelesen und dann entsprechend ein def durchgeführt:



DEF 1 60
FUUID 5f073136-f33f-0227-8d4f-279130af7cc08eb3
INTERVAL 60
MODBUSID 1
MODE master
MODULEVERSION Modbus 4.1.5 - 17.9.2019
NAME Solax
NOTIFYDEV global
NR 403
NTFY_ORDER 50-Solax
PROTOCOL RTU
STATE disconnected
TRIGGERTIME 1594307665.51238
TRIGGERTIME_FMT 2020-07-09 17:14:25
TYPE ModbusSolax
lastUpdate 1594307605.51238


Es baut sich keine Verbindung auf. Ich musste ja auch nirgends irgendwelche Daten zum Solax eintragen (IP oder sonstwas).

Wie findet dein Modul den Solax und wie kann ich dann mit deinem Modul arbeiten?

Wenn ich mit dem get Parameter auslesen möchte erhalte ich nur

no IO Device to communicate through

Wie sehen die defs in der config aus?

Danke! :-)
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 13 Juli 2020, 08:27:51
So, ich habe es jetzt gefunden. Ging leider so aus der Doku nicht hervor.

Ich habe archinauts Modul genommen und mir dann mit folgender definition eingerichtet:

define Solax2 ModbusSolax 3 60 192.168.178.66:502 TCP

Läuft prima. Jetzt forsche ich gerade mit einem Modbus Tool etwas herum und versuche so viele Register wie möglich zu identifizieren.

Also: Einstellung direkt am Solax etwas ändern und dann die Werte auf Modbus betrachten.

@archinaut: ich hoffe dadurch passende Register zu finden für die Ladebegrenzung etc., damit man dann die Werte auch schreiben kann. Da ich von Programmierung aber kaum bis keine Ahnung hat müsste dann vielleicht jemand übernehmen und das umsetzen ;-)
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: archinaut220379 am 19 Juli 2020, 14:19:23
Hallo,

hier einige Register zum Setzen von Werten:

input_register:

    - service: modbus.write_register # Battery Charge Amps

        address: '36'
        value: "{{ (trigger.to_state.state | float * 10) | int }}"

  - alias: House Battery Disharge Rate
    trigger:
    - service: modbus.write_register # Battery Discharge 0

        address: '37'
        value: "{{ (trigger.to_state.state | float * 10) | int }}"

  - alias: "House Battery Min Energy %"
    - service: modbus.write_register # Min Discharge %
        address: '32'
        value: "{{ trigger.to_state.state | int }}"

  - alias: Solax Backup
      entity_id: input_boolean.solax_forcetime
      to: 'on'
    action:
    - service: modbus.write_register # Auto Mode
        address: '31'
        value: '2'

  - alias: Solax Backup Off
      entity_id: input_boolean.solax_backup
      to: 'off'
    action:
    - service: modbus.write_register # Auto Mode
        address: '31'
        value: '0'

  - alias: Solax ForceTime
      entity_id: input_boolean.solax_backup
      to: 'on'
    action:
    - service: modbus.write_register # Auto Mode
        address: '31'
        value: '1'

  - alias: Solax ForceTime Off
    - service: modbus.write_register # Auto Mode
        address: '31'
        value: '0'

#  - alias: Solax Force Grid Charge
#    - service: modbus.write_register # Auto Mode
#        address: '62'
#        value: '1'

#  - alias: Solax Force Grid Charge Off
#        address: '62'
#        value: '0'

Funktionieren auch alle soweit bei einem SK-SU.
Hier zum Nachlesen:
https://github.com/wills106/homeassistant-config/blob/master/packages/solax_hybrid_g3.yaml


Grüsse
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: archinaut220379 am 19 Juli 2020, 14:21:53
Und noch wichtig.
Register 0 einmal das Passwort für den Zugang am WR setzen. Normalerweise 2014.
Dann habt Ihr über modbus-TCP entsprechende Schreibrechte.
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: stefan.apetz am 20 Juli 2020, 23:19:49
danke, archinaut, für die Infos: das sind ja schon mal einige nette Register.

Wäre Klasse, wenn du dein 98_Modbus_Solax um die Schreibfunktionen ergänzen könntest, dergestalt, dass dann auch die notwendige Anmeldung (Passwort) mit berücksichtigt wird.

Klasse wäre auch der lesende und schreibende Wert für die Einspeisebegrenzung ;-)

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: KnuMu am 22 August 2020, 11:21:58
Hallo archinaut!
Zunächst vielen Dank für Dein Modul!!
Ich habe einen Solax Hybrid 10kw und 2 Triple- Power Akkus von Solax daran.
Habe etwas in Deinem Modul editiert, z.B. die Batteriespannung da wurde nur ein Zehntel angezeigt.
Bezüglich der Register und deren Bedeutung habe ich folgendes gefunden...

https://github.com/wills106/homeassistant-config/blob/master/packages/solax_x3_hybrid_g3_triplepower.yaml (https://github.com/wills106/homeassistant-config/blob/master/packages/solax_x3_hybrid_g3_triplepower.yaml)

arbeitest Du noch weiter an Deinem Modul?
LG
KnuMu
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Kaufe am 18 Oktober 2020, 19:50:51
Hallo zusammen,

bin nun auch stolzer Besitzer eines SolaX X1-Mini (0.7kw) inklusive Wifi dongle und wollte diesen nun ins FHEM integrieren.
Vor dem Wechselrichter läuft schon mal ein Shelly 2.5 um die erzeugte Strommenge zu loggen.

Die obengenannten URLS sind auch für mich nicht erreichbar:
5.8.8.8/api/.... = 404 Seite nicht gefunden
192.x.y.z/api/.... = Connection refused (sieht also aus, als ob kein Webserver da drauf lauscht, vielleicht lauscht dieser auch nur auf einen andern Port? Werde morgen mal ein NMAP durchlaufen lassen )

Da mir der vom Wechselrichter erzeugte WiFi Access Point extrem unsympathisch ist und im umkreis von 5 Häuser das WLAN mit extremer Signalstärke zur Verfügung stellt, würde ich dieses gerne abdrehen.  Dazu ein paar Fragen:
-> weiß jemand, ob man das SolaX interne WLAN AP deaktivieren kann?
-> gibt es vielleicht andere Zugriffs Möglichkeiten auf die oben genannte API?
-> wie verhält es sich mit dem SolaX LAN Dongle, ist hierbei vielleicht ein direkter API zugriff möglich, ist dieser vielleicht nur bei WLAN deaktiviert(was auch sinnmachen würde)?

Hat sich schon jemand mit der API von Solax Cloud Monitoring beschäftigt? Hier laufen ja alle Daten vom Wechselrichter zusammen.
URL wäre wohl: https://www.eu.solaxcloud.com:9443/proxy/api/getRealtimeInfo.do&sn= .......
Fakt von der Doku ist leider, nicht mehr wie 10 Requests / min oder gar 10.000 / Tag was im Schnitt jede 10 Sekunden einen entspricht.

curl "https://www.eu.solaxcloud.com:9443/proxy/api/getRealtimeInfo.do?sn={myRegistrationsnummer}&tokenId={myToken}"|jq
{
  "exception": "Query success!",
  "result": {
    "inverterSN": "XMT072XXXXXXXXXXXXXX",
    "sn": "SWYYYYYYYYYYYYY",
    "acpower": 0,
    "yieldtoday": 1.2,
    "yieldtotal": 5.1,
    "feedinpower": 0,
    "feedinenergy": 0,
    "consumeenergy": 0,
    "feedinpowerM2": 0,
    "soc": 0,
    "peps1": 0,
    "peps2": 0,
    "peps3": 0,
    "inverterType": "4",
    "inverterStatus": "100",
    "uploadTime": "2020-10-18 18:03:41"
  },
  "success": true
}


jetzt die Frage, gibt es eine einfache Möglichkeit diesen CURL abzufragen und den JSON Body als Readings im FHEM darzustellen?  Im Anhang habe ich euch noch die Beschreibung vom JSON Body angefügt. Die Abfrage via Cloud gefällt mir zwar auch nicht unbedingt gut, aber anderer Seites ist es somit für alle SolaX Wechselrichter einheitlich... oder?
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Kaufe am 18 Oktober 2020, 20:13:20
Oh wie peinlich, einmal google und schon funktionierts:

defmod SolaxMini1X HTTPMOD https://www.eu.solaxcloud.com:9443/proxy/api/getRealtimeInfo.do?sn=SWXXXXXXXXXXX&tokenId=YYYYYYYYYYYYYYYYYYYYY 60
attr SolaxMini1X extractAllJSON 1
attr SolaxMini1X room 08 Strom

setstate SolaxMini1X 2020-10-18 20:07:17 exception Query success!
setstate SolaxMini1X 2020-10-18 20:07:17 result_acpower 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_consumeenergy 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_feedinenergy 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_feedinpower 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_feedinpowerM2 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_inverterSN XMYYYYYYYYYYYYYYYYY
setstate SolaxMini1X 2020-10-18 20:07:17 result_inverterStatus 100
setstate SolaxMini1X 2020-10-18 20:07:17 result_inverterType 4
setstate SolaxMini1X 2020-10-18 20:07:17 result_peps1 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_peps2 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_peps3 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_sn SWYYYYYYYYYY
setstate SolaxMini1X 2020-10-18 20:07:17 result_soc 0
setstate SolaxMini1X 2020-10-18 20:07:17 result_uploadTime 2020-10-18 18:03:41
setstate SolaxMini1X 2020-10-18 20:07:17 result_yieldtoday 1.2
setstate SolaxMini1X 2020-10-18 20:07:17 result_yieldtotal 5.1
setstate SolaxMini1X 2020-10-18 20:07:17 success 1
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: abc2006 am 17 Juni 2021, 17:37:14
Moin, ich muss das Thema nochmal auspacken. Hab jetzt nen X1 und einen LAN-Dongle, kann aber leider auf keine der genannten Arten lokal etwas auslesen.

Gibt es jemanden, der mir noch ein paar Tips geben könnte?

Danke und Grüße,
Stephan
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: abc2006 am 17 Juni 2021, 18:44:51
Habe folgendes rausgefunden:

curl -v POST http://5.8.8.8/?optType=ReadRealTimeData

liefert folgendes ergebnis:

* Rebuilt URL to: POST/
* Could not resolve host: POST
* Closing connection 0
curl: (6) Could not resolve host: POST
*   Trying 5.8.8.8...
* TCP_NODELAY set
* Connected to 5.8.8.8 (5.8.8.8) port 80 (#1)
> GET /?optType=ReadRealTimeData HTTP/1.1
> Host: 5.8.8.8
> User-Agent: curl/7.52.1
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< Content-Type: text/html
< Cache-Control: private, no-cache, max-age=0
< Pragma: no-cache
< Content-Length: 1227
< Date: Thu, 17 Jun 2021 16:41:35 GMT
< Server: LiteSpeed
< Connection: Keep-Alive
<
<!DOCTYPE html>
<html style="height:100%">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title> 403 Forbidden
</title></head>
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;">
<div style="height:auto; min-height:100%; ">     <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;">
        <h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">403</h1>
<h2 style="margin-top:20px;font-size: 30px;">Forbidden
</h2>
<p>Access to this resource on the server is denied!</p>
</div></div><div style="color:#f0f0f0; font-size:12px;margin:auto;padding:0px 30px 0px 30px;position:relative;clear:both;height:100px;margin-top:-101px;background-color:#474747;border-top: 1px solid rgba(0,0,0,0.15);box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset;">
<br>Proudly powered by  <a style="color:#fff;" href="http://www.litespeedtech.com/error-page">LiteSpeed Web Server</a><p>Please be advised that LiteSpeed Technologies Inc. is not a web hosting company and, as such, has no control over content found on this site.</p></div></body></html>
* Curl_http_done: called premature == 0
* Connection #1 to host 5.8.8.8 left intact




Wenn ich meinem Rechner ein virtuelles interface mit der 5.8.8.7 spendiere, ändert sich die Antwort:
* Rebuilt URL to: POST/
* Could not resolve host: POST
* Closing connection 0
curl: (6) Could not resolve host: POST
*   Trying 5.8.8.8...
* TCP_NODELAY set
* connect to 5.8.8.8 port 80 failed: Keine Route zum Zielrechner
* Failed to connect to 5.8.8.8 port 80: Keine Route zum Zielrechner
* Closing connection 1
curl: (7) Failed to connect to 5.8.8.8 port 80: Keine Route zum Zielrechner

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: moonhead am 29 Juli 2021, 20:43:24
Hi
Just for help in french
to extract data's from your x1 hybrid on the cloud (with a lan key ) : justtype in php this code ands refer to the api help


bonjour à tous.
Pour recuperer les donnees deun onduleur solax en html et php rien de plus simple.
Dans votre compte solax recuperer l'adresse de l'API en y ajoutant votre token et sn puis programmez ces qques lignes en php:

//récuperation des données sur le cloud
$site=« https://www.eu.solaxcloud.com:9443/proxy/api/getRealtimeInfo.do?tokenId=$yourtoken&sn=$yoursn » ;

//formater le fichier json
$homepage = file_get_contents($site);
$arr = json_decode($homepage, true);

ce fichier comprends 3
arrays seul l'array result nous interesse

//recuperation de l'array result
$data=$arr[« result »];

//affichage des differentes variables décrites dans l'aide de l'api en exemple:
echo $data[« uploadTime »];
echo $data[« yieldtoday »]." Kw/h";
echo $data[« yieldtotal »]." Kw/h";
echo $data[« soc »]." %";
$powernow= $data[« powerdc1 »] +$data[« powerdc2 »];
echo $powernow;

J'espere vous avoir aidé
Moonhead
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: abc2006 am 29 Juli 2021, 22:00:23
Thanky for your help.

Extracting the data from the cloud is neither my Problem nor my Target.

I would like to extract the values in much higher frequency than every 5 minutes, to calculate my excess-feedin? (Überschusseinspeisung), preferably local in my LAN.

So i had the hope to be able to request at least the actual power from the X1 every .. lets say every 2 seconds.

Cheers,
Stephan
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Loetkolben am 08 Juli 2022, 21:25:22
Ich habe seit kurzem auch einen X1 mit Wifi-Stick (wird noch gegen einen LAN-Stick getauscht, der war nur nicht verfügbar) und kann die Daten in der Solax-Cloud schön sehen.
Was aber die lokale Auswertung angeht, da geht nichts mehr, die ganzen Links auf das Webinterface funktionieren nicht.
So wie ich das gelesen habe geht das jetzt nur noch über IP-Adresse des Solax-Wifi, also die 5.8.8.8 . Werde ich morgen mal testen.
Auch bei der Anmeldung auf dem Stick hat sich was geändert.  Überall sind die Anmeldedaten mit admin:admin dokumentiert , bei den neuen Sticks ist der Benutzername admin und das Kennwort ist die Seriennummer des Stick. Habe ich nach elend langer Suche auf einer Seite aus CZ gefunden.

Hat jemand ein aktuelles bzw. neueres Gerät und kann die Daten irgendwie lokal auswerten?  Bei mir funktionieren bisher nur die Daten aus der Cloud über ioBroker.

Gruß
   Andreas
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: hajo23 am 09 Juli 2022, 15:20:46
Hallo Andreas, ich habe seit 2 Jahren einen X3 und kann zum X1 daher nichts Konkretes  sagen.

Anfangs habe ich die Daten mit dem JsonMod (https://www.eu.solaxcloud.com:9443/proxy/api/getRealtimeInfo.do?tokenId= ...) vom Server geholt. Das funktioniert auch immer noch. Da der X3 aber meine Batterie "nicht wirklich" kennt, sind die Daten auf dem Server nur bedingt brauchbar und teilweise (z.B. Eigenverbrauch) sogar falsch.

Ansonsten kann ich meine Daten über Modbus/tcp lesen. Allerdings hat bei mir der X3 zwei LAN-Interfaces. Ein Netz sichert die Verbindung zwischen X3 und Batterie. Darauf habe ich bisher keinen Zugriff. Das Andere liegt auf dem LAN-Stick und bekommt seine Adresse von meinem DHCP-Server. Darauf kann ich per Modbus ohne login zugreifen. Die Register sind dabei aber andere, als die allgemein bekannten. Die "Input-Register" z.B. sind gar nicht verfügbar. Für meine Zwecke reichen die lokal verfügbaren Register aber aus um auf den SolaX-Server verzichten zu können. Die fehlenden Register muss halt der Hauself berechnen.

Gruß
Hajo
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Loetkolben am 10 Juli 2022, 15:41:49
Hallo Hajo,

danke für die Info.
Ich konnte inzwischen doch 'lokal' auf die Daten zugreifen, mit curl -X POST http://<INVERTER-IP> --data 'optType=ReadRealTimeData&pwd=)' funktioniert es.

Ergebnis:

{"sn":"<SN vom Wifi-Stick>","ver":"3.003.02","type":4,"Data":[2368,6,150,630,0,25,0,160,0,4996,2,243,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,102,0,0,0,0,0,0,0,0,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"Information":[0.600,4,"<SN vom WR>",8,2.19,0.00,1.37,0.00,0.00,1]}


Bekomme die Daten aber noch nicht so richtig zerlegt und zugewiesen.

Modbus RTU ist auf meinem Stick/X1 aktiviert, wie funktioniert das dann?
List:

Internals:
   .AttrList  do_not_notify:1,0 IODev queueMax alignTime enableControlSet:0,1 enableSetInactive:0,1 nonPrioritizedSet:0,1 nonPrioritizedGet:0,1 sortUpdate:0,1 cacheUpdateHash:0,1 cacheParseInfo:0,1 propagateVerbose:0,1 connectionsRoom serverIdExpr scanDelay disable:0,1 event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading obj-[cdih][0-9]+-reading obj-[cdih][0-9]+-name obj-[cdih][0-9]+-min obj-[cdih][0-9]+-max obj-[cdih][0-9]+-hint obj-[cdih][0-9]+-map obj-[cdih][0-9]+-mapDefault obj-[cdih][0-9]+-rmapDefault obj-[cdih][0-9]+-set obj-[cdih][0-9]+-setexpr obj-[cdih][0-9]+-textArg obj-[cdih][0-9]+-revRegs obj-[cdih][0-9]+-bswapRegs obj-[cdih][0-9]+-len obj-[cdih][0-9]+-unpack obj-[cdih][0-9]+-decode obj-[cdih][0-9]+-encode obj-[cdih][0-9]+-expr obj-[cdih][0-9]+-ignoreExpr obj-[cdih][0-9]+-format obj-[ih][0-9]+-type obj-[cdih][0-9]+-showGet obj-[cdih][0-9]+-allowWrite obj-[cdih][0-9]+-group obj-[cdih][0-9]+-poll obj-[cdih][0-9]+-polldelay obj-[cdih][0-9]+-overrideFCread obj-[cdih][0-9]+-overrideFCwrite dev-([cdih]-)?read dev-([cdih]-)?write dev-([cdih]-)?combine dev-([cdih]-)?allowShortResponses dev-([cdih]-)?addressErrCode dev-([cdih]-)?valueErrCode dev-([cdih]-)?notAllowedErrCode dev-([cdih]-)?defRevRegs dev-([cdih]-)?defBswapRegs dev-([cdih]-)?defLen dev-([cdih]-)?defUnpack dev-([cdih]-)?defDecode dev-([cdih]-)?defEncode dev-([cdih]-)?defExpr dev-([cdih]-)?defSet dev-([cdih]-)?defHint dev-([cdih]-)?defSetexpr dev-([cdih]-)?defIgnoreExpr dev-([cdih]-)?defFormat dev-([cdih]-)?defShowGet dev-([cdih]-)?defAllowWrite dev-([cdih]-)?defPoll dev-([cdih]-)?defPolldelay dev-h-brokenFC3 dev-d-brokenFC2 dev-c-brokenFC5 dev-type-[A-Za-z0-9_]+-unpack dev-type-[A-Za-z0-9_]+-len dev-type-[A-Za-z0-9_]+-encode dev-type-[A-Za-z0-9_]+-decode dev-type-[A-Za-z0-9_]+-revRegs dev-type-[A-Za-z0-9_]+-bswapRegs dev-type-[A-Za-z0-9_]+-format dev-type-[A-Za-z0-9_]+-expr dev-type-[A-Za-z0-9_]+-map dev-type-[A-Za-z0-9_]+-hint dev-type-[A-Za-z0-9_]+-set dev-timing-timeout dev-timing-serverTimeout dev-timing-sendDelay dev-timing-commDelay poll-.* polldelay-.*  queueDelay queueMax queueTimeout busDelay clientSwitchDelay frameGap dropQueueDoubles:0,1 enableQueueLengthReading:0,1 retriesAfterTimeout profileInterval openTimeout nextOpenDelay nextOpenDelay2 maxTimeoutsToReconnect skipGarbage:0,1 timeoutLogLevel:3,4 closeAfterResponse:0,1 silentReconnect:0,1
   .LastUpdate 1657460201.10017
   .TRIGGERTIME 1657460261.10017
   .getList   Grid_Voltage:noArg Grid_Current:noArg PV1_Power:noArg PV2_Power:noArg Solar_Energy_total:noArg Grid_Power:noArg Battery_Voltage:noArg Battery_Current:noArg Battery_Power:noArg Charger_Board_Temp:noArg Battery_Board_Temp:noArg Charger_Boost_Temp:noArg Battery_Capacity:noArg Battery_Energy_Charged:noArg PV1_Voltage:noArg BMS_Warning:noArg Battery_Energy_Discharged:noArg Battery_State_Health:noArg PV2_Voltage:noArg PV1_Current:noArg PV2_Current:noArg Inverter_Fault:noArg Charger_Fault:noArg Manager_Fault:noArg Grid_Frequency:noArg Power_feed_in:noArg Energy_feed_in:noArg Energy_consumed:noArg EPS_Voltage:noArg EPS_Current:noArg EPS_VA:noArg EPS_Frequency:noArg Temp_WR:noArg Energy_today:noArg Energy_total:noArg Battery_temp:noArg Run_Mode:noArg
   .setList   reconnect:noArg saveAsModule createAttrsFromParseInfo interval reread:noArg stop:noArg start:noArg close:noArg scanStop:noArg scanModbusObjects inactive active
   .updateSetGet 0
   CFGFN     
   DEF        3 60 192.168.100.161:502 TCP
   DeviceName 192.168.100.161:502
   EXPECT     response
   FD         77
   FUUID      62cad5ac-f33f-b9f5-00f5-a35db951f8c2f1a1
   IODev      Solax_Modbus
   Interval   60
   LASTOPEN   1657460186.20803
   MODBUSID   3
   MODE       master
   MODULEVERSION Modbus 4.4.04 - 17.7.2021
   NAME       Solax_Modbus
   NOTIFYDEV  global
   NR         3029
   NTFY_ORDER 50-Solax_Modbus
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TIMEOUTS   5
   TYPE       ModbusSolax
   devioLoglevel 3
   eventCount 4
   nextOpenDelay 60
   nextQueueRun 1657460212.14701
   nextTimeout 1657460213.14423
   .attraggr:
   .attrminint:
   FRAME:
   QUEUE:
     HASH(0x9f4e990)
     HASH(0xbbe8b98)
   READ:
   READINGS:
     2022-07-10 15:36:26   state           opened
   REMEMBER:
     lid        3
     lname      Solax_Modbus
     lsend      1657460211.14688
   REQUEST:
     ADR        74
     DBGINFO    getUpdate for combined i74 len 2 Energy_consumed with i76 len 1 EPS_Voltage and i77 len 1 EPS_Current and i78 len 1 EPS_VA and i79 len 1 EPS_Frequency and i80 len 1 Energy_today and i82 len 2 Energy_total
     FCODE      4
     FRAME      �J

     LEN        10
     MODBUSID   3
     OPERATION  read
     QUEUED     1657460201.12214
     READING    Energy_consumed
     SENT       1657460211.14423
     TID        219
     TYPE       i
     MASTERHASH:
   defptr:
     Solax_Modbus 3
   hmccu:
   lastRead:
Attributes:
   alias      Solax_Modbus
   room       Solar

Wenn ich bei Solax_Modus ein 'get Solax_Modbus GridVoltage' oder 'get Solax_Modbus EnergyTotal' mache, kommt 'Timeout in Readanswer'

Gruß
   Andreas

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: hajo23 am 10 Juli 2022, 19:04:09
Hallo Andreas,

das RTU Protokoll ist für serielle Übertragung. Du hast das Modul für TCP konfiguriert, was auch korrekt ist.

Der einzige Unterschied zu meiner Definition ist, dass ich die ID 1 verwende. Das ist in meinem Fall aber nicht relevant. Wenn ich ID 3 nehme, bekomme ich das selbe Ergebnis.

Weshalb der X1 bei dir nicht antwortet, kann ich nicht sagen. Dein http Aufruf (anderes Protokoll!) spricht mit Port 80, Modbus/TCP nutzt Port 502. Ob der X1 bei Dir überhaupt auf Port 502 lauscht ist deshalb noch fraglich. Wahrscheinlich wirst du mit dem httpmod-Modul mehr Erfolg haben.


Gruß
Hajo
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Loetkolben am 12 Juli 2022, 12:51:19
Daten bekomme ich jetzt auch, nur werden bei mir keine Komma-Stellen dargestellt wie in diesem Beispiel --> https://forum.fhem.de/index.php/topic,112828.msg1072685.html#msg1072685

Gaaannz langes List von meinem Device:  :)


Internals:
   .Content-Type  text/html
   .JSONEnabled 1
   .LASTSEND  1657622282.21134
   .LastUpdate 1657622282.2083
   .TRIGGERTIME 1657622582.2083
   .getList   
   .setList   interval reread:noArg stop:noArg start:noArg clearCookies:noArg upgradeAttributes:noArg storeKeyValue
   .updateRequestHash 1
   BUSY       0
   CFGFN     
   DEF        http://<IP_ADRESSE_VOM_WIFI_STICK>/ 300
   FUUID      62ccxsxsxs4886-fxsxsx33f-b9f5-edf4-02sxsxsxsxsxsxsc8
   Interval   300
   MainURL    http://<IP_ADRESSE_VOM_WIFI_STICK>/
   ModuleVersion 4.1.12 - 19.4.2022
   NAME       solax_httpmod2
   NOTIFYDEV  global
   NR         67799
   NTFY_ORDER 50-solax_httpmod2
   STATE      ???
   TYPE       HTTPMOD
   eventCount 107
   value     
   .attraggr:
   .attrminint:
   .readingParseList:
     100
     101
     102
     103
     104
     105
     106
     107
     108
     109
     110
     111
     112
     113
     114
     115
     116
     117
     118
     119
     120
     121
     122
     123
     124
     125
     126
     127
     128
     129
     130
     131
     132
     133
     134
     135
     136
     137
     138
     139
     140
     141
     142
     143
     144
     145
     146
     147
     148
     149
     150
     151
     152
     153
     154
     155
     156
     157
     158
     159
     160
     161
     162
     163
     164
     165
     166
     167
     168
     169
     170
     171
     172
     173
     174
     175
     176
     177
     178
     179
     180
     181
     182
     183
     184
     185
     186
     187
     188
     189
     190
     191
     192
     193
     194
     195
     196
     197
     198
     199
     200
     201
     202
     203
     204
     205
     206
     207
     208
     209
     210
     211
     212
   HttpUtils:
     NAME       
     addr       http://<IP_ADRESSE_VOM_WIFI_STICK>:80
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       optType=ReadRealTimeData/?pwd=SXxxxxxxxx
     displayurl http://<IP_ADRESSE_VOM_WIFI_STICK>/
     header     
     host       <IP_ADRESSE_VOM_WIFI_STICK>
     httpheader HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 345
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    80
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /
     protocol   http
     redirects  0
     timeout    2
     url        http://<IP_ADRESSE_VOM_WIFI_STICK>/
     sslargs:
   OLDREADINGS:
   QUEUE:
   READINGS:
     2022-07-12 12:38:03   AC_Current      17
     2022-07-12 12:38:03   AC_Power        427
     2022-07-12 12:38:03   AC_Voltage      2372
     2022-07-12 12:38:03   Data_10         2
     2022-07-12 12:38:03   Data_12         0
     2022-07-12 12:38:03   Data_14         0
     2022-07-12 12:38:03   Data_15         0
     2022-07-12 12:38:03   Data_16         0
     2022-07-12 12:38:03   Data_17         0
     2022-07-12 12:38:03   Data_18         0
     2022-07-12 12:38:03   Data_19         0
     2022-07-12 12:38:03   Data_20         0
     2022-07-12 12:38:03   Data_21         0
     2022-07-12 12:38:03   Data_22         0
     2022-07-12 12:38:03   Data_23         0
     2022-07-12 12:38:03   Data_24         0
     2022-07-12 12:38:03   Data_25         0
     2022-07-12 12:38:03   Data_26         0
     2022-07-12 12:38:03   Data_27         0
     2022-07-12 12:38:03   Data_28         0
     2022-07-12 12:38:03   Data_29         0
     2022-07-12 12:38:03   Data_30         0
     2022-07-12 12:38:03   Data_31         0
     2022-07-12 12:38:03   Data_32         0
     2022-07-12 12:38:03   Data_33         0
     2022-07-12 12:38:03   Data_34         0
     2022-07-12 12:38:03   Data_35         0
     2022-07-12 12:38:03   Data_36         0
     2022-07-12 12:38:03   Data_37         0
     2022-07-12 12:38:03   Data_38         0
     2022-07-12 12:38:03   Data_39         47
     2022-07-12 12:38:03   Data_4          0
     2022-07-12 12:38:03   Data_40         0
     2022-07-12 12:38:03   Data_42         0
     2022-07-12 12:38:03   Data_43         0
     2022-07-12 12:38:03   Data_44         0
     2022-07-12 12:38:03   Data_45         0
     2022-07-12 12:38:03   Data_46         0
     2022-07-12 12:38:03   Data_47         0
     2022-07-12 12:38:03   Data_48         0
     2022-07-12 12:38:03   Data_49         0
     2022-07-12 12:38:03   Data_50         0
     2022-07-12 12:38:03   Data_51         0
     2022-07-12 12:38:03   Data_52         0
     2022-07-12 12:38:03   Data_53         0
     2022-07-12 12:38:03   Data_54         0
     2022-07-12 12:38:03   Data_55         52
     2022-07-12 12:38:03   Data_56         0
     2022-07-12 12:38:03   Data_57         0
     2022-07-12 12:38:03   Data_58         0
     2022-07-12 12:38:03   Data_59         0
     2022-07-12 12:38:03   Data_6          0
     2022-07-12 12:38:03   Data_60         0
     2022-07-12 12:38:03   Data_61         0
     2022-07-12 12:38:03   Data_62         0
     2022-07-12 12:38:03   Data_63         0
     2022-07-12 12:38:03   Data_64         0
     2022-07-12 12:38:03   Data_65         0
     2022-07-12 12:38:03   Data_66         0
     2022-07-12 12:38:03   Data_67         0
     2022-07-12 12:38:03   Data_68         0
     2022-07-12 12:38:03   Data_69         0
     2022-07-12 12:38:03   Data_70         0
     2022-07-12 12:38:03   Data_71         0
     2022-07-12 12:38:03   Data_72         0
     2022-07-12 12:38:03   Data_73         0
     2022-07-12 12:38:03   Data_74         0
     2022-07-12 12:38:03   Data_75         0
     2022-07-12 12:38:03   Data_76         0
     2022-07-12 12:38:03   Data_77         0
     2022-07-12 12:38:03   Data_78         0
     2022-07-12 12:38:03   Data_79         0
     2022-07-12 12:38:03   Data_8          0
     2022-07-12 12:38:03   Data_80         0
     2022-07-12 12:38:03   Data_81         0
     2022-07-12 12:38:03   Data_82         0
     2022-07-12 12:38:03   Data_83         0
     2022-07-12 12:38:03   Data_84         0
     2022-07-12 12:38:03   Data_85         0
     2022-07-12 12:38:03   Data_86         0
     2022-07-12 12:38:03   Data_87         0
     2022-07-12 12:38:03   Data_88         0
     2022-07-12 12:38:03   Data_89         0
     2022-07-12 12:38:03   Data_90         0
     2022-07-12 12:38:03   Data_91         0
     2022-07-12 12:38:03   Data_92         0
     2022-07-12 12:38:03   Data_93         0
     2022-07-12 12:38:03   Data_94         0
     2022-07-12 12:38:03   Data_95         0
     2022-07-12 12:38:03   Data_96         0
     2022-07-12 12:38:03   Data_97         0
     2022-07-12 12:38:03   Data_98         0
     2022-07-12 12:38:03   Data_99         0
     2022-07-12 12:38:03   FW_Wifi         3.003.02
     2022-07-12 12:38:03   Information_1   4
     2022-07-12 12:38:03   Information_3   8
     2022-07-12 12:38:03   Information_4   2.19
     2022-07-12 12:38:03   Information_5   0
     2022-07-12 12:38:03   Information_6   1.37
     2022-07-12 12:38:03   Information_7   0
     2022-07-12 12:38:03   Information_8   0
     2022-07-12 12:38:03   Information_9   1
     2022-07-12 12:38:03   Inverter_Frequenz 4997
     2022-07-12 12:38:03   Inverter_Type   4
     2022-07-12 12:38:03   PV_Current      79
     2022-07-12 12:38:03   PV_Power        457
     2022-07-12 12:38:03   PV_Voltage      577
     2022-07-12 12:38:03   SN_Inverter     XMyyyyyyyyyyyy
     2022-07-12 12:38:03   SN_Wifi         SXyyyyyyyy
     2022-07-12 12:38:03   rated_capacity  0.6
     2022-07-12 12:38:03   yield_monthly   127
     2022-07-12 12:38:03   yield_today     12
     2022-07-12 12:38:03   yield_total     279
   REQUEST:
     context    reading
     data       optType=ReadRealTimeData/?pwd=SXxxxxxxxx
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        http://<IP_ADRESSE_VOM_WIFI_STICK>/
   defptr:
     readingBase:
       AC_Current reading
       AC_Power   reading
       AC_Voltage reading
       Data_0     reading
       Data_1     reading
       Data_10    reading
       Data_11    reading
       Data_12    reading
       Data_13    reading
       Data_14    reading
       Data_15    reading
       Data_16    reading
       Data_17    reading
       Data_18    reading
       Data_19    reading
       Data_2     reading
       Data_20    reading
       Data_21    reading
       Data_22    reading
       Data_23    reading
       Data_24    reading
       Data_25    reading
       Data_26    reading
       Data_27    reading
       Data_28    reading
       Data_29    reading
       Data_3     reading
       Data_30    reading
       Data_31    reading
       Data_32    reading
       Data_33    reading
       Data_34    reading
       Data_35    reading
       Data_36    reading
       Data_37    reading
       Data_38    reading
       Data_39    reading
       Data_4     reading
       Data_40    reading
       Data_41    reading
       Data_42    reading
       Data_43    reading
       Data_44    reading
       Data_45    reading
       Data_46    reading
       Data_47    reading
       Data_48    reading
       Data_49    reading
       Data_5     reading
       Data_50    reading
       Data_51    reading
       Data_52    reading
       Data_53    reading
       Data_54    reading
       Data_55    reading
       Data_56    reading
       Data_57    reading
       Data_58    reading
       Data_59    reading
       Data_6     reading
       Data_60    reading
       Data_61    reading
       Data_62    reading
       Data_63    reading
       Data_64    reading
       Data_65    reading
       Data_66    reading
       Data_67    reading
       Data_68    reading
       Data_69    reading
       Data_7     reading
       Data_70    reading
       Data_71    reading
       Data_72    reading
       Data_73    reading
       Data_74    reading
       Data_75    reading
       Data_76    reading
       Data_77    reading
       Data_78    reading
       Data_79    reading
       Data_8     reading
       Data_80    reading
       Data_81    reading
       Data_82    reading
       Data_83    reading
       Data_84    reading
       Data_85    reading
       Data_86    reading
       Data_87    reading
       Data_88    reading
       Data_89    reading
       Data_9     reading
       Data_90    reading
       Data_91    reading
       Data_92    reading
       Data_93    reading
       Data_94    reading
       Data_95    reading
       Data_96    reading
       Data_97    reading
       Data_98    reading
       Data_99    reading
       FW Wifi    reading
       FW_Wifi    reading
       Grid_Voltage_AC reading
       Information_0 reading
       Information_1 reading
       Information_2 reading
       Information_3 reading
       Information_4 reading
       Information_5 reading
       Information_6 reading
       Information_7 reading
       Information_8 reading
       Information_9 reading
       Inverter-Type reading
       Inverter_Frequenz reading
       Inverter_Type reading
       Max Output reading
       PV_Current reading
       PV_Power   reading
       PV_Voltage reading
       S/N Inverter reading
       S/N Wifi   reading
       SN_Inverter reading
       SN_Wifi    reading
       Serial_Inverter reading
       grid_power_max reading
       rated_capacity reading
       sn         reading
       type       reading
       ver        reading
       yield_monthly reading
       yield_today reading
       yield_total reading
     readingNum:
       AC_Current 138
       AC_Power   195
       AC_Voltage 146
       Data_0     146
       Data_1     138
       Data_10    111
       Data_11    196
       Data_12    147
       Data_13    168
       Data_14    144
       Data_15    120
       Data_16    109
       Data_17    201
       Data_18    125
       Data_19    190
       Data_2     195
       Data_20    174
       Data_21    139
       Data_22    210
       Data_23    105
       Data_24    209
       Data_25    179
       Data_26    172
       Data_27    135
       Data_28    176
       Data_29    131
       Data_3     180
       Data_30    187
       Data_31    121
       Data_32    163
       Data_33    154
       Data_34    162
       Data_35    193
       Data_36    183
       Data_37    126
       Data_38    200
       Data_39    118
       Data_4     205
       Data_40    165
       Data_41    141
       Data_42    184
       Data_43    117
       Data_44    185
       Data_45    156
       Data_46    164
       Data_47    143
       Data_48    160
       Data_49    153
       Data_5     159
       Data_50    206
       Data_51    100
       Data_52    171
       Data_53    132
       Data_54    170
       Data_55    203
       Data_56    208
       Data_57    101
       Data_58    204
       Data_59    107
       Data_6     136
       Data_60    108
       Data_61    192
       Data_62    151
       Data_63    167
       Data_64    150
       Data_65    122
       Data_66    112
       Data_67    198
       Data_68    128
       Data_69    188
       Data_7     194
       Data_70    173
       Data_71    137
       Data_72    211
       Data_73    104
       Data_74    212
       Data_75    181
       Data_76    175
       Data_77    134
       Data_78    177
       Data_79    129
       Data_8     140
       Data_80    113
       Data_81    197
       Data_82    145
       Data_83    169
       Data_84    148
       Data_85    119
       Data_86    110
       Data_87    202
       Data_88    124
       Data_89    189
       Data_9     133
       Data_90    114
       Data_91    199
       Data_92    155
       Data_93    161
       Data_94    152
       Data_95    127
       Data_96    116
       Data_97    191
       Data_98    123
       Data_99    186
       FW Wifi    106
       FW_Wifi    106
       Grid_Voltage_AC 146
       Information_0 102
       Information_1 158
       Information_2 115
       Information_3 157
       Information_4 130
       Information_5 103
       Information_6 166
       Information_7 149
       Information_8 178
       Information_9 182
       Inverter-Type 207
       Inverter_Frequenz 133
       Inverter_Type 207
       Max Output 102
       PV_Current 159
       PV_Power   194
       PV_Voltage 180
       S/N Inverter 115
       S/N Wifi   142
       SN_Inverter 115
       SN_Wifi    142
       Serial_Inverter 115
       grid_power_max 102
       rated_capacity 102
       sn         142
       type       207
       ver        106
       yield_monthly 141
       yield_today 168
       yield_total 196
     readingOutdated:
     requestReadings:
       update:
         AC_Current reading 138
         AC_Power   reading 195
         AC_Voltage reading 146
         Data_0     reading 146
         Data_1     reading 138
         Data_10    reading 111
         Data_11    reading 196
         Data_12    reading 147
         Data_13    reading 168
         Data_14    reading 144
         Data_15    reading 120
         Data_16    reading 109
         Data_17    reading 201
         Data_18    reading 125
         Data_19    reading 190
         Data_2     reading 195
         Data_20    reading 174
         Data_21    reading 139
         Data_22    reading 210
         Data_23    reading 105
         Data_24    reading 209
         Data_25    reading 179
         Data_26    reading 172
         Data_27    reading 135
         Data_28    reading 176
         Data_29    reading 131
         Data_3     reading 180
         Data_30    reading 187
         Data_31    reading 121
         Data_32    reading 163
         Data_33    reading 154
         Data_34    reading 162
         Data_35    reading 193
         Data_36    reading 183
         Data_37    reading 126
         Data_38    reading 200
         Data_39    reading 118
         Data_4     reading 205
         Data_40    reading 165
         Data_41    reading 141
         Data_42    reading 184
         Data_43    reading 117
         Data_44    reading 185
         Data_45    reading 156
         Data_46    reading 164
         Data_47    reading 143
         Data_48    reading 160
         Data_49    reading 153
         Data_5     reading 159
         Data_50    reading 206
         Data_51    reading 100
         Data_52    reading 171
         Data_53    reading 132
         Data_54    reading 170
         Data_55    reading 203
         Data_56    reading 208
         Data_57    reading 101
         Data_58    reading 204
         Data_59    reading 107
         Data_6     reading 136
         Data_60    reading 108
         Data_61    reading 192
         Data_62    reading 151
         Data_63    reading 167
         Data_64    reading 150
         Data_65    reading 122
         Data_66    reading 112
         Data_67    reading 198
         Data_68    reading 128
         Data_69    reading 188
         Data_7     reading 194
         Data_70    reading 173
         Data_71    reading 137
         Data_72    reading 211
         Data_73    reading 104
         Data_74    reading 212
         Data_75    reading 181
         Data_76    reading 175
         Data_77    reading 134
         Data_78    reading 177
         Data_79    reading 129
         Data_8     reading 140
         Data_80    reading 113
         Data_81    reading 197
         Data_82    reading 145
         Data_83    reading 169
         Data_84    reading 148
         Data_85    reading 119
         Data_86    reading 110
         Data_87    reading 202
         Data_88    reading 124
         Data_89    reading 189
         Data_9     reading 133
         Data_90    reading 114
         Data_91    reading 199
         Data_92    reading 155
         Data_93    reading 161
         Data_94    reading 152
         Data_95    reading 127
         Data_96    reading 116
         Data_97    reading 191
         Data_98    reading 123
         Data_99    reading 186
         FW Wifi    reading 106
         FW_Wifi    reading 106
         Grid_Voltage_AC reading 146
         Information_0 reading 102
         Information_1 reading 158
         Information_2 reading 115
         Information_3 reading 157
         Information_4 reading 130
         Information_5 reading 103
         Information_6 reading 166
         Information_7 reading 149
         Information_8 reading 178
         Information_9 reading 182
         Inverter-Type reading 207
         Inverter_Frequenz reading 133
         Inverter_Type reading 207
         Max Output reading 102
         PV_Current reading 159
         PV_Power   reading 194
         PV_Voltage reading 180
         S/N Inverter reading 115
         S/N Wifi   reading 142
         SN_Inverter reading 115
         SN_Wifi    reading 142
         Serial_Inverter reading 115
         grid_power_max reading 102
         rated_capacity reading 102
         sn         reading 142
         type       reading 207
         ver        reading 106
         yield_monthly reading 141
         yield_today reading 168
         yield_total reading 196
   hmccu:
Attributes:
   alias      solax_httpmod2
   reading100JSON Data_51
   reading100Name Data_51
   reading101JSON Data_57
   reading101Name Data_57
   reading102JSON Information_0
   reading102Name rated_capacity
   reading103JSON Information_5
   reading103Name Information_5
   reading104JSON Data_73
   reading104Name Data_73
   reading105JSON Data_23
   reading105Name Data_23
   reading106JSON ver
   reading106Name FW_Wifi
   reading107JSON Data_59
   reading107Name Data_59
   reading108JSON Data_60
   reading108Name Data_60
   reading109JSON Data_16
   reading109Name Data_16
   reading110JSON Data_86
   reading110Name Data_86
   reading111JSON Data_10
   reading111Name Data_10
   reading112JSON Data_66
   reading112Name Data_66
   reading113JSON Data_80
   reading113Name Data_80
   reading114JSON Data_90
   reading114Name Data_90
   reading115JSON Information_2
   reading115Name SN_Inverter
   reading116JSON Data_96
   reading116Name Data_96
   reading117JSON Data_43
   reading117Name Data_43
   reading118JSON Data_39
   reading118Name Data_39
   reading119JSON Data_85
   reading119Name Data_85
   reading120JSON Data_15
   reading120Name Data_15
   reading121JSON Data_31
   reading121Name Data_31
   reading122JSON Data_65
   reading122Name Data_65
   reading123JSON Data_98
   reading123Name Data_98
   reading124JSON Data_88
   reading124Name Data_88
   reading125JSON Data_18
   reading125Name Data_18
   reading126JSON Data_37
   reading126Name Data_37
   reading127JSON Data_95
   reading127Name Data_95
   reading128JSON Data_68
   reading128Name Data_68
   reading129JSON Data_79
   reading129Name Data_79
   reading130JSON Information_4
   reading130Name Information_4
   reading131JSON Data_29
   reading131Name Data_29
   reading132JSON Data_53
   reading132Name Data_53
   reading133JSON Data_9
   reading133Name Inverter_Frequenz
   reading134JSON Data_77
   reading134Name Data_77
   reading135JSON Data_27
   reading135Name Data_27
   reading136JSON Data_6
   reading136Name Data_6
   reading137JSON Data_71
   reading137Name Data_71
   reading138JSON Data_1
   reading138Name AC_Current
   reading139JSON Data_21
   reading139Name Data_21
   reading140JSON Data_8
   reading140Name Data_8
   reading141JSON Data_41
   reading141Name yield_monthly
   reading142JSON sn
   reading142Name SN_Wifi
   reading143JSON Data_47
   reading143Name Data_47
   reading144JSON Data_14
   reading144Name Data_14
   reading145JSON Data_82
   reading145Name Data_82
   reading146JSON Data_0
   reading146Name AC_Voltage
   reading147JSON Data_12
   reading147Name Data_12
   reading148JSON Data_84
   reading148Name Data_84
   reading149JSON Information_7
   reading149Name Information_7
   reading150JSON Data_64
   reading150Name Data_64
   reading151JSON Data_62
   reading151Name Data_62
   reading152JSON Data_94
   reading152Name Data_94
   reading153JSON Data_49
   reading153Name Data_49
   reading154JSON Data_33
   reading154Name Data_33
   reading155JSON Data_92
   reading155Name Data_92
   reading156JSON Data_45
   reading156Name Data_45
   reading157JSON Information_3
   reading157Name Information_3
   reading158JSON Information_1
   reading158Name Information_1
   reading159JSON Data_5
   reading159Name PV_Current
   reading160JSON Data_48
   reading160Name Data_48
   reading161JSON Data_93
   reading161Name Data_93
   reading162JSON Data_34
   reading162Name Data_34
   reading163JSON Data_32
   reading163Name Data_32
   reading164JSON Data_46
   reading164Name Data_46
   reading165JSON Data_40
   reading165Name Data_40
   reading166JSON Information_6
   reading166Name Information_6
   reading167JSON Data_63
   reading167Name Data_63
   reading168JSON Data_13
   reading168Name yield_today
   reading169JSON Data_83
   reading169Name Data_83
   reading170JSON Data_54
   reading170Name Data_54
   reading171JSON Data_52
   reading171Name Data_52
   reading172JSON Data_26
   reading172Name Data_26
   reading173JSON Data_70
   reading173Name Data_70
   reading174JSON Data_20
   reading174Name Data_20
   reading175JSON Data_76
   reading175Name Data_76
   reading176JSON Data_28
   reading176Name Data_28
   reading177JSON Data_78
   reading177Name Data_78
   reading178JSON Information_8
   reading178Name Information_8
   reading179JSON Data_25
   reading179Name Data_25
   reading180JSON Data_3
   reading180Name PV_Voltage
   reading181JSON Data_75
   reading181Name Data_75
   reading182JSON Information_9
   reading182Name Information_9
   reading183JSON Data_36
   reading183Name Data_36
   reading184JSON Data_42
   reading184Name Data_42
   reading185JSON Data_44
   reading185Name Data_44
   reading186JSON Data_99
   reading186Name Data_99
   reading187JSON Data_30
   reading187Name Data_30
   reading188JSON Data_69
   reading188Name Data_69
   reading189JSON Data_89
   reading189Name Data_89
   reading190JSON Data_19
   reading190Name Data_19
   reading191JSON Data_97
   reading191Name Data_97
   reading192JSON Data_61
   reading192Name Data_61
   reading193JSON Data_35
   reading193Name Data_35
   reading194JSON Data_7
   reading194Name PV_Power
   reading195JSON Data_2
   reading195Name AC_Power
   reading196JSON Data_11
   reading196Name yield_total
   reading197JSON Data_81
   reading197Name Data_81
   reading198JSON Data_67
   reading198Name Data_67
   reading199JSON Data_91
   reading199Name Data_91
   reading200JSON Data_38
   reading200Name Data_38
   reading201JSON Data_17
   reading201Name Data_17
   reading202JSON Data_87
   reading202Name Data_87
   reading203JSON Data_55
   reading203Name Data_55
   reading204JSON Data_58
   reading204Name Data_58
   reading205JSON Data_4
   reading205Name Data_4
   reading206JSON Data_50
   reading206Name Data_50
   reading207JSON type
   reading207Name Inverter_Type
   reading208JSON Data_56
   reading208Name Data_56
   reading209JSON Data_24
   reading209Name Data_24
   reading210JSON Data_22
   reading210Name Data_22
   reading211JSON Data_72
   reading211Name Data_72
   reading212JSON Data_74
   reading212Name Data_74
   requestData optType=ReadRealTimeData/?pwd=SXxxxxxxxx
   room       Solar
   verbose    5


(Einige der Readings habe ich schon selber umbenannt, nicht wundern.)


Kann ich da noch irgendwas über Attribute machen oder muss ich die ganzen Readings umstricken?


Andreas
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Loetkolben am 15 Juli 2022, 15:35:04
Bei mir läuft es jetzt so ganz gut und ich bekomme genug Informationen ->


defmod solax_httpmod2_local HTTPMOD http://<IP_ADRESSE_VOM_WIFI_STICK>/ 300
attr solax_httpmod2_local alias solax_httpmod2_local
attr solax_httpmod2_local reading102JSON Information_0
attr solax_httpmod2_local reading102Name rated_capacity
attr solax_httpmod2_local reading103JSON Information_5
attr solax_httpmod2_local reading103Name Information_5
attr solax_httpmod2_local reading106JSON ver
attr solax_httpmod2_local reading106Name FW_Wifi
attr solax_httpmod2_local reading115JSON Information_2
attr solax_httpmod2_local reading115Name SN_Inverter
attr solax_httpmod2_local reading130JSON Information_4
attr solax_httpmod2_local reading130Name Information_4
attr solax_httpmod2_local reading133JSON Data_9
attr solax_httpmod2_local reading133Name Inverter_Frequenz
attr solax_httpmod2_local reading133OExpr $val / 100
attr solax_httpmod2_local reading138JSON Data_1
attr solax_httpmod2_local reading138Name AC_Current
attr solax_httpmod2_local reading138OExpr $val / 10
attr solax_httpmod2_local reading141JSON Data_41
attr solax_httpmod2_local reading141Name yield_monthly
attr solax_httpmod2_local reading142JSON sn
attr solax_httpmod2_local reading142Name SN_Wifi
attr solax_httpmod2_local reading146JSON Data_0
attr solax_httpmod2_local reading146Name AC_Voltage
attr solax_httpmod2_local reading146OExpr $val / 10
attr solax_httpmod2_local reading149JSON Information_7
attr solax_httpmod2_local reading149Name Information_7
attr solax_httpmod2_local reading157JSON Information_3
attr solax_httpmod2_local reading157Name Information_3
attr solax_httpmod2_local reading158JSON Information_1
attr solax_httpmod2_local reading158Name Information_1
attr solax_httpmod2_local reading159JSON Data_5
attr solax_httpmod2_local reading159Name PV_Current
attr solax_httpmod2_local reading159OExpr $val / 10
attr solax_httpmod2_local reading166JSON Information_6
attr solax_httpmod2_local reading166Name Information_6
attr solax_httpmod2_local reading168Format %.3f
attr solax_httpmod2_local reading168JSON Data_13
attr solax_httpmod2_local reading168Name yield_today
attr solax_httpmod2_local reading168OExpr $val / 10
attr solax_httpmod2_local reading178JSON Information_8
attr solax_httpmod2_local reading178Name Information_8
attr solax_httpmod2_local reading180JSON Data_3
attr solax_httpmod2_local reading180Name PV_Voltage
attr solax_httpmod2_local reading180OExpr $val / 10
attr solax_httpmod2_local reading181JSON Data_75
attr solax_httpmod2_local reading181Name Data_75
attr solax_httpmod2_local reading182JSON Information_9
attr solax_httpmod2_local reading182Name Information_9
attr solax_httpmod2_local reading194JSON Data_7
attr solax_httpmod2_local reading194Name PV_Power
attr solax_httpmod2_local reading195JSON Data_2
attr solax_httpmod2_local reading195Name AC_Power
attr solax_httpmod2_local reading196JSON Data_11
attr solax_httpmod2_local reading196Name yield_total
attr solax_httpmod2_local reading196OExpr $val / 10
attr solax_httpmod2_local reading207JSON type
attr solax_httpmod2_local reading207Name Inverter_Type
attr solax_httpmod2_local requestData optType=ReadRealTimeData/?pwd=<SERIENNUMMER_VOM_WIFI_STICK>
attr solax_httpmod2_local requestHeader1 Content-Type: application/json
attr solax_httpmod2_local requestHeader2 Accept: application/json
attr solax_httpmod2_local room Solar
attr solax_httpmod2_local stateFormat {sprintf("AC-Strom: %.2f A <br> AC-Spannung: %.2f V <br> AC-Leistung: %.2f W <br>PV-Strom: %.2f A <br> PV-Spannung: %.2f V <br> PV-Leistung: %.2f W <br> Gesamt-Leistung: %.2f kW" ,ReadingsVal("solax_httpmod2_local","AC_Current",0),ReadingsVal("solax_httpmod2_local","AC_Voltage",0),ReadingsVal("solax_httpmod2_local","AC_Power",0),ReadingsVal("solax_httpmod2_local","PV_Current",0),ReadingsVal("solax_httpmod2_local","PV_Voltage",0),ReadingsVal("solax_httpmod2_local","PV_Power",0),ReadingsVal("solax_httpmod2_local","yield_total",0))}
attr solax_httpmod2_local verbose 0


Es kommen nach der Einrichtung jede Menge Readings (siehe List in meinen Beitrag vorher).
Irgendwo versteckt sich auch noch die Temperatur vom Inverter, da werde ich dann morgen früh mal schauen.  Da mein Inverter derzeit noch draußen aufgebaut ist, sollte Aussentemperatur=Invertertemperatur sein.

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Sunratte am 18 August 2022, 10:33:52
Hallo Andreas,

leider klappt es bei mir nicht mit folgender Abfrage:


curl -X POST http://5.8.8.8 --data 'optType=ReadRealTimeData&pwd=SVG. . . . . . )'


0:code,message:"failed"

oder mit:


curl -X POST http://5.8.8.8/?optType=ReadRealTimeData


curl: (52) Empty reply from server

wenn ich das eingebe:


curl -v POST http://5.8.8.8/?optType=ReadRealTimeData



* Could not resolve host: POST
* Closing connection 0
curl: (6) Could not resolve host: POST
*   Trying 5.8.8.8:80...
* Connected to 5.8.8.8 (5.8.8.8) port 80 (#1)
> GET /?optType=ReadRealTimeData HTTP/1.1
> Host: 5.8.8.8
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 401 Authorization Required
< Server: MySocket Server
< WWW-Authenticate: Basic realm=SolaxPower
< Content-Type: text/html; charset=UTF-8
< Content-Length: 180
<
<HTML>
<HEAD>
<TITLE>Error</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</HEAD>
<BODY><H1>401 Unauthorized</H1></BODY>
* transfer closed with 17 bytes remaining to read
* Closing connection 1
curl: (18) transfer closed with 17 bytes remaining to read

und:


curl -v -X POST http://5.8.8.8/?optType=ReadRealTimeData


*   Trying 5.8.8.8:80...
* Connected to 5.8.8.8 (5.8.8.8) port 80 (#0)
> POST /?optType=ReadRealTimeData HTTP/1.1
> Host: 5.8.8.8
> User-Agent: curl/7.74.0
> Accept: */*
>
* Empty reply from server
* Connection #0 to host 5.8.8.8 left intact
curl: (52) Empty reply from server



Mein Wechselrichter ist ein X1 Hybrid G4 und der Wifi-Stick hat die Firmware 3.001.02.

Irgendwie komme ich nicht weiter. Die lokale Abfrage über die App Solax-Cloud funktioniert einwandfrei.


Gruß
Knut

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Tobias am 18 August 2022, 13:58:01
Hi,
gibt es eigentlich einen aktuellen Arbeitstand von Archinauts ModbusSolax Modul?
Mein Ziel ist es meinen Solax X1 Hybrid 5.0 ohne den WiFi Stick zu steuern, nur mit ModBus over TCP mittels LAN Kabel.
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Tobias am 20 August 2022, 12:47:18
Hi,
Ich habe gerade mit Erschrecken festgestellt, das mein Solax X1 Hybrid 5.0 G4 überhaupt keine LAN Anschluss hat. Der COM Port ist kein LAN sonder ein RS485 Anschluss.

ICh brauche also warscheinlich ein RS485 Modul und ein ESP. Kennt hier auch jemand eine Lösung um mein X1 an FHEM anzubinden?
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Loetkolben am 21 August 2022, 17:21:45
Zitat von: Sunratte am 18 August 2022, 10:33:52
Hallo Andreas,

leider klappt es bei mir nicht mit folgender Abfrage:


curl -X POST http://5.8.8.8 --data 'optType=ReadRealTimeData&pwd=SVG. . . . . . )'


0:code,message:"failed"

Du bist im gleichen Netz wie der Solax-Stick, bist also per WLAN direkt mit ihm verbunden?
Der Rechner, mit dem Du die Abfrage startest, müsste also eine IP aus dem Netz 5.8.8.0 haben.

Oder hat der Stick eine Verbindung mit Deinem normalen WLAN?
Dann schau auf Deinem Router welche IP er bekommen hat, dann die gleiche Abfrage nochmal mit der IP.


   Andreas
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Loetkolben am 21 August 2022, 17:28:09
Zitat von: Tobias am 18 August 2022, 13:58:01
Mein Ziel ist es meinen Solax X1 Hybrid 5.0 ohne den WiFi Stick zu steuern, nur mit ModBus over TCP mittels LAN Kabel.
Es gibt doch auch einen LAN-Stick, den könntest Du doch anstelle des WLAN-Stick nehmen.
Ich bin derzeit auch noch auf der Suche nach 'nem Anbieter der keine Horror-Preise verlangt, bisher erfolglos.

   Andreas
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Tobias am 22 August 2022, 12:17:57
Hi,
ich versuche gerade das Tasmota Solax X1 Modul für RS485 in Gang zu bekommen. Das schickt dann alle Daten per MQTT. Ich melde mich.
Mein Ziel ist es auch, den Solax komplett ohne WiFi Stick zu betreiben. Das offene Solax WLAN ist mir ein Dorn im Auge.

Offensichtlich gibt es sehr wohl Unterschiede zwischen einem Solax X1 Hybrid und einem X3 Hybrid
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Loetkolben am 22 August 2022, 15:05:50
Offen ist das WLAN ja nicht direkt, mit dem Kennwort 'admin' ist es doch erstmal geschützt ;D
Das Kennwort kannst Du auf der Weboberfläche ändern.

Bei meinem Stick war die Serienummmer als Passwort hinterlegt.
Man sollte jetzt denken, das es sicherer ist - Pustekuchen - die SSID war gleich der Serienummer  :-\
Neues Kennwort vergeben wollte erst nicht klappen, bis ich bemerkt habe das es max. 8 Zeichen haben darf.

Auf Dauer werde ich auf die LAN-Variante umstellen, ist sicherlich besser.

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Sunratte am 24 August 2022, 23:47:01
Hallo Andreas,

ich probiere es mit einem alten Pi ohne integriertem Wlan. Der USB-Wlanstick funkt nur zum Solax mit der IP 5.8.8.8.
Die Abfragen mache ich dann über LAN am Pi. Ist das vielleicht der Fehler?

Gruß
Knut
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Tobias am 10 Oktober 2022, 07:37:01
Hi,
Mein X1 hat nur WLAN oder Modbus RTU.
Die Abfrage via Wlan hat funktioniert, aufgrund des offenen WLAN's aber für mich ein NoGo.
Das Modbus Protokoll hat sich imho von der G3 zur G4 Serie geändert, deswegen funktionieren die meisten Lösungen die auf Modbus RTU setzen nicht. Dazu gehört auch die Tasmota Solax X1 Implementierung.

Ich habe es jetzt hinbekommen mit einem ESP32 die Inverter SN aus der offiziellen Solax Modbus Protokoll Doku abzufragen und werde darauf aufbauend jetzt ein Modbus-RTU - MQTT Gateway schreiben. Funktioniert dann für X1 und X3 der G4 Serie sowie unabhängig der eingesetzten Haussteuerung (FHEM, symcon, openhab oder homeassist)

Mein erstes Beispiel zum Testen ob es mit eurem WR grundsätzlich funktioniert kann ich gerne zur Verfügung stellen. Es muss aber ein ESP32 sein, über Softwareserial mit einem esp8266 funktioniert es nicht oder nur mit Einschränkungen und Problemen.

Edit: mein Projekt mit Code ist im Github zu finden: https://github.com/tobiasfaust/SolaxModbusGateway
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: waraku am 27 November 2022, 12:56:34
Hallo, ich bin neu hier und neu in Homeassistant unterwegs. Ich versuche meinen Solax WR mit Lan Adapter in Homeassistant zu integrieren. Der Wechselrichter sendet Daten in die Cloud. Das funktioniert also. Ich kann die Daten auch per API abrufen. Ich kann die Adresse 5.8.8.8 erreichen aber komm dort nicht weiter. Ich wollte jetzt versuchen über Integraton Solax den WR in HA einzubinden. Da wird die IP ,der Port und das Passwort abgefragt.IP habe ich 5.8.8.8 Port 80 und Passwort ????.Das Hat also nicht geklappt. Dann habe ich noch den Code im Netz gefunden und entsprechend angepasst und in config.yaml kopiert. Dort erhalte ich ein grünes Häkchen, aber bei Entwicklerwerkzeuge bekomme ich folgende Meldung" Integration error: sensors - Integration 'sensors' not found." Vielleicht kann mir jemand helfen. Vielen Dank im vorraus


#########################################################
#                                                       #
#         SOLAX CLOUD.                                  #
#                                                       #
#########################################################
sensors:
  - platform: rest
    resource: https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=2022********&sn=SY******
    value_template: '{{ ( value_json.result.yieldtotal | round(0) ) }}'
    name: "Solax total"
    unit_of_measurement: "KWh"

  - platform: rest
    resource: https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=2022********&sn=SY******
    value_template: '{{ ( value_json.result.acpower | round(0) ) }}'
    name: "Solax now"
    unit_of_measurement: "W"

  - platform: rest
    resource: https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=tokenId=2022********&sn=SY******
    value_template: '{{ value_json.result.yieldtoday }}'
    name: "Solax today"
    unit_of_measurement: "KWh"

  - platform: rest
    resource: https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=2022********&sn=SY******
    value_template: "{{ value_json.result.uploadTime }}"
    name: "Solax upload time"

  - platform: rest
    resource: https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=tokenId=2022********&sn=SY******
    value_template: >
          {% if value_json.result.inverterStatus == '100' %}Wait
          {% elif value_json.result.inverterStatus == '101' %}Check
          {% elif value_json.result.inverterStatus == '102' %}Normal
          {% elif value_json.result.inverterStatus == '103' %}Fault
          {% elif value_json.result.inverterStatus == '104' %}Permanent Fault
          {% elif value_json.result.inverterStatus == '105' %}Update
          {% elif value_json.result.inverterStatus == '106' %}EPS Check
          {% elif value_json.result.inverterStatus == '107' %}EPS
          {% elif value_json.result.inverterStatus == '108' %}Self-test
          {% elif value_json.result.inverterStatus == '109' %}Idle
          {% elif value_json.result.inverterStatus == '110' %}Standby
          {% elif value_json.result.inverterStatus == '111' %}Pv Wake Up Bat
          {% elif value_json.result.inverterStatus == '112' %}Gen Check
          {% elif value_json.result.inverterStatus == '113' %}Gen Run
          {% else %}I dont know{% endif %}
    name: "Solax status"

#########################################################
#                                                       #
#            END OF CONFIGURATION FILE                  #
#                                                       #
#########################################################










Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Tobias am 29 November 2022, 09:44:32
Hi,
Warum schmeißt du eigentlich dein wlan Stick vom Solax nicht weg und greifst die Daten via Modbus ab? Das geht viel schneller und du teilst nix in die China cloud.

In homeassist integrierst du die Daten dann über die MQTT topics.
Fertig....
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Tomk am 01 Januar 2023, 10:43:49
Ich habe meinen Qcells auch so ausgelesen. Über Modbus / Rs485 und dann über einen USB Wandler an den Raspi. In Fhem dann über Modbus und ModbusAtrr auf die Register zugegriffen...
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: remo am 07 März 2023, 17:01:30
Zitat von: Tobias am 10 Oktober 2022, 07:37:01
Hi,
Mein X1 hat nur WLAN oder Modbus RTU.
Die Abfrage via Wlan hat funktioniert, aufgrund des offenen WLAN's aber für mich ein NoGo.
Das Modbus Protokoll hat sich imho von der G3 zur G4 Serie geändert, deswegen funktionieren die meisten Lösungen die auf Modbus RTU setzen nicht. Dazu gehört auch die Tasmota Solax X1 Implementierung.

Ich habe es jetzt hinbekommen mit einem ESP32 die Inverter SN aus der offiziellen Solax Modbus Protokoll Doku abzufragen und werde darauf aufbauend jetzt ein Modbus-RTU - MQTT Gateway schreiben. Funktioniert dann für X1 und X3 der G4 Serie sowie unabhängig der eingesetzten Haussteuerung (FHEM, symcon, openhab oder homeassist)

Mein erstes Beispiel zum Testen ob es mit eurem WR grundsätzlich funktioniert kann ich gerne zur Verfügung stellen. Es muss aber ein ESP32 sein, über Softwareserial mit einem esp8266 funktioniert es nicht oder nur mit Einschränkungen und Problemen.

Edit: mein Projekt mit Code ist im Github zu finden: https://github.com/tobiasfaust/SolaxModbusGateway


Hi.
Das Tasmota Projekt habe ich ebenfalls im blick.
Das funktioniert aber nicht?

Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: Tobias am 07 März 2023, 17:06:32
Doch, das funktioniert. Aber nur mit dem Solax Mini. Der hat ein anderes Protokoll.
Könnte ich bei mir auch einbauen, ist nur eine Konfiguration, muss aber jemand machen der ein Gerät Vorort zum Testen hat.
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: remo am 09 März 2023, 13:14:43
Ich hab einen X1 Mini 1.1

Bin auch ganz zufrieden. Nur die Sammlung von lokalen Daten klappt nicht so ganz.
Also, Daten bekomme ich. Mit curl usw.
Alles gut. Aber es fehlt an weiteren Infos zum Mapping.

Ich sträube mich eigentlich gegen den Einsatz weiterer Hardware, wenn doch das Int. WLAN Modul alles bereitzustellen scheint. Von der China Cloud ist das Teil entkoppelt (Filter auf meiner OpnSense).

Also wenn jmd Infos zum Json Mapping hätte ...
Titel: Antw:solax xHybrid Wechselrichter
Beitrag von: remo am 09 März 2023, 14:43:05
Zitat von: Loetkolben am 15 Juli 2022, 15:35:04
Bei mir läuft es jetzt so ganz gut und ich bekomme genug Informationen ->


defmod solax_httpmod2_local HTTPMOD http://<IP_ADRESSE_VOM_WIFI_STICK>/ 300
attr solax_httpmod2_local alias solax_httpmod2_local
attr solax_httpmod2_local reading102JSON Information_0
attr solax_httpmod2_local reading102Name rated_capacity
attr solax_httpmod2_local reading103JSON Information_5
attr solax_httpmod2_local reading103Name Information_5
attr solax_httpmod2_local reading106JSON ver
attr solax_httpmod2_local reading106Name FW_Wifi
attr solax_httpmod2_local reading115JSON Information_2
attr solax_httpmod2_local reading115Name SN_Inverter
attr solax_httpmod2_local reading130JSON Information_4
attr solax_httpmod2_local reading130Name Information_4
attr solax_httpmod2_local reading133JSON Data_9
attr solax_httpmod2_local reading133Name Inverter_Frequenz
attr solax_httpmod2_local reading133OExpr $val / 100
attr solax_httpmod2_local reading138JSON Data_1
attr solax_httpmod2_local reading138Name AC_Current
attr solax_httpmod2_local reading138OExpr $val / 10
attr solax_httpmod2_local reading141JSON Data_41
attr solax_httpmod2_local reading141Name yield_monthly
attr solax_httpmod2_local reading142JSON sn
attr solax_httpmod2_local reading142Name SN_Wifi
attr solax_httpmod2_local reading146JSON Data_0
attr solax_httpmod2_local reading146Name AC_Voltage
attr solax_httpmod2_local reading146OExpr $val / 10
attr solax_httpmod2_local reading149JSON Information_7
attr solax_httpmod2_local reading149Name Information_7
attr solax_httpmod2_local reading157JSON Information_3
attr solax_httpmod2_local reading157Name Information_3
attr solax_httpmod2_local reading158JSON Information_1
attr solax_httpmod2_local reading158Name Information_1
attr solax_httpmod2_local reading159JSON Data_5
attr solax_httpmod2_local reading159Name PV_Current
attr solax_httpmod2_local reading159OExpr $val / 10
attr solax_httpmod2_local reading166JSON Information_6
attr solax_httpmod2_local reading166Name Information_6
attr solax_httpmod2_local reading168Format %.3f
attr solax_httpmod2_local reading168JSON Data_13
attr solax_httpmod2_local reading168Name yield_today
attr solax_httpmod2_local reading168OExpr $val / 10
attr solax_httpmod2_local reading178JSON Information_8
attr solax_httpmod2_local reading178Name Information_8
attr solax_httpmod2_local reading180JSON Data_3
attr solax_httpmod2_local reading180Name PV_Voltage
attr solax_httpmod2_local reading180OExpr $val / 10
attr solax_httpmod2_local reading181JSON Data_75
attr solax_httpmod2_local reading181Name Data_75
attr solax_httpmod2_local reading182JSON Information_9
attr solax_httpmod2_local reading182Name Information_9
attr solax_httpmod2_local reading194JSON Data_7
attr solax_httpmod2_local reading194Name PV_Power
attr solax_httpmod2_local reading195JSON Data_2
attr solax_httpmod2_local reading195Name AC_Power
attr solax_httpmod2_local reading196JSON Data_11
attr solax_httpmod2_local reading196Name yield_total
attr solax_httpmod2_local reading196OExpr $val / 10
attr solax_httpmod2_local reading207JSON type
attr solax_httpmod2_local reading207Name Inverter_Type
attr solax_httpmod2_local requestData optType=ReadRealTimeData/?pwd=<SERIENNUMMER_VOM_WIFI_STICK>
attr solax_httpmod2_local requestHeader1 Content-Type: application/json
attr solax_httpmod2_local requestHeader2 Accept: application/json
attr solax_httpmod2_local room Solar
attr solax_httpmod2_local stateFormat {sprintf("AC-Strom: %.2f A <br> AC-Spannung: %.2f V <br> AC-Leistung: %.2f W <br>PV-Strom: %.2f A <br> PV-Spannung: %.2f V <br> PV-Leistung: %.2f W <br> Gesamt-Leistung: %.2f kW" ,ReadingsVal("solax_httpmod2_local","AC_Current",0),ReadingsVal("solax_httpmod2_local","AC_Voltage",0),ReadingsVal("solax_httpmod2_local","AC_Power",0),ReadingsVal("solax_httpmod2_local","PV_Current",0),ReadingsVal("solax_httpmod2_local","PV_Voltage",0),ReadingsVal("solax_httpmod2_local","PV_Power",0),ReadingsVal("solax_httpmod2_local","yield_total",0))}
attr solax_httpmod2_local verbose 0


Es kommen nach der Einrichtung jede Menge Readings (siehe List in meinen Beitrag vorher).
Irgendwo versteckt sich auch noch die Temperatur vom Inverter, da werde ich dann morgen früh mal schauen.  Da mein Inverter derzeit noch draußen aufgebaut ist, sollte Aussentemperatur=Invertertemperatur sein.



Gehe ich soweit mit.


Ich denke aber, dass Data_41 eher YIELD TOTAL und Data_11 eher MONTHLY YIELD entspricht?!
Was meinst du?


Noch nicht ganz zuordnen kann ich:

Data_10
Data_39 (Temperatur?)
Data_55



Hier meine Interpretation:


attr httpmod_Solax_Wifi userReadings 00_AC_Voltage { ReadingsVal($name, "Data_0", 0) / 10 }, \
00_AC_Current { ReadingsVal($name, "Data_1", 0) / 10 }, \
00_AC_Power { ReadingsVal($name, "Data_2", 0)  }, \
00_DC_Voltage { ReadingsVal($name, "Data_3", 0) / 10 }, \
00_DC_Current { ReadingsVal($name, "Data_5", 0) / 10 }, \
00_DC_Power { ReadingsVal($name, "Data_7", 0)  }, \
00_AC_Frequency { ReadingsVal($name, "Data_9", 0) / 100 }, \
00_Yield_Today { ReadingsVal($name, "Data_13", 0) / 10 }, \
00_Yield_Month { ReadingsVal($name, "Data_11", 0) / 10 }, \
00_Yield_Total { ReadingsVal($name, "Data_41", 0) / 10 }
Titel: Aw: solax xHybrid Wechselrichter
Beitrag von: Tobias am 19 März 2023, 13:20:26
Also ich für meinen Teil würde mich freuen wenn du meinen ModBusMQTT Gateway ausprobieren könntest. Dann könnte ich nämlich die register.h mit deinen Daten erweitern und alle anderen Solax Mini User könnten davon profitieren.
Titel: Aw: solax xHybrid Wechselrichter
Beitrag von: emmes am 24 März 2023, 18:43:56
Hallo Tobias,

ich besitze seit Ende letzten Jahres einen Solax WR X3-Hybrid-G4 und bin an den Daten für meine Hausautomatisierung interessiert. Mit Interesse habe ich von Deinem Projekt hier gelesen und das auch mit einem ESP32 umgesetzt. Das hat auch prima funktioniert. Dar Zugriff auf den µC über den PC funktioniert. Leider kommen keine Daten vom WR an. Alle Deine Möglichkeiten zum Troubleshooting habe ich ausprobiert, jedoch ohne Erfolg. Ich bin mir ehrlich geschrieben aber auch nicht sicher, ob über die RTU-Schnittstelle vom WR überhaupt Daten kommen. Ich habe den Ausgang mal mit dem Oszi geprüft und das ist ziemliche Ruhe, wogegen aus dem Smartmeter (auch Modbus) Traffic zu erkennen ist. Am Wechselrichter ist RS485 für den COM eingestellt. Deshalb nun die Frage an Dich: Werden die Daten auf Abruf von außen geliefert oder sendet der WR selbst Daten auf den Modbus?

Danke und viele Grüße
Thomas
Titel: Aw: solax xHybrid Wechselrichter
Beitrag von: Alveole am 24 März 2023, 23:42:22
Hallo,
und wie hast Du das genau definiert bzw eingebunden?

Zitat von: Tomk am 01 Januar 2023, 10:43:49Ich habe meinen Qcells auch so ausgelesen. Über Modbus / Rs485 und dann über einen USB Wandler an den Raspi. In Fhem dann über Modbus und ModbusAtrr auf die Register zugegriffen...
Titel: Aw: solax xHybrid Wechselrichter
Beitrag von: Tobias am 25 März 2023, 06:53:06
@alveole: qcells WR haben exakt das selbe Protokoll wie der Solax X3. Damit funktioniert es

@emmes: der WR sendet nur auf Anforderung, nicht selbständig.

Hast du im WR alle Modbus Einstellungen kontrolliert?

Wenn es am Ende immer noch nicht funktioniert, benutze bitte das Example Programm. Das ist minimalistisch und konzentriert sich nur auf das wesentliche der Kommunikation
Titel: Aw: solax xHybrid Wechselrichter
Beitrag von: emmes am 13 April 2023, 07:50:39
Hallo Tobias,

ich habe ein anderes Breakout Board verwendet und seit dem kommen auch Werte an. Ich hatte bisher ein SP3485. Mit dem HW-0519 funktioniert es.
Die Werte sehen an manchen Stellen nicht plausibel aus. Ich habe an meiner Anlage einen Batteriespeicher installiert. Die Ausgabe zeigt aber 0% an. Ich habe 2 Screenshots angehangen.
Wie kann ich das korrigieren?
Ich besitze einen Wechselrichter X3-Hybrid-G4.

Danke und viele Grüße
ThomasAshampoo_Snap_Donnerstag, 13. April 2023_7h40m23s.png
Titel: Aw: solax xHybrid Wechselrichter
Beitrag von: Tobias am 13 April 2023, 07:54:46
Schau mal in mein Wiki. Da steht's wie man eigene Items findet bzw in deinem Fall korrigieren kann.
Schlussendlich brauche ich deine Ergebnisse damit ich sie in mein repo übernehmen kann
Titel: Aw: solax xHybrid Wechselrichter
Beitrag von: saller.net am 19 Mai 2023, 00:43:17
Ich habe meinen Solax Wechselrichter jetzt über WLAN ins FHEM einbinden können und die meisten (zumindest die für mich relevanten) Daten entschlüsselt.
Solax.png
Solax2.png
Mein Fehler war die ganze Zeit der abschließende Slash, wenn man den nicht beim DEF mit angibt, kommt bei den HttpUtils immer ein "malformed or unsupported URL" zurück. Außerdem lässt nur der WLAN-Dongle am Solax-Wechselrichter den Zugriff über http (ich vermute wegen der WLAN-Einbindungs-Möglichkeit ins eigene Netzwerk, beim LAN-Dongle kommt immer "Zugriff verweigert"). Außerdem laufen einige Werte (z.B. Batterieleistung und Einspeise-Leistung auch ins negative, was anscheinend bei dem von Solax zurückgegebenen Wert zu einem int-16-bit overflow führt, was man an den hohen Werten nahe 65.535 sehen kann. Das hab ich jetzt einfach so gelöst, dass ich bei Überschreiten des halben Puffers (also 65.535/2) einfach von 65.535 abziehe.

Hier ist mein aktueller Arbeitsstand der Mappings, solltet ihr andere Mappings finden/verwenden, gerne her damit:
defmod solax_local HTTPMOD <IP-Adress deines WLAN-Dongles mit abschließendem Slash, z.B. http://192.168.0.208/> 30
attr solax_local disable 0
attr solax_local extractAllJSON 1
attr solax_local group energy
attr solax_local reading101JSON Data_103
attr solax_local reading101Name result_soc
attr solax_local reading102JSON Information_0
attr solax_local reading102Name rated_capacity
attr solax_local reading103JSON Data_6
attr solax_local reading103Name AC_Power1
attr solax_local reading103OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading104JSON Data_7
attr solax_local reading104Name AC_Power2
attr solax_local reading104OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading105JSON Data_8
attr solax_local reading105Name AC_Power3
attr solax_local reading105OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading106JSON ver
attr solax_local reading106Name FW_Wifi
attr solax_local reading107JSON Data_34
attr solax_local reading107Name result_feedinpower
attr solax_local reading107OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading108JSON Data_169
attr solax_local reading108Name BAT_Voltage
attr solax_local reading108OExpr $val/100
attr solax_local reading109JSON Data_14
attr solax_local reading109Name result_powerdc1
attr solax_local reading109OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading110JSON Data_15
attr solax_local reading110Name result_powerdc2
attr solax_local reading110OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading115JSON Information_2
attr solax_local reading115Name result_inverterSN
attr solax_local reading138JSON Data_2
attr solax_local reading138Name AC_Current1
attr solax_local reading138OExpr $val / 10
attr solax_local reading141JSON Data_44
attr solax_local reading141Name result_batPower
attr solax_local reading141OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading142JSON sn
attr solax_local reading142Name result_sn
attr solax_local reading146JSON Data_0
attr solax_local reading146Name AC_Voltage1
attr solax_local reading146OExpr $val / 10
attr solax_local reading147JSON Data_1
attr solax_local reading147Name AC_Voltage2
attr solax_local reading147OExpr $val/10
attr solax_local reading148JSON Data_2
attr solax_local reading148Name AC_Voltage3
attr solax_local reading148OExpr $val/10
attr solax_local reading149JSON Data_3
attr solax_local reading149Name AC_Current1
attr solax_local reading149OExpr $val/10
attr solax_local reading150JSON Data_4
attr solax_local reading150Name AC_Current2
attr solax_local reading150OExpr $val/10
attr solax_local reading151JSON Data_5
attr solax_local reading151Name AC_Current3
attr solax_local reading151OExpr $val/10
attr solax_local reading159JSON Data_12
attr solax_local reading159Name DC_Current1
attr solax_local reading159OExpr $val / 10
attr solax_local reading160JSON Data_13
attr solax_local reading160Name DC_Current2
attr solax_local reading160OExpr $val/10
attr solax_local reading168Format %.3f
attr solax_local reading168JSON Data_70
attr solax_local reading168Name result_yieldtoday
attr solax_local reading168OExpr $val / 10
attr solax_local reading179JSON Data_10
attr solax_local reading179Name DC_Voltage1
attr solax_local reading179OExpr $val / 10
attr solax_local reading180JSON Data_11
attr solax_local reading180Name DC_Voltage2
attr solax_local reading180OExpr $val / 10
attr solax_local reading181JSON Data_75
attr solax_local reading181Name Data_75
attr solax_local reading193JSON Data_9
attr solax_local reading193Name result_acpower
attr solax_local reading193OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading195JSON Data_47
attr solax_local reading195Name result_consumepower
attr solax_local reading195OExpr if ($val > 65535/2) {return $val-65535} else {return $val}
attr solax_local reading196JSON Data_68
attr solax_local reading196Name result_yieldtotal
attr solax_local reading196OExpr $val / 10
attr solax_local reading207JSON type
attr solax_local reading207Name Inverter_Type
attr solax_local reading90JSON Data_88
attr solax_local reading90Name result_consumeenergy
attr solax_local reading90OExpr $val/100
attr solax_local reading99JSON Data_105
attr solax_local reading99Name BAT_Temperature
attr solax_local requestData optType=ReadRealTimeData/?pwd=<SN deines WLAN-Dongles, QR-Code>
attr solax_local requestHeader1 Content-Type: application/json
attr solax_local requestHeader2 Accept: application/json
attr solax_local room energy
attr solax_local stateFormat {sprintf(\
"PV-Leistung (Solax DC): %i W <br>\
WR-Leistung (Solax AC): %i W <br>\
Einspeise-Leistung(Solax): %i W<br>\
Haus-Leistung (Solax): %i W<br>\
Batterie-Leistung: %i W<br>\
Batterie-Loading: %i %%<br>\
Yield (Heute/Gesamt): %.1f / %.1f kWh<br>\
SN (Dongle/WR): %s / %s",\
ReadingsVal($name,"result_powerdc1",0)+ReadingsVal($name,"result_powerdc2",0),\
ReadingsVal($name,"result_acpower",0),\
ReadingsVal($name,"result_feedinpower",0),\
ReadingsVal($name,"result_consumepower",0),\
ReadingsVal($name,"result_batPower",0),\
ReadingsVal($name,"result_soc",0),\
ReadingsVal($name,"result_yieldtoday",0),\
ReadingsVal($name,"result_yieldtotal",0),\
ReadingsVal($name,"result_sn",""),\
ReadingsVal($name,"result_inverterSN",""))\
}

Alternativ kann man den Solax Wechselrichter auch über die Internet-Web-Schnittstelle anbinden, dazu muss er aber im Internet hängen und die Daten werden nur alle 5 Minuten aktualisiert, da bekommt man auch wesentlich weniger Daten raus, genügt aber für den normalen Gebrauch, nur die Haushalts-Energie hab ich dort noch nicht gefunden, lässt sich aber auch einfach durch acpower-feedinpower ausrechnen:
defmod solax HTTPMOD https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=<token über die solaxcloud generiert>&sn=<SN deines WLAN-Dongles, QR-Code> 60
attr solax extractAllJSON 1
attr solax group energy
attr solax requestHeader1 Content-Type: application/json
attr solax requestHeader2 Accept: application/json
attr solax room energy
attr solax stateFormat {sprintf(\
"PV-Leistung (Solax DC): %i W <br>\
WR-Leistung (Solax AC): %i W <br>\
Einspeise-Leistung(Solax) %i W<br>\
Haus-Leistung (Solax): %i W<br>\
Batterie-Leistung: %i W<br>\
Batterie-Loading: %i %%<br>\
Yield (Heute/Gesamt): %.1f / %.1f kWh<br>\
SN (Dongle/WR): %s / %s",\
ReadingsVal($name,"result_powerdc1",0)+ReadingsVal($name,"result_powerdc2",0),\
ReadingsVal($name,"result_acpower",0),\
ReadingsVal($name,"result_feedinpower",0),\
ReadingsVal($name,"result_acpower",0)-ReadingsVal($name,"result_feedinpower",0),\
ReadingsVal($name,"result_batPower",0),\
ReadingsVal($name,"result_soc",0),\
ReadingsVal($name,"result_yieldtoday",0),\
ReadingsVal($name,"result_yieldtotal",0),\
ReadingsVal($name,"result_sn",""),\
ReadingsVal($name,"result_inverterSN",""))\
}
Titel: Aw: solax xHybrid Wechselrichter
Beitrag von: Bitschubser am 28 Juli 2023, 21:38:45
Hallo Tobias,
Habe dein Gateway mit meinem X3-Hybrid G4 verbunden. Bekomme auch die Werte in FHEM und kann sie verarbeiten. Funktioniert soweit super.
Auf "Off Grid Current L1" bekomme ich komische Werte: dort schwankt es zwischen -2400A und 3000A. Da würd es alle Kabel verglühen.  :)
Ist für mich eher unwichtig.
Viel interessanter:
Gibt es auch einen Rückkanal? Kann über FHEM der WR auch gesteuert werden? z.B. umschalten zwischen Eigenbedarf / Einspeisung, damit die Batterie nicht schon um 11 Uhr voll ist, sondern erst später geladen wird.

Danke, und schönen Gruß
Jens