{"id":276,"date":"2021-05-27T17:24:48","date_gmt":"2021-05-27T15:24:48","guid":{"rendered":"https:\/\/jbsoft.nl\/site\/?page_id=276"},"modified":"2021-06-08T09:19:40","modified_gmt":"2021-06-08T07:19:40","slug":"influxdb","status":"publish","type":"page","link":"https:\/\/jbsoft.nl\/site\/nl\/influxdb\/","title":{"rendered":"instroomdb"},"content":{"rendered":"\n<p><a href=\"https:\/\/jbsoft.nl\/site\/dutch-only\/\">Terug naar index<\/a><\/p>\n\n\n\n<p>Met InfluxDB is het mogelijk om de data van je zonnepanelen en slimme meter + combinatie voor langere tijd te bewaren. Het is mogelijk om over deze gegevens grafieken te tekenen en te presenteren met een bijzondere performance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Influxdb opzetten<\/h2>\n\n\n\n<p>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 uitleggen hoe je omnikdatalogger kunt aansluiten op InfluxDB 1.7 (oude versie) en hoe het werkt bij InfluxDB 2.0 (huidige actuele versie).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">InfluxDB 1.7 opzetten<\/h3>\n\n\n\n<p>Dit 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.<\/p>\n\n\n\n<p>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 gebruik via volumes koppelen.<\/p>\n\n\n\n<p>Ik er er gemakshalve even vanuit dat onder Linux werken, dat kan ook de Ubuntu client zijn binnen Windows 10 met WSL2.<\/p>\n\n\n\n<p>Vanuit de homedir (~) maken we 2 submappen aan onder de map ~\/infuxdb, ~\/infuxdb\/data en ~\/infuxdb\/config.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir ~\/influxdb ~\/influxdb\/data ~\/influxdb\/config<\/code><\/pre>\n\n\n\n<p>Nu maken we een initi\u00c3\u00able configuratie aan in ~\/influxdb\/config\/influxdb.conf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --rm influxdb:1.7 \\\ninfluxd config | sudo tee ~\/influxdb\/config\/influxdb.conf &gt; \/dev\/null<\/code><\/pre>\n\n\n\n<p>We maken nu een container met de naam influxdb die we op de gemaakte mappen koppelen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d -p 8086:8086 \\\n      --name influxdb \\\n      -v $PWD\/influxdb\/data:\/var\/lib\/influxdb \\\n      -v $PWD\/influxdb\/config:\/etc\/influxdb \\\n      influxdb:1.7<\/code><\/pre>\n\n\n\n<p>Nu influx draait kunnen we een database aanmaken. Daarvoor openen we een BASH shell (command prompt) in de container, geven het commando <code>influx<\/code> en maken vervolgens een database aan met de naam <code>omnik<\/code>. Uiteraard kun je de database ook een andere naam geven. Als we klaar zijn verlaten we met exit weer de shell. Met <code>SHOW DATABASES<\/code> kun je de bestaande databases opvragen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it influxdb \/bin\/bash\n\nroot@3f765a94ec6c:\/# <strong>influx<\/strong>                                                                                                                                                                                                                  Connected to http:\/\/localhost:8086 version 1.7.11                                                                                                                                                                                            InfluxDB shell version: 1.7.11                                                                                                                                                                                                               &gt; <strong>SHOW DATABASES<\/strong>                                                                                                                                                                                                                             name: databases                                                                                                                                                                                                                              name                                                                                                                                                                                                                                         ----                                                                                                                                                                                                                                         _internal\n&gt; <strong>CREATE DATABASE omnik<\/strong>\n&gt; <strong>exit<\/strong>\nroot@3f765a94ec6c:\/# <strong>exit<\/strong><\/code><\/pre>\n\n\n\n<p>Nu kan er data worden gelogd naar de database <code>omnik<\/code> (zonder authenticatie). Met Influx DB 1.7 is authenticatie niet verplicht, maar wel aan te raden. Ik zal dit deel hier verder niet uitleggen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">InfluxDB 2.0 opzetten<\/h3>\n\n\n\n<p>Dit 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.<\/p>\n\n\n\n<p>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 gebruik via volumes koppelen.<\/p>\n\n\n\n<p>Ik er er gemakshalve even vanuit dat onder Linux werken, dat kan ook de Ubuntu client zijn binnen Windows 10 met WSL2.<\/p>\n\n\n\n<p>Vanuit de homedir (~) maken we 2 submappen aan onder de map ~\/infuxdb2, ~\/infuxdb2\/data en ~\/infuxdb2\/config.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir ~\/influxdb2 ~\/influxdb2\/data ~\/influxdb2\/config<\/code><\/pre>\n\n\n\n<p>Nu maken we een initi\u00c3\u00able configuratie aan in ~\/influxdb2\/config\/config.yml.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --rm influxdb:latest \\\ninfluxd print-config | sudo tee ~\/influxdb2\/config\/config.yml \\\n&gt; \/dev\/null<\/code><\/pre>\n\n\n\n<p>We maken nu een container met de naam influxdb2 die we op de gemaakte mappen koppelen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d -p 8086:8086 \\\n      --name influxdb2 \\\n      -v $PWD\/influxdb2\/config:\/etc\/influxdb2 \\\n      -v $PWD\/influxdb2\/data:\/var\/lib\/influxdb2 \\\n      influxdb:latest<\/code><\/pre>\n\n\n\n<p>Nu influx draait kunnen we een initi\u00c3\u00able database en admin account aanmaken. In dit voorbeeld gebruik ik de gebruikersnaam <code>admin<\/code> en wachtwoord <code>pwd4odl!<\/code> en organisatie <code>jbsoft<\/code> als voorbeeld, pas dit aan!<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>In Influxdb 2.0 wordt niet meer over databases gesproken maar <code>buckets<\/code>.<\/p><\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it influxdb2 influx setup \\\n      --username admin \\\n      --password pwd4odl! \\\n      --org jbsoft \\\n      --bucket omnik<\/code><\/pre>\n\n\n\n<p>Nu verschijnt de vraag of je akkoord bent met de voorgestelde aanpassing. Bevestig met <code>[ENTER]<\/code>en <code>y<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Welcome to InfluxDB 2.0!\nPlease type your retention period in hours.\nOr press ENTER for infinite: <em><strong>{ENTER}<\/strong><\/em>\n\n\nYou have entered:\n  Username:          admin\n  Organization:      jbsoft\n  Bucket:            omnik\n  Retention Period:  infinite\nConfirm? (y\/n): <strong>y<\/strong>\n\nConfig default has been stored in \/etc\/influxdb2\/influx-configs.\nUser    Organization    Bucket\nadmin   jbsoft          omnik<\/code><\/pre>\n\n\n\n<p>Je kunt nu <code>https:\/\/localhost:8086<\/code> openen in je browser en met het admin account inloggen. Voor de nieuwe gebruiker is ook een token aangemaakt (dit is wat anders dan het <code>jwt_token<\/code> 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 strict nodig zijn.<\/p>\n\n\n\n<p>Omnik data logger 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. Daarvoor hebben we eerst het bucket ID nodig van de zojuist aangemaakte bucket.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>~$ docker exec -it influxdb2 influx bucket list                                                                                                                                                                                  ID                      Name            Retention       Shard group duration    Organization ID                                                                                                                                              d440efcf4c4af65d        _monitoring     168h0m0s        24h0m0s                 173dad67c9c4a4f2                                                                                                                                             a2a540de5d9d3cd7        _tasks          72h0m0s         24h0m0s                 173dad67c9c4a4f2                                                                                                                                             <strong>8dc395acb8164833        <\/strong>omnik           infinite        168h0m0s                173dad67c9c4a4f2<\/code><\/pre>\n\n\n\n<p>In het voorbeeld is ons bucket ID <strong>8dc395acb8164833<\/strong>. Nu kunnen we een account met schrijfrechten en een retentie policy mapping aanmaken. Als account gebruiken we gebruiker <code>omnik<\/code> met wachtwoord <code>Datal0ggerPwd!<\/code> Wijzig dit!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it influxdb2 \\\ninflux v1 auth create -o jbsoft --username omnik \\\n--password Datal0ggerPwd! --write-bucket 8dc395acb8164833\n\ndocker exec -it influxdb2 \\\ninflux v1 dbrp create --bucket-id 8dc395acb8164833 \\\n--db omnik --rp infinite<\/code><\/pre>\n\n\n\n<p>Nu kan er data worden gelogd naar de database <code>omnik<\/code> (met basic authenticatie gebruiker <code>omnik<\/code> met wachtwoord <code>Datal0ggerPwd!<\/code>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Omnikdatalogger configureren<\/h2>\n\n\n\n<p>Een voorbeeld configuratie voor influxdb (via de v1 API) ziet er als volgt uit (voorbeeld gaat uit van <a href=\"https:\/\/jbsoft.nl\/site\/installatie-van-omnik-data-logger\/\">tcpclient<\/a>, maar dat kan ook localproxy of solarmanpv zijn). In het voorbeeld is basic authenticatie gebruikt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>omnikdatalogger:\n  module: omniklogger\n  class: HA_OmnikDataLogger\n  timezone: Europe\/Amsterdam\n  city: Amsterdam\n  interval: 360\n  persistant_cache_file: C:\/users\/<em>{gebruikersnaam}<\/em>\/.omnik\/persistant_cache.json\n\n  <strong>loglevel: DEBUG<\/strong>\n\n<strong>  plugins:\n    client: tcpclient<\/strong>\n    <strong>output:<\/strong>\n    - <strong>influxdb\n\n  client.tcpclient:\n    plant_id_list:\n      - '123'\n<\/strong>\n  plant.123:\n    inverter_address: 192.168.1.100\n    logger_sn: 501234567\n    inverter_sn: NLDN302123456789\n\n<strong>  influxdb:\n    host: 127.0.0.1\n    port: 8086\n    username: omnik\n    password: Datal0ggerPwd!\n    database: omnik\n    <\/strong>use_temperature: true<strong>\n<\/strong><\/code><\/pre>\n\n\n\n<p>Als een slimme meter aanwezig is, dan 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 e.d.<\/p>\n\n\n\n<p><a href=\"https:\/\/jbsoft.nl\/site\/dutch-only\/\">Terug naar index<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 deze gegevens te tekenen en te vertonen met een bijzondere uitvoering. Influxdb opzetten Als je al een Influx database hebt draaien, dan ga ik er \u2026 <a href=\"https:\/\/jbsoft.nl\/site\/nl\/influxdb\/\" class=\"more-link\">Lees verder <span class=\"screen-reader-text\">&quot;Instroomdb&quot;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-276","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/pages\/276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/comments?post=276"}],"version-history":[{"count":9,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/pages\/276\/revisions"}],"predecessor-version":[{"id":365,"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/pages\/276\/revisions\/365"}],"wp:attachment":[{"href":"https:\/\/jbsoft.nl\/site\/nl\/wp-json\/wp\/v2\/media?parent=276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}