NEWS
Modbus Adapter - keine Verbindung
-
@pepito82 sagte in Modbus Adapter - keine Verbindung:
ich habe zwei Modbus TCP Geräte, die ich gerne in iobroker integrieren würde.
Es handelt sich um eine Waterkotte Wärmepumpe Ai1 mit WWPR Steuerung und einen Solar-Log 1200.Ich würde erstmal mit einem Modbusteilnehmer anfangen , wenn du erst mit dem Modbus Adapter anfängst und noch keine entgültigen Register abfragst !
Also hier den Haken raus und die Geräte ID anpassen .
-
@glasfaser Dankeschön. Mit einem Register abzufragen, wird das Adapter nun wirklich grün.
Ich hätte noch eine Frage, wie ich für die analogen Eingänge (hier Außentemperatur) den Wert richtig als 4,3 ausgegeben bekomme:
Laut Anleitung gilt:
Ein Analog-Wert mit einer festen Nachkommastelle wird mit 10 multipli-
ziert und in einem 16 bit Register übertragen.Beispiel: Der Wert 10.0 wird als 0x0064h übertragen
In Fhem habe ich hier je Register eine Konvertierung angegeben.
-
Input nutze ich nicht ... gerade keine Idee dazu ,
aber bei Holding kann man den Faktor dazu einstellen -
-
@glasfaser @PEPITO82 Ja genau, dann erscheinen die Felder
-
@ahnungsbefreit @Glasfaser Vielen Dank Euch beiden für die Starthilfe. Es hat geklappt die Temperatur mittels Formel zu berechnen.
Muss mich jetzt wohl mehr mit Javascript beschäftigen.
-
Eine weitere Frage noch. Ich hab jetzt die ganzen Modbus Register meiner Waterkotte Wärmepumpe hinzugefügt.
Kann ich über die Funktion mehrere Geräte IDs in derselben Instanz auch den Solar-Log abfragen?
Oder brauche ich dafür eine weitere Instanz, in der ich die IP Adresse vom Solar-Log angebe?
-
@pepito82 sagte in Modbus Adapter - keine Verbindung:
Oder brauche ich dafür eine weitere Instanz, in der ich die IP Adresse vom Solar-Log angebe?
Genau so
-
@glasfaser Danke, verstanden.
Ich habe alle meine Register als Eingangsregister angelegt.
Werte habe ich auch für alle Register, es fehlt nur noch, dass ich die ein paar der Register auch schreiben kann (5000 und 6000 er Register):0 bedeutet, Warmwasser / Heizung ist aus, 1 bedeutet an.
Ich habe versucht, das Register auf schreibbar zu ändern, das hat leider aber nicht funktioniert:
{ "_id": "modbus.0.inputRegisters.5032_WW_Handabschaltung", "type": "state", "common": { "name": "Schalter Warmwasser", "role": "switch", "type": "number", "read": true, "write": false, "def": 0, "unit": "" }, "native": { "regType": "inputRegs", "address": 5032, "deviceId": 1, "type": "uint16be", "len": 1, "offset": 0, "factor": 1 }, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.modbus.0", "user": "system.user.admin", "ts": 1669096887889 }
In FHEM sieht das Register so aus:
Was muss ich hier in iobroker einstellen, dass es funktioniert?
-
@pepito82 Wie in der Doku beschrieben (hast Du die mal gelesen?), sind Eingangsregister "read only", Holding-Register "read write".
-
@ahnungsbefreit Ich hatte die Beschreibung auf github überflogen. Hab nochmal geschaut und die Info dort nicht gefunden?
Habe 5032 nun als Holding-Register hinzugefügt, aber das funktioniert leider nicht.
Ich bekomme keinen Wert bzw. kann auch nicht an- bzw. ausschalten.Die 1 hatte ich manuell gesetzt, hat den Wert aber nicht geschrieben und den aktuellen Wert 0 holt es sich auch nicht.
-
@pepito82 Du hast ja nirgends den Typ definiert, das musst Du aus der Doku des Geräts übernehmen, sonst nimmt der Adapter immer (was auch immer) als Default. Beispiel meiner "Input-Register":
-
Leider bekomme ich das nicht übersetzt in die Einstellungen der Modbus Instanz bzw. der Register.
Für die "analogen" Register, scheint der Standard unsigned 16 bit (big endian) zu passen.
Für die Register, welche ich schreiben möchte, habe ich signed 16 bit ausprobiert.
Damit bekomme ich schon die Werte Aktualisierungen, aber es schreibt die Werte nicht direkt.In FHEM hatte ich die Register, welche ich schreibe, auf WORD gesetzt.
Wie übersetzt sich das in das iobroker Modbus Register? -
@pepito82 Gute Frage, ich vermute (bin aber kein Experte für Modbus), wenn ich mich an meine Assembler-Zeiten erinnere, dass WORD unsigned 16 bit entspricht. Ob "big endian" oder nicht, muss man ausprobieren, tippe auf "big endian".
-
@pepito82 sagte in Modbus Adapter - keine Verbindung:
Wie übersetzt sich das in das iobroker Modbus Register?
ich mache das immer so ...
-
@glasfaser Soll das Tool helfen zu prüfen, ob die Registernummer passt? Für die 5032 hat es mir einen Wert angezeigt.
Im Endeffekt funktioniert das Register für die Warmwasser Handschaltung so:
Allerdings nur wenn ich Werte ohne Bestätigung setze.
Sobald ich den Haken mit Bestätigung setze, schreibt es den Wert nicht ins Register. -
Sämtliche Temperaturwerte muss ich durch zehn teilen, um die korrekten Werte angezeigt zu bekommen.
Jetzt ist es allerdings auch so, dass wenn ich den Temperaturwert setzen möchte, muss ich wieder eine Null ranhängen, damit in der Wärmepumpe der richtige wert ankommt:
Gibt es da eine Lösung?
-
@pepito82
Musst du beim schreiben auch den Faktor 10 einrechnen? Nimm doch mal die Formel raus. -
@dolomiti Ohne Formel bekomme ich dann halt auch 480 statt 48 angezeigt:
-
funktioniert dann auch das "schreiben" ... ohne den Faktor !?