Met InfluxDB is het mogelijk om de data van je zonnepanelen en slanke meter + combinatie voor lange tijd te bewaren. Het is mogelijk om over deze grafieken te tekenen en te presenteren met een bijzondere performance.
Influxdb opzetten
Als je al een Influx-database hebt draaien, dan ga ik er van uit dat je weet wat je doet. Weet in ieder geval dat Omnik Datalogger nu alleen nog de v1 API ondersteund. Ik zal proberen hoe je omnikdatalogger kunt aansluiten op InfluxDB 1.7 (oude versie) en hoe het werkt bij InfluxDB 2.0 (huidige actuele versie).
InfluxDB 1.7 opzetten
Deze how-to maakt gebruik van Docker. Het installeren van Docker zelf laat ik buiten beschouwing. Het is ook mogelijk om Docker Desktop te installeren op Windows 10.
Waar je uiteindelijk je configuratie bestanden en data opslaat is aan jou, maar een SSD werkt wel het beste. Met docker moet je mappen die je hiervoor gebruikt via volumes koppelen.
Ik er er gemakshalve zelfs vanuit dat onder Linux werken, dat kan ook de Ubuntu-client zijn binnen Windows 10 met WSL2.
Vanuit de homedir (~) maken we 2 submappen aan onder de map ~/infuxdb, ~/infuxdb/data en ~/infuxdb/config.
mkdir ~/influxdb ~/influxdb/data ~/influxdb/config
Nu maken we een initiële configuratie aan in ~/influxdb/config/influxdb.conf
docker run --rm influxdb:1.7 \ influxd config | sudo tee ~/influxdb/config/influxdb.conf > /dev/null
We maken nu een container met de naam influx die we op de gemaakt werkend.
docker run -d -p 8086:8086 \ --name influxdb \ -v $PWD/influxdb/data:/var/lib/influxdb \ -v $PWD/influxdb/config:/etc/influxdb \ influxdb:1.7
Nu influx draait kunnen we een database aanmaken. te openen we een BASH-shell (opdrachtprompt) in de container, geef het commando toestroom
en vervolgens een database aan met de naam maken omnik
. Natuurlijk kun je de database ook een andere naam geven. Als we klaar zijn verlaten we de uitgang weer de shell. leerde kennen TOON DATABANKEN
kun je de bestaande databases opvragen.
docker exec -it influxdb /bin/bash root@3f765a94ec6c:/# toestroom Verbonden met http://localhost:8086 versie 1.7.11 InfluxDB shell-versie: 1.7.11 > TOON DATABANKEN naam: database naam ---- _internal > MAAK DATABASE omnik
> Uitgang
root@3f765a94ec6c:/# Uitgang
Nu kan er data worden gelogd naar de database omnik
(zonder authenticatie). Met Influx DB 1.7 is authenticatie niet verplicht, maar wel aan te raden. Ik zal dit deel hier verder niet experimenteel.
InfluxDB 2.0 opzetten
Deze how-to maakt gebruik van Docker. Het installeren van Docker zelf laat ik buiten beschouwing. Het is ook mogelijk om Docker Desktop te installeren op Windows 10.
Waar je uiteindelijk je configuratie bestanden en data opslaat is aan jou, maar een SSD werkt wel het beste. Met docker moet je mappen die je hiervoor gebruikt via volumes koppelen.
Ik er er gemakshalve zelfs vanuit dat onder Linux werken, dat kan ook de Ubuntu-client zijn binnen Windows 10 met WSL2.
Vanuit de homedir (~) maken we 2 submappen aan onder de map ~/infuxdb2, ~/infuxdb2/data en ~/infuxdb2/config.
mkdir ~/influxdb2 ~/influxdb2/data ~/influxdb2/config
Nu maken we een initiële configuratie aan in ~/influxdb2/config/config.yml.
docker run --rm influxdb:latest \ influxd print-config | sudo tee ~/influxdb2/config/config.yml \ > /dev/null
We maken nu een container met de naam influxb2 die we gemaakt hebben gemaakt koppelen.
docker run -d -p 8086:8086 \ --name influxdb2 \ -v $PWD/influxdb2/config:/etc/influxdb2 \ -v $PWD/influxdb2/data:/var/lib/influxdb2 \ influxdb:latest
Nu influx draait kunnen we een initiele database en admin account aanmaken. In dit voorbeeld gebruik ik de gebruikersnaam beheerder
en wachtwoord pwd4odl!
en organisatie jbsoft
als voorbeeld, pas dit aan!
In Influxdb 2.0 wordt niet meer over databases gesproken maar
emmers
.
docker exec -it influxdb2 influx setup \ --gebruikersnaam admin \ --wachtwoord pwd4odl! \ --org jbsoft \ --bucket omnik
Nu verschijnt de vraag van je akkoord bent met de aanpassing. Bevestig met [BINNENKOMEN]
en ja
:
Welkom bij InfluxDB 2.0! Typ uw bewaartermijn in uren. Of druk op ENTER voor oneindig: {BINNENKOMEN}
U heeft ingevuld: Gebruikersnaam: admin Organisatie: jbsoft Bucket: omnik Bewaartermijn: oneindig Bevestigen? (j/n): ja
De standaardconfiguratie is opgeslagen in /etc/influxdb2/influx-configs. Gebruikersorganisatie Bucket admin jbsoft omnik
je kunt nu https://localhost:8086
openen in je browser en met het admin account inloggen. Voor de nieuwe gebruiker is ook een token ontwikkeld (dit is wat anders dan het jwt_token
uit Influxdb 1.7.). Dit token is te gebruiken voor algemene admin toegang vanaf andere applicaties. Het advies is om tokens voor externe applicaties alleen de rechten te geven die strikt nodig zijn.
Omnik datalogger kan nog geen gebruik maken van deze nieuwe token authenticatie en gebruikt nog de API van versie 1. Om toch data te kunnen loggen moeten we basic authenticatie inrichten en een retentie policy mapping aanmaken. eerst hebben we eerst de bucket ID nodig van de aangemaakte bucket.
~$ docker exec -it influxdb2 influx bucket list ID Naam Retentie Shard groepsduur Organisatie ID d440efcf4c4af65d _monitoring 168h0m0s 24h0m0s 173dad67c9c4a4f2 a2a540de5d9d3cd7 _tasks 72h0m0s 1 24h067 8dc395acb8164833 omnik oneindig 168h0m0s 173dad67c9c4a4f2
In het voorbeeld is ons bucket ID 8dc395acb8164833. Nu kunnen we een account met schrijfrechten en een retentie policy mapping aanmaken. Als account gebruiken wij gebruikers omnik
met wachtwoord Datal0ggerPwd!
Wijzig dit!
docker exec -it influxdb2 \ influx v1 auth create -o jbsoft --username omnik \ --password Datal0ggerPwd! --write-bucket 8dc395acb8164833 docker exec -it influxdb2 \ influx v1 dbrp create --bucket-id 8dc395acb8164833 \ --db omnik --rp oneindig
Nu kan er data worden gelogd naar de database omnik
(met basic authenticatie gebruiker omnik
met wachtwoord Datal0ggerPwd!
)
Omnikdatalogger-configuratie
Een voorbeeld configuratie voor influxdb (via de v1 API) ziet er als volgt uit (via de v1 API) tcpclient, maar dat kan ook localproxy of solarmanpv zijn). In het voorbeeld is basic authenticatie gebruikt:
omnikdatalogger: module: omniklogger klasse: HA_OmnikDataLogger tijdzone: Europa/Amsterdam stad: Amsterdam interval: 360 persistant_cache_file: C:/users/{gebruikersnaam}/.omnik/aanhoudende_cache.json
logniveau: DEBUG
plug-ins: klant: tcpclient
uitgang:
- influxdb client.tcpclient: plant_id_list: - '123'
plant.123: inverter_adres: 192.168.1.100 logger_sn: 501234567 inverter_sn: NLDN302123456789
influxdb: host: 127.0.0.1 poort: 8086 gebruikersnaam: omnik wachtwoord: Datal0ggerPwd! database: omnik
use_temperature: waar
Als een slanke meter aanwezig is, wordt elke 10 seconden een update gelogd. Elke keer wanneer er een update is van de zonnepanelen wordt er ook een update gestuurd van de gecombineerde data, zoals werkelijk verbruik ed