oh3 im Docker mit influxdb

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

oh3 im Docker mit influxdb

Beitrag von scotty »

Hallo Zusammen,

bei mir läuft neben OH3 im Docker auch Influxdb2.1 ebenfalls in einem Container. Mir ist es allerdings bis jetzt noch nicht gelungen, die beiden Programme zusammen zu bringen.
Kennt sich jemand damit aus oder hat gar eine Anleitung für mich?

Hier mal einige Details:
OH3 läuft im Host-Modus
Influxdb im Bridge-Modus (die Programme arbeiten nicht im gleichen Netzwerk, vermutlich der erste Fehler)
In den Einstellungsmöglichkeiten von 0H3 wird unter Persistence lediglich RRD4j angeboten

Es gibt immer wieder mal Probleme, wenn es um die Zusammenarbeit mit Programmen von Drittanbieter geht. Meine Vermutung ist die, weil OH3 im Host-Modus arbeitet.

openhab.json:

Code: Alles auswählen

{
   "CapAdd" : [],
   "CapDrop" : [],
   "cmd" : "gosu openhab tini -s ./start.sh",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : true,
   "enabled" : false,
   "env_variables" : [
      {
         "key" : "PATH",
         "value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      {
         "key" : "CRYPTO_POLICY",
         "value" : "limited"
      },
      {
         "key" : "EXTRA_JAVA_OPTS",
         "value" : "-Duser.timezone=Europe/Berlin"
      },
      {
         "key" : "EXTRA_SHELL_OPTS",
         "value" : ""
      },
      {
         "key" : "GROUP_ID",
         "value" : "9001"
      },
      {
         "key" : "JAVA_VERSION",
         "value" : "11"
      },
      {
         "key" : "KARAF_EXEC",
         "value" : "exec"
      },
      {
         "key" : "LC_ALL",
         "value" : "de_DE.UTF-8"
      },
      {
         "key" : "LANG",
         "value" : "de_DE.UTF-8"
      },
      {
         "key" : "LANGUAGE",
         "value" : "de_DE.UTF-8"
      },
      {
         "key" : "OPENHAB_BACKUPS",
         "value" : "/openhab/userdata/backup"
      },
      {
         "key" : "OPENHAB_CONF",
         "value" : "/openhab/conf"
      },
      {
         "key" : "OPENHAB_HOME",
         "value" : "/openhab"
      },
      {
         "key" : "OPENHAB_HTTP_PORT",
         "value" : "55555"
      },
      {
         "key" : "OPENHAB_HTTPS_PORT",
         "value" : "66666"
      },
      {
         "key" : "OPENHAB_LOGDIR",
         "value" : "/openhab/userdata/logs"
      },
      {
         "key" : "OPENHAB_USERDATA",
         "value" : "/openhab/userdata"
      },
      {
         "key" : "OPENHAB_VERSION",
         "value" : "3.2.0"
      },
      {
         "key" : "USER_ID",
         "value" : "9001"
      },
      {
         "key" : "JAVA_HOME",
         "value" : "/usr/lib/jvm/default-jvm"
      }
   ],
   "exporting" : false,
   "id" : "b5cd929d020ad8191cec3c4a354639191b0add162f8f7ec10f84eedcec8875e2",
   "image" : "openhab/openhab:3.2.0",
   "is_ddsm" : false,
   "is_package" : false,
   "links" : [],
   "memory_limit" : 6442450944,
   "name" : "openhab3",
   "network" : [
      {
         "driver" : "host",
         "name" : "host"
      }
   ],
   "network_mode" : "host",
   "port_bindings" : [],
   "privileged" : false,
   "shortcut" : {
      "enable_shortcut" : false,
      "enable_status_page" : false,
      "enable_web_page" : false,
      "web_page_url" : ""
   },
   "use_host_network" : true,
   "volume_bindings" : [
      {
         "host_volume_file" : "/docker/openhab/conf",
         "mount_point" : "/openhab/conf",
         "type" : "rw"
      },
      {
         "host_volume_file" : "/docker/localtime",
         "mount_point" : "/etc/localtime",
         "type" : "ro"
      },
      {
         "host_volume_file" : "/docker/openhab/addons",
         "mount_point" : "/openhab/addons",
         "type" : "rw"
      },
      {
         "host_volume_file" : "/docker/openhab/speedtest",
         "mount_point" : "/usr/bin/speedtest",
         "type" : "rw"
      },
      {
         "host_volume_file" : "/docker/openhab/userdata",
         "mount_point" : "/openhab/userdata",
         "type" : "rw"
      }
   ]
}
influxdb.json:

Code: Alles auswählen

{
   "CapAdd" : [],
   "CapDrop" : [],
   "cmd" : "influxd",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : true,
   "enabled" : false,
   "env_variables" : [
      {
         "key" : "PATH",
         "value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      {
         "key" : "GOSU_VER",
         "value" : "1.12"
      },
      {
         "key" : "INFLUXDB_VERSION",
         "value" : "2.1.1"
      },
      {
         "key" : "INFLUX_CLI_VERSION",
         "value" : "2.2.1"
      },
      {
         "key" : "INFLUX_CONFIGS_PATH",
         "value" : "/etc/influxdb2/influx-configs"
      },
      {
         "key" : "INFLUXD_INIT_PORT",
         "value" : "9999"
      },
      {
         "key" : "INFLUXD_INIT_PING_ATTEMPTS",
         "value" : "600"
      },
      {
         "key" : "DOCKER_INFLUXDB_INIT_CLI_CONFIG_NAME",
         "value" : "default"
      },
      {
         "key" : "INFLUXDB_WRITE_USER_PASSWORD",
         "value" : "openhab"
      },
      {
         "key" : "INFLUXDB_WRITE_USER",
         "value" : "openhab"
      },
      {
         "key" : "INFLUXDB_READ_USER_PASSWORD",
         "value" : "grafana"
      },
      {
         "key" : "INFLUXDB_READ_USER",
         "value" : "grafana"
      },
      {
         "key" : "INFLUXDB_ADMIN_PASSWORD",
         "value" : "007"
      },
      {
         "key" : "INFLUXDB_ADMIN_USER",
         "value" : "bond"
      },
      {
         "key" : "INFLUXDB_HTTP_AUTH_ENABLED",
         "value" : "TRUE"
      },
      {
         "key" : "INFLUXDB_DB",
         "value" : "OpenHAB3_DB"
      }
   ],
   "exporting" : false,
   "id" : "f8d6dc2f643c6caf87064e33eb73e224108b1e070109649b3dbcbb1538b6c1a1",
   "image" : "influxdb:2.1",
   "is_ddsm" : false,
   "is_package" : false,
   "links" : [],
   "memory_limit" : 0,
   "name" : "influxdb1",
   "network" : [
      {
         "driver" : "bridge",
         "name" : "bridge"
      }
   ],
   "network_mode" : "bridge",
   "port_bindings" : [
      {
         "container_port" : 8086,
         "host_port" : 38065,
         "type" : "tcp"
      }
   ],
   "privileged" : true,
   "shortcut" : {
      "enable_shortcut" : false,
      "enable_status_page" : false,
      "enable_web_page" : false,
      "web_page_url" : ""
   },
   "use_host_network" : false,
   "volume_bindings" : [
      {
         "host_volume_file" : "/docker/influxdb",
         "mount_point" : "/var/lib/influxdb",
         "type" : "rw"
      }
   ]
}
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: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: oh3 im Docker mit influxdb

Beitrag von udo1toni »

Nein, das hat nichts mit dem Host Mode zu tun.

Der Host Mode bedeutet lediglich, dass der Container eine eigene IP aus dem Subnetz bekommt, an dem auch der Host angeschlossen ist. Die Adresse wird gewöhnlich per DHCP zugewiesen, dafür ist dann normalerweise Dein Router zuständig.
Der Bridge Mode nutzt stattdessen ein eigenes Subnetz, der Host routet die konfigurierten Ports. Das heißt, Du musst als IP die IP des Docker Host angeben, in Kombination mit dem korrekten Port. Der Container hat aber eine IP aus einem anderen Adressbereich (meist ein Klasse-B-Netz, 172.[16-31].0.0). Diese IP ist aber nicht die, welche Du in openHAB angibst. Sie ist höchstens interessant, wenn Du einen anderen Container aufsetzt, der bridged im selben Subnetz läuft.

Natürlich musst Du die Influxdb Persistence installieren, um openHAB an die Datenbank anbinden zu können.
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: oh3 im Docker mit influxdb

Beitrag von scotty »

udo1toni hat geschrieben: 20. Mai 2022 21:12
Natürlich musst Du die Influxdb Persistence installieren, um openHAB an die Datenbank anbinden zu können.
Das Problem ist doch, dass nur RRD4j zur Verfügung steht. Wie lässt sich das ändern?
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
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: oh3 im Docker mit influxdb

Beitrag von peter-pan »

scotty hat geschrieben: 20. Mai 2022 22:00 Das Problem ist doch, dass nur RRD4j zur Verfügung steht. Wie lässt sich das ändern?
Ich bin da auch nicht so drin, aber schau mal unter Einstellungen/...other Add-ons. Da kann man influxDB-Persistence installieren. Ist es das was du suchst ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: oh3 im Docker mit influxdb

Beitrag von scotty »

Ja genau, vielen Dank. Manchmal sieht man den Wald...

Brauche ich dann den Container RRD4j noch? So wie ich das sehe, wäre das Programm doch dann doppelt vorhanden, oder?
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: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: oh3 im Docker mit influxdb

Beitrag von udo1toni »

Einen Container brauchst Du für rrd4j nicht, das ist Bestandteil von openHAB.

Grundsätzlich: Alles, was über die Oberfläche von openHAB installiert wird, sind Addons.

rrd4j nimmt hier aber eine Sonderstellung ein (genau wie mapdb), denn diese Persistence läuft ohne externe Software. Im Gegensatz dazu muss für InfluxDB nicht nur das Addon installiert werden, sondern auch InfluxDB selbst (und bei jdbc muss die gewünschte Datenbank Engine zusätzlich zum Binding installiert werden).

Wenn man openHABian kennt, kann man auch folgendes als Faustregel nutzen: Reicht es unter openHABian, etwas in openHAB einzurichten, so reicht es auch mit Docker. Muss hingegen in openHABian einer der Menüpunkte ausgewählt werden, um ein Zusatzpaket einzurichten, so wird man in Docker einen zusätzlichen Container benötigen.
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: oh3 im Docker mit influxdb

Beitrag von scotty »

Sorry Udo, ich habe mich verschrieben, es sollte heißen: brauche ich dann den Container InfluxDB noch?
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: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: oh3 im Docker mit influxdb

Beitrag von udo1toni »

scotty hat geschrieben: 21. Mai 2022 01:04 Sorry Udo, ich habe mich verschrieben, es sollte heißen: brauche ich dann den Container InfluxDB noch?
Ah. Ja, InfluxDB hat nichts mit openHAB zu tun, muss also separat installiert sein.
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: oh3 im Docker mit influxdb

Beitrag von scotty »

Ich denke, mit dieser Seite

https://www.laub-home.de/wiki/OpenHAB_3 ... stallation

eine gute Vorlage gefunden zu haben, um meine Idee zu verwirklichen.

Allerdings wundere ich mich, dass die Container im ' / ' -Bereich (also dort, wo das Dateisystem der NAS liegt) angelegt werden. Ich habe meine Container zur Zeit alle hier ' ~/ ' platziert. Unter Linux ist das die Home-Partition.

Kann mir das jemand von euch erklären?
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: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: oh3 im Docker mit influxdb

Beitrag von udo1toni »

Grundsätzlich ist es erst mal egal, wo die Daten abgelegt werden. Ich arbeite z.B. mit Portainer, welches selbst in einem Container läuft :) und Portainer erzeugt ein Verzeichnis /portainer/ und legt alle Volumes usw. für die Container dort an.
Das home-Verzeichnis ist allerdings in meinen Augen eine eher mäßig gute Idee, weil damit eine Abhängigkeit zum User geschaffen wird, der den Container startet.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten