instroomdb

Terug naar index

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

Terug naar index