Ankündigung

Einklappen
Keine Ankündigung bisher.

knxd im Docker Container

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Jep Hendirk,

    Zitat von henfri Beitrag anzeigen
    das habe ich mir nach deiner Andeutung schon gedacht ;-)
    Dem Experten sagt "Build, Ship and Run" natürlich was


    Zitat von henfri Beitrag anzeigen
    Habt ihr euch mal docker-compose-ui und docker-ui angesehen?
    Ja, wir sehen uns das alles an, ist eine Menge Stuff. Zunächst konzentrieren wir uns darauf, dass die Plugins im Docker-Container laufen um Kompatibillität zu bieten. Der zweite Schritt sind dann Container mit anderen Funktionsmodulen. Ich denke, damit kann sich eine sehr gute Szene für Maker bilden mit sehr einfacher Möglichkeit des Austausches von eigenen Entwicklungen insbesondere für Anfänger. Weil das installieren ist dann so leicht wie bei einer App am Smartphone.

    lg

    Stefan

    Kommentar


      #17
      Zitat von luigi4711 Beitrag anzeigen
      Wow, das klingt spitze! Ich bin mehr als gespannt! Komme am Montag auf jeden Fall bei Euch am Stand vorbei.
      Gerne und bitte immer gleich den Foren-Nick dazu sagen, damit ich Euch richtig einordnen kann und wir beim Du bleiben können

      Stefan

      Kommentar


        #18
        Hat es schon jemand geschafft das ganze im ROUTER Modus im Docker container zum laufen zu bekommen? Das klappt bei mir auch nicht mit --net=host. Ich empfange dann zwar Daten vom Bus, aber kann keine senden. Laut tcpdump senden der knxd auch keine Pakete bzw. sie verlassen nie die Schnittstelle.

        Habe mittlerweile die Vermutung, dass sich der knxd an das falsche Interface haengt und die Pakte deshalb nicht rausgehen - werde ich heute abend noch mal genau testen. Wenn bis dahin jemand eine Idee hat?! ..

        edit: s/TUNNEL/ROUTER
        Zuletzt geändert von ds82; 11.04.2016, 19:22.

        Kommentar


          #19
          Langsam weiss ich hier nicht mehr weiter ..

          knxd starte ich so:
          --daemon=/var/log/knxd.log -t 0xffc -f9 -e1.0.5 -u /tmp/eib -b ip:
          Licht schalten Gruppenadresse ist 0/0/101, test so:
          docker exec -it knxd-dev groupwrite local:/tmp/eib 0/0/101 1
          Logfile:
          Layer 8(00FBC8B0,570BF3E4) New Connection
          Layer 8(01011550,570BF3E4) ClientConnection Init
          Layer 8(01011550,570BF3E4) RecvMessage(005): 00 22 00 65 FF
          Layer 7(01010840,570BF3E4) OpenGroup
          Layer 4(01011630,570BF3E4) OpenGroup 0/0/101 WO
          Layer 3(00FAC140,570BF3E4) Allocate: falling back to 1.0.5
          Layer 3(00FAC140,570BF3E4) registerLayer2 01011630
          Layer 3(00FAC140,570BF3E4) registerLayer2 01011630 = 1
          Layer 7(01010840,570BF3E4) OpenGroup complete
          Layer 8(01011550,570BF3E4) SendMessage(002): 00 22
          Layer 8(01011550,570BF3E4) RecvMessage(005): 00 25 00 80 01
          Layer 7(01010840,570BF3E4) Send(003): 00 80 01
          Layer 4(01011630,570BF3E4) Send Group T_DATA_XXX_REQ A_GroupValue_Write 01
          Layer 3(00FAC140,570BF3E4) Enqueue L_Data low from 0.0.0 to 0/0/101 hops: 07 T_DATA_XXX_REQ A_GroupValue_Write 01
          Layer 3(00FAC140,570BF3E4) RecvData L_Data low from 1.0.5 to 0/0/101 hops: 06 T_DATA_XXX_REQ A_GroupValue_Write 01
          Layer 7(01010840,570BF3E4) CloseGroup
          Layer 8(01011550,570BF3E4) ClientConnection closed
          Sieht meiner Meinung nach gut aus - aber laut tcpdump wird nichts gesendet. Habs jetzt auch mit TUNNEL versucht, klappt auch nicht. Docker Container wird mit --net=host gestartet. Ich habe die ganze Zeit gedacht es liegt an den mehreren Netzwerkkarten des docker Host - aber wie gesagt wird laut tcpdump garnichts verschickt, über kein Interface. Hat jemand eine Idee?


          (Empfangen tue ich übrigens Telegramme - nur senden funktioniert nicht)

          Kommentar


            #20
            mit knxd v 0.11 fallen ja einige optionen weg -i -u , wer hat das am laufen ?

            Kommentar


              #21
              Ich nutze noch die 0.10.
              Hast du eine konkrete Frage?

              Kommentar


                #22
                ich habe noch eibd v0.0.5 mit volgenden Einstellungen am laufen
                Code:
                eibd --Server --Tunnelling --Discovery --GroupCache --listen-tcp --no-tunnel-client-queuing --pid-file=/usr/local/eibd/var/eibd.pid --daemon=/usr/local/eibd/var/eibd.log --eibaddr=0.0.1 ipt:192.168.178.4
                ich habe ein SCN-IP000.01IP Interface, nun wollte ich auf knxd umsteigen.

                nun habe ich mir ein Docker Image erstellt

                Dockerfile
                Code:
                FROM debian:jessie
                
                MAINTAINER schaubi666 <schlaubi666@gmx.de>
                
                # Update packages
                RUN sed -i 's/deb.debian/httpredir.debian/g' /etc/apt/sources.list
                RUN apt-get update -y
                #RUN apt-get upgrade -y
                RUN apt-get install -y git-core wget build-essential debhelper cdbs autotools-dev autoconf automake libtool pkg-config libusb-1.0-0-dev base-files debianutils libsystemd-dev libsystemd-daemon-dev  dh-systemd init-system-                 helpers
                RUN apt-get clean -y && apt-get autoclean -y && apt-get autoremove
                
                # and get the source code
                WORKDIR /root
                RUN git clone https://github.com/knxd/knxd.git
                
                # knxd requires libpthsem which unfortunately isn't part of Debian
                RUN wget https://www.auto.tuwien.ac.at/~mkoegler/pth/pthsem_2.0.8.tar.gz
                RUN tar xzf pthsem_2.0.8.tar.gz
                WORKDIR /root/pthsem-2.0.8
                RUN sleep 1
                RUN dpkg-buildpackage -b -uc
                WORKDIR /root
                RUN sleep 1
                RUN dpkg -i libpthsem*.deb
                
                # now build+install knxd itself
                WORKDIR /root/knxd
                RUN sleep 1
                RUN dpkg-buildpackage -b -uc
                WORKDIR /root
                RUN sleep 1
                RUN dpkg -i knxd_*.deb knxd-tools_*.deb
                
                # clean up
                RUN rm /root/*.deb && \
                  rm /root/*.changes && \
                  rm /root/*.tar.gz && \
                  rm -rf /root/knxd && \
                  rm -rf /root/pthsem-2.0.8 && \
                  rm -rf /usr/share/locale/* && \
                  rm -rf /var/cache/debconf/*-old && \
                  rm -rf /var/lib/apt/lists/* && \
                  rm -rf /usr/share/doc/*
                
                #files für knxd anlegen
                
                #RUN touch /run/knxd.pid /run/knxd.log /run/knx && chmod 777 /run/knxd.pid /run/knxd.log /run/knx
                
                ENV EIBADDR 0.0.1
                ENV LISTEN_TCP 6720
                ENV IPT 192.168.178.4
                
                EXPOSE  4720 ${LISTEN_TCP} 3671/udp
                
                USER knxd
                
                CMD knxd --eibaddr=${EIBADDR} -t 0xffc -f 9 -D -T -S -c --send-delay=60 -b ipt:${IPT}
                #--pid-file=/run/knxd.pid --daemon=/run/knxd.log --listen-tcp=${LISTEN_TCP} ipt:${IPT}
                #CMD knxd -D -T -S -c --no-tunnel-client-queuing --pid-file=/run/knxd.pid --daemon=/run/knxd.log  ipt:192.168.178.4
                #CMD ["knxd", "-D", "-T", "-S" , "-t 0xffc -f 9", "-c", "--send-delay=30", "-b ipt:192.168.178.4"]
                weil bei deinem ja die ip nicht stimmt ...

                wenn ich damit starte
                Code:
                docker run --net=host -t -e "EIBADDR=1.1.128" -e "LISTEN_TCP=6720" -e "IPT=192.168.178.4" schlaubi666/knxd
                steht da im log
                Code:
                Layer 3 [3:layer3 0.000] Open
                Layer 8 [2:mcast  0.000] Open
                Layer 8 [2:mcast  0.000] OpenD
                Layer 8 [2:mcast  0.001] OpenedD
                Layer 8 [2:mcast  0.001] Opened
                Layer 3 [3:layer3 0.001] registerLayer2 2:mcast
                Layer 3 [3:layer3 0.001] registerLayer2 2:mcast = 1
                Layer 4 [4:cache  0.001] GroupCacheInit
                Layer 3 [3:layer3 0.001] registerLayer2 4:cache
                Layer 3 [3:layer3 0.002] registerLayer2 4:cache = 1
                Layer 4 [4:cache  0.002] GroupCacheEnable
                Layer 2 [5:ipt:192.168.178.4 0.002] Open
                Layer 2 [5:ipt:192.168.178.4 0.002] Opened
                Layer 3 [3:layer3            0.002] registerLayer2 5:ipt:192.168.178.4
                Layer 3 [3:layer3            0.003] registerLayer2 5:ipt:192.168.178.4 = 1
                Layer 3 [3:layer3            0.004] L3 started
                aber schalten kann ich nix

                Kommentar


                  #23
                  kaum nehme ich "dein" Dockerfile mit meiner IP ( ich debian, du ubuntu), dann klapt es

                  das mit ENV im Dockerfile bekomme ich nicht hin !

                  Dockerfile
                  Code:
                  ENV EIBADDR 0.0.1
                  ENV IPT 192.168.178.4
                  CMD knxd -t 65535 -e=${EIBADDR} -D -T -R -S -i --GroupCache --send-delay=60 -b ipt:${IPT}

                  und starten mit
                  Code:
                  docker run --net=host -t -e "EIBADDR=0.0.1" -e "IPT=192.168.178.4" schlaubi666/u_knxd
                  bringt nur
                  Code:
                  Address needs to look like X.X.X
                  Zuletzt geändert von schlaubi666; 08.01.2017, 23:44.

                  Kommentar


                    #24
                    Guck mal in meiner Docker-Compose. Da ist ein Aufruf drin.

                    Ich verstehe nicjt, warum du meinst, einen eigenen Container bauen zu müssen. Meiner vom Hub müsste bei dir laufen. Das ist doch der Sinn der Sache.
                    Zuletzt geändert von henfri; 10.01.2017, 21:33.

                    Kommentar


                      #25
                      Ist in diesem Thema noch jemand aktiv?
                      Ich bekomme den knxd nur via --net=host erfolgreich zum laufen.
                      Ohne explizite Netzkonfiguration (also default bridge) bekomme ich diesen Fehler:

                      Code:
                      May 28 13:27:07 0cdc2bcefbe9 systemd[1]: Starting KNX Daemon...
                      May 28 13:27:07 0cdc2bcefbe9 systemd[1]: Started KNX Daemon.
                      May 28 13:27:17 0cdc2bcefbe9 knxd[168]: F00000000: [12:B.ipt] Link down, terminating
                      May 28 13:27:17 0cdc2bcefbe9 systemd[1]: knxd.service: Main process exited, code=exited, status=1/FAILURE
                      May 28 13:27:17 0cdc2bcefbe9 systemd[1]: knxd.service: Unit entered failed state.
                      May 28 13:27:17 0cdc2bcefbe9 systemd[1]: knxd.service: Failed with result 'exit-code'

                      Kommentar


                        #26
                        Ich habe net=host akzeptiert

                        Kommentar


                          #27
                          Ich müsste es mal wieder probieren. Hatte zwischenzeitlich aufgegeben, da nur kurz Interesse bestand die Probleme zu suchen und zu beheben.
                          TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                          Kommentar


                            #28
                            Theoretisch könnte nat=true in der knxd config was helfen, praktisch tut es das bei mir aber leider nicht
                            https://github.com/knxd/knxd/issues/239

                            Kommentar


                              #29
                              Hallo,

                              ich versuche mich auch daran FHEM und KNXD in Docker container zu stecken.
                              Mit Docker habe ich noch starke verständnis Probleme.
                              Ich habe Henfris image als container gestartet. Wie kann ich es an mein ip interface anpassen? Also die Einstellungen der knxd.conf.
                              Ich benutze portainer und finde den Zugang nicht, das image zu bearbeiten.

                              viele Grüße

                              Frank

                              Kommentar


                                #30
                                Hallo,

                                ich habe gerade getestet: Raspberry Pi4 mit 8GB RAM + Weinzierl 838 KNX BAOS + Ubuntu 20.04.3 LTS

                                Die Schritte:
                                1. BAOS-Modul anschliessen und Strom anschalten.
                                2. Service serial-getty@ttyS0.service abschalten:
                                Code:
                                sudo systemctl stop serial-getty@ttyS0.service
                                sudo systemctl disable serial-getty@ttyS0.service
                                sudo systemctl mask serial-getty@ttyS0.service
                                3. Neue Datei /etc/udev/rules.d/10-local.rules erstellen:
                                Code:
                                KERNEL=="ttyS0", SYMLINK+="serial0" GROUP="tty" MODE="0660"
                                KERNEL=="ttyAMA0", SYMLINK+="serial1" GROUP="tty" MODE="0660"
                                4. udev neu einlesen:
                                Code:
                                sudo udevadm control --reload-rules && sudo udevadm trigger
                                5. Zeichenkette
                                console=serial0,115200
                                von der Datei /boot/firmware/cmdline.txt entfernen.
                                Bei mir sieht die Datei jetzt so aus:
                                Code:
                                #net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc
                                net.ifnames=0 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc
                                6. Bluetooth muss in der Datei /boot/firmware/usercfg.txt abgeschaltet werden:
                                Code:
                                # Place "config.txt" changes (dtparam, dtoverlay, disable_overscan, etc.) in
                                # this file. Please refer to the README file for a description of the various
                                # configuration files on the boot partition.
                                
                                dtoverlay=disable-bt
                                7. knxd installieren:
                                Code:
                                apt install knxd
                                8. Rechte des knxd-Users anpassen:
                                Code:
                                sudo adduser knxd tty
                                9. Die Konfig-Datei /etc/knxd.conf anpassen:
                                Code:
                                KNXD_OPTS="-e 1.1.50 -E 1.1.51:5 -D -T -R -S -B log -B single -b ft12cemi:/dev/ttyAMA0"
                                Die Datei kann nur die eine Zeile beinhalten.
                                Wichtig:
                                -e 1.1.50 ist die KNX-Adresse des BAOS-Moduls
                                -E 1.1.51:5 sind fünf Tunneladressen (von 1.1.51 bis 1.1.55). Eine von diesen Adressen könnte z.B. für ETS geschnappt werden.
                                10. Nach dem Neustart müsste alles funktionieren... Mit ETS müsste man die Verbindung mit der IP des PIs aufbauen können.

                                Gruß
                                Roman
                                Zuletzt geändert von rbrunka; 27.08.2021, 20:56.

                                Kommentar

                                Lädt...
                                X