Hat keiner mehr Ideen für mich?
Oder Tipps über Produkte die ich in ioBroker einbinden kann mit mindestens 16 Eingängen und 16 Ausgängen.
Danke euch.
Hat keiner mehr Ideen für mich?
Oder Tipps über Produkte die ich in ioBroker einbinden kann mit mindestens 16 Eingängen und 16 Ausgängen.
Danke euch.
@wendy2702
Das habe ich natürlich auch alles getestet. Es ändert sich nur die Warnmeldung. Handler 2 anstatt 4.
modbus.3
2024-05-05 11:51:38.951 warn Error in handler for 2: RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
Und als Diskrete Eingänge kann man ja keinen Typ mehr vorwählen.
Aber du hast Recht, komisch ist das mit den Bits und dem Dokument UINT 16. Aber Bits kann ich ja nicht im Adapter wählen.
Wenn ich alles auf UINT 8 umstelle, müsste ja 4 raus kommen.
Tut es auch in meinem Tool, nur der Adapter schluckt es leider auch nicht.
Hallo zusammen,
habe mir einen CWT-BK-2222 gekauft, um mein SmartHome zu erweitern. Die Idee war diesen über Modbus zu integrieren, was aktuell leider nicht funktioniert. Evtl. hat jemand von euch eine Idee warum es nicht klappt. Danke für Rückmeldung.
Hier jetzt die Gegebenheiten:
Gerät ist über das Configtool erreichbar und steuerbar. Dort habe ich auch die IP angepasst.
Ich habe aktuell mal Eingang DI2 beschaltet, damit man die Funktion sieht.
Zudem habe ich eine Software, die auch Kommunizieren kann.
Der Modbus-Adapter ist genauso konfiguriert.
Leider erscheinen im Log immer diese Warnungen und der Adapter steigt mit Error aus.
modbus.3
2024-05-05 10:04:49.373 info Disconnected from slave 192.168.2.3
modbus.3
2024-05-05 10:04:49.373 debug Closing client on purpose.
modbus.3
2024-05-05 10:04:48.374 debug Cleaning up request fifo.
modbus.3
2024-05-05 10:04:48.374 debug Clearing timeout of the current request.
modbus.3
2024-05-05 10:04:48.374 debug Socket closed with error
modbus.3
2024-05-05 10:04:48.373 warn Poll error count: 3 code: {"err":"timeout","timeout":5000}
modbus.3
2024-05-05 10:04:48.372 error Client in error state.
modbus.3
2024-05-05 10:04:48.372 error Request timed out.
modbus.3
2024-05-05 10:04:48.371 warn Error: undefined
modbus.3
2024-05-05 10:04:43.370 debug [DevID_1/inputRegs] Poll address 10001 - 8 registers
modbus.3
2024-05-05 10:04:43.369 debug [DevID_1] Poll start ---------------------
modbus.3
2024-05-05 10:04:38.316 warn Poll error count: 2 code: "App Timeout"
modbus.3
2024-05-05 10:04:33.118 warn Error in handler for 4: RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
modbus.3
2024-05-05 10:04:33.115 debug [DevID_1/inputRegs] Poll address 10001 - 8 registers
modbus.3
2024-05-05 10:04:33.114 debug [DevID_1] Poll start ---------------------
modbus.3
2024-05-05 10:04:28.062 warn Poll error count: 1 code: "App Timeout"
modbus.3
2024-05-05 10:04:22.870 warn Error in handler for 4: RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
modbus.3
2024-05-05 10:04:22.869 warn Error in handler for 4: RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
modbus.3
2024-05-05 10:04:22.869 warn Error in handler for 4: RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
modbus.3
2024-05-05 10:04:22.862 debug [DevID_1/inputRegs] Poll address 10001 - 8 registers
modbus.3
2024-05-05 10:04:22.862 debug Initialization of scale factors done!
modbus.3
2024-05-05 10:04:22.861 debug [DevID_1] Poll start ---------------------
modbus.3
2024-05-05 10:04:22.860 info Connected to slave 192.168.2.3
modbus.3
2024-05-05 10:04:22.653 debug Initialize Objects for holdingRegs: []
modbus.3
2024-05-05 10:04:22.653 debug Add inputRegisters.10008_DI_7: {"_id":"inputRegisters.10008_DI_7","type":"state","common":{"name":"DI 7","role":"state","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10008,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}}
modbus.3
2024-05-05 10:04:22.653 debug Add inputRegisters.10007_DI_6: {"_id":"inputRegisters.10007_DI_6","type":"state","common":{"name":"DI 6","role":"state","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10007,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}}
modbus.3
2024-05-05 10:04:22.653 debug Add inputRegisters.10006_DI_5: {"_id":"inputRegisters.10006_DI_5","type":"state","common":{"name":"DI 5","role":"state","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10006,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}}
modbus.3
2024-05-05 10:04:22.653 debug Add inputRegisters.10005_DI_4: {"_id":"inputRegisters.10005_DI_4","type":"state","common":{"name":"\tDI 4","role":"state","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10005,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}}
modbus.3
2024-05-05 10:04:22.652 debug Add inputRegisters.10004_DI_3: {"_id":"inputRegisters.10004_DI_3","type":"state","common":{"name":"DI 3","role":"state","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10004,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}}
modbus.3
2024-05-05 10:04:22.652 debug Add inputRegisters.10003_DI_2: {"_id":"inputRegisters.10003_DI_2","type":"state","common":{"name":"\tDI 2","role":"state","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10003,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}}
modbus.3
2024-05-05 10:04:22.652 debug Add inputRegisters.10002_DI_1: {"_id":"inputRegisters.10002_DI_1","type":"state","common":{"name":"DI 1","role":"state","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10002,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}}
modbus.3
2024-05-05 10:04:22.652 debug Add inputRegisters.10001_DI_0: {"_id":"inputRegisters.10001_DI_0","type":"state","common":{"name":"DI 0","role":"state","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":10001,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":1}}
modbus.3
2024-05-05 10:04:22.651 debug Initialize Objects for inputRegs: [{"_address":10001,"name":"DI 0","description":"DI 0","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"","cw":"","isScale":"","address":10001,"deviceId":1,"id":"inputRegisters.10001_DI_0"},{"_address":10002,"name":"DI 1","description":"DI 1","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"","cw":"","isScale":"","address":10002,"deviceId":1,"id":"inputRegisters.10002_DI_1"},{"_address":10003,"name":"DI 2","description":"\tDI 2","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"","cw":"","isScale":"","address":10003,"deviceId":1,"id":"inputRegisters.10003_DI_2"},{"_address":10004,"name":"DI 3","description":"DI 3","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"","cw":"","isScale":"","address":10004,"deviceId":1,"id":"inputRegisters.10004_DI_3"},{"_address":10005,"name":"DI 4","description":"\tDI 4","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"","cw":"","isScale":"","address":10005,"deviceId":1,"id":"inputRegisters.10005_DI_4"},{"_address":10006,"name":"DI 5","description":"DI 5","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"","cw":"","isScale":"","address":10006,"deviceId":1,"id":"inputRegisters.10006_DI_5"},{"_address":10007,"name":"DI 6","description":"DI 6","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"","cw":"","isScale":"","address":10007,"deviceId":1,"id":"inputRegisters.10007_DI_6"},{"_address":10008,"name":"DI 7","description":"DI 7","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":"","cw":"","isScale":"","address":10008,"deviceId":1,"id":"inputRegisters.10008_DI_7"}]
modbus.3
2024-05-05 10:04:22.651 debug Initialize Objects for coils: []
modbus.3
2024-05-05 10:04:22.651 debug Initialize Objects for disInputs: []
modbus.3
2024-05-05 10:04:22.565 info starting. Version 6.1.0 in /opt/iobroker/node_modules/iobroker.modbus, node: v18.17.1, js-controller: 5.0.19
modbus.3
2024-05-05 10:04:22.503 info Plugin sentry Sentry Plugin disabled for this process because sending of statistic data is disabled for the system
modbus.3
2024-05-05 10:04:22.500 debug Plugin sentry Initialize Plugin (enabled=true)
host.ioBroker-VM
2024-05-05 10:04:21.750 info instance system.adapter.modbus.3 started with pid 20425
host.ioBroker-VM
2024-05-05 10:04:21.657 info "system.adapter.modbus.3" enabled
Aktuell nutze ich nur diese Eingangsregister.
Welche auch den Vorgaben entsprechen und mit den anderen beiden Methoden funktionieren.
@android51
Noch als Hinweis: Je nach Heizung kannst du in den Einstellungen/Warmwasser/Grundeinstellung eine Zeitsperre NE einstellen. Damit kann man das Zuschalten der Heizstäbe verzögern. Aber viel mehr als 50°C geht nicht ohne Heizstäbe.
Ich habe alles mit JavaScript geschrieben. Denke es bringt dann auch nicht direkt was, wenn ich da Schnipsel reinstelle. Es muss ja immer alles angepasst werden an die Gegebenheiten der jeweiligen Hardware. Hoffe das reicht als Info. Die Modbus Parameter kann man ja dann selbst zu den Ereignissen modifizieren.
@frana120500 sagte in Stiebel-ISG - Modbus:
@jb_mystery Alles gelesen... kein Wort verstanden
Ich habe ja auch darauf reagiert.
@jojo182
Die Warmwassertemperatur von 30°C habe ich ja am Sensor, der in der mitte des Speichers sitzt. Oben ist ja noch wärmer.
@frana120500
Habe oben nochmals besser erklärt, evtl. ist es ja jetzt zu verstehen.
@jojo182
Ich dachte ich schreibe auch mal meine Regelung.
Evtl. gibt das dem ein oder anderen ja Anregungen es für sich modifiziert anzuwenden. Viel Spaß damit.
Habe Heiz-und Warmwasserbetrieb optimiert auf Eigenverbrauch. Meine Werte sind nicht für alle was, da ich ein hochgedämmtes Haus habe und nur alleine lebe. Als Heizungstyp habe ich eine LWZ304Sol, wobei ich die Solarunterstützung nicht habe. Wollte den ganzen Platz lieber für die PV verwenden.
Regelwerte:
Bei Sonnenstart (Heizung freigeben):
5 min vor Sonnenpeak (Prüfe auf Heizbedarf, dass Verdichter an bleibt nach WW):
Sonnenpeak (Prüfe auf Warmwasserbedarf):
17:00 Uhr (Warmwasser AUS):
Außentemperatur > -3°C
Außentemperatur <= -3°C
Hintergründe:
@unltdnetworx
Ich denke wir verstehen es gleich. Wir machen ja beide quasi das Selbe. Jetzt schauen wir mal, ob es @frana120500 hilft.
Deine Anleitung kannte ich so noch nicht, aber sieht super aus.
@jb_mystery sagte in Stiebel-ISG - Modbus:
Hallo,
auch ich habe letzte Woche mein ISGplus updaten lassen, damit es Modbus fähig ist. Ich betreibe es an einer LWZ304 bei der die nachfolgenden Werte funktionieren:
- 32001 Betriebsstatus
- 32002 Fehlerstatus
- 32003 BUS-Status
- 33001 WM-Heizen-Tag
- 33002 WM-Heizen-Summe
- 33003 WM-Heizen-Summe
- 33004 WM-WW-Tag
- 33005 WM-WW-Summe
- 33006 WM-WW-Summe
- 33007 WM-NE-Heizen-Summe
- 33008 WM-NE-Heizen-Summe
- 33009 WM-NE-WW-Summe
- 33010 WM-NE-WW-Summe
- 33011 WM-WRG-Tag
- 33012 WM-WRG-Summe
- 33013 WM-WRG-Summe
- 33022 P-Heizung-Tag
- 33023 P-Heizung-Summe
- 33024 P-Heizung-Summe
- 33025 P-WW-Tag
- 33026 P-WW-Summe
- 33027 P-WW-Summe
- 33028 Verdichter-Heizen
- 33029 Verdichter-Kuehlen
- 33030 Verdichter-WW
- 33031 Elektr-NE-Heizen
- 33032 Elektr-NE-WW
Um den Betriebsstatus zuzuordnen, benutze ich das nachfolgende Script, welches pro Änderung gestartet wird.
myDez = getState('modbus.2.inputRegisters.32001_Betriebsstatus').val; myBin = myDez.toString(2).padStart(16, "0"); if (myBin.charAt(1)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Aufheizprogtamm_Aktiv", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Aufheizprogtamm_Aktiv", false); if (myBin.charAt(2)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Filterwechsel_Zuluft", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Filterwechsel_Zuluft", false); if (myBin.charAt(3)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Filterwechsel_Abluft", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Filterwechsel_Abluft", false); if (myBin.charAt(4)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Abtauen_Verdampfer", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Abtauen_Verdampfer", false); if (myBin.charAt(5)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Heizkreispumpe", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Heizkreispumpe", false); if (myBin.charAt(6)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Lueftung", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Lueftung", false); if (myBin.charAt(7)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Filterwechsel_Beide", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Filterwechsel_Beide", false); if (myBin.charAt(8)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.EVU_Sperre", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.EVU_Sperre", false); if (myBin.charAt(9)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Service", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Service", false); if (myBin.charAt(10)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Elektrische_Nacherwaermung", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Elektrische_Nacherwaermung", false); if (myBin.charAt(11)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Warmwasserbereitung", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Warmwasserbereitung", false); if (myBin.charAt(12)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Kuehlen", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Kuehlen", false); if (myBin.charAt(13)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Heizen", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Heizen", false); if (myBin.charAt(14)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Verdichter", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Verdichter", false); if (myBin.charAt(15)=="1") setState("stiebel-isg.0.Info.ANLAGE.STATUS.Schaltprogramm_Aktiv", true); else setState("stiebel-isg.0.Info.ANLAGE.STATUS.Schaltprogramm_Aktiv", false);
Geht eines der oben geschriebenen Register bei deiner Anlage? Bei mir triggere ich auf die Bits aus dem Betriebstatus.