Seite 1 von 1

Elfin EW11 Konfiguration

Verfasst: 9. Apr 2023 14:27
von maggus
Hallo zusammen,

ich hatte hier schon mal gefragt: viewtopic.php?p=53846 aber da ist es vermutlich nicht ganz rausgekommen was ich vorhabe.

Folgendes Gerät finde ich sehr interessant:
http://www.hi-flying.com/elfin-ew10-elfin-ew11

dadurch lässt sich wohl Modbus (seriell) an TCP/Wifi bringen. (Gibt wohl auch schon Leute die das verwenden: https://community.openhab.org/t/modbus- ... s/123787/5 )

Soweit konnte ich das Gerät auch einschalten und konfigurieren. Modbus Binding ist installiert, die Bridge ist online

Code: Alles auswählen

Bridge modbus:tcp:ew11_1 "Modbus 1 TCP Bridge" [ host="192.168.178.129", port=8899 ] {
    Bridge poller holding "Modbus 1.1 Poller" [ start=40000, length=10, refresh=5000, type="holding" ] {
        Thing data Values01 "Modbus 1.1.1 Data" [ readStart="0", readValueType="int16" ]
    }
}
Bild

Leider habe ich noch keinen Kommunikationspartner für das Gerät. (Später würde ich hier gern ein Binding erzeugen für die jeweiligen Geräte die dran kommen. Hier ist es quasi ein wenig Fleissarbeit um die Adressen zu Items zu mappen)

Bin ich da total auf dem Holzweg?

Zum Testen wollte ich ein Ardunio dranhängen (der als Slave Dummy Werte ausgibt). Da ich aber keinen Konverter hier rumliegen habe, wollte ich das direkt tun. Dazu hab ich aber nicht wirklich eine Implementierung gefunden... vielleicht finde ich noch was.

Re: Elfin EW11 Konfiguration

Verfasst: 9. Apr 2023 14:46
von mad-mike
Moin.

Modbus Data Thing:

Read start muss vom Poller thing im Bereich read + lenght liegen.

Re: Elfin EW11 Konfiguration

Verfasst: 9. Apr 2023 19:12
von maggus
Hi,

danke für den Hinweis.
Ich bin von relativen Werten ausgegangen.

Vermutlich wird das Ding jetzt einfach funktionieren.


Ich suche noch nach Testmöglichkeiten... aber das ist wohl nicht so einfach...

wen es interessiert:
https://forum.arduino.cc/t/modbusrtu-wi ... 85/1113043

hab hier auch mal nachgefragt ;-)

Re: Elfin EW11 Konfiguration

Verfasst: 10. Apr 2023 10:29
von maggus
Hi zusammen,

soweit ich das beurteilen kann, funktioniert das Elfin EW11.

Jetzt lese ich mich ein um die jeweiligen Geräte einfach einzubinden.


Vielen Dank!

Re: Elfin EW11 Konfiguration

Verfasst: 10. Apr 2023 12:38
von maggus
mad-mike hat geschrieben: 9. Apr 2023 14:46 Moin.

Modbus Data Thing:

Read start muss vom Poller thing im Bereich read + lenght liegen.
dass es im Bereich liegen muss habe ich jetzt verstanden...
Aber was mich auf die relativen Werte gebracht hat war:

https://www.openhab.org/addons/bindings/modbus/

Code: Alles auswählen

    // read-write for holding registers. Reading 4 registers, with index 1500, 1501, 1502, 1503.
    // These correspond to holding register numbers 401501, 401502, 401503, 401504.    Bridge poller holding [ start=1500, length=4, refresh=1000, type="holding" ] {
        Thing data holding1500 [ readStart="1500", readValueType="float32", writeStart="1500", writeValueType="float32", writeType="holding" ]
        Thing data holding1502 [ readStart="1502", readValueType="float32", writeStart="1502", writeValueType="float32", writeType="holding" ]
    }
Hier steht klar, dass es beim Holding immer bei 40000 anfängt und dann relativ die Adressen zu suchen sind.
Oder ist das nicht so?

Re: Elfin EW11 Konfiguration

Verfasst: 10. Apr 2023 13:31
von udo1toni
Der Punkt ist, mit dem Angeben vom Pollertyp holding hast Du schon einen Versatz von 40000. Siehe Beispielkonfiguration:

Code: Alles auswählen

 // read-write for holding registers. Reading 4 registers, with index 1500, 1501, 1502, 1503.
    // These correspond to holding register numbers 401501, 401502, 401503, 401504.
    Bridge poller holding [ start=1500, length=4, refresh=1000, type="holding" ] {
        Thing data holding1500 [ readStart="1500", readValueType="float32", writeStart="1500", writeValueType="float32", writeType="holding" ]
        Thing data holding1502 [ readStart="1502", readValueType="float32", writeStart="1502", writeValueType="float32", writeType="holding" ]
    }
Bei der Bridge vom Typ holding steht als Start 1500, das ergibt also die Adresse 41500, weil holding + 40000 ist.

Nachdem ich mich jetzt etwas eingelesen habe, denke ich auch, verstanden zu haben, wie das funktioniert (also zumindest in Teilen)

Es gibt vier verschiedene Objekttypen in Modbus, die jeweils einen festgelegten Adressbereich haben:

Code: Alles auswählen

Objekttyp           r/w  Größe  Addressbereich  openHAB Pollertyp
Coil                rw   1 Bit  00001 – 09999       coil
Discrete input      ro   1 Bit  10001 – 19999   discrete

  Input register    ro  16 Bit  30001 – 39999      input
Holding register    rw  16 Bit  40001 – 49999    holding
Die Startadresse wird jeweils auf die Anfangsadresse des Adressblocks bezogen, willst Du also auf die Register 41500 bis 41509 zugreifen, so gibst Du als Typ holding an, als Start 1500 und als Länge 10.
Die konkreten Adressen sind dann abhängig vom jeweiligen Gerät und müssen entsprechend in der Doku nachgeschlagen werden.
Schalter werden vermutlich als Coil abgebildet, genau wie einzelne Signale, meinetwegen die Anzeige der Betriebsbereitschaft, wobei die ja vermutlich nur lesbar sind, also eher vom Typ discrete.

Re: Elfin EW11 Konfiguration

Verfasst: 14. Apr 2023 10:22
von maggus
ja genau so hab ich es auch verstanden. ;)

dann warte ich mal auf ein Modbus Gerät. Ist schon bestellt.