Bringt leider keine Änderung.Tokamak hat geschrieben: ↑12. Aug 2024 15:31 In der Version der .things fehlt eine 0. Es sollte 300001 sein, nicht 30001.
Am Rande: An einen Fehler glaube ich nicht. Ich lese einige Devices mit modbus aus, insgesamt vier verschiedene. Ab und an steigt mal ein Gerät für kurze Zeit aus, aber das Binding hat noch keinen Fehler gezeigt.
Modbus Energiezähler (Victron EM24)
-
- Beiträge: 25
- Registriert: 28. Nov 2019 08:19
Re: Modbus Energiezähler (Victron EM24)
openHAB 4.2.0 Release Build (openHABian auf Proxmox - Dell Optiplex 7040)
-
- Beiträge: 25
- Registriert: 28. Nov 2019 08:19
Re: Modbus Energiezähler (Victron EM24)
Habe das ganze spaßeshalber mal bei HomeAssistant eingefügt.
Mit der oben verlinkten Seite hat das ganze 5min gedauert und siehe da, man kann sofort Werte auslesen.
Leider ist die Konfiguration alles andere als kompatibel.
Mit der oben verlinkten Seite hat das ganze 5min gedauert und siehe da, man kann sofort Werte auslesen.
Leider ist die Konfiguration alles andere als kompatibel.
Code: Alles auswählen
modbus:
- type: tcp
host: 192.168.1.220
port: 502
name: "Victron Energy Meter"
sensors:
- name: L1-N
slave: 1
address: 0
unit_of_measurement: V
device_class: voltage
state_class: measurement
scale: 0.1
offset: 0
precision: 2
data_type: int32
unique_id: L1-N
swap: word
- name: L2-N
slave: 1
address: 2
unit_of_measurement: V
device_class: voltage
state_class: measurement
scale: 0.1
offset: 0
precision: 2
data_type: int32
unique_id: L2-N
swap: word
- name: L3-N
slave: 1
address: 4
unit_of_measurement: V
device_class: voltage
state_class: measurement
scale: 0.1
offset: 0
precision: 2
data_type: int32
unique_id: L3-N
swap: word
- name: L1-L2
unit_of_measurement: V
slave: 1
address: 6
data_type: int32
scale: 0.1
precision: 2
device_class: voltage
unique_id: L1-L2
swap: word
- name: L2-L3
unit_of_measurement: V
slave: 1
address: 8
data_type: int32
scale: 0.1
precision: 2
device_class: voltage
unique_id: L2-L3
swap: word
- name: L3-L1
unit_of_measurement: V
slave: 1
address: 10
data_type: int32
scale: 0.1
precision: 2
device_class: voltage
unique_id: L3-L1
swap: word
- name: L1
unit_of_measurement: A
slave: 1
address: 12
data_type: int32
scale: 0.001
precision: 2
device_class: current
unique_id: L1
swap: word
- name: L2
unit_of_measurement: A
slave: 1
address: 14
data_type: int32
scale: 0.001
precision: 2
device_class: current
unique_id: L2
swap: word
- name: L3
unit_of_measurement: A
slave: 1
address: 16
data_type: int32
scale: 0.001
precision: 2
device_class: current
unique_id: L3
swap: word
- name: Reference network
unit_of_measurement: kWh
slave: 1
address: 52
data_type: int32
scale: 0.1
precision: 2
device_class: energy
state_class: total
unique_id: Reference_network
swap: word
- name: Feeding into the network
unit_of_measurement: kWh
slave: 1
address: 78
data_type: int32
scale: 0.1
precision: 2
device_class: energy
state_class: total
unique_id: Feeding_into_the_network
swap: word
- name: Power L1
unit_of_measurement: W
slave: 1
address: 24
data_type: int32
scale: 0.1
precision: 2
device_class: power
unique_id: Power_L1
swap: word
- name: Power L2
unit_of_measurement: W
slave: 1
address: 26
data_type: int32
scale: 0.1
precision: 2
device_class: power
input_type: input
unique_id: Power_L2
swap: word
- name: Power L3
unit_of_measurement: W
slave: 1
address: 28
data_type: int32
scale: 0.1
precision: 2
device_class: power
input_type: input
unique_id: Power_L3
swap: word
- name: Total power
unit_of_measurement: W
slave: 1
address: 42
data_type: int32
scale: 0.1
precision: 2
device_class: power
unique_id: Total_Power
swap: word
- name: Frequency
unit_of_measurement: Hz
slave: 1
address: 51
input_type: input
data_type: int16
scale: 0.1
precision: 2
device_class: frequency
unique_id: Frequency
swap: word
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB 4.2.0 Release Build (openHABian auf Proxmox - Dell Optiplex 7040)
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: Modbus Energiezähler (Victron EM24)
Unterschiedliche Quellen, unterschiedliche Aussagen, ...
Hast du Adresse 40001 (oder 400001) mit Holding Register und id 0 oder 1 probiert? Vermutlich schon...
Ich denke, du wirst OH zwischendurch mal neu starten müssen. Ab einer gewissen Menge an Änderungen an things funktioniert OH nicht mehr richtig.
Hast du Adresse 40001 (oder 400001) mit Holding Register und id 0 oder 1 probiert? Vermutlich schon...
Ich denke, du wirst OH zwischendurch mal neu starten müssen. Ab einer gewissen Menge an Änderungen an things funktioniert OH nicht mehr richtig.
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: Modbus Energiezähler (Victron EM24)
Mir fiel noch was ein. In der Doku zu den Shelly Pro 3EM steht, dass die Register bei 30000 beginnen. Tatsächlich muss man aber die 3 am Anfang in der Konfig weglassen.
Wenn das bei dem EM24 genauso wäre, würde das auch erklören, warum die HA-Konfiguration bei Adresse 0 beginnt.
Daher ist es es wert, es mal mit Adressen ab 0 (oder 1) zu versuchen, wobei ich zunächst mit holding und slave id 1 beginnen würde, letzteres, weil es so auch in der HA-Konfig steht.
Wenn das bei dem EM24 genauso wäre, würde das auch erklören, warum die HA-Konfiguration bei Adresse 0 beginnt.
Daher ist es es wert, es mal mit Adressen ab 0 (oder 1) zu versuchen, wobei ich zunächst mit holding und slave id 1 beginnen würde, letzteres, weil es so auch in der HA-Konfig steht.
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
-
- Beiträge: 25
- Registriert: 28. Nov 2019 08:19
Re: Modbus Energiezähler (Victron EM24)
Tatsächlich war das der entscheidende Hinweis!
Danke für eure Hilfe. Da wäre ich doch niemals drauf gekommen..
Hier das erste Thing:
Items:
divide10.js:
Sobald ich die anderen eingefügt habe, stelle ich sie hier der Nachwelt zur Verfügung.

Danke für eure Hilfe. Da wäre ich doch niemals drauf gekommen..
Hier das erste Thing:
Code: Alles auswählen
Bridge modbus:tcp:VictronEM24 "Modbus Victron EM24" [ host="192.168.1.220", port=502, id=1] {
Bridge poller Registers "Register" [ start=0, length=3, refresh=5000, type="holding" ] {
Thing data test01 "Spannung L1-N" [ readStart="0", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
}
}
Code: Alles auswählen
Number VictronEnergy_EM24_L1 "Spannung L1 [%.0f V]" <energy> {channel="modbus:data:VictronEM24:Registers:test01:number"}
Code: Alles auswählen
// Wrap everything in a function (no global variable pollution)
(function(inputData) {
// on read: the polled number as string
return parseFloat(inputData) / 10;
})(input)
openHAB 4.2.0 Release Build (openHABian auf Proxmox - Dell Optiplex 7040)
-
- Beiträge: 25
- Registriert: 28. Nov 2019 08:19
Re: Modbus Energiezähler (Victron EM24)
Ich habe nun alle entsprechenden Register in meine Things und Items eingefügt.
Ein paar Register aus dem HomeAssistant Forum musste ich anpassen (da wurden einfach falsche verwendet). Die von Openhab empfangenen Werte hab ich mit der Software von Carlo Gavazzi verglichen.
An dieser Stelle noch einmal vielen Dank für die Mitarbeit hier im Forum!
Things:
divide10.js:
divide1000.js:
Items:
Sitemap:
EDIT: Formatierung optimiert
Ein paar Register aus dem HomeAssistant Forum musste ich anpassen (da wurden einfach falsche verwendet). Die von Openhab empfangenen Werte hab ich mit der Software von Carlo Gavazzi verglichen.
An dieser Stelle noch einmal vielen Dank für die Mitarbeit hier im Forum!

Things:
Code: Alles auswählen
Bridge modbus:tcp:VictronEM24 "Modbus Victron EM24" [ host="192.168.1.220", port=502, id=1] {
Bridge poller Poller_01 "Modbus Victron EM24 Poller" [ start=0, length=80, refresh=5000, type="holding" ] {
Thing data spannung_l1_n "Spannung L1-N" [ readStart="0", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data spannung_l2_n "Spannung L2-N" [ readStart="2", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data spannung_l3_n "Spannung L3-N" [ readStart="4", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data spannung_l1_l2 "Spannung L1-L2" [ readStart="6", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data spannung_l2_l3 "Spannung L2-L3" [ readStart="8", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data spannung_l3_l1 "Spannung L3-L1" [ readStart="10", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data stromstaerke_l1 "Stromstärke L1" [ readStart="12", readValueType="int32_swap", readTransform="JS(divide1000.js)" ]
Thing data stromstaerke_l2 "Stromstärke L2" [ readStart="14", readValueType="int32_swap", readTransform="JS(divide1000.js)" ]
Thing data stromstaerke_l3 "Stromstärke L3" [ readStart="16", readValueType="int32_swap", readTransform="JS(divide1000.js)" ]
Thing data wirkleistung_l1 "Wirkleistung L1" [ readStart="18", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data wirkleistung_l2 "Wirkleistung L2" [ readStart="20", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data wirkleistung_l3 "Wirkleistung L3" [ readStart="22", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data wirkleistung_gesamt "Wirkleistung Gesamt" [ readStart="40", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data netzbezug "Netzbezug" [ readStart="52", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
Thing data einspeisung "Einspeisung" [ readStart="78", readValueType="int32_swap", readTransform="JS(divide10.js)" ]
}
}
Code: Alles auswählen
// Wrap everything in a function (no global variable pollution)
(function(inputData) {
// on read: the polled number as string
return parseFloat(inputData) / 10;
})(input)
Code: Alles auswählen
// Wrap everything in a function (no global variable pollution)
(function(inputData) {
// on read: the polled number as string
return parseFloat(inputData) / 1000;
})(input)
Code: Alles auswählen
// Victron Energy EM24
Number VictronEnergy_EM24_Spannung_L1 "Spannung L1 [%.0f V]" <energy> {channel="modbus:data:VictronEM24:Poller_01:spannung_l1_n:number"}
Number VictronEnergy_EM24_Spannung_L2 "Spannung L2 [%.0f V]" <energy> {channel="modbus:data:VictronEM24:Poller_01:spannung_l2_n:number"}
Number VictronEnergy_EM24_Spannung_L3 "Spannung L3 [%.0f V]" <energy> {channel="modbus:data:VictronEM24:Poller_01:spannung_l3_n:number"}
Number VictronEnergy_EM24_Spannung_L1_L2 "Spannung L1 - L2 [%.0f V]" <energy> {channel="modbus:data:VictronEM24:Poller_01:spannung_l1_l2:number"}
Number VictronEnergy_EM24_Spannung_L2_L3 "Spannung L2 - L3 [%.0f V]" <energy> {channel="modbus:data:VictronEM24:Poller_01:spannung_l2_l3:number"}
Number VictronEnergy_EM24_Spannung_L3_L1 "Spannung L3 - L1 [%.0f V]" <energy> {channel="modbus:data:VictronEM24:Poller_01:spannung_l3_l1:number"}
Number VictronEnergy_EM24_Stromstaerke_L1 "Stromstärke - L1 [%.2f A]" <energy> {channel="modbus:data:VictronEM24:Poller_01:stromstaerke_l1:number"}
Number VictronEnergy_EM24_Stromstaerke_L2 "Stromstärke - L2 [%.2f A]" <energy> {channel="modbus:data:VictronEM24:Poller_01:stromstaerke_l2:number"}
Number VictronEnergy_EM24_Stromstaerke_L3 "Stromstärke - L3 [%.2f A]" <energy> {channel="modbus:data:VictronEM24:Poller_01:stromstaerke_l3:number"}
Number VictronEnergy_EM24_Wirkleistung_L1 "Wirkleistung L1 [%.0f W]" <energy> {channel="modbus:data:VictronEM24:Poller_01:wirkleistung_l1:number" }
Number VictronEnergy_EM24_Wirkleistung_L2 "Wirkleistung L2 [%.0f W]" <energy> {channel="modbus:data:VictronEM24:Poller_01:wirkleistung_l2:number" }
Number VictronEnergy_EM24_Wirkleistung_L3 "Wirkleistung L3 [%.0f W]" <energy> {channel="modbus:data:VictronEM24:Poller_01:wirkleistung_l3:number" }
Number VictronEnergy_EM24_Wirkleistung_Gesamt "Wirkleistung Gesamt [%.0f W]" <energy> {channel="modbus:data:VictronEM24:Poller_01:wirkleistung_gesamt:number" }
Number VictronEnergy_EM24_Netzbezug "Netzbezug [%.2f kWh]" <energy> {channel="modbus:data:VictronEM24:Poller_01:netzbezug:number" }
Number VictronEnergy_EM24_Einspeisung "Einspeisung [%.2f kWh]" <energy> {channel="modbus:data:VictronEM24:Poller_01:einspeisung:number" }
Code: Alles auswählen
Text item=VictronEnergy_EM24_Netzbezug
Text item=VictronEnergy_EM24_Einspeisung
Text item=VictronEnergy_EM24_Wirkleistung_Gesamt label="Wirkleistung Zähler [%.0f W]" valuecolor=[<=0="green" , >0="red"]
Text item=VictronEnergy_EM24_Wirkleistung_L1
Text item=VictronEnergy_EM24_Wirkleistung_L2
Text item=VictronEnergy_EM24_Wirkleistung_L3
Text item=VictronEnergy_EM24_Spannung_L1
Text item=VictronEnergy_EM24_Spannung_L2
Text item=VictronEnergy_EM24_Spannung_L3
Text item=VictronEnergy_EM24_Spannung_L1_L2
Text item=VictronEnergy_EM24_Spannung_L2_L3
Text item=VictronEnergy_EM24_Spannung_L3_L1
Text item=VictronEnergy_EM24_Stromstaerke_L1
Text item=VictronEnergy_EM24_Stromstaerke_L2
Text item=VictronEnergy_EM24_Stromstaerke_L3
EDIT: Formatierung optimiert
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB 4.2.0 Release Build (openHABian auf Proxmox - Dell Optiplex 7040)
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: Modbus Energiezähler (Victron EM24)
Prima, dass es nun geklappt hat.
Bei Modbus bin ich inzwischen dazu übergegangen, in dern .things-Dateien den Pollern und Data keine sprechenden Namen mehr zu geben. Die Poller zähle ich einfach durch - wegen der Beschränkung auf 125 Register braucht man manchmal mehrere -, und bei den Thing data nutze ich einfach die Registernummer.
Die Übersetzung der Register in sprechende Namen erfolgt bei mir erst in den Items.
Bei Modbus bin ich inzwischen dazu übergegangen, in dern .things-Dateien den Pollern und Data keine sprechenden Namen mehr zu geben. Die Poller zähle ich einfach durch - wegen der Beschränkung auf 125 Register braucht man manchmal mehrere -, und bei den Thing data nutze ich einfach die Registernummer.
Die Übersetzung der Register in sprechende Namen erfolgt bei mir erst in den Items.
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container