[erledigt] Hilfe beim persistieren mit influxdb2

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

[erledigt] Hilfe beim persistieren mit influxdb2

Beitrag von scotty »

Hallo,

seit der Umstellung auf OH3 habe ich dieses Thema völlig außen vor gelassen. Inzwischen mussten allerdings verschiedene Dummy-Items anlegen werden, die bei jedem Neustart keine Werte mehr beinhalten und "NULL" anzeigen. Dieser Zustand soll nun korrigiert werden.

Bei mir läuft OH3.3 und Influx2 im Docker, das entsprechende Binding (um die Zusammenarbeit der beiden Programme zu ermöglichen) habe ich bereits installiert und konfiguriert. An dieser Stelle benötige ich jetzt mal Hilfe und wenn sich jemand finden sollte der so arbeitet wie ich es plane, wäre es fantastisch.
Ich müsste jetzt erfahren was zu tun ist, um die Werte aus den Dummy-Items in regelmäßigen Abständen zu erfassen, damit sie anschließend an Influbdb2 weitergegeben werden. Nach einem Neustart von OH3 sollten die Werte dann wieder zur Verfügung stellen.

Kann mir jemand Tipps dazu geben?

PS.

Könnte man so vorgehen:

Code: Alles auswählen

Strategies {
    every60Seconds : "0/60 * * * * ?"
}
Items {
    * : strategy = everyChange, everyUpdate, every60Seconds
}
influxdb.persist (wo wird die noch gespeichert?)
Zuletzt geändert von scotty am 13. Okt 2022 08:58, insgesamt 1-mal geändert.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: Hilfe beim persistieren mit influxdb2

Beitrag von KellerK1nd »

Hast du die Datei influxdb.services im Ordner services auf Influxdb2 angepasst? Da war was mit buckets und einem Token. Ich hatte das mal am Laufen, leider habe ich meine alten Daten nicht in die neue Datenbank bekommen, das brach immer mit Fehler ab und daher dümpel ich noch mit der 1.8 rum.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Hilfe beim persistieren mit influxdb2

Beitrag von scotty »

angepasst habe ich schon. Allerdings bin ich mir nicht sicher, ob alles vollständig ist:

Code: Alles auswählen

# The database URL, e.g. http://127.0.0.1:8086 or https://127.0.0.1:8084 .
# Defaults to: http://127.0.0.1:8086
# url=http(s)://<host>:<port>

# The name of the database user, e.g. openhab.
# Defaults to: openhab
# user=<user>

# The password of the database user.
# password=

# The name of the database, e.g. openhab.
# Defaults to: openhab
# db=<database>

url=http://127.0.0.1:8086
user=openhab
password=openhab
db=openhab_db
retentionPolicy=autogen
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Hilfe beim persistieren mit influxdb2

Beitrag von scotty »

So, ich habe influxdb2 mit dieser docker-compose erst einmal zum Laufen gebracht:

Code: Alles auswählen

 
 version: "3.5"
services:
  influxdb2:
    image: influxdb:latest
    container_name: influxdb2
    ports:
      - "8086:8086"
    volumes:
      - "/volume1/docker/influxdb/conf:/etc/influxdb2"
      - "/volume1/docker/influxdb/data:/var/lib/influxdb2"
    environment:
      - DOCKER_INFLUXDB_INIT_MODE=setup
      - DOCKER_INFLUXDB_INIT_USERNAME=ich
      - DOCKER_INFLUXDB_INIT_PASSWORD=geheim
      - DOCKER_INFLUXDB_INIT_ORG=hausAutomation
      - DOCKER_INFLUXDB_INIT_BUCKET=oh3
      - DOCKER_INFLUXDB_INIT_ADMIN_Token=nachträglich in influx2 generiert
      - INFLUXDB_DB=openHAB3_DB
      - INFLUXDB_HTTP_AUTH_ENABLED=TRUE
      - INFLUXDB_READ_USER=grafana
      - INFLUXDB_READ_USER_PASSWORD=grafana
      - INFLUXDB_WRITE_USER=openhab
      - INFLUXDB_WRITE_USER_PASSWORD=openhab
    entrypoint: ["./entrypoint.sh"]
    depends_on:
      - influxdb
    labels:
      - "com.centurylinklabs.watchtower.enable=true" 
Die influx-configs sieht momentan so aus:

Code: Alles auswählen

[default]
  url = "http://localhost:8086"
  token = "nachträglich in influx2 generiert"
  org = "hausAutomation"
  active = true
# 
# [eu-central]
#   url = "https://eu-central-1-1.aws.cloud2.influxdata.com"
#   token = "XXX"
#   org = ""
# 
# [us-central]
#   url = "https://us-central1-1.gcp.cloud2.influxdata.com"
#   token = "XXX"
#   org = ""
# 
# [us-west]
#   url = "https://us-west-2-1.aws.cloud2.influxdata.com"
#   token = "XXX"
#   org = ""
Die influxdb.cfg habe ich weiter oben schon einmal gepostet und eine influxdb.persist existiert ebenfalls.

Meine aktuelles Problem ist allerdings dieses:

Code: Alles auswählen

2022-10-06 02:37:01.540 [ERROR] [internal.JSONResponseExceptionMapper] - Unexpected exception occurred while processing REST request.
com.influxdb.exceptions.BadRequestException: failed to decode request body: organization name "openhab_db" not found
Es fehlt also die Default-Datenbank "openhab_db" und ich komme einfach nicht weiter. Wo und wie wird sie in influxdb2 angelegt?

Kann mir dabei jemand helfen?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: Hilfe beim persistieren mit influxdb2

Beitrag von KellerK1nd »

Du hast deine Datenbank so benannt:

Code: Alles auswählen

INFLUXDB_DB=openHAB3_DB
Aber openHAB will in

Code: Alles auswählen

openhab_db
schreiben, die gibt es natürlich nicht. Entweder du änderst den Namen der Datenbank in der Compose-Datei ab, oder du musst in deiner Service Datei noch angeben wo openHAB reinschreiben soll.

So sieht mein Template der influxdb.service aus:

Code: Alles auswählen

# InfluxDB database version V1 for 1.X and V2 for 2.x
# Default = V1
#version=V2

# The database URL, e.g. http://127.0.0.1:8086 or https://127.0.0.1:8084 .
# Defaults to: http://127.0.0.1:8086
#url=http://192.168.178.219:8086

# The name of the database user, e.g. openhab.
# Defaults to: openhab
##user=openhab

# The password of the database user.
#password=************************

#token to authenticate the database (only for V2) 
#token=******************************************************************************
# name of the database for V1 and name of the organization for V2
# Defaults to: openhab
#db=openhab

#retentionPolicy=openhab
Ich hatte auch ewig gebraucht bis V2 mal lief, habe jedoch das ganze über einen LXC Container gemacht, das ist für mich einfacher, da ich mit der Docker-Shell noch immer nicht klar komme.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Hilfe beim persistieren mit influxdb2

Beitrag von scotty »

@KellerK1nd

Kann mich leider jetzt erst wieder dazu melden, da wir fast 24 Stunden Internet & Telefonausfall hatten (Vodafone).

Inzwischen habe ich aber auch den Fehler korrigiert, nur funktioniert das mit der influxdb immer noch nicht. Ich bin aber auch ein wenig gefrustet, denn eine Anleitung finde ich nirgendwo.
Bei mir laufen die Programme auf einer Synology DS918+, vielleicht macht das ja auch noch einen Unterschied. Ich werde wohl erst einmal eine Pause einlegen und die Geschichte dann später noch einmal aufgreifen.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Hilfe beim persistieren mit influxdb2

Beitrag von udo1toni »

Du darfst in der influx.cfg nicht localhost (oder 127.0.0.1) verwenden, sondern musst die normale IP der Synology angeben. Jeder Container hat ein eigenes Netzwerk, und selbst wenn der das Host Netzwerk mitbenutzt, führt localhost (bzw. 127.0.0.1) ausschließlich in den Container selbst. Host und Container sind aus Netzwerksicht getrennte Geräte.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Hilfe beim persistieren mit influxdb2

Beitrag von scotty »

wenn wir dich nicht hätten, lieber udo :D Ich habe aber auch noch andere Dinge zum Überarbeiten in meiner Konfiguration gefunden und dazu inzwischen auch eine hoffentlich brauchbare Anleitung:

https://www.laub-home.de/wiki/InfluxDB_ ... stallation
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Hilfe beim persistieren mit influxdb2

Beitrag von scotty »

Inzwischen hab ich sehr viel Zeit damit verbracht, influxdb2 (Version 2.4) in Verbindung mit OH3.3 zum Laufen zu bringen. Leider ohne Erfolg und deshalb suche ich nach anderen Möglichkeiten.
Es geht momentan nur darum, verschiedene Werte meiner Anruferliste bzw. den Status verschiedener Batterien zu speichern, um sie bei einem Neustart wieder zur Verfügung zu haben.
An anderer Stelle habe ich gelesen, dass Udo dies über MySQL gelöst hat. Nun stellt sich für mich die Frage, ob ich das bei mir über Docker ähnlich lösen kann bzw. sind die Daten bei einem Neustart von oh3 wieder einzulesen?

Ich würde mich freuen, wenn Udo mir an dieser Stelle Hilfestellung gibt, denn mit MySQL kenne ich mich nun gar nicht aus. Oder sind eventuell noch andere Möglichkeiten zu empfehlen?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Hilfe beim persistieren mit influxdb2

Beitrag von udo1toni »

Also, ich habe das hier mal durchgespielt, und zumindest bekomme ich Daten in einen InfluxDB2.4 Container rein. Folgende Schritte sind dazu nötig:
1. In Portainer einen Stack anlegen.

Code: Alles auswählen

version: '3'
services:
  influxdb:
    image: influxdb:latest
    volumes:
      # Mount for influxdb data directory and configuration
      - /portainer/Files/AppData/Config/influxdb2:/var/lib/influxdb2:rw
    ports:
      - "8086:8086"

# Ab hier unnötiger Ballast :)

  # Use the influx cli to set up an influxdb instance. 
  influxdb_cli:
    links:
      - influxdb
    image: influxdb:latest
    volumes:
      # Mount for influxdb data directory and configuration
      - /portainer/Files/AppData/Config/influxdb2:/var/lib/influxdb2:rw
      - ./ssl/influxdb-selfsigned.crt:/etc/ssl/influxdb-selfsigned.crt:rw
      - ./ssl/influxdb-selfsigned.key:/etc/ssl/influxdb-selfsigned.key:rw
    environment: 
       # Use these same configurations parameters in your telegraf configuration, mytelegraf.conf.
      - DOCKER_INFLUXDB_INIT_MODE=setup
      - DOCKER_INFLUXDB_INIT_USERNAME=myusername
      - DOCKER_INFLUXDB_INIT_PASSWORD=passwordpasswordpassword
      - DOCKER_INFLUXDB_INIT_ORG=myorg
      - DOCKER_INFLUXDB_INIT_BUCKET=mybucket
      - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=mytoken
      - INFLUXD_TLS_CERT=/etc/ssl/influxdb-selfsigned.crt
      - INFLUXD_TLS_KEY=/etc/ssl/influxdb-selfsigned.key
    entrypoint: ["./entrypoint.sh"]
    restart: on-failure:10
    depends_on:
      - influxdb
Vermutlich kann man die CLI auch weg lassen :) ich habe sie mit dazu gepackt, weil ich dachte, ich bräuchte diese zum Zugriff, geht aber über Web UI.

Nach dem Deploy sollte es also zwei Container geben, von denen mutmaßlich einer überflüssig ist.

Schritt 2: Erste Anmeldung über http://ip.des.docker.systems:8086.
Dabei musst Du einen ersten User anlegen (den Administrationsuser, NICHT den User für den Zugriff von openHAB aus.
Außerdem wirst Du nach der Organisation gefragt (das ist die Entsprechung für die Datenbank) und nach einem Bucket, der die Retention Policy beinhaltet (wie lange werden die Daten aufgehoben).
Beide Werte werden später in openHAB3 wichtig. z.B. wären openHAB und default vernünftige Werte :)

Schritt 3: Wir erzeugen unter der Rubrik "Load Data" einen API Token. Name openHAB (z.B.). Anschließend lassen wir uns die Token anzeigen. Dort können wir auch den Token ins Clipboard befördern.

Schritt 4: In openHAB konfigurieren wir die Persistence.
Die Database URL wird auf http://ip.des.docker.systems:8086 gesetzt.
Die Database Version auf 2 stellen.
Der Username ist egal, ich habe ihn auf den Namen des Tokens gesetzt (also openHAB)
Das Passwort kann leer bleiben.
Der Authentication Token wird mit dem soeben erstellten Token befüllt.
Unter Database/Organistaion trägst Du den in Schritt 2 angelegten Organisationsnamen ein (z.B. openHAB)
Im Feld Retention Policy/Bucket trägst Du den Namen des Bucket ein, den Du in Schritt 2 angelegt hast. (z.B. default)-

Speichern nicht vergessen. Sobald nun Daten hereinkommen, sollten sie in der InfluxDB landen.
Davon kannst Du Dich in der Influx UI unter dem Punkt Data Explorer überzeugen. Du startest links mit der Auswahl des Buckets, dann selektierst Du z.B. die measurements und suchst Dir in der Liste einige Werte aus (für jedes persistierte Item sollte ein Eintrag in der Liste erscheinen)

Die Anbindung an Grafana sollte ebenso möglich sein.

InfluxData bietet für alle Plattformen fertige Docker Images an, Docker sollte automatisch das richtige auswählen (ARM32, ARM64, AMD64)

Falls Du weiterhin Probleme hast, können wir auch gerne mal eine Session per Teamviewer machen.

MariaDB lässt sich ebenso einfach über Docker einrichten, es steht und fällt aber immer mit der Kommunikation über das Netzwerk, das muss halt alles zueinander passen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten