EnergyLIVE - EVU Zählerdaten (Smartmeter) auslesen und in Loxone integrieren
Einrichten von EnergyLIVE Interface (wenn beim Smartmeter WLAN verfügbar ist) oder gegenebenfalls mit dem Interace + Gateway (wenn kein WLAN beim Smartmeter verfügbar ist = Interface zu Gateway via LoRa (long range und dann vom gateway ins www mit WLAN) laut Anleitung von Smartenergy.
https://www.smartenergy.at/energylive
Für das EnergyLIVE muss man kein Kunde bei Energie Steiermark - “Smartenergy” sein!
Ist dies mal eingerichtet, kann man in der Smartenergy App (und Kundenportal) sich die aktuelle Leistung (Bezug und Einspeisung) im 10 Sekunden Takt live ansehen.
Kleine Intervalle sind nicht möglich.
Einrichtung des API Datenabrufes:
Möglich sind die OBIS-Daten 1.07, 1.08, 2.07 und 2.08. Also aktuelle Leistung Bezug / Einspeisung und aktueller Zählerstand Bezug / Einspeisung.
OBIS Codes … https://de.wikipedia.org/wiki/OBIS-Kennzahlen
Abruf der Daten über die API: “curl -X GET -k -v -H "X-API-KEY: xxxxx" https://backend.energylive.e-steiermark.com/api/v1/devices/yyyy/measurements/latest”
xxxx: API KEY
yyyy: Interface-ID (oben der unkenntliche Bereich im Screenshot)
API Key:
Den API Key erhält man entweder in der Smartenergy-App oder im Kundenportal “API KEY VERWALTEN”
Erster Test:
Zum Testen kann man in der Eingabeaufforderung oder anders genannt “command prompt” - Windows taste - CMD - enter den API Aufruf testen.
Läuft alles korrekt, kommt als Ergebnis folgendes raus …
10700=1.07= Leistung Bezug (in W)
10800=1.08= Zählerstand Bezug (in Wh)
usw.
Integration in Loxone:
Der Miniserver kann keinen curl Abruf bewerkstelligen, deshalb habe ich mich dem Loxberry-Plugin “ANY Plugin” bedient.
Hier wird ein virtueller Ausgangsbefehl verwendet, der den Loxberry ein bash-script abrufen lässt.
Dieses script sendet die Daten loxberryintern an MQTT (Topic bei mir “Energylive), die Subscripion “Energylive” muss man in MQTT manuell erstellen.
Zum Script:
getdata.sh - einfach mit Notepad oder ähnlichem erstellen
#!/bin/bash
OUTPUT="$(curl GET -k -v -H "X-API-KEY: API XXXX" https://backend.energylive.e-steiermark.com/api/v1/devices/I-10082023-YYYY/measurements/latest)"
echo publish Energylive $OUTPUT > /dev/udp/127.0.0.1/11884
echo publish Energylive $OUTPUT
XXXX=API Key aus der App/Kundenportal
YYYY=Interface ID
Dazu habe ich einen eigenen Ordner erstellt und das script dort abgelegt.
Achtung die Rechte müssen auf “mindestens” 774 gestellt werden, sonst kann der script nicht ausgeführt werden.
Es ist in MQTT nötig, das Expand JSON Data NICHT anzuhaken.
Das ist derzeit ein ungelöstes Problem innerhalb von Loxberrys MQTT.
Virtueller Ausgangsbefehl:
Befehl bei EIN:
EnergyLIVE off command /opt/loxberry/Energylive/getdata.sh
Für eine Hilfe was das Any-Plugin wie macht, bitte hier nachlesen:
https://wiki.loxberry.de/plugins/any_plugin/start
Links ist ein Impulsgeber, der das script alle 10 Sekunden ausführen lässt.
Jetzt sollte in MQTT incoming overview bereits etwas sichtbar sein:
Jetzt benötigt man noch virtuelle Eingangsbefehle um aus dem Haufen die richtigen Daten rauszufischen.
Befehlserkennungen … wie erwähnt alles in W bzw. Wh
Bezug Zählerstand: \imeasurement":"0100010800","timestamp\i\ivalue":\i\v
Bezug Leistung: \imeasurement":"0100010700","timestamp\i\ivalue":\i\v
Einspeisung Zählerstand: \imeasurement":"0100020800","timestamp\i\ivalue":\i\v
Einspeisung Leistung: \imeasurement":"0100020700","timestamp\i\ivalue":\i\v
Loxone App mit Kundenportal im Hintergrund - viel Erfolg!