Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. USB in Docker via neuer Container über Compose u.a. andere

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    USB in Docker via neuer Container über Compose u.a. andere

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Chrisham @OliverIO last edited by

      @oliverio Ah ok, Chef. Sorry, das war jetzt peinlich 😌 (ohne Rechtfertigung: war wohl spät, zu viele Probleme gleichzeitig...)
      Now works like a charm 😀 - zumindest mal influxdb, jetzt muss ich mich noch um asterisk Linux paket/prozess und KNX kümmern...

      Vielen Dank und Sorry nochmals!

      2023-10-25 19_42_14-instances - iobroker-6 - Brave.png

      1 Reply Last reply Reply Quote 0
      • C
        Chrisham @OliverIO last edited by

        @oliverio Ich weiß, KNX ist nicht deine Spezialität, nur kurz den Status und ob du hier noch einen Hinweis hättest.

        Es geht wohl um diese Einstellung (local iobroker IP):
        knx_alt.png

        Da muss lt. Anleitung (https://www.npmjs.com/package/iobroker.knx) eigentlich die IP unter der das KNX-IP-Gateway den IOBroker findet. Das ist natürlich die NAS-Adresse, die ich über DHCP in Fritzbox auf https://10.74.178.99/ vergebe.

        Allerdings ist es so, dass dieser Parameter nicht frei eingegeben werden kann, sondern nur ausgewählt werden kann. Im neuen Container-Setup findet der KNX-Adapter nicht diese Adresse bzw. bietet sie nicht zur Auswahl an:
        2023-10-25 22_33_49-Schöllhof_2.docx - Word.png

        Ich weiß, ich nicht dein Ding, aber vllt. hast ja noch eine Idee...

        1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO last edited by OliverIO

          @chrisham

          ok
          leider weiß ich nicht, wie der knx adapter funktioniert
          in den source kann man auch nicht reinschauen,
          auf jeden Fall nicht über github

          Ich interpretiere, das im adapter ein server läuft.
          daher schadet es nicht, in der docker konfiguration des iobrokers den port noch hinzuzufügen

              ports:
                - "8081:8081"
                - "3671:3671"
          

          dadurch werden anfragen von aussen auf diesem port in den container weitergereicht.
          evtl reicht das, das in dem feld dann die ip (der host maschine) deines iobrokers angezeigt wird.
          kannst du das feld selber füllen, auch wenn die ip nicht zur auswahl bereit steht?

          falls der knx-adapter udp-broadcast nutzt, dann muss man leider den network mode ändern.
          da gibt es dann nur hostmode. da nutzt dein container dann die gleiche netzwerk schnittstelle wie die host maschine.
          oder, was ich empfehlen würde, macvlan. dadurch erhält der iobroker eine komplett eigenständige ip, allerdings ist das zu beginn nicht so einfach zu konfigurieren und man muss sich ein paar gedanken machen, wieviele ip-adressen man in zukunft braucht. dann müssen diese ip-adressen in einer bestimmten range sein. diese range, darf nicht von deinem router anderweitig vergeben werden.

          aber erst einmal probieren, mit der port-angabe in der konfiguration

          C 1 Reply Last reply Reply Quote 0
          • C
            Chrisham @OliverIO last edited by

            @oliverio Ah ok, danke. Ich denke, jetzt kommen wir dem Problem näher.
            Also das mit dem Port habe ich gleich getestet:

            version: '3'
            services:
              iobroker:
                restart: always
                image: buanet/iobroker:latest
                container_name: iobroker-7
                hostname: iobroker-7
                ports:
                  - "8081:8081"
                  - "3671:3671"
                volumes:
                  - /volume1/docker/iobroker-Chrisham:/opt/iobroker
                  - /volume1/docker/userscripts:/opt/userscripts
                  - /volume1/docker/Backup:/opt/backup/
                environment:
                  - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                  - DEBIAN_FRONTEND=teletype
                  - LANG=de_DE.UTF-8
                  - LANGUAGE=de_DE:de
                  - LC_ALL=de_DE.UTF-8
                  - SETGID=1000
                  - SETUID=1000
                  - TZ=Europe/Berlin
                  - USBDEVICES=/dev/ttyUSB0
                  - PACKAGES=ffmpeg lame sox libsox-fmt-mp3 asterisk influxdb2-cli
                devices:
                  - /dev/ttyUSB0:/dev/ttyUSB0
                networks:
                  iobroker7:
              influxdb:
                restart: always
                image: influxdb:latest
                container_name: influxdb-7
                ports:
                  - "8086:8086"
                volumes:
                  - /volume1/docker/influxdb/config:/etc/influxdb2
                  - /volume1/docker/influxdb/data:/var/lib/influxdb2
                environment:
                  - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                  - GOSU_VER=1.12
                  - INFLUXDB_VERSION=2.7.1
                  - INFLUX_CLI_VERSION=2.7.3
                  - INFLUX_CONFIGS_PATH=/etc/influxdb2/influx-configs
                  - INFLUXD_INIT_PORT=8086
                  - INFLUXD_INIT_PING_ATTEMPTS=600
                  - DOCKER_INFLUXDB_INIT_CLI_CONFIG_NAME=default
                  - DOCKER_INFLUXDB_INIT_MODE=setup
                  - DOCKER_INFLUXDB_INIT_USERNAME=iobroker
                  - DOCKER_INFLUXDB_INIT_PASSWORD=*1Xs(QD5gY0!B&XHe1_x
                  - DOCKER_INFLUXDB_INIT_ORG=smarthome
                  - DOCKER_INFLUXDB_INIT_BUCKET=iobroker
                networks:
                  iobroker7:  
              grafana:
                restart: always
                image: grafana/grafana:latest
                container_name: grafana-7
                ports: 
                  - "3000:3000"
                volumes:
                  - /volume1/docker/grafana:/var/lib/grafana
                  - /volume1/docker/grafana:/var/lib/grafana/plugins
                networks:
                  iobroker7:
            networks:
              iobroker7:
            

            Hat leider nichts geändert an dem Verhalten des KNX-Adapters.
            Dann noch 3 weitere Aspekte:

            1.) Nein, leider ist das keine Combo-Box, also keine Freitexteingabe möglich.

            2.) ich hatte noch einen anderen KNX-Adapter (OpenKNX) installiert, den ich nie verwendet hatte. Der hat aber eine ähnliche Konfiguration, auch ein Drop-down-Menü für die "local IP": und hier genau das gleiche Verhalten.
            Mit der bisherigen Container-Konfig findet er die Adresse und bietet sie an.
            Mit der neuen Konfig bietet er die Adresse nicht an:
            ![0_1698272081505_openknx-ip_1.png](Uploading 100%)

            3.) Hostmode: ich denke, in der bisherigen Config hatte ich den host-Mode gewählt:
            ![0_1698272120675_container-alt-setup.png](Uploading 100%)
            Wie würde ich den im docker-compose einstellen?
            Ansosten bzgl. IP-Adress-Vergabe: ich mache das für mein gesamtes Netzwerk eigentlich sehr systematisch. Habe IP-Adress-Bereiche mit unterschiedlichen Rechten (mit/ohne NAS-Zugriff,...) definiert und vergebe für alle (jedenfalls der bekannten Geräte (PC, Laptop, Switch, NAS, bekannte Handys,...) eigentlich feste IP-Adressen über DHCP in der Fritzbox, von daher wäre auch macvlan evtl. eine Option....

            C OliverIO 2 Replies Last reply Reply Quote 0
            • C
              Chrisham @Chrisham last edited by

              @chrisham jetzt noch mit bilder:

              zu 2.)
              openknx-ip_1.png

              zu 3.)
              container-alt-setup.png

              1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @Chrisham last edited by OliverIO

                @chrisham sagte in USB in Docker via neuer Container über Compose u.a. andere:

                3.) Hostmode: ich denke, in der bisherigen Config hatte ich den host-Mode gewählt:
                Wie würde ich den im docker-compose einstellen?

                eingerückt unter dem abschnitt mit dem service. also so ungefähr

                iobroker:
                  network_mode: "host"
                

                hier die beschreibung von buanet
                https://smarthome.buanet.de/2020/09/macvlan-ueber-portainer-einrichten/
                für docker-compose wird es bei dieser überschrift interessant
                Umsetzung mit docker-compose aka "Portainer Stacks"...
                aber auch die vorhergehenden abschnitte sorgfältig lesen.

                wenn du probleme hast meld dich.
                jier ein screenshot der netzdefinition aus dem portainer
                d79a19ca-ae49-4615-a6a1-74171abbcf7e-image.png
                ein teilsegment kannst du mit dem netzwerkrechner von heise berechnen
                https://www.heise.de/netze/tools/netzwerkrechner/

                aus der angabe 192.168.1.80/28 kann man dann entnehmen,
                das dann nur ein ip bereich von .80 bis .95 zur Verfügung steht.

                IP-Adresse:
                192.168.1.80
                CIDR-Suffix:
                28
                Netzwerkmaske:
                255.255.255.240
                  
                Inverse Netzwerkmaske:0.0.0.15
                Anzahl Hosts:14
                Netzadresse:192.168.1.80
                Broadcast:192.168.1.95
                Host-IPs von:192.168.1.81
                bis:192.168.1.94
                

                das kann man dann für die einzelnen container zuordnen. aber nicht jeder container benötigt wirklich eine eigene ip.
                macvlan wirkt dann netzwerktechnisch genauso wie wenn das ein eigenständiger rechner wäre. daher dann auch kein portmapping mehr und der broadcast funktioniert dann auch
                der bereich kann auch größer gewählt werden. der nächst größere bereich wäre dann 30 ip adressen (einstellbar über den cidr wert. allerdings verschiebt sich dann auch die komplette ip-range

                C 1 Reply Last reply Reply Quote 0
                • C
                  Chrisham @OliverIO last edited by

                  @oliverio Strike! Du hast mal wieder in Schwarze getroffen:

                  • KNX-Adapter verbindet mit Gerät:
                    knx-Adapter.png

                  Natürlich musste ich bei influxdb jetzt wieder zurückstellen auf "localhost". Und im compose-File mussten dann die

                      networks:
                        iobroker-4:
                  

                  wieder rausgenommen werden. Aber so ist erstmal alles ok soweit, d.h. die Adapter sind grün.

                  Noch zum tieferen Verständnis: Du schreibst "...dann muss man leider den network mode ändern."
                  Was hat der host-Mode denn für Nachteile? Also ggü der vorigen Config mit "networks" oder ggf. auch ggü dem "macvlan"?

                  Jetzt muss ich mich noch um die Linux-Pakete kümmern, da gibts auch noch Probleme, das asterisk-paket wird nicht richtig installiert, muss ich mal log analysieren...
                  2023-10-26 23_08_36-Window.png

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • C
                    Chrisham @Marc Berg last edited by

                    @marc-berg @Glasfaser : jetzt gehts um die Linux-Paket, bis auf das asterisk hat es geklappt:
                    2023-10-26 23_08_36-Window.png

                    Anbei das log-file:
                    setup_packages.log

                    Ideas?

                    Thomas Braun 1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @Chrisham last edited by

                      @chrisham sagte in USB in Docker via neuer Container über Compose u.a. andere:

                      Ideas?

                      Asterisk wird nicht mehr direkt von Debian für 'Bookworm' gepackt:

                      https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1031046

                      OliverIO 1 Reply Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @Chrisham last edited by

                        @chrisham
                        Host Mode ist so der Notnagel für genau solche Fälle.
                        https://docs.docker.com/network/drivers/host/

                        Nachteil
                        keine Isolation des Container/Service Netzwerks Lösung Bridge oder macvlan
                        Wenn man mehrere Container betreibt die alle den gleichen Port verwenden muss man auf ungewöhnliche Ports Mappen (wie bei Bridge auch) Lösung macvlan

                        Vorteil
                        Bessere Performance da der Netz erlebt nicht durch weitere prozessschichten verarbeitet wird

                        Wenn du es einfach haben willst bleib bei Host
                        Ggfs kannst mal macvlan probieren
                        Das tolle an docker ist, das man relativ gefahrlos solche Konfigurationen hin und her ändern kann

                        1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @Thomas Braun last edited by OliverIO

                          @thomas-braun sagte in USB in Docker via neuer Container über Compose u.a. andere:

                          @chrisham sagte in USB in Docker via neuer Container über Compose u.a. andere:

                          Ideas?

                          Asterisk wird nicht mehr direkt von Debian für 'Bookworm' gepackt:

                          https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1031046

                          Ja das ist aber blöd
                          Ist zwar noch nicht ganz Ende, aber dauert wohl eine Weile noch

                          Dann bleibt dir nur noch das durch ein Skript zu installieren
                          Die Vorgehensweise aus dem Dokument müsste man in ein Shell Skript packen
                          Das es im Container installiert wird.

                          http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html/asterisk-book.html#installing_how_to_install_it

                          Oder du suchst dir aus einer anderen Quelle nach eine deb Datei und installierst es über einskript aus dieser.

                          1 Reply Last reply Reply Quote 0
                          • Marc Berg
                            Marc Berg Most Active last edited by

                            @chrisham sagte in USB in Docker via neuer Container über Compose u.a. andere:

                            @marc-berg @Glasfaser : jetzt gehts um die Linux-Paket, bis auf das asterisk hat es geklappt:

                            Ich habe den Thread jetzt nicht im Detail verfolgt, aber ist es denn zwingend erforderlich, Asterisk mit in den ioBroker Container zu packen? Es gäbe ja auch fertige Asterisk Docker Images.

                            Wenn notwendig, dann ist ja das Userscript "userscript_firststart.sh" das Richtige, um die notwendigen Schritte zur Installation zu hinterlegen. Dieses Script wird einmalig nach dem ersten Start eines Containers ausgeführt, bzw. nach jedem "Recreate".
                            Den Link zur Installation hat ja @OliverIO schon verlinkt, wobei man sagen muss, dass dort ja keine reine Installation vorgenommen wird, sondern Asterisk kompiliert + installiert wird. Das bedeutet, dass auch alle Werkzeuge zum Kompilieren mit eingebaut werden müssen (weiß jetzt nicht, ob das alles schon im ioBroker Image steckt).
                            Alles nicht schön, aber wahrscheinlich machbar.

                            OliverIO 1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @Marc Berg last edited by OliverIO

                              @marc-berg
                              @Chrisham

                              ich hatte auch schon mal nach docker image geschaut, aber kein offizielles gefunden.
                              die asterix leute überlegen noch und tendieren wohl eher keins bereitzustellen, weil es wohl viele individuelle szenarien gibt.
                              aber da cih asterix nicht nutzte kann ich das nicht beurteilen.

                              ob man ein image aus einer Zweitquelle nutzt muss man selber entscheiden.
                              zumindest kann man hier support erhalten.
                              https://github.com/andrius/asterisk
                              zunächst wollt ich schon sagen, das man hier auch pech hat, weil er bspw bei alpine sich asterix aus einem repo isntalliert, aber bei debian wird alles kompiliert.
                              also in einem separaten container wird wahrscheinlich die beste lösung sein

                              C 1 Reply Last reply Reply Quote 0
                              • C
                                Chrisham @OliverIO last edited by

                                @oliverio @Marc-Berg : Ok, danke für die Hinweise.

                                • Händische Installation: das müsste ja erstmal weiterhin gehen, also im IOBroker-Docker-Container über

                                  apt-get install asterisk
                                  nachteil ist halt, bei jedem Container-Udate ist es wieder verloren

                                • Separater container: da gibt es ja jede Menge, also wenn ich über DSM-docker-Image search gehe:
                                  astersik.png
                                  der erste ist wohl der auf (https://github.com/andrius/asterisk) verlinkte Docker.
                                  Aber dann muss ich die Container (IOBroker und Astersik-Container) irgendwie im "Multi-Host" oder "Master-Slave"-Mode betreiben, richtig? Denn der Adapter in IOBroker muss ja direkt auf die Linux-Prozesse im Asterisk-Container zugreifen können, oder sehe ich das falsch?

                                C 1 Reply Last reply Reply Quote 0
                                • C
                                  Chrisham @Chrisham last edited by

                                  @chrisham Ich habe jetzt mal asterisk über den andrius/... container mit ins compose aufgenommen und den container instantiiert.
                                  Leider kann sich der Asterisk-Adapter in IOBroker nicht mit dem asterisk-Manager (Prozess) im separaten container connecten:
                                  2023-10-28 01_27_13-logs - iobroker-4 - Brave.png

                                  Jetzt geht wieder die suche los:
                                  a) liegt es daran, dass verbindung zwischen den containern (iobroker -> asterisk) nicht möglich ist (host, slave,...)?=
                                  b) oder liegt es daran, dass evtl. der asterisk-prozess im container gar nicht gestartet ist...

                                  ... und alles immer noch um den USB-Port zum Laufen zu bringen...

                                  OliverIO 1 Reply Last reply Reply Quote 0
                                  • OliverIO
                                    OliverIO @Chrisham last edited by OliverIO

                                    @chrisham

                                    Dann sag mal was du wo wie konfiguriert hast.
                                    Von alleine finden sich die Container natürlich nicht

                                    Erinnere dich an influx. Der servicename kann als hostname verwendet werden,
                                    Sofern sie im gleichen Netzwerk zusammengeschaltetet wurden

                                    C 1 Reply Last reply Reply Quote 0
                                    • C
                                      Chrisham @OliverIO last edited by

                                      @oliverio Klar:

                                      • docker-compose setup (mit neuem asterisk-container):
                                      version: '3'
                                      services:
                                        iobroker:
                                          network_mode: "host"
                                          restart: always
                                          image: buanet/iobroker:latest
                                          container_name: iobroker-4
                                          hostname: iobroker-4
                                          ports:
                                            - "8081:8081"
                                            - "3671:3671"
                                          volumes:
                                            - /volume1/docker/iobroker-Chrisham:/opt/iobroker
                                            - /volume1/docker/userscripts:/opt/userscripts
                                            - /volume1/docker/Backup:/opt/backup/
                                          environment:
                                            - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                                            - DEBIAN_FRONTEND=teletype
                                            - LANG=de_DE.UTF-8
                                            - LANGUAGE=de_DE:de
                                            - LC_ALL=de_DE.UTF-8
                                            - SETGID=1000
                                            - SETUID=1000
                                            - TZ=Europe/Berlin
                                            - USBDEVICES=/dev/ttyUSB0
                                            - PACKAGES=influxdb2-cli
                                          devices:
                                            - /dev/ttyUSB0:/dev/ttyUSB0
                                        asterisk:
                                          restart: always
                                          image: andrius/asterisk:latest
                                          container_name: asterisk-4
                                          ports: 
                                            - "5038:5038"
                                          environment:
                                            - PACKAGES=ffmpeg lame sox libsox-fmt-mp3
                                        influxdb:
                                          restart: always
                                          image: influxdb:latest
                                          container_name: influxdb-4
                                          ports:
                                            - "8086:8086"
                                          volumes:
                                            - /volume1/docker/influxdb/config:/etc/influxdb2
                                            - /volume1/docker/influxdb/data:/var/lib/influxdb2
                                          environment:
                                            - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                                            - GOSU_VER=1.12
                                            - INFLUXDB_VERSION=2.7.1
                                            - INFLUX_CLI_VERSION=2.7.3
                                            - INFLUX_CONFIGS_PATH=/etc/influxdb2/influx-configs
                                            - INFLUXD_INIT_PORT=8086
                                            - INFLUXD_INIT_PING_ATTEMPTS=600
                                            - DOCKER_INFLUXDB_INIT_CLI_CONFIG_NAME=default
                                            - DOCKER_INFLUXDB_INIT_MODE=setup
                                            - DOCKER_INFLUXDB_INIT_USERNAME=iobroker
                                            - DOCKER_INFLUXDB_INIT_PASSWORD=*1Xs(QD5gY0!B&XHe1_x
                                            - DOCKER_INFLUXDB_INIT_ORG=smarthome
                                            - DOCKER_INFLUXDB_INIT_BUCKET=iobroker
                                        grafana:
                                          restart: always
                                          image: grafana/grafana:latest
                                          container_name: grafana-4
                                          ports: 
                                            - "3000:3000"
                                          volumes:
                                            - /volume1/docker/grafana:/var/lib/grafana
                                            - /volume1/docker/grafana:/var/lib/grafana/plugins
                                      

                                      Und im Asterisk-Adapter sieht es dann so aus:
                                      2023-10-28 10_49_14-Window.png

                                      Was wäre noch relevant?

                                      OliverIO 1 Reply Last reply Reply Quote 0
                                      • OliverIO
                                        OliverIO @Chrisham last edited by OliverIO

                                        @chrisham

                                        Was steht im Log von ioBroker?
                                        Funktioniert Asterix?
                                        Läuft der Container?

                                        C 1 Reply Last reply Reply Quote 0
                                        • C
                                          Chrisham @OliverIO last edited by

                                          @oliverio Anbei die Infos.

                                          • log IOBroker:
                                            2023-10-28 20_58_33-Window.png

                                          • Asterisk Funktionalität geht natürlich nicht, d.h. ich kann die Telefonanrufe nicht absetzen
                                            Das ist konzeptionell so: Blocklyscript --> Asterisk --> Fritzbox --> Telefonanruf

                                          • Asterisk-Container
                                            Der läuft, es gibt auch ein längeres Log mit dem Eintrag "Asterisk Ready" am Ende, aber davor auch mit mehreren Warnungen "cel_wqlite3_custom declined to load,... usw"
                                            Anbei das log-file:
                                            asterisk-4.csv

                                          OliverIO 1 Reply Last reply Reply Quote 0
                                          • OliverIO
                                            OliverIO @Chrisham last edited by OliverIO

                                            @chrisham

                                            ein paar errors sind auch drin. allerdings kann ich nicht bewerten ob das hinnehmbare fehler sind.
                                            normalerweise ist error, was man korrigieren muss, warning sollte man prüfen, aber stört erstmal das programm nicht. vielleicht hast du ja noch ein logfile vom altern asterix. dann kannst du da mal vergleichen

                                            aber was du zuerst ausprobieren kannst:
                                            ich habe gesehen, das hier port 5060 verwendet wird.
                                            d.h. anstatt 5038 musst du im docker config 5060 eintragen
                                            und wenn der container neu erstellt wurde dann in der adapterkonfiguration auch 5060

                                            C 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            642
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            129
                                            9872
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo