Benötigt:
- Python Version 3.9
- Nas/Raspberry PI/PC/Was auch immer
Installation:
* Python Code aus Github rausziehen
* # KONFIG Felder im Code anpassen
* in shell eingeben : pip3 install tibber.py
* CRON Job erzeugen
* Fertig!
Hinweise für CRONTAB:
In Shell eingeben:
crontab -e
Es kommt die Frage welcher Editor, da wählen wir NANO aus und es öffnet sich eine Datei, in der untersten Zeile tragen wir ein:
*/30 * * * * /home/pi/python/cron_job.sh
Diese Zeile sagt: Alle 30Minuten führe das Skript aus.
CTRL-X ->Speichern -> Ende
Anleitung (Siehe auch Github):
## Deutsch
Hierbei handelt es sich um ein kleines Hile-Skript um die Tibber Api auszulesen und per UDP weiter zu senden. Spziell hilfreich ist dies für Loxone, da das Auslesen der Tibber `graphql`-API nicht nativ in der Loxone unterstützt wird. Das Script wandelt die gelesenen Informationen in UDP-Befehle um, die der Beschreibung https://loxwiki.atlassian.net/wiki/s...Tar+hourly+API entsprechen.
### Installation
Zunächst die python version testen. Das Script funktioniert nur mit `python3.9` oder höher. Diese Abhänigkeit kommt nicht aus der Programmierung des Scriptes, sondern von der Library https://github.com/BeatsuDev/tibber.py.
``` bash
❯ python3 --version
Python 3.10.8 # Muss größer oder gleich 3.9 sein!
```
Installation der Abhängigkeit https://pypi.org/project/tibber.py:
``` bash
❯ pip3 install tibber.py
```
Python Pfad identifizieren:
``` bash
❯ which python3
/usr/bin/python3
```
Cronjob anlegen:
``` bash
❯ crontab -e
```
und im Textfeld folgende Zeile einfügen. Der Python Pfad muss mit dem Output von `which python3` übereinstimmen, ebenso der Pfad zum heruntergeladenen Pythonfile `tibberlox.py`.
```
*/30 * * * * /usr/bin/python3 /home/jacknjo/TibberLox/tibberlox.py
```
### Konfiguration
Das Script fragt beim ersten Start nach den Konfigurationsparametern, die für den Zugang zur Tibber-API notwendig sind. Ebenso müssen IP und Port der Zieladresse angegeben werden. Die Informationen werden unter Zugangscode `0400` schreibgeschützt und nur für den Nutzer lesbar auf dem Dateisystem parallel zum `tibberlox.py` Skript unter dem Namen `.tibber_credentials` abgelegt.
Die Datei `.tibber_credentials` kann auch manuell von `demo_tibber_credentials` kopiert, modifiziert und unter dem Namen `.tibber_credentials` abgelegt werden. Damit kann der Konfigurationsschritt umgangen werden.
### Manuelle Benutzung
``` bash
# Ausführbarmachen des scriptes.
chmod +x tibberlox.py
# Ausführung mit default-Parametern.
./tibberlox.py
# Oder für mehr/weniger logging-Informationen.
./tibberlox.py -l DEBUG
# Alternativ für die Hilfe.
./tibberlox.py -h
```
### Benutzung in Loxone
Im Repository ist die `VUI_tibberlox.xml` hinterlegt. Diese beinhaltet alle Werte, die vom Skript gesendet werden. Der Großteil der Werte entspricht der API-Beschreibung von: https://loxwiki.atlassian.net/wiki/s...Tar+hourly+API
Die folgenden Elemente wurden zusätzlich hinzugefügt:
- `date_now_seconds_since_epoch` Kann als Trigger/Zeitstempel verwendet werden.
- `price_stdev` Standardabweichung der Preise des aktuellen Tages
- `data_price_hour_rel_num_negatives` Anzahl der validen negativen Relativwerte (invalide Werte tragen den Wert -1000).
- `data_price_hour_rel_num_positives` Anzahl der validen positiven Relativwerte (invalide Werte tragen den Wert -1000).
Python Code (gibts nun auf GitHub):
--
Änderung V1.0 Initial Github Release:
Code kann nun RELATIV (8h) Preise angeben, Achtung, im XML ist das noch nicht drinnen
--
Ich werde hier keine Änderung posten. Einfach ab und an im Github schauen.
XML Datei für den Import in Loxone Config
VIU_TibberApi.zip
Kommentar