Neben Modbus-Energiezählern können auch eine beliebige Anzahl von Energiezählern der Netzbetreiber ausgelesen und die zugehörigen Energie- und Leistungswerte individuell ermittelt, dargestellt, ausgewertet und verarbeitet werden.
Optimale Energiewerte mit modernen Energiezählern
Als Energiezähler für die Unterverteilung empfehlen wir "Modbus-Energiezähler" in Kombination mit "WLAN-Adapter für Energiezähler mit Modbus (MQTT)". Hierbei werden von einem Energiezähler folgenden Messwerte ermittelt:
- Leistung (W)
- Scheinleistung (VA)
- Blindleistung (var)
- Leistungsfaktor
- Frequenz (Hz)
- Wirkenergie Bezug (kWh)
- Blindenergie Bezug (kvarh)
Pro Phase:
- Spannung (V)
- Strom (A)
- Leistung (W)
- Scheinleistung (VA)
- Blindleistung (var)
- Leistungsfaktor
Auf Basis der Energiedaten steuert das CMatic-Automatisierungssystem individuelle Energieverbraucher.
|
Darstellung auf dem Smartphone durch das CMatic-Automatisierungssystem
|
Umsetzung der Integration von 4 S0-Energiezählern in Openhab
Zur Umsetzung werden die Dateien home.items und home.sitemap erstellt.
Daten-Items: home.items
Für die Darstellung auf der Oberfläche werden folgende Daten-Items in der Datei "items/home.items" definiert:
Group Energie "Energie" Number Energie11 "Energie 11 (kWh)[%.3f kWh]" (Energie) Number Energie12 "Energie 12 (kWh)[%.3f kWh]" (Energie) Number Energie13 "Energie 13 (kWh)[%.3f kWh]" (Energie) Number Energie14 "Energie 14 (kWh)[%.3f kWh]" (Energie)
Group EnergieDay "Energie pro Tag" Number Energie11Day "Energie 11 / Tag (kWh)[%.3f kWh]" (EnergieDay) Number Energie12Day "Energie 12 / Tag (kWh)[%.3f kWh]" (EnergieDay) Number Energie13Day "Energie 13 / Tag (kWh)[%.3f kWh]" (EnergieDay) Number Energie14Day "Energie 14 / Tag (kWh)[%.3f kWh]" (EnergieDay)
Group Leistung "Leistung" Number Leistung11 "Leistung 11 (W)[%d W]" (Leistung) Number Leistung12 "Leistung 12 (W)[%d W]" (Leistung) Number Leistung13 "Leistung 13 (W)[%d W]" (Leistung) Number Leistung14 "Leistung 14 (W)[%d W]" (Leistung)
Group EnergieZaehlerS0 "Alle S0-Zähler" Number S0Zaehler11 "S0-Zähler 11 [%d]" (EnergieZaehlerS0) Number S0Zaehler12 "S0-Zähler 12 [%d]" (EnergieZaehlerS0) Number S0Zaehler13 "S0-Zähler 13 [%d]" (EnergieZaehlerS0) Number S0Zaehler14 "S0-Zähler 14 [%d]" (EnergieZaehlerS0)
Number Imp_kWh "Zählerimpulse pro kWh [%d]" Number Messintervall "Messintervall Sec. [%d]" // WLAN Adapter Konsolenkommando: Teleperiod 120 -> setzt Messintervall auf 120 Sekunden
// MQTT - Verbindung zum WLAN-Adapter mit 4 x S0 -Schnittstellen String WLANAdapterS01 "WLAN S0-Adapter 1" { mqtt="<[mosquitto:cmatic-2436BB/tele/SENSOR:state:default]" }
|
Oberfläche zur Bedienung: home.sitemap
Die Darstellung der Oberfläche wird in der Datei "sitemaps/home.sitemap" definiert:
sitemap home label="CMatic"
{ Frame label="Leistung" { Text item=Leistung11 Text item=Leistung12 Text item=Leistung13 Text item=Leistung14 } Frame label="Energie heute" { Text item=Energie11Day Text item=Energie12Day Text item=Energie13Day Text item=Energie14Day } Frame label="Gesamtenergie" { Text item=Energie11 Text item=Energie12 Text item=Energie13 Text item=Energie14 }
Frame label="Einstellungen" { Setpoint item=Imp_kWh minValue=100 maxValue=10000 step=100 Setpoint item=Messintervall minValue=60 maxValue=3600 step=60 Group item=EnergieZaehlerS0 Text label="Diagramme" icon="pie"{ Frame label="Leistung" { Chart item=Leistung period=D refresh=60000 } Frame label="Energie pro Tag" { Chart item=EnergieDay period=W refresh=60000 Chart item=EnergieDay period=Y refresh=60000 } } } }
|
Regeln: home.rules
Durch die Datei "rules/home.rules" werden die Energiedaten des WLAN-Adapters aufbereitet:
rule "Regel zur Energiemessung durch WLAN-Adapter mit 4 x S0 -Schnittstellen" when Item WLANAdapterS01 received update // 4 neue Zählerimpulswerte pro Messintervall via WLAN-Adapter MQTT then
// 4 Zählerimpulswerte aus MQTT-Nachricht filtern und speichern S0Zaehler11.postUpdate(transform("JSONPATH", "$.COUNTER.C1", WLANAdapterS01.state.toString)) S0Zaehler12.postUpdate(transform("JSONPATH", "$.COUNTER.C2", WLANAdapterS01.state.toString)) S0Zaehler13.postUpdate(transform("JSONPATH", "$.COUNTER.C3", WLANAdapterS01.state.toString)) S0Zaehler14.postUpdate(transform("JSONPATH", "$.COUNTER.C4", WLANAdapterS01.state.toString))
// Leistung in Watt = (Delta der gemessene Zählerimpulse zwischen den letzten Messzeitpunkten / Messintervall Sec) * (1000 W * 3600 Sec / Zählerimpulse des Zählers für kWh) Leistung11.postUpdate((S0Zaehler11.deltaSince(now) as Number / Messintervall.state as Number) * (3600000 / Imp_kWh.state as Number)) Leistung12.postUpdate((S0Zaehler12.deltaSince(now) as Number / Messintervall.state as Number) * (3600000 / Imp_kWh.state as Number)) Leistung13.postUpdate((S0Zaehler13.deltaSince(now) as Number / Messintervall.state as Number) * (3600000 / Imp_kWh.state as Number)) Leistung14.postUpdate((S0Zaehler14.deltaSince(now) as Number / Messintervall.state as Number) * (3600000 / Imp_kWh.state as Number))
// Energie in kWh = Energie + Delta der gemessene Zählerimpulse zwischen den letzten Messzeitpunkten * kWh / Zählerimpulse des Zählers für kWh Energie11.postUpdate(S0Zaehler11.state as Number / Imp_kWh.state as Number) Energie12.postUpdate(S0Zaehler12.state as Number / Imp_kWh.state as Number) Energie13.postUpdate(S0Zaehler13.state as Number / Imp_kWh.state as Number) Energie14.postUpdate(S0Zaehler14.state as Number / Imp_kWh.state as Number)
// Energie pro Tag (kWh) Energie11Day.postUpdate(Energie11.deltaSince(now.withTimeAtStartOfDay) as Number) Energie12Day.postUpdate(Energie12.deltaSince(now.withTimeAtStartOfDay) as Number) Energie13Day.postUpdate(Energie13.deltaSince(now.withTimeAtStartOfDay) as Number) Energie14Day.postUpdate(Energie14.deltaSince(now.withTimeAtStartOfDay) as Number)
end
|
Benötigte Openhab Add-ons aktivieren
Openhab unterstützt die Integration durch vorhandene Standard Technologien wie MQTT und "rrd4j Persistence" zur Umwandlung und Speicherung von Daten.
Beliebig erweiterbar
Dieses Beispiel kann um weitere Geräte, Elemente oder Funktionalität beliebig erweitert werden.
Es könnte z.B. für jeden Energiezähler eine Darstellung der verbrauchten Energie pro Tag erstellt werden. |