NEWS
Einrichten Modbus Adapter / Solar X3 Gen4
-
@mcwoolf Zumindest dieser Ausschnitt ist nicht wirklich eindeutig.
Big/little endian wird ja bei > 1 Byte wichtig.
Also auch für die uint16. Dazu steht aber nichts explizit in der Liste.
Die Liste ist überschrieben mit einer Anmerkung zu den 32 bit, also 4 Byte Werten. Ob sich das auch auf die 16Bitter bezieht, liegt zwar nahe, wird aber nicht wirklich explizit beschrieben.
Und dann würde ich natürlich das nehmen, was plausible Ergebnisse bringt. -
@klassisch
Ja ich habe jetzt schon einige Register eingetragen und seit dem ich big endian verwende, habe ich auch saubere Werte. -
@mcwoolf Hallo, habe ebenfalls einen Solax X3 G4 15 D und möchte die Daten auch über Modbus auslesen (gibt ja keine andere Möglichkeit soweit ich sehe) - mit welchem Adapter hattest du schlussendlich Erfolg?
-
@planb1
Hi
eigentlich mit dem ich dazwischen abgebrochen habe. Also den USR-TCP232-304, damit hat es dann geklappt. -
Hi,
ich muss das hier nochmal aufgreifen. Ich habe eine ähnliche Konfiguration.
Solax X3 + einem Waveshare Modbus->IP Konverter. Habe es bereits geschafft die Daten mit Loxone abzugreifen, würde die aber auch noch im iobroker benötigen. Kann ich eigentlich mit 2 Clients abfragen?Ich bekomme folgendes im Log:
modbus.1 2023-04-14 17:45:12.653 error unknown function code: 0x26, 0x0 modbus.1 2023-04-14 17:45:12.639 error unknown function code: 0x25, 0x0 modbus.1 2023-04-14 17:45:12.625 error unknown function code: 0x24, 0x0 modbus.1 2023-04-14 17:45:12.611 error unknown function code: 0x23, 0x0 modbus.1 2023-04-14 17:45:12.598 error unknown function code: 0x22, 0x0 modbus.1 2023-04-14 17:45:12.486 error unknown function code: 0x21, 0x0 modbus.1 2023-04-14 17:45:07.960 info Connected to slave modbus.1 2023-04-14 17:45:07.890 info Can not execute task "add" for ID undefined: The id is empty! Please provide a valid id. ({"name":"add","obj":{"type":"state","common":{"name":"","role":"value","type":"string","read":true,"write":true,"def":"","unit":""},"native":{"regType":"holdingRegs","address":-40000,"deviceId":1,"type":"string","len":"7","offset":0,"factor":1,"poll":true}}} modbus.1 2023-04-14 17:45:07.839 error Invalid object: {"type":"state","common":{"name":"","role":"value","type":"string","read":true,"write":true,"def":"","unit":""},"native":{"regType":"holdingRegs","address":-40000,"deviceId":1,"type":"string","len":"7","offset":0,"factor":1,"poll":true}} modbus.1 2023-04-14 17:45:07.839 error Invalid data holdingRegisters/0: {"_address":"1","name":"Serial","description":"","unit":"","type":"string","len":"7","factor":1,"offset":0,"formula":"","role":"value","room":"","poll":true,"wp":"","cw":"","isScale":"","address":-40000,"deviceId":1,"fullId":"modbus.1.0"} modbus.1 2023-04-14 17:45:07.838 error Invalid holdingRegisters address: -40000
-
@rettroo sagte in Einrichten Modbus Adapter / Solar X3 Gen4:
Kann ich eigentlich mit 2 Clients abfragen?
Gute Frage. Der Waveshare ist ja ein Server und sollte das können. - also die Verbndung von Clients bis zum Waveshare. Mit den USRIOT habe ich das auch schon in einer anderen Konfiguration schon gemacht.
Das scheint so weit auch in Deinem Fall zu funktionieren, da die Verbindung zum Waveshare nicht abzureißen scheint. Zumindest sehe ich keine entsprechende Fehlermeldung wie tiemout.
Die Frage ist, wie sich der RS485 und das Modbus Protokoll sowie das Modbus Endgerät verhalten.- Läuft die Loxone Abfrage fehlerfrei weiter während man mit dem ioBroker parallel auf das Endgerät zugreifen will?
- Was passiert wenn man die Loxone Abfrage pausiert und dann nur vom ioBroker aus zugreift?
-
ja Loxone läuft ganz normal weiter. Wenn ich Lox deaktiviere, bekomme ich den ersten Teil des Logs (Zeile 32 bis 19)
wenn ich danach Lox wieder aktiviere bekomme ich für jeden von Lox abgefragten Wert " unknown function code: 0x22, 0x0" im iobroker Log.Nun habe ich von "RTU over TCP" auf "TCP" umgestellt mit folgenden Einstellungen. (ohne Aliase läuft Lox nicht mehr)
Mit diesen Einstellungen habe ich zumindest mal die Seriennummer abfragen können im IOB und Lox läuft weiter!
@McWoolf: Hast du schon die Register für die relevanten Werte eingepflegt? Könntest du diese vielleicht teilen?
-
@rettroo Ich würde mich erst mal so weit vorkämpfen, daß ich jeden Zweig einzeln lauffähig habe. Der Loxone Zweig läuft schon mal solo. Also nächster Schritt Loxone pausieren und ioBroker Modbus aufbauen. Schritt für Schritt, Datenpunkt für Datenpunkt. Weil Modbus sehr empfindlich ist aber keine hilfreiche Fehlermeldungen gibt.
Wenn jeder Zweig solo funktioniert, dann kann man die Kombination testen. Fürchte aber, daß das in diesem Fall eher nicht funktionieren wird.
40000er Adressen sind Alias Adressen, das sieht plausibel aus.Wenn der Parallelbetrieb nicht möglich ist, dann vielleicht eine ioBroker - Loxone Kopplung https://github.com/UncleSamSwiss/ioBroker.loxone ?
-
@klassisch
wie du vermutet hast läuft es nicht parallel... ich bekomme zwischenzeitlich Response Fehler in beiden Systemen.. Unabhängig funktioniert aber jedes System.. Schade, dann werde ich wohl die Daten mit dem Loxone Adapter wieder zurückholen wie du vorgeschlagen hast. -
@rettroo Vielen Dank für die Info. Schade, daß das nicht geht. Über die Loxone - ioBroker Schnittstelle ist wahrscheinlich eh robuster und schnelller.
-
Hi. Bin neu hier und, was Modbus angeht, blutiger Anfänger. @planb1 , du hst geschrieben, dass es mit dem USR-TCP232-304 geklappt hat. Daraufhin habe ich mir den bestellt.
Mittlerweile kann ich mich auf einen Docker mit dem Teil verbinden. Er hängt am X3-Hybrid G4 und im LAN. Als Werte bekomme ich aber immer nur Nullen.Würdest du mir Screenshots der Settings machen? Gerne im sowohl im USR-TCP232-304 als auch im ioBroker ("Allgemein" und die verschiedenen Register).
Da wär ich dir sehr dankbar!
Hoppla... war @McWoolf !
-
Hier die beiden Dateien, die solltest du eigentlich im iobroker "modbus" importieren können.
Holding Register.txt
Eingangs Register.txt -
@mcwoolf Tausend Dank für die Dateien! Ich hab sie reinkopiert und ioBroker hat auch nicht gemeckert. Läuft.
Leider sind immer noch die Werte bei allen Datenpunkten "0"
Kannst du mir noch für "Allgemein" mit der "Geräte ID" weiterhelfen (und sagen, wo die noch eingestellt sein soll)? Und mir im Konverter (USR) mit den richtigen Settings helfen? Oder was dir sonst noch so mit deiner nun reichhaltigen Erfahrung einfällt.
-
@mcwoolf Wie kann ich die beiden Dateien importieren?
LG
Lutz -
@decnet Hat sich erledigt, habs gefunden - der Doppelpfeil war die Lösung
LG
Lutz -
Kurzes Update:
Meine Konfiguration läuft bis heute noch immer stabil, Werte werden immer ausgelesen, besser als mit der 5 min Abfrage von Solax selbst. Mittlerweile steuere ich alles mögliche mit den Daten, sowie meine Brauchwasserwärmepumpe, somit läuft die mit PV-Überschuss und nicht mehr in der Nacht. Mit solchen Steuerungen habe ich meinen Strombezug vom Netz deutlich reduziert. Also für mich hat sich der Ärger mit Modbus rentiert.
-
@mcwoolf eine Frage hätte ich zu den Registern...ich versuche die Adresse "139" zu beschreiben, aber mit dem resultat , dass Modbus kurz aussteigt,.
Allerdings benutzt ich evcc als modbusproxy..
evt ne Ideeschönen Adventssonntag
-
@mcwoolf Moin Wolfi, gibt es auch eine Möglichkeit auf den Solax Geräten über den WiFi Adapter Werte zu setzen?
MfG
André -
@mcwoolf
Ich versuche einen X3-6-TD mittels RS485toUSB Adapter in iobroker (modbus.1) auszulesen, bisher aber ohne Erfolg. Da ich nur das LAN Dongle habe kann ich die iobroker.solax Instanz nur mit Cloud-API Abfrage benutzen, daher der Versuch Modbus auf PIN 4,5 des WR lokal für iobroker abzugreifen.Funktionieren die beschriebenen Register auch im "SERIAL" Betrieb oder nur im Modbus over TCP ?
Oder stimmen meine Allgemein-Einstellungen nicht ?Lese alleine die im HoldingRegister beschriebene Seriennummer aus.
11166 2024-03-23 11:59:01.831 warn Poll error count: 13 code: {"err":"timeout","timeout":5000}
-
@mcwoolf
Hallo McWoolf,
nach einem knappen jahr geht es immer noch nicht. Würdest du mir bitte einen Screenshot deiner Einstellungen schicken? Die Register hat iobroker angenommen, mir fehlen die Settings im Konverter (USR TCP232-304) und in der iobroker-Modbus-Instanz. Ich wär die sehr, sehr dankbar.
Gruß
Solvo