Wärmepumpe Modbus einbinden
-
- Beiträge: 99
- Registriert: 11. Jan 2022 13:48
Wärmepumpe Modbus einbinden
Hallo,
ich habe ein Wärmepumpe über S0 Ausgänge an einer cfos Power Brain Solar Wallbox hängen (interner S0 Zähler 2 M2), die diesen Zähler summieren kann, bzw. auch die MomentanLeistung erfassen kann.
Bei diesem Zähler kann ich Modbus TCP aktivieren. Konfigurierbar Modubs Slave ID (da steht 3 drinnen) und TCP Port 4703.
jetzt möchte ich die Daten in Openhab empfangen.
dazu ein Versuch: Modbus Binding installiert und zwar einen Modbus TCP Slave mit der IP und Port 4703 von oben.
Discovery Enabled aktiviert RTU Encoding nicht.
danach hätte ich ein Modbus Data angelegt und die Bridge von oben dazu gehängt.
Da sind aber leider alle Channels null...
wie ist die richtige Vorgehensweise ?
infos modbus vom Hersteller:
https://www.cfos-emobility.de/de/cfos-p ... isters.htm
danke
ich habe ein Wärmepumpe über S0 Ausgänge an einer cfos Power Brain Solar Wallbox hängen (interner S0 Zähler 2 M2), die diesen Zähler summieren kann, bzw. auch die MomentanLeistung erfassen kann.
Bei diesem Zähler kann ich Modbus TCP aktivieren. Konfigurierbar Modubs Slave ID (da steht 3 drinnen) und TCP Port 4703.
jetzt möchte ich die Daten in Openhab empfangen.
dazu ein Versuch: Modbus Binding installiert und zwar einen Modbus TCP Slave mit der IP und Port 4703 von oben.
Discovery Enabled aktiviert RTU Encoding nicht.
danach hätte ich ein Modbus Data angelegt und die Bridge von oben dazu gehängt.
Da sind aber leider alle Channels null...
wie ist die richtige Vorgehensweise ?
infos modbus vom Hersteller:
https://www.cfos-emobility.de/de/cfos-p ... isters.htm
danke
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Wärmepumpe Modbus einbinden
Ohne das selbst zu nutzen, so (als *.things Datei. z.B. $OPENHAB_CONF/things/modbus.things):
Die resultierenden Items wären dann z.B. so:
Ohne Gewähr...
Du kannst sowohl Things als auch Items auch über die UI anlegen, aber gerade bei den Things artet das in viel Arbeit aus, in einer Textdatei kannst Du die Zeilen leicht kopieren und die Details ändern, über die UI musst Du jedes Thing einzeln anlegen.
Modbus unterstützt kein Discovery, also alles zu Fuß. Die Channels sind als Beispiel zu verstehen, Du kannst natürlich auch weitere Channel anlegen.
Code: Alles auswählen
Bridge modbus:tcp:cfos "cfos eMobility" [
host="192.168.178.33", // IP der Modbus Schnittstelle
port=4703,
id=3
] {
Bridge poller zaehler "S0-Zähler 2" [
start=8041,
length=30,
type="input"
] {
Thing data current_l1 "Strom L1" [readStart="8064", readValueType="int16" ]
Thing data current_l2 "Strom L2" [readStart="8066", readValueType="int16" ]
Thing data current_l3 "Strom L3" [readStart="8068", readValueType="int16" ]
}
}
Code: Alles auswählen
Number cfosCurrent_L1 "Strom L1" {channel="modbus:data:cfos:zaehler:current_l1:number"}
Number cfosCurrent_L2 "Strom L2" {channel="modbus:data:cfos:zaehler:current_l2:number"}
Number cfosCurrent_L3 "Strom L3" {channel="modbus:data:cfos:zaehler:current_l3:number"}
Du kannst sowohl Things als auch Items auch über die UI anlegen, aber gerade bei den Things artet das in viel Arbeit aus, in einer Textdatei kannst Du die Zeilen leicht kopieren und die Details ändern, über die UI musst Du jedes Thing einzeln anlegen.
Modbus unterstützt kein Discovery, also alles zu Fuß. Die Channels sind als Beispiel zu verstehen, Du kannst natürlich auch weitere Channel anlegen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 99
- Registriert: 11. Jan 2022 13:48
Re: Wärmepumpe Modbus einbinden
leide bekomm ich in openhab.log noch folgendes zu Gesicht:
in der openhab Oberfläche für S0-Zähler2:
COMMUNICATION_ERROR
Error with read: org.openhab.core.io.transport.modbus.internal.ModbusSlaveErrorResponseExceptionImpl: Slave responded with error=1 (ILLEGAL_FUNCTION)
Code: Alles auswählen
2023-12-28 17:25:00.912 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 2 out of 3 failed when executing request (ModbusReadRequestBlueprint [slaveId=3, functionCode=READ_INPUT_REGISTERS, start=8041, length=30, maxTries=3]). Will try again soon. Error was: net.wimpi.modbus.ModbusSlaveException Error Code = 1 [operation ID fe992eda-a3db-4c87-8564-4749eb5bf924]
COMMUNICATION_ERROR
Error with read: org.openhab.core.io.transport.modbus.internal.ModbusSlaveErrorResponseExceptionImpl: Slave responded with error=1 (ILLEGAL_FUNCTION)
-
- Beiträge: 491
- Registriert: 6. Jan 2021 18:05
Re: Wärmepumpe Modbus einbinden
Moin, Versuch Mal bei Type:
Code: Alles auswählen
type="holding"
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

-
- Beiträge: 99
- Registriert: 11. Jan 2022 13:48
Re: Wärmepumpe Modbus einbinden
danke, dann kennt er bei Thing data current_l1 keine Bridge mehr.
hab die auf poller geändert:
dann kommt im Strom L1 Item:
Status:
UNINITIALIZED
HANDLER_CONFIGURATION_PENDING
{length=Der Parameter wird benötigt., type=Der Parameter wird benötigt.}
hab die auf poller geändert:
Code: Alles auswählen
Thing poller current_l1 "Strom L1" [readStart="8064", readValueType="int16" ]
Thing poller current_l2 "Strom L2" [readStart="8066", readValueType="int16" ]
Thing poller current_l3 "Strom L3" [readStart="8068", readValueType="int16" ]
Status:
UNINITIALIZED
HANDLER_CONFIGURATION_PENDING
{length=Der Parameter wird benötigt., type=Der Parameter wird benötigt.}
-
- Beiträge: 491
- Registriert: 6. Jan 2021 18:05
Re: Wärmepumpe Modbus einbinden
Wenn man in dein Link oben schaut, steht dort das es nicht input register sind, sondern Holding...
anhand von @Udo1toni:
der Thing muss*** schon vom Typ data und nicht poller sein...
anhand von @Udo1toni:
Code: Alles auswählen
Bridge modbus:tcp:cfos "cfos eMobility" [
host="192.168.178.33", // IP der Modbus Schnittstelle
port=4703,
id=3
] {
Bridge poller zaehler "S0-Zähler 2" [
start=8041,
length=30,
type="holding"
] {
Thing data current_l1 "Strom L1" [readStart="8064", readValueType="int16" ]
Thing data current_l2 "Strom L2" [readStart="8066", readValueType="int16" ]
Thing data current_l3 "Strom L3" [readStart="8068", readValueType="int16" ]
}
}
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

-
- Beiträge: 491
- Registriert: 6. Jan 2021 18:05
Re: Wärmepumpe Modbus einbinden
Achso, und id 3 kann auch falsch sein. Einfach Mal eine andere versuchen. Wenn die Hardware schon id3 ist, kann oH nicht die gleiche haben... Versuch Mal 2
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

-
- Beiträge: 99
- Registriert: 11. Jan 2022 13:48
Re: Wärmepumpe Modbus einbinden
jetzt siehts gut aus ! Vielen vielen Dank!
ich kann lesen, ich bekomm auch in dem zeitstempel zurück wann ich das letzte mal gelesen habe. die Values sind leider immer alle 0. passt eventuell der Datentyp vielleicht nicht?
ich kann lesen, ich bekomm auch in dem zeitstempel zurück wann ich das letzte mal gelesen habe. die Values sind leider immer alle 0. passt eventuell der Datentyp vielleicht nicht?
-
- Beiträge: 491
- Registriert: 6. Jan 2021 18:05
Re: Wärmepumpe Modbus einbinden
Möglich.passt eventuell der Datentyp vielleicht nicht?
Ich habe bei mir gerade mal bewusst einen falschen eingestellt.
ich brauche type: input, habe holding eingestellt...
Dann waren die werte auf 0.
wenn ich es laut deinem Link aber richtig verstehe, brauchst du type holding.
aber konnte es nicht einfach zurück stellen.

habe den Poller mittels
Code: Alles auswählen
//
Wie sieht denn deine Thing Datei aus??
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

-
- Beiträge: 99
- Registriert: 11. Jan 2022 13:48
Re: Wärmepumpe Modbus einbinden
jetzt klappts. mit float32, aber unschick:
2023-12-29 12:15:52.859 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Power_WP_Value_as_String' changed from 0 to 0.0000000000000000000000000000000000000000000028
float16 stand nicht zur Auswahl in der webgui... und bei int16 wird vermutlich immer nur 0 angezeigt wenn float eigentlicher Datentyp ist oder?
2023-12-29 12:15:52.859 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Power_WP_Value_as_String' changed from 0 to 0.0000000000000000000000000000000000000000000028
float16 stand nicht zur Auswahl in der webgui... und bei int16 wird vermutlich immer nur 0 angezeigt wenn float eigentlicher Datentyp ist oder?