Nicht gründlich genug, danke
Ankündigung
Einklappen
Keine Ankündigung bisher.
LBS: Abfrage von Modbus TCP via Homeserver
Einklappen
X
-
Ich beschäftige mich gerade zum aller ersten mal mit Modbus und immerhin mit dem Baustein erhalte ich zumindest schon mal Werte.
Aber ich habe leider keinen Plan mit den ganzen Datentypen.
Könnte mir jemand sagen, was ich einstellen muss um an diesen Wert (Float32 MSW-LSW) heran zu kommen? (Siehe Anhang)
Hintergrund: Ich möchte einfach nur von einem Shelly Pro EM den aktuellen Stromverbrauch sehen und da es momentan noch keinen Baustein für IOBroker gibt, versuche ich es jetzt über Modbus HS.
Den Wert INT16 17364 erhalte ich über den Modbus Baustein. Benötigt wird der float32 MWS LSW Wert
Vielen Dank!! Modbus1.png
HAT SICH ERLEDIGT. Ich musste die Adresse 32009 abfragen und dementsprechend umwandeln!!Zuletzt geändert von Opelpower; 17.04.2024, 09:27.
Kommentar
-
Victron Cerbo lesen, die Einstellungen sind 1:1 wie in der Victron Doku zu finden zu machen, keine extra Anpassungen nötig!
grafik.pngDieser Beitrag enthält keine Spuren von Sarkasmus... ich bin einfach so?!
Kommentar
-
Hallo!
Ich arbeite daran, meine Keba P30c Wallbox per Homeserver (4.12) zu steuern. Aus diesem Thread entnehme ich, dass dies auch schon andere (erfolgreich?) versucht haben. Die beiden Bausteine, um die es in dem Thread geht, sind wirklich toll! Jeder für sich funktioniert. Beide zusammen in einem Projekt funktionieren jedoch nicht - zumindest bei mir.
Was mache ich falsch?
grafik.png
Special Options hier sind: Sleep500ms, NoKeepAlive
grafik.png
Manchmal schon beim Hochfahren, spätestens wenn ich eine Schreibaktion setze, so wird diese problemlos ausgeführt, aber der Reader Baustein liest nicht mehr und liefert nur noch (diverse) Fehler. Auch die Webseite der Wallbox öffnet sich dann manchmal nicht mehr.
Hat vielleicht jemand von Euch dazu Ideen?
Danke & schöne Grüße,
Thomas
Kommentar
-
Hallo Thomas,
ich habe beide Bausteine mit einer Mennekes Wallbox problemlos im Einsatz, nach mir liegt der Fehler in der "modbus slave id" Einstellung. Diese ist bei dir bei beiden Bausteinen identisch, entsprechend wird es zwischen den Verbindungen Konflikte geben. Versuche mal ein Baustein auf 254 zu setzen. Alles andere sieht nach mir OK aus.
Viel Glück
Kommentar
-
Hallo,
Danke für Deine Rückmeldung. Leider klappt das nicht. Die Wallbox braucht explizit 255 (laut Doku).
grafik.png
Ich habe den writer Baustein testweise auf 254 gesetzt. Am Reader Baustein kommen aber weiterhin Fehlermeldungen.
grafik.png
Kommen sich die Bausteine intern irgendwie in die Quere? Oder lässt sich irgendwie sicherstellen, dass immer nur genau einer mit der Wallbox spricht?
Danke für Eure Ideen,
Thomas
Kommentar
-
Broken Pipe ist, wenn die TCP-Verbindung ohne FIN abgebaut wurde.
Viele Modbus-Implementierungen machen die Verbindung je IP fest. Benutzt man zwei Verbindungen, dann muss man immer neu aufbauen - ein Baustein killt die Andere. Das liegt aber am Gerät und nicht am Baustein. NoKeepAlive ist richtig. Aber da darf kein Leerzeichen drin sein!
Sleep500ms ist zudem recht lange. Muss das? Würde mal versuchen nur nokeepalive zu setzen.
Kommentar
-
Hallo Sven,
ich habe die Modbus_TCP reader (v1.2) und writer (v1.1) in Einsatz. In Summe laufen die Logikmodule 10 mal in meinem Homeserver. Leider muss ich immer wieder feststellen, dass das Eine oder Andere Modul nichts mehr tut. Nach Neustart des Homeservers wechseln sich die Logikmodule ab, die nicht mehr arbeiten wollen. Hast du einen Hinweis, wie ich das lösen könnte? Der Debug-Modus ist an. In hslist erhalte ich folgende Meldungen:
08.10.2024 20:44:53 (1)
File "<Hs_modbusTCP_reader14184>", line 500, in __thread_queue_consumer
File "<Hs_modbusTCP_reader14184>", line 801, in on_input_value
AttributeError: 'NoneType' object has no attribute 'stop'
hs_modbusTCP_reader14184Error values: 1/41/42/15 Raw value 7 of type uint32 0 Raw value 1 of type uint32 0 Conn IP:Port (UnitID) 192.168.2.45:502 (2) Raw value 6 of type uint32 3 Raw value 3 of type uint32 196741 Last exception msg logged Message: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.2.45:502)] Raw value 4 of type uint32 142279805 Raw value 2 of type uint32 0 Raw value 5 of type uint32 1
Die 191.168.2.45 ist der SMA-HomeManager und der ist online.
LG
Sylvio
Kommentar
-
Hallo,
ja, das hatte ich dann auch bemerkt und auch schon aktualisiert. Beide stehen nun auf V1.3 Nun werden die Error-Meldungen jedoch noch verrückter:
hs_modbusTCP_reader14184Raw value 2 of type uint32 0 Output value 5 with address 1010 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Output value 1 with address 1040 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Output value 2 with address 1042 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 1 of type uint32 0 Conn IP:Port (UnitID) 192.168.2.13:502 (255) Output value 7 with address 1006 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 4 of type uint32 0 Raw value 6 of type uint32 0 Raw value 3 of type uint32 0 Output value 1 with address 1100 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Last exception msg logged Message: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.2.45:502)] Output value 6 with address 1012 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Output value 6 with address 1004 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 7 of type uint32 0 Error values: 1/41/42/15 Output value 5 with address 1000 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 5 of type uint32 0 Output value 3 with address 1044 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe
hs_modbusTCP_writer14185Write type uint16 in register 5014 True Conn IP:Port (UnitID) 192.168.2.14:502 (255) Response: WriteRegisterResponse 5014 => 1 Last exception msg logged Message: Modbus Error: [Input/Output] [Errno 32] Broken pipe
Was bedeutet "[Errno 32] Broken pipe"?
LG
Sylvio
Kommentar
-
Ok, danke.
Kannst du bitte mal ein Screenshot deiner Settings zeigen?
Ich denke du musst KeepAlive abschalten und mit etwas Wartezeit arbeiten. Siehe Antwort in https://knx-user-forum.de/forum/öffe...60#post1976460
Kommentar
-
Hallo Sven,
gerne:
image.png
image.png
Sorry, die Bilder überschneiden sich beide. Die folgenden Fehler kommen vom zweiten Reader: hs_modbusTCP_reader14184Die beiden Module starten 10s versetzt und die Verbindungen werden auch getrennt (ReconnectAfterEachRead). Das Selbe mache ich zeitgleich mit meiner zweiten Wallbox (KEBA P30x und c). Zusätzlich wird der Sollte ich die Zeiten noch weiter vergrößern?Raw value 7 of type uint32 0 Output value 1 with address 1040 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 1 of type uint32 156 Conn IP:Port (UnitID) 192.168.2.46:502 (3) Raw value 6 of type uint32 2293 Raw value 3 of type uint32 69 Output value 1 with address 1100 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 4 of type uint32 86 Output value 3 with address 1502 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 2 of type uint32 446 Raw value 5 of type uint32 473 Output value 3 with address 1044 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Angehängte DateienZuletzt geändert von melodoi; 09.10.2024, 16:42.
Kommentar
-
Ich glaube du musst einmal differenzieren. Also das die LBS zu unterschiedlichen Zeiten starten ist unerheblich. Hier haben auch mehrere im Thread bereits SMA-Wechselrichter angebunden. Geht das nicht und muss es der SMA Home Manager sein? Du kannst oben über dem Thread (nicht oben rechts) einfach mal nach "SMA" suchen.
Wenn du ein Gerät abfragst und dafür wegen der Ausgänge mehrere LBS brauchst, dann nimm bitte den A1 vom ersten Baustein und verbinde ihn mit E3 vom nächsten Baustein. Bei dem lässt du dann aber E1 auf 0. Das verketten geht bis der Arzt kommt. Das verhindert, dass mehrere Bausteine gleichzeitig abfragen. Natürlich ist am ersten Baustein eine Zeit zu wählen, dass er es durch alle verketteten Bausteine schafft.
Ich würde hier auch erstmal keine Optionen am E7 setzen, da in der Regel die Modbus-Implementierungen kein Problem haben mit Keep-Alive, wenn es nur einer macht. Dann fragt er alle Eingänge in einem Rutsch ab. Wenn es nicht geht, experimentiere mit Sleep100/500ms.
Siehe https://github.com/SvenBunge/hs_modb...oc/log14184.md
Ich werde das Chaining mal genauer beschreiben.
Vom SMA Home-Ding finde ich keine Modbus-Doku leider, um hier genauer reinzuschauen. Kannst du nicht den WR direkt abfragen?
Zur Wallbox: Die Keka hat mit dem SMA ja nichts zu tun. Die kannst du dann auch einfach abfragen und hier - wenn nötig - chaining verwenden. Glaub die wurde hier im Thread auch schon angebunden.
Achtung: Fragst du parallel noch mit anderen Geräten ab, wie EVCC, dann kann es je nach Modbus-Implementierung dazu kommen, dass die Verbindungen deshalb weg fliegen.
Der Baustein selbst recovered sich meines Wissens selber. Hatte da mal was eingebaut. - Außer er läuft im Debug. Dann will man ja die Fehler haben und er loggt diese und legt sich hin.Zuletzt geändert von SvenB; 09.10.2024, 21:07.
Kommentar
-
Hallo Sven,
das mit dem Chaining war super. Es läuft nun. Den SMA Home-Manager versuche ich nicht mehr auszulesen. Der antwortet eh nicht. Was cool ist, die SMA-Werte, die man sonst nur über ein Tool auf dem Raspberry Pi (ließt den Datenstrom an SMA mit) bekommt, werden auf neuere SMA Wechselrichter (bei mit ein STP10) gespiegelt. Aber dazu antworte ich mal in einem anderen Chat (https://www.photovoltaikforum.com/th...en-via-modbus/).
Ja mit meinen SMA Wechselrichtern und den KEBA Wallboxen hatte ich hier was durcheinander gebracht. Mit EVCC mache ich nix.
Was könnte die Ursache für folgende Fehler sein? Diese kommen alle von den KEBA Wallboxen. Zumindest haben diese nur die 4-Stelligen Adressen. Bei SMA sind sie immer 5-Stellig Bei SMA läuft nun scheinbar alles sauber.
hs_modbusTCP_reader14184 hs_modbusTCP_writer14185Raw value 8 of type uint32 2 Output value 5 with address 1010 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Output value 2 with address 1042 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Conn IP:Port (UnitID) 192.168.2.47:502 (3) Output value 7 with address 1006 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 4 of type uint32 0 Raw value 6 of type uint32 2293 Raw value 3 of type uint32 5254 Output value 4 with address 1008 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Output value 6 with address 1012 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Raw value 7 of type uint32 0 Raw value 2 of type uint32 75 Raw value 1 of type uint32 310 Raw value 5 of type uint32 1621 Output value 3 with address 1044 of type uint32 Modbus Error: [Input/Output] [Errno 32] Broken pipe Write type uint16 in register 5014 True Conn IP:Port (UnitID) 192.168.2.13:502 (255) Response: WriteRegisterResponse 5014 => 1 Last exception msg logged Message: Modbus Error: [Input/Output] [Errno 32] Broken pipe
LG
Sylvio
Kommentar
Kommentar