Verwendung von EVCC als Eingabequelle
EVCC stellt seine aktuellen Werte (u. a. grid.power) über eine REST-API bereit. Ein eigenes,
EVCC-spezifisches Input-Device gibt es in uni-meter nicht – stattdessen wird EVCC wie jede andere
JSON-liefernde HTTP-Quelle über das generische generic-http-Input-Device angebunden.
Die EVCC-API liefert den aktuellen Netzbezug/-einspeisung unter $.grid.power als einzelnen
Gesamtwert (kein Drehstromzähler mit separaten Phasenwerten). Deshalb wird hier nur mit
einem Leistungs-Channel gearbeitet.
Wahl des Phase-Mode
Auch wenn EVCC nur einen Gesamtwert liefert, sollte für die Leistung nicht power-phase-mode = "mono-phase" zusammen mit dem Channel power-total verwendet werden. In diesem Modus kopiert
uni-meter den gelieferten Wert unverändert auf alle drei Phasen, wodurch der resultierende
total_act_power im emulierten Zähler fälschlich verdreifacht erscheint.
Stattdessen wird power-phase-mode = "tri-phase" gesetzt und der volle Wert nur auf einen
einzelnen Phasen-Channel gelegt (z. B. power-l1). Die anderen beiden Phasen bleiben unbelegt
(0), sodass die Summe wieder exakt dem EVCC-Wert entspricht:
Power tri-phase (empfohlen für EVCC)
power-l1 – kompletter EVCC-Wert ($.grid.power)
power-l2 / power-l3 – nicht konfiguriert, bleiben bei 0
Power mono-phase (nicht empfohlen)
power-total – würde zur Verdreifachung führen
Für die Energiewerte (falls benötigt) gilt die gleiche Logik wie bei anderen JSON-Quellen; EVCC
liefert unter energy bzw. je nach Version/Konfiguration ggf. keine kumulierten Zählerstände,
sodass dieser Teil optional bleibt.
Konfiguration
Die anzubindende Channel-Liste wird über json-path-Ausdrücke auf das JSON der EVCC-API
gemapped. Die einfachste /etc/uni-meter.conf, die den aktuellen Netzbezug von EVCC liest,
sieht so aus:
uni-meter {
output = "uni-meter.output-devices.shelly-pro3em"
input = "uni-meter.input-devices.generic-http"
http-server {
port = 80
}
output-devices {
shelly-pro3em {
udp-port = 1010
udp-interface = "0.0.0.0"
min-sample-period = 2000ms
}
}
input-devices {
generic-http {
url = "http://<evcc IP>:7070/api/state"
polling-interval = 10s
power-phase-mode = "tri-phase"
energy-phase-mode = "mono-phase"
channels = [{
type = "json"
channel = "power-l1"
json-path = "$.grid.power"
scale = 1.0
}]
}
}
}
Hinweise
Polling-Intervall: EVCC aktualisiert seine internen Werte standardmäßig nur alle 30 s
(interval in der evcc.yaml). Ein kürzeres polling-interval als das EVCC-Aktualisierungs-
intervall bringt keinen Mehrwert und erzeugt nur unnötige Last auf beiden Seiten. 10 s sind ein
sinnvoller Kompromiss, um kurzfristige Änderungen dennoch zeitnah zu übernehmen.
min-sample-period am Output-Device: Falls der abnehmende Speicher/Wechselrichter sehr
häufig abfragt, kann min-sample-period (z. B. 2000ms) im jeweiligen Output-Device
konfiguriert werden, um ein zu starkes Flattern der ausgelieferten Werte zu vermeiden.
Vorzeichen: Wie bei den anderen generic-http-Quellen folgt uni-meter der Vorzeichen-
konvention des gelieferten Werts unverändert. Bei EVCC ist grid.power üblicherweise negativ
bei Einspeisung und positiv bei Bezug – ggf. mit scale = -1.0 anpassen, falls das gewünschte
Ausgabegerät die umgekehrte Konvention erwartet.
Verwendung von EVCC als Eingabequelle
EVCC stellt seine aktuellen Werte (u. a. grid.power) über eine REST-API bereit. Ein eigenes,
EVCC-spezifisches Input-Device gibt es in uni-meter nicht – stattdessen wird EVCC wie jede andere
JSON-liefernde HTTP-Quelle über das generische generic-http-Input-Device angebunden.
Die EVCC-API liefert den aktuellen Netzbezug/-einspeisung unter $.grid.power als einzelnen
Gesamtwert (kein Drehstromzähler mit separaten Phasenwerten). Deshalb wird hier nur mit
einem Leistungs-Channel gearbeitet.
Wahl des Phase-Mode
Auch wenn EVCC nur einen Gesamtwert liefert, sollte für die Leistung nicht power-phase-mode = "mono-phase" zusammen mit dem Channel power-total verwendet werden. In diesem Modus kopiert
uni-meter den gelieferten Wert unverändert auf alle drei Phasen, wodurch der resultierende
total_act_power im emulierten Zähler fälschlich verdreifacht erscheint.
Stattdessen wird power-phase-mode = "tri-phase" gesetzt und der volle Wert nur auf einen
einzelnen Phasen-Channel gelegt (z. B. power-l1). Die anderen beiden Phasen bleiben unbelegt
(0), sodass die Summe wieder exakt dem EVCC-Wert entspricht:
Power tri-phase (empfohlen für EVCC)
power-l1 – kompletter EVCC-Wert ($.grid.power)
power-l2 / power-l3 – nicht konfiguriert, bleiben bei 0
Power mono-phase (nicht empfohlen)
power-total – würde zur Verdreifachung führen
Für die Energiewerte (falls benötigt) gilt die gleiche Logik wie bei anderen JSON-Quellen; EVCC
liefert unter energy bzw. je nach Version/Konfiguration ggf. keine kumulierten Zählerstände,
sodass dieser Teil optional bleibt.
Konfiguration
Die anzubindende Channel-Liste wird über json-path-Ausdrücke auf das JSON der EVCC-API
gemapped. Die einfachste /etc/uni-meter.conf, die den aktuellen Netzbezug von EVCC liest,
sieht so aus:
Hinweise
Polling-Intervall: EVCC aktualisiert seine internen Werte standardmäßig nur alle 30 s
(interval in der evcc.yaml). Ein kürzeres polling-interval als das EVCC-Aktualisierungs-
intervall bringt keinen Mehrwert und erzeugt nur unnötige Last auf beiden Seiten. 10 s sind ein
sinnvoller Kompromiss, um kurzfristige Änderungen dennoch zeitnah zu übernehmen.
min-sample-period am Output-Device: Falls der abnehmende Speicher/Wechselrichter sehr
häufig abfragt, kann min-sample-period (z. B. 2000ms) im jeweiligen Output-Device
konfiguriert werden, um ein zu starkes Flattern der ausgelieferten Werte zu vermeiden.
Vorzeichen: Wie bei den anderen generic-http-Quellen folgt uni-meter der Vorzeichen-
konvention des gelieferten Werts unverändert. Bei EVCC ist grid.power üblicherweise negativ
bei Einspeisung und positiv bei Bezug – ggf. mit scale = -1.0 anpassen, falls das gewünschte
Ausgabegerät die umgekehrte Konvention erwartet.