Ankündigung

Einklappen
Keine Ankündigung bisher.

KNXD auf Docker (Synology NAS)

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

    KNXD auf Docker (Synology NAS)

    Hi,

    ich bin seit zwei Tagen am einlesen in Docker. Mein erstes Dockerfile ist auch entsprechend der Anleitung der folgenden Seite gefolgt:

    https://smarthomeng.de/user/installa...itung_knx.html

    Als root läuft der folgende code mit "docker build -t knxd ." auf meiner Synology NAS durch.

    Code:
    # Use an official Ubuntu runtime as a parent image
    FROM debian:jessie
    
    #KNXD Installation
    #------------------------------------------------------------------------------
    RUN apt-get -y update
    #Zunächst müssen für den Bau einige grundlegende Tools installiert werden:
    RUN apt-get -y install git-core build-essential
    #debhelper-Erweiterung zur Behandlung von systemd-Dateien
    RUN apt-get -y install dh-systemd
    #Erstellt automatisch configure-Skripte
    RUN apt-get -y install autoconf
    #Generisches Skript zur Unterstützung von Bibliotheken
    RUN apt-get -y install libtool
    #Bibliothek zum Programmieren von USB-Anwendungen ohne Kenntnis der Linux-Kernel-Interna
    RUN apt-get -y install libusb-1.0-0-dev
    #Pkg-config ist ein System zur Verwaltung von Schaltern für die Übersetzung und Verknüpfung von Bibliotheken, das mit automake und autoconf arbeitet.
    RUN apt-get -y install pkg-config
    #Die Bibliothek sd-daemon stellt eine Referenzimplementierung mehrerer APIs für neuartige Daemons bereit, wie sie vom Initialisierungssystem systemd implementiert werden
    
    #Für Debian Jessie wird benötigt:
    RUN apt-get -y install libsystemd-daemon-dev
    #Für Debian Stretch wird benötigt:
    RUN apt-get -y install libsystemd-dev
    #Nun noch libev-dev installieren
    RUN apt-get -y install libev-dev
    #Und es wird noch das cmake tool benötigt
    RUN apt-get -y install cmake
    
    #Quellcode laden, compilieren und ein Paket schnüren
    #Zunächst den Quellcode für den knxd vom github laden und sicherstellen, das der 0.14 branch gewählt wird:
    RUN git clone https://github.com/knxd/knxd.git
    RUN cd knxd && git checkout stable
    #Im Unterverzeichnis toolsfindet sich ein Skript was benötigt wird um libfmt herunterzuladen und zu bauen
    RUN cd knxd && tools/get_libfmt
    #Dann übersetzen und das Paket schnüren:
    RUN cd knxd && dpkg-buildpackage -b -uc
    #Wichtig ist, das am Ende der Paketerstellung keine Fehler gemeldet wurden
    RUN apt-get -y install init-system-helpers
    #Sollte die Paketerstellung fehlerfrei ablaufen, dann kann das Paket nun noch installiert werden mit:
    RUN dpkg -i knxd_*.deb knxd-tools_*.deb
    
    #KNXD Konfigurieren
    RUN /usr/lib/knxd_args -e 0.0.1 -E 0.0.2:8 -DTRS --error=3 -t 1023 -i --send-delay=30 ipt:192.168.178.31
    Erstes Problem:
    Der Befehlt "docker run knxd" lässt aber knxd nicht starten. Über DSM lässt es sich aber starten.

    Zweites Problem:
    Über Terminal (Tool in Synology DSM Docker) habe ich nun den Befehlt "systemctl start knxd.socket" ausgeführt. Dieser bricht mit folgender Fehlermeldung ab:

    Code:
    Failed to get D-Bus connection: Unknown error -1
    Ich habe die Vermutung das ich KNXD die falschen Werte übergeben habe.
    Was ist -e und -E? Habe die Weinzierl 730 unter 1.1.251 laufen. Damit gehts aber auch nicht.

    Kann mir vielleicht jemand auf die Sprünge helfen?

    #2
    wieso machst du das unter synology nicht einfach via GUI und nimmst das dort nutzbare image?

    meine parameter dort:
    cc.JPG
    parameter siehe KNXD doku: https://github.com/knxd/knxd/wiki/Co...ine-parameters
    Zuletzt geändert von psilo; 23.09.2018, 12:45.

    Kommentar


      #3
      Hi psilo,
      Hab die von henfri probiert. Da bekomme aich es auch nicht zum laufen. Groupswrite geht nicht. Es kommt zwar die Meldung "Send request" aber es tut sich nix.

      Muss ich in der ETS irgendetwas vorbereiten?

      Ich habe die Adresse 0.0.2 bereits belegt. Daher habe ich einmal folgendes probiert:

      knxd -e 0.0.240 -E 0.0.241:8 -DTRS -c -i -B single -b ipt:192.168.178.31
      und
      knxd -e 0.0.1 -E 0.0.2:8 -DTRS -c -i -B single -b ipt:192.168.178.31

      Beides funktioniert auch nicht. Habe auch mal die v0.12.6 getestet, geht auch nicht.
      Zuletzt geändert von Salf; 23.09.2018, 13:35.

      Kommentar


        #4
        nein in ets ist nichts zu tun.. ich habe allerdings auch ein siemens interface..

        Kommentar


          #5
          Nächster Versuch.

          Ich habe nun die folgende Anleitung befolgt. (OWTF brauche ich nicht, daher auch entfernt)

          https://knx-user-forum.de/forum/supp...atz-via-docker

          Alle Prozesse laufen aber KNXD geht wohl wieder nicht. EIBD lieft früher wie folgt.

          Code:
          eibd -d -i --no-tunnel-client-queuing ipt:192.168.178.31
          docker-compose.yml
          Code:
          smarthome-ng:
          #  build: smarthome-ng/.
            image: henfri/smarthome-ng
            volumes:
            - /volume1/smarthome/smarthomeng/etc:/usr/local/smarthome/etc
            - /volume1/smarthome/smarthomeng/items:/usr/local/smarthome/items
            - /volume1/smarthome/smarthomeng/logics:/usr/local/smarthome/logics
            - /volume1/smarthome/smarthomeng/scenes:/usr/local/smarthome/scenes
            - /volume1/smarthome/smarthomeng/tools:/usr/local/smarthome/tools
            - /volume1/smarthome/smarthomeng/var:/usr/local/smarthome/var
          # example for user provided plugin
          # uncomment next line
          #  - /mnt2/Dokumente/Hendrik/docker_smarthome/config/smarthomeNGconfig/plugins/whatsapp:/usr/local/smarthome/plugins/whatsapp
          # example for devide to be passed
          #  - /dev/TEAC:/dev/TEAC
            privileged: true
            ports:
            - "2323:2323"
            - "2424:2424"
            - "2788:2788"  
            links:
             - "smartvisu"
            command: "/usr/local/bin/run.sh"
            restart: always
           
          knxd:
            image: henfri/knxd
            net: "host"
            command: knxd --error=0 -D -T -R -S -i --GroupCache --no-tunnel-client-queuing -b ipt:192.168.177.31
            restart: always
          
          smartvisu:
            image: richarvey/nginx-php-fpm
            volumes:
            - /volume1/smarthome/smartvisu/:/var/www/html
            ports:
            - 8080:80
            restart: always

          Kommentar


            #6
            Na endlich, KNXD läuft. Den rest teste ich nachher.

            Startbefehl für Weinzierl 730
            Code:
            knxd --eibaddr=0.0.1 -u /tmp/eib -u /var/run/knx -i -DTRS -b ipt:192.168.178.31

            Kommentar


              #7
              So, bin jetzt auf der Fehlersuche auf SmarthomeNG. Gibts da ein paar Tipps wie ich das in einem Docker container am besten mache?

              Ich kann zwar mit per Putty und folgendem Befehl auf die Komandozeile als root. Ist aber etwas mühsählig.

              Code:
              docker exec -it --user root <container_name> bash
              Gibt es irgendwie eine Möglichkeit im Synology Docker Terminal den root Zugriff zu bekommen?

              Kommentar


                #8
                Weiss nicht.
                Aber portainer ist dafür gut geeignet.
                Woran lag das knxd problem denn?
                Ich hab ja auch ein 730.

                Kommentar


                  #9
                  Knxd lief nur wegen dem CMD Befehl nicht. Meinen habe ich oben gepostet. Hab ihn jetzt noch um "--no-tunnel-client-queuing" ergänzt, da nicht alle Rollos gleichzeitig fuhren.

                  Und noch etwas, im Docker Compose habe ich "--start" als CMD für smarthomeng. Vorher lief smarthome.py nicht automatisch an. Damit kann man auf der Synology die Docker GUI nun einfach nutzen.

                  Kommentar

                  Lädt...
                  X