NEWS
[gelöst] Aufsetzen Modbus Adapter
-
Hallo zusammen,
nachdem ich nun meine ersten Devices über JS angebunden habe, will ich nun meine Heliotherm WP mit Modbus anbinden.
Das Modbus Protokoll verstehe ich wie folgt:
ich definier eine Instanz "modbus master" und setze diesen auf die IObroker Hardware und die Heizung als Modbus slave.
Bei dieser Konfig startet der slave nicht. Ich habe mit telnet IP 502 geprüft, ob die WP auf dem Port lauscht, sie tut es2020-02-03 17:00:58.246 - ESC[32minfoESC[39m: modbus.1 (15552) Terminated (NO_ERROR): Without reason 2020-02-03 17:00:58.758 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: { Error: listen EADDRNOTAVAIL: address not available 192.168.178.41:502 2020-02-03 17:00:58.759 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: at Server.setupListenHandle [as _listen2] (net.js:1263:19) 2020-02-03 17:00:58.759 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: at listenInCluster (net.js:1328:12) 2020-02-03 17:00:58.759 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: at doListen (net.js:1461:7) 2020-02-03 17:00:58.759 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: at process._tickCallback (internal/process/next_tick.js:63:19) 2020-02-03 17:00:58.759 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: code: 'EADDRNOTAVAIL', 2020-02-03 17:00:58.760 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: errno: 'EADDRNOTAVAIL', 2020-02-03 17:00:58.760 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: syscall: 'listen', 2020-02-03 17:00:58.760 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: address: '192.168.178.41', 2020-02-03 17:00:58.760 - ESC[31merrorESC[39m: host.raspberrypi Caught by controller[0]: port: 502 } 2020-02-03 17:00:58.760 - ESC[32minfoESC[39m: host.raspberrypi instance system.adapter.modbus.1 terminated with code 0 (NO_ERROR) </>
Stoppe ich den lokalen Modbus Master und erkläre die Heizung zu Master startet die Instanz.
Ich gehe aber davon aus, dass der Master nicht die Heizung sein soll. Der Hersteller verweist auch auf den Einsatz als Slave.
Hat jemand Vorschläge zum generellen modbus setup?
und wenn ich dann mal weiter bin, wie übersetze ich die Herstellertabelle in Iobroker Syntax? Ich vermute mal , es muss in die Eingangsregister, da lesend:
Danke,
Kay -
Du musst tatsächlich erst einmal mindestens ein Register konfigurieren, ansonsten bleibt der Adapter gelb.
Bei meinem Wechselrichter sind die Adressen um einen versetzt gegenüber der Dokumentation, probier doch einfach aus.
Eingangsregister mal auf 10 setzten und gucken ob die Temp angezeigt wird.
-
Hi Matze,
genau das hab ich auch gemacht, Eingangsregister auf 10. Es wurde aber nichts ausgelesen. Ich denke , mit dem generellen Setup stimmt etwas nicht.
Die WP läuft jetzt als Master und hat zwingend einen Parameter und Diskr.Eingänge benötigt. Was stellt man in diesem Tab normalerweise ein?
Grüße;
Kay -
@kaybau sagte in Aufsetzen Modbus Adapter:
Heliotherm WP
Moin,
mir ist noch nicht so ganz klar was Du da eingestellt hast. Und was Du mit Parameter meinst.
Mach mal nen Screenshot vom Tab Allgemein.
Gruß
Matze -
Hi Matze,
als slave startet die Instanz gar nicht .
Als Master - verbunden mit host=wahr, Lebenszeichen = wahr, verbunden mit Modbus=falsch). als slave alle 3 Stati =falschSo sieht der Allgemein-Tab aus. Die Wärmepumpe antwortet auf Port 502 via Telnet.
VG,
Kay -
Master ist ja auch richtig.
Mach mal den Haken bei Aliases raus und dann bastel mal ein paar der Register aus Deiner Anleitung im Reiter Eingangsregister dazu.
Das sollte dann eigentlich klappen.
Guckst Du auch Git ->
Use aliases as address
Normally all registers can have address from 0 to 65535. By using of aliases you can define virtual address fields for every type of registers. Normally:discrete inputs are from 10001 to 20000
coils are from 1 to 1000
input registers are from 30001 to 40000
holding registers are from 40001 to 60000
Every alias will be mapped internally to address, e.g. 30011 will be mapped to input register 10. and so on.Matze
-
Hi ,
Danke.
kurz zur Lösung:- Heizung als Master aufsetzen
- Aliase daktivieren
- kein Eintrag in DiskrEingäng
- Definition der Werte als INT16(BigEndian)