Wärmepumpe Modbus einbinden

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Wärmepumpe Modbus einbinden

Beitrag von klaus1 »

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

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Wärmepumpe Modbus einbinden

Beitrag von udo1toni »

Ohne das selbst zu nutzen, so (als *.things Datei. z.B. $OPENHAB_CONF/things/modbus.things):

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" ]
     }
 }
Die resultierenden Items wären dann z.B. so:

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"}
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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: Wärmepumpe Modbus einbinden

Beitrag von klaus1 »

leide bekomm ich in openhab.log noch folgendes zu Gesicht:

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]
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)

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: Wärmepumpe Modbus einbinden

Beitrag von mad-mike »

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) ;)

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: Wärmepumpe Modbus einbinden

Beitrag von klaus1 »

danke, dann kennt er bei Thing data current_l1 keine Bridge mehr.
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" ]
dann kommt im Strom L1 Item:
Status:
UNINITIALIZED
HANDLER_CONFIGURATION_PENDING
{length=Der Parameter wird benötigt., type=Der Parameter wird benötigt.}

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: Wärmepumpe Modbus einbinden

Beitrag von mad-mike »

Wenn man in dein Link oben schaut, steht dort das es nicht input register sind, sondern Holding...

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" ]
     }
 }
der Thing muss*** schon vom Typ data und nicht poller sein...
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: Wärmepumpe Modbus einbinden

Beitrag von mad-mike »

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) ;)

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: Wärmepumpe Modbus einbinden

Beitrag von klaus1 »

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?

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

Re: Wärmepumpe Modbus einbinden

Beitrag von mad-mike »

passt eventuell der Datentyp vielleicht nicht?
Möglich.

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. :oops:

habe den Poller mittels
deaktiviert, gespeichert und dann wieder entfernt und gespeichert.

Wie sieht denn deine Thing Datei aus??
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: Wärmepumpe Modbus einbinden

Beitrag von klaus1 »

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?

Antworten