NEWS
[Problem] Helios KWL - Zugriff auf Modbus
-
Hallo zusammen,
ich bin seit ca 2 Wochen mit iobroker unterwegs und genieße noch meine Experimentierphase.
Mit vielen Adaptern klappt es super. Allerdings habe ich jetzt ein Problem, das ich mit JS lösen muss. Da ich davon keine Ahnung habe, bitte ich euch um Hilfe:Ich möchte gerne die Werte meiner Helios KWL EC 300 W auslesen. (Ändern wäre der nächste Schritt...)
Es gibt dazu 3 Ansätze: Via API auf die webbasierte Steuerung zugreifen; auf lokalem Webserver befindliche xml auslesen; lokal via Modbus TCP. Aktuell versuche ich mich an letzterem, zum xml-Thema schreibe ich noch einen anderen Thread - da habe ich genauso Probleme, allerdings aus anderen Gründen.Die, so weit ich verstanden habe, Besonderheit der Helios ist, dass ich erst Werte schreiben muss und im Anschluss wieder auslese. Es gibt also keine festen Adressen pro Wert. So weit ich verstehe, kann das der modbus-Adapter so nicht umsetzen. Sollte ich mich irren, bitte ich um einen Hinweis.
Was ich probiert habe:
Zusätzliches NPM-Modul "modbus-serial" in JS eintragen. Und mit den bei NPM und Github zu findenden Examples rumspielen. Für viel mehr reichts noch nicht, aber ich arbeite daran...var ModbusRTU = require("modbus-serial"); var client = new ModbusRTU(); // Verbindung herstellen client.connectTCP("192.168.178.22", { port: 502 }); client.setID(180); function write() { // Schreibe Werte in HoldingRegister ab Adresse 1 client.writeRegisters(1, [0x7430, 0x3030, 0x3034, 0x0000]) .then(read); } function read() { // Lese 10 HoldingRegister ab Adresse 1 client.readHoldingRegisters(1, 10) .then(console.log); }; schedule('*/5 * * * * *', read);
Port ist der übliche 502.
Die ID ist grundsätzlich 180.
Es wird ausschließlich in den HoldingRegisters geschrieben und gelesen.
Startadresse ist immer 1.
Mehr Details in der Dokumentation von Helios dazu.Hier steckt noch keinerlei Zuweisung zu einem Datenpunkt drin, das klappt dann später auch noch. Erstmal wäre es schön, wenn ich Daten schreiben und lesen könnte.
Wenn ich die Daten unter Windows mit einem Tool schreibe und lese, klappt alles wunderbar. Leider beweist die Gegenprobe: In o.g. Code funktioniert weder schreiben noch lesen.
Und selbst, wenn ich umfangreiche Beispiele abstrahiere, wie dieses hier von github, kommt dabei nichts rum außer Fehlermeldungen.Wer kann mir hier auf die Sprünge helfen?
Danke und Grüße!
Edit: Titel angepasst
-
@moehre Hallo moehre,
ich stecke gerade am gleichen Punkt wie du und versuche meine Helios KWL in iobroker zu integrieren. Ich habe jetzt auch schon eine ganze Weile versucht mit dem modbus-Adapter zum Ziel zu kommen, leider bisher ohne Erfolg.Jetzt habe ich gesehen, dass du den XML ansatz erfolgreich hinbekokmmen hast. Wie bist du denn final vorgegangen um die für dich relevanten Informatzionen zu bekommen?
Grüße