NEWS
Sensostar Modbus auslesen
-
@homoran sagte in Sensostar Modbus auslesen:
@homoran sagte in Sensostar Modbus auslesen:
@stephan-a was sagt das debug-log beim Starten der Instanz?
hab ich bisher nicht gesehen!
modbus.5 2025-08-15 16:28:16.271 info Connected to slave 192.168.10.172 modbus.5 2025-08-15 16:28:15.753 info starting. Version 6.3.2 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.19.4, js-controller: 7.0.6 modbus.5 2025-08-15 16:28:08.792 info terminating modbus.5 2025-08-15 16:28:08.515 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason modbus.5 2025-08-15 16:28:08.511 info terminating modbus.5 2025-08-15 16:28:08.286 info Got terminate signal TERMINATE_YOURSELF
MOD-EDIT: Code in code-tags gesetzt!
@homoran sagte in Sensostar Modbus auslesen:
du hast ja auch kein Polling aktiviert!
Ok. Was und Wo?
-
@stephan-a
Das ist kein debug-log!siehe https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1
@stephan-a sagte in Sensostar Modbus auslesen:
Was und Wo?
erübrigt sich wahrscheinlich, wenn
@homoran sagte in Sensostar Modbus auslesen:
fang doch erstmal mit einem
@konni sagte in Sensostar Modbus auslesen:Grundsätzlich kann ich mit dem Modbuscanner 35 Register auf einmal auslesen, aber nur von 30001 bis 30031
an.
Ich glaube sowieso nicht, dass es bei einem Zähler viel zu steuern gibt. -
@stephan-a sagte in Sensostar Modbus auslesen:
Mit EVEN bricht die TCP Verbindung ab
ääähh???
wo hast du das verändert?
even gehört zu den seriellen Parametern.
Das hat nichts mit TCP zu tun!Was stand denn in diesem Fall im debug-log?
das könnte uns möglicherweise weiterhelfen -
@homoran
Mit even hat die Instanz beim ersten Start ca. 4 mal so lange benötigt um auf grün zu gehen.Ich habe die ursprünglichen 9600 bps, 8N1 Datenformat (8 Datenbits, Non-Parity, 1 Stoppbit wieder eingestellt.
Polling ist jetzt aktiviert.Hier der Log vom Neustart der Instanz - erst auf grün dann auf:
modbus.5 2025-08-15 21:50:28.045 info Disconnected from slave 192.168.10.172 modbus.5 2025-08-15 21:50:28.044 debug Closing client on purpose. modbus.5 2025-08-15 21:50:27.050 debug Cleaning up request fifo. modbus.5 2025-08-15 21:50:27.049 debug Clearing timeout of the current request. modbus.5 2025-08-15 21:50:27.048 debug Socket closed with error modbus.5 2025-08-15 21:50:27.046 warn [DevID_1] Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.5 2025-08-15 21:50:27.044 error Client in error state. modbus.5 2025-08-15 21:50:27.043 error Request timed out. modbus.5 2025-08-15 21:50:27.043 warn Error: undefined modbus.5 2025-08-15 21:50:22.035 debug [DevID_1/holdingRegs] Poll address 40001 - 2 registers modbus.5 2025-08-15 21:50:22.034 debug Initialization of scale factors done! modbus.5 2025-08-15 21:50:22.031 debug [DevID_1] Poll start --------------------- modbus.5 2025-08-15 21:50:22.029 info Connected to slave 192.168.10.172 modbus.5 2025-08-15 21:50:21.745 debug Add holdingRegisters.40001_Energie: {"_id":"holdingRegisters.40001_Energie","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":true,"def":0,"unit":""},"native":{"regType":"holdingRegs","address":40001,"deviceId":1,"type":"int32be","len":2,"offset":0,"factor":1,"poll":true}} modbus.5 2025-08-15 21:50:21.744 debug Initialize Objects for holdingRegs: [{"_address":"40001","name":"Energie","description":"","unit":"","type":"int32be","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","poll":true,"wp":"","cw":"","isScale":"","address":40001,"deviceId":1,"id":"holdingRegisters.40001_Energie"}] modbus.5 2025-08-15 21:50:21.743 debug Initialize Objects for inputRegs: [] modbus.5 2025-08-15 21:50:21.741 debug Initialize Objects for coils: [] modbus.5 2025-08-15 21:50:21.740 debug Initialize Objects for disInputs: [] modbus.5 2025-08-15 21:50:21.504 info starting. Version 6.3.2 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.19.4, js-controller: 7.0.6 modbus.5 2025-08-15 21:50:21.118 debug Plugin sentry Initialize Plugin (enabled=true) modbus.5 2025-08-15 21:50:14.761 info terminating modbus.5 2025-08-15 21:50:14.386 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason modbus.5 2025-08-15 21:50:14.385 debug Plugin sentry destroyed modbus.5 2025-08-15 21:50:14.383 info terminating modbus.5 2025-08-15 21:50:14.255 debug Closing client on purpose. modbus.5 2025-08-15 21:50:14.247 info Got terminate signal TERMINATE_YOURSELF
Hier noch das Register laut Engelmann:
Die Anzahl der abzufragenden Register ist:
-
@stephan-a sagte in Sensostar Modbus auslesen:
warn Error: undefined
irgendwo klemmt es mit der Kommunikation des Endgeräts
an das Register kommt der ioBroker nicht ran@stephan-a sagte in Sensostar Modbus auslesen:
Hier noch das Register laut Engelmann:
und warum machst du nicht was ich schreibe??
zum dritten Mal:
@homoran sagte in Sensostar Modbus auslesen:
fang doch erstmal mit einem
@konni sagte in Sensostar Modbus auslesen:Grundsätzlich kann ich mit dem Modbuscanner 35 Register auf einmal auslesen, aber nur von 30001 bis 30031
an.
Ich glaube sowieso nicht, dass es bei einem Zähler viel zu steuern gibt. -
Ich habe das Holding Register 40001 gelöscht und das Input Register 30001 eingetragen.
Hier der Log mit Register 30001.modbus.5 2025-08-16 06:39:30.072 info Disconnected from slave 192.168.10.172 modbus.5 2025-08-16 06:39:30.071 debug Closing client on purpose. modbus.5 2025-08-16 06:39:29.076 debug Cleaning up request fifo. modbus.5 2025-08-16 06:39:29.075 debug Clearing timeout of the current request. modbus.5 2025-08-16 06:39:29.074 debug Socket closed with error modbus.5 2025-08-16 06:39:29.073 warn [DevID_1] Poll error count: 2 code: {"err":"timeout","timeout":5000} modbus.5 2025-08-16 06:39:29.072 error Client in error state. modbus.5 2025-08-16 06:39:29.071 error Request timed out. modbus.5 2025-08-16 06:39:29.071 warn Error: undefined modbus.5 2025-08-16 06:39:24.069 debug [DevID_1/inputRegs] Poll address 30001 - 2 registers modbus.5 2025-08-16 06:39:24.068 debug [DevID_1] Poll start --------------------- modbus.5 2025-08-16 06:39:24.067 info Connected to slave 192.168.10.172 modbus.5 2025-08-16 06:38:24.061 info Disconnected from slave 192.168.10.172 modbus.5 2025-08-16 06:38:24.060 debug Closing client on purpose. modbus.5 2025-08-16 06:38:23.068 debug Cleaning up request fifo. modbus.5 2025-08-16 06:38:23.067 debug Clearing timeout of the current request. modbus.5 2025-08-16 06:38:23.066 debug Socket closed with error modbus.5 2025-08-16 06:38:23.061 warn [DevID_1] Poll error count: 1 code: {"err":"timeout","timeout":5000} modbus.5 2025-08-16 06:38:23.059 error Client in error state. modbus.5 2025-08-16 06:38:23.059 error Request timed out. modbus.5 2025-08-16 06:38:23.058 warn Error: undefined modbus.5 2025-08-16 06:38:18.052 debug [DevID_1/inputRegs] Poll address 30001 - 2 registers modbus.5 2025-08-16 06:38:18.051 debug Initialization of scale factors done! modbus.5 2025-08-16 06:38:18.047 debug [DevID_1] Poll start --------------------- modbus.5 2025-08-16 06:38:18.045 info Connected to slave 192.168.10.172 modbus.5 2025-08-16 06:38:16.111 debug Remove old object modbus.5.holdingRegisters.40001_Energie modbus.5 2025-08-16 06:38:16.055 debug Initialize Objects for holdingRegs: [] modbus.5 2025-08-16 06:38:16.054 debug Add inputRegisters.30001_Energie: {"_id":"inputRegisters.30001_Energie","type":"state","common":{"name":"","role":"level","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":30001,"deviceId":1,"type":"int32be","len":2,"offset":0,"factor":1}} modbus.5 2025-08-16 06:38:16.052 debug Initialize Objects for inputRegs: [{"_address":"30001","name":"Energie","description":"","unit":"","type":"int32be","len":2,"factor":1,"offset":0,"formula":"","role":"level","room":"","cw":"","isScale":"","address":30001,"deviceId":1,"id":"inputRegisters.30001_Energie"}] modbus.5 2025-08-16 06:38:16.050 debug Initialize Objects for coils: [] modbus.5 2025-08-16 06:38:16.049 debug Initialize Objects for disInputs: [] modbus.5 2025-08-16 06:38:14.892 info starting. Version 6.3.2 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.19.4, js-controller: 7.0.6 modbus.5 2025-08-16 06:38:11.713 debug Plugin sentry Initialize Plugin (enabled=true) modbus.5 2025-08-16 06:37:54.455 info terminating modbus.5 2025-08-16 06:37:54.234 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason modbus.5 2025-08-16 06:37:54.233 debug Plugin sentry destroyed modbus.5 2025-08-16 06:37:54.232 info terminating modbus.5 2025-08-16 06:37:53.947 debug Closing client on purpose. modbus.5 2025-08-16 06:37:53.942 info Got terminate signal TERMINATE_YOURSELF
@homoran sagte in Sensostar Modbus auslesen:
@homoran sagte in Sensostar Modbus auslesen:
Ich glaube sowieso nicht, dass es bei einem Zähler viel zu steuern gibt.
Steuern will ich den Zähler auch nicht, sondern nur auslesen.
-
@stephan-a sagte in Sensostar Modbus auslesen:
@peterfido sagte in Sensostar Modbus auslesen:
@stephan-a Die Modbux RTU Verbindungen, die ich so nutze, haben als Parität EVEN.
Mit EVEN bricht die TCP Verbindung ab. Habe es wieder zurück gestellt. Danke
Was ist denn das für eine Destination IP?
-
Beide IP's kamen automatisch. Hier habe ich nichts selbst eingetragen.
-
@peterfido sagte in Sensostar Modbus auslesen:
Was ist denn das für eine Destination IP?
das könnte die IP sein unter der der Waveshare erreichbar ist.EDIT: blödsinn, das ist dev ID
@Stephan-a
Dein Problem liegt sehr wahrscheinlich in der seriellen Strecke!
nicht im ioBroker <->Waveshare per EthernetWas ist da nicht established?
und vorauf beziehen sich die RX und TX mit 0
da klemmt die Kommunikationwelche IPs kamen automatisch??
und wer ist ...1.3?die 180.154.125.252 gehört zu china telecom
-
@peterfido wenn ich das hier
https://www.waveshare.com/wiki/RS485_TO_ETH_(B)
richtig interpretiere werden dest id und dest port nur benötigt, wenn der RTU2ETH der Master und ioBroker der Slave wäre
-
In der Anleitung steht unter Anderm:
• externes Netzteil zwischen 12-24V muss immer anschlossen sein (Achtung, die Änderung der Auslesezeit von 600 Sekunden auf 120 Sekunden muss trotzdem per Befehl an das Gerät gemeldet werden)
Was wird da von zehn auf zwei Minuten parametriert? Wie oft das Modbus die Daten vom Zähler holt / aktualisiert?
Die Standard-Slave ID ist laut Anleitung 1. Welche ID hat der Modbus Adapter?
-
Der Engelmann Zähler läuft im Auslieferzustand mit Batterie. Die Auslesezeit vom Zähler ist 600 Sekunden.
Es kann alternativ ein externens Netzgerät angeschlossen werden. Dann kann die Auslesezeit auf 120 Sekunden geändert werden.Die Save ID ist 1:
-
Somit bringen kürzere Intervalle als 120 Sekunden keinen Vorteil. Das muss aber erstmal von 600 Sekunden umparametriert werden. Wenn die Kommunikation hakt, wird der noch auf 10 Minuten stehen.
Master und Slave dürfen nicht die selbe ID haben.
-
@peterfido
Da ich kein Netzteil angeschlossen habe, steht das Sendeintervall der Zählerdaten bei Werkseinstellung 600 s. Ich habe es so verstanden, das die Zählerdaten sich alle 600 s aktuallisieren. Aber das Abfragen des Zählers sollte doch immer möglich sein. Wann erkennt die Modbusinstanz, wann die 600s erreicht sind?@peterfido sagte in Sensostar Modbus auslesen:
Master und Slave dürfen nicht die selbe ID haben.
Wir reden doch hier von der Modbusadresse? Die ist im Zähler 1 und diese 1 muss ich doch als Geräteadresse in der Instanz einstellen.
-
@homoran sagte in Sensostar Modbus auslesen:
Dein Problem liegt sehr wahrscheinlich in der seriellen Strecke!
nicht im ioBroker <->Waveshare per EthernetJa, ich tippe auch auf die serielle Strecke.
Was ist da nicht established?
Das ist die TCP-Verbindung die der Waveshare ausweist.
Wenn in der Modbusinstanz alles auf Grün steht, dann wechselt die Verbindung von nicht established auf established. So wie es beim Kanal1 richtig funktioniert.
und vorauf beziehen sich die RX und TX mit 0
da klemmt die KommunikationIch kann nur vermuten, das dies die Datenpakete der seriellen Engelmann Schnittstelle sind. Und wenn 0 nicht 0 wäre, dann würde es laufen?
-
So stellt es sich für mich dar:
Verbindung:
iobroker auf pi über TCP <--> Waveshare Kanal 2: funktioniert
Waveshare <--> modbus RTU (RS485) B(+)/A(-): keine Verbindung -
Leider habe ich keinen Engelmann Wärmemengenzähler. Aber etliche Geräte über USRIOT Wandler.
Was mit in diesem Thread aufgefallen ist:- Es ist kein Waveshare, sondern ein USRIOT Adapter
- Es läuft parallel eine vircomm. Warum? Ich betreibe meine USRIOT direkt vom Modbus-Adapter aus. Dann kommt auch keine IP automatisch, sondern man trägt die ein. Man schaut im Router, wo der USRIOT ist und dann kann man ihn ansurfen zur Einstellung und kann dann auch dessen IP in den Adapter eintragen unter -> Allgemeines -> Verbindungsparameter. So zumindest unter Windows
- Die Modbus-RTU Konversion darf immer nur auf einer Seite aktiviert sein. Entweder USRIOT oder Modbus Adapter. Manchmal geht es auch nur auf einer bestimmten Seite. Muß man ausprobieren
- Ich teste immer erst einen einzigen Wert.
- Bei schwierigen Kandidaten nehme ich zur Einrichtung erst mal so ein USB-Teil (RS458 <-> USB), was unter Win kein Problem ist. Dann hat man den USRIOT als Fehlerqueller erst mal weg. Wenn es dann funktioniert, wird der USRIOT nachgerüstet. Modbus ist uralt, sehr stabil, wenn es denn mal läuft. Krankt aber leider an mangelnden Fehlermeldungen. Deshalb Schrittchen für Schrittchen
-
@stephan-a sagte in Sensostar Modbus auslesen:
Und wenn 0 nicht 0 wäre, dann würde es laufen?
0 - 0 zeigt, dass keine Daten/Pakete gesendet und empfangen wurden.
also andersrum: wenn es laufen würde, dann stünden da keine 0jetzt ist schonmal irgendwas anders, denn TX (gesendet) ist jetzt > 0
-
@klassisch sagte in Sensostar Modbus auslesen:
Es ist kein Waveshare, sondern ein USRIOT Adapter
Also ich habe den hier verbaut:
Waveshare 2-Ch RS485 To RJ45 Ethernet Serial Server
https://exp-tech.de/products/waveshare-2-ch-rs485-to-rj45-ethernet-serial-server@klassisch sagte in Sensostar Modbus auslesen:
Es läuft parallel eine vircomm. Warum?
Die vircomm läuft im Moment nur zur Testen und Abfragen der verschiedenen Einstellungen.
@klassisch sagte in Sensostar Modbus auslesen:
Bei schwierigen Kandidaten nehme ich zur Einrichtung erst mal so ein USB-Teil (RS458 <-> USB),
Das ist auch mein nächter Ansatzpunkt.
.@homoran sagte in Sensostar Modbus auslesen:
jetzt ist schonmal irgendwas anders, denn TX (gesendet) ist jetzt > 0
Die modbus Instanz beim Iobrocker versucht in reglamäßigen Abständen die Verbindung zum Engelmannzähler aufzubauen und geht dann nach wieder auf:
-
@stephan-a sagte in Sensostar Modbus auslesen:
Das ist auch mein nächter Ansatzpunkt.
ich sehe leider gerade erst:
@stephan-a sagte in Sensostar Modbus auslesen:
Was ich nicht abfragen kann, ist die Modbusadresse vom Modul
ohne die brauchst du gar nicht weiter zu machen