cFos-Wallbox über Modbus/TCP ansprechen

Begonnen von mBielemeier, 19 September 2022, 20:34:12

Vorheriges Thema - Nächstes Thema

mBielemeier

Hallo zusammen,
ich habe eine cFos-Wallbox mit mehreren über Modbus/RTU und S0 angeschlossenen Zählern an FHEM per Modbus/TCP angeschlossen.

Es kam die Frage aus dem Forum, wie das bei mir eingerichtet ist. Falls noch jemand die cFos-Wallbox hat, liefere ich hier eine Beschreibung:

Einstellung in der cFos-Wallbox, damit sie als Modbus-Proxy genutzt werden kann:

  • auf der Seite Konfiguration: Modbus TCP/RTU Proxy einschalten
  • TCP Port 4704 und
  • COM-Einstellung COM1,9600,8,n,1 (Standard)

  • auf der Seite Start, Button Konfigurieren habe ich alle Zähler zugefügt.
  • Adresse ist für Modbus/RTU COM1,9600,8,N,1 und die ID muss eindeutig sein für alle Zähler
  • Die Wallbox hat bei mir Slave ID 1 und den TCP-Port 4701
  • Die beiden S0-Zähler benötigen nur die Modbus Slave ID (eindeutig, bei mir 2) und den TCP-Port, bei mit 4702

In FHEM kann die Wallbox jetzt angebunden werden. Ich habe alles manuell angelegt:

Modbud-Proxy-Zähler:
defmod mp4704 Modbus <IP-Adresse der Wallbox>:4704
attr mp4704 busDelay 0.1
attr mp4704 profileInterval 600


defmod ZaehlerAuto ModbusAttr <Slave-ID> 60 TCP
attr ZaehlerAuto userattr obj-i10-len obj-i201-poll obj-i201-reading obj-i6-len obj-i6-name obj-i6-polldelay obj-i6-showGet obj-i73-reading obj-i8-len
attr ZaehlerAuto DbLogInclude totalImport
attr ZaehlerAuto IODev [b]mp4704[/b]
attr ZaehlerAuto dev-i-combine 30
attr ZaehlerAuto dev-i-defFormat %.1f
attr ZaehlerAuto dev-i-defLen 2
attr ZaehlerAuto dev-i-defPoll 1
attr ZaehlerAuto dev-i-defShowGet 1
attr ZaehlerAuto dev-i-defUnpack f>
attr ZaehlerAuto dev-i-read 4
attr ZaehlerAuto obj-i342-format %.3f
attr ZaehlerAuto obj-i342-polldelay x5
attr ZaehlerAuto obj-i342-reading totalImport



S0-Zähler mit eigener Slave -ID 2, IP-Adresse 4702:
defmod ZaehlerGas ModbusAttr 2 600 <IP-Adresse der Wallbox>:4702 TCP
attr ZaehlerGas obj-h8058-format %.3f
attr ZaehlerGas obj-h8058-len 4
attr ZaehlerGas obj-h8058-poll 1
attr ZaehlerGas obj-h8058-reading totalImport
attr ZaehlerGas obj-h8058-set 1
attr ZaehlerGas obj-h8058-setexpr $val * 1000
attr ZaehlerGas obj-h8058-showGet 1
attr ZaehlerGas obj-h8058-unpack Q>


und die Wallbox selbst:
defmod mp4701 Modbus <IP-Adresse der Wallbox>:4701 TCP
attr mp4701 busDelay 0.2
attr mp4701 profileInterval 600


defmod Wallbox ModbusAttr 1 60 TCP
attr Wallbox dev-h-defUnpack n
attr Wallbox group Wallbox
attr Wallbox obj-h8000-format %.4x
attr Wallbox obj-h8000-len 1
attr Wallbox obj-h8000-reading vendor_id
attr Wallbox obj-h8000-showGet 1
attr Wallbox obj-h8002-len 1
attr Wallbox obj-h8002-reading product_id
attr Wallbox obj-h8002-showGet 1
attr Wallbox obj-h8003-format %.4x
attr Wallbox obj-h8003-len 1
attr Wallbox obj-h8003-reading device_id
attr Wallbox obj-h8003-showGet 1
attr Wallbox obj-h8004-format %.4x
attr Wallbox obj-h8004-len 1
attr Wallbox obj-h8004-reading product_version
attr Wallbox obj-h8004-showGet 1
attr Wallbox obj-h8004-unpack n
attr Wallbox obj-h8008-format %.8s
attr Wallbox obj-h8008-len 8
attr Wallbox obj-h8008-reading serial_no
attr Wallbox obj-h8008-showGet 1
attr Wallbox obj-h8008-unpack Z*
attr Wallbox obj-h8016-format %s
attr Wallbox obj-h8016-len 16
attr Wallbox obj-h8016-reading Produkt
attr Wallbox obj-h8016-showGet 1
attr Wallbox obj-h8016-unpack A*
attr Wallbox obj-h8092-format %s
attr Wallbox obj-h8092-len 1
attr Wallbox obj-h8092-map 0:warten, 1:Fahrzeug erkannt, 2:laden, 3:laden mit Lüftung, 4:kein Strom, 5:Fehler
attr Wallbox obj-h8092-reading charge_pilot_state
attr Wallbox obj-h8092-showGet 1
attr Wallbox obj-h8093-expr $val / 10
attr Wallbox obj-h8093-format %.1f
attr Wallbox obj-h8093-len 1
attr Wallbox obj-h8093-reading charging_cur_limit
attr Wallbox obj-h8093-set 1
attr Wallbox obj-h8093-showGet 1
attr Wallbox obj-h8094-format %d
attr Wallbox obj-h8094-len 1
attr Wallbox obj-h8094-reading charging_enable
attr Wallbox obj-h8094-set 1
attr Wallbox obj-h8094-showGet 1
attr Wallbox obj-h8095-expr $val / 10
attr Wallbox obj-h8095-format %.1f
attr Wallbox obj-h8095-len 1
attr Wallbox obj-h8095-reading charging_current
attr Wallbox obj-h8095-showGet 1
attr Wallbox obj-h8096-format %s
attr Wallbox obj-h8096-len 16
attr Wallbox obj-h8096-reading last_rfid
attr Wallbox obj-h8096-showGet 1
attr Wallbox obj-h8096-unpack A*
attr Wallbox obj-h8120-format %.4x
attr Wallbox obj-h8120-len 1
attr Wallbox obj-h8120-reading count_restart
attr Wallbox obj-h8120-showGet 1



Es gibt viele andere auslesbare Werte, beim Proxy abhängig von dem verwendeten Zähler. Ich nutze noch mehr Werte, hier erst einmal alles, was zum Funktionieren bei mir notwendig war. Die Wallbox läßt sich auch steuern, das habe ich aber selbst noch nicht getestet.

Ich hoffe, ich kann einigen hiermit etwas Zeit zur Einrichtung ersparen.

Viele Grüße
Manfred.
FHEM 6.1 Raspberry 4, CUL868+CUL433 auf ESP8266-Basis, FS20, IT-Steckdosen, ESP8266-MQTT, Zigbee, Shelly