micw / tibber-meter-uploader

18 stars 6 forks source link

Tibber Meter Uploader

Dieses Tool verwendet die Tibber-API, welcher unter https://app.tibber.com/v4/gql verfügbar ist, um tägliche Zählerstände automatisiert hochzuladen.

Es kann als Alternative zur manuellen monatlichen Eingabe von Zählerständen verwendet werden und ist nicht als Ersatz für den "Tibber Pulse" gedacht, welcher stündliche Werte übermittelt.

Bauen

Das Projekt kann mit Java und Maven gebaut werden (mvn package). Das Weiteren liegt ein Dockerfile bei, welches ein Packaging via docker build . -t tibber-meter-uploader ermöglicht.

Automatisierte Docker-Builds sind unter ghcr.io/micw/tibber-meter-uploader verfügbar.

Ausführen (docker)

docker run -it --rm \
  -e "READINGS_SOURCE_CLASS=ScriptedRestApiMeterReadingSource" \
  -e "READINGS_SCRIPT_COMMAND=echo test; exit 1" \
  -e TIBBER_LOGIN=me@example.com \
  -e TIBBER_PASSWORD=mysecretpassword \
  ghcr.io/micw/tibber-meter-uploader:master

Ausführen (nativ)

Pre-built jars can be downloaded from https://mega.nz/folder/pi4yjaoI#OXNDwnkfyH6xOEJEdtN3pg . To run it, you need a Java Runtime Environment (JRE) with version 11 or higher installed. Config can be passed as environment variables or by creating application.yaml in the working directory (e.g. next to the downloaded jar file).

Example:

echo "TIBBER_LOGIN: me@example.com" > application.yaml
echo "TIBBER_PASSWORD: mysecretpassword" >> application.yaml
java -Xmx25M -jar tibber-meter-uploader.master.jar 

Memory assignment of the process can be fine tuned by the -Xmx option - adjust it to your needs so that the process does not get an out of memory error.

Konfiguration

Die Konfiguration erfolgt über eine Konfigurationsdatei (application.yaml, siehe Beispiel im Wurzelverzeichnis) oder über Umgebungsvariablen.

Meter Register ID

In einigen Fällen ist bei Tibber nicht der Standard-OBIS-Code 1-1:1.8.0 für den Gesamt-Strombezug hinterlegt sondern 1-1:1.8.0. In dem Fall erscheint beim Start eine Fehlermeldung ähnlich dieser:

Meter 149d2526-6c26-4435-9b2b-0dbfd3251bcd has no register with id '1-0:1.8.0'. Available registers are: 1-1:1.8.0

Über den Konfigurtationsparameter TIBBER_METER_REGISTER_ID = 1-1:1.8.0 kann die Anwendung so konfiguriert werden, dass Zählerstände für diesen OBIS-Code an Tibber übergeben werden.

Eine Liste gängiger OBIS-Codes und deren Bedeutung kann unter https://de.wikipedia.org/wiki/OBIS-Kennzahlen gefunden werden.

Programmablauf

Quellen

Um flexibel zu sein, unterstützt das Tool konfigurierbare Quellen für die Zählerstände.

ScriptedRestApiMeterReadingSource

Diese Quelle führt ein Shell-Script aus, um Zählerstände zu beziehen. Als Ergebnis wird eine Liste mit je einem Datum + Zählerstand in kWh pro Zeile erwartet (getrennt mit Leerzeichen, Semikolon oder Komma).

Beispiel:

2023-01-19 10003
2023-01-20 10114
2023-01-21 10234
2023-01-22 10521

Die folgenden Konfigurationsparameter sind für die Quelle verfügbar:

Innerhalb des Shell-Scriptes stehen die folgenden Umgebnugsvariablen zur Verfügung:

CommandLineMeterReadingSource

Diese Quelle ließt Zählerstände von der Kommandozeile. Es können mehrere Zählerstände im Format datum=zählerstand übergeben werden. Statt des Datums kann auch das Schlüsselwort today verwendet werden, um den aktuellen Tag zu übergeben.

Beispiel:

java -jar tibber-uploader.jar 2023-01-19=10003 2023-01-20=10114 2023-01-21=10234 today=10521

Die folgenden Konfigurationsparameter sind für die Quelle verfügbar:

Es ist sinnvoll, diese Quelle zusammen mit dem Konfigurationsparameter SCHEDULING_ENABLED=false zu verwenden, um das Programm nach dem Upload der Werte zu beenden.

DummyMeterReadingSource

Diese Quelle stellt ein einzelnes statisches Reading zum Testen zur Verfügung.

Die folgenden Konfigurationsparameter sind für die Quelle verfügbar: