Ankündigung

Einklappen
Keine Ankündigung bisher.

HowTO Docker Synology ( x64 - version)

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

    HowTO Docker Synology ( x64 - version)

    1. docker aus dem Packet-Manager installieren( wenn da kein docker ist -> hast du verloren ;-) )
    2. docker-compose.yml auf NAS erstellen ( z.B. in public)


    Code:
    smarthome-ng:
    image: henfri/smarthome-ng:v1.4
    volumes:
    # hier eure daten xxx einbinden
    - /xxx/smarthome/etc:/usr/local/smarthome/etc
    - /xxx/smarthome/items:/usr/local/smarthome/items
    - /xxx/smarthome/logics:/usr/local/smarthome/logics
    - /xxx/smarthome/scenes:/usr/local/smarthome/scenes
    # web smastvisu verfügbar machen( ist nicht zwingend notwendig, benötigt für auto generate)
    - /volume1/web/smartvisu:/volume1/web/smartvisu
    # var
    - /xxx/smarthome/var:/usr/local/smarthome/var
    # eftl. noch eigene plugins ( bei bedarf )
    - /xxx/smarthome/plugins/speech:/usr/local/smarthome/plugins/speech
    - /xxx/smarthome/plugins/autoblind:/usr/local/smarthome/plugins/autoblind
    privileged: true
    net: "host"
    restart: always
    
    knxd:
    # build: ./knxd/.
    image: henfri/knxd:v0.12.6
    net: "host"
    #192.168.178.xxx mit ip vom IP-Gateway ersetzen, oder wenn kein ip Interface verwender wird eigenen Aufruf verwenden
    command: knxd -e 0.0.1 -D -T -R -S -i --GroupCache --send-delay=60 -b ipt:192.168.178.xxx
    # debug knxd use
    # command: knxd -e 0.0.1 -t 65535 -D -T -R -S -i --GroupCache --send-delay=60 -b ipt:192.168.178.xxx
    restart: always
    3. mit "export COMPOSE_API_VERSION=1.18 ; sudo docker-compose up" starten
    4. nun sind die Kontainer in der Web GUI auf der synology sichtbar und können dort gestartet, und gestoppt werden, nach einen Neustart auch automatisch mitgestartet werden
    docker.png
    Zuletzt geändert von schlaubi666; 01.01.2018, 19:22.

    #2
    Hallo,

    vielen Dank, Dirk!
    Ein paar Anmerkungen/Fragen:
    1. Musstest du docker-compose nicht installieren? War das bei Docker aus dem Synology-Paket Manager dabei?
    2. Die SmartVisu musst du hier einbinden, um die Autogenerierung der Visu zu nutzen? Ansonsten sehe ich dafür keinen Grund.
    3. Was meints tu mit problemem mit pid file?
    4. Ein Kommentar zu den Plugins wäre noch sinnvoll (hier müssen nur Plugins angegeben werden, die nicht Teil von shpy sind
    5. net: "host" ist unschön. bei sh.py lässt sich das vermeiden. beim KNXd ist mir das nicht gelungen.
    6. Ein Screenshot aus dem WebGUI wäre noch schön.

    @all: Das wäre doch was für die Doku von sh.py, oder?

    Viele Grüße und danke nochmal,
    Hendrik
    Zuletzt geändert von henfri; 28.12.2017, 11:50. Grund: formatierung

    Kommentar


      #3
      1. docker-compose war dabei
      2. in der config von sh.py steht was von visu path, also habe ich den hier verfügbar gemacht
      3. kommentar gelöscht
      4. kommentar ergänzt
      5. welche ports sollten es den sein ?

      Kommentar


        #4
        Hallo,

        danke.
        Ports kommt natürlich drauf an, welche Plugins du nutzt. Ich habe:
        Code:
         - "2323:2323"
         - "2424:2424"
         - "2788:2788"
         - "8383:8383"
         - "9010:9010"
         - "1900:1900"
         - "1900:1900/udp"
        Aber ist auch ok mit net=host.

        Gruß,
        Hendrik

        Kommentar


          #5
          Danke für den Input. Äquivalent kann man die Einstellungen auch im GUI vornehmen. Mir ist aber noch unklar, wie nun die Verbindung zum knxd Container zustande kommt. Muss hier gar nichts konfiguriert werden?

          Leider bekomme ich es nicht hin, mich via Konsole mit dem Container zu verbinden/attachen. Fände das angenehm, um zB das CLI zu nutzen o.ä. Was mache ich da falsch?

          Kommentar


            #6
            Da beide Container net gleich ist eingestellt haben, musst du lediglich die IP des knxd container in der Konfiguration von SmartHome übernehmen.
            Ich ich habe gerade keine Konfigurationsdatei zur Hand aber ich habe irgendwo einen kompletten Satz an Konfigurationsdateien hochgeladen. Darin solltest du das sehen können.

            @schlaubi: könntest du das vielleicht auch noch in deinem How-Toübernehmen?

            Kommentar


              #7
              klar muß die ip des knxd in smartvisu hinterlegt werden , hat aber nix mit docker zu tun

              Kommentar


                #8
                Um in die normale Shell Umgebung zu kommen, ist übrigens folgender Befehl notwendig:
                docker exec -t -i CONTAINER_NAME bash

                Kommentar


                  #9
                  Hallo,

                  ich versuche die beiden Container auf meiner Diskstation per Docker Compose laufen zu lassen. Der smarthome-ng docker startet soweit. Allerdings bricht der KNXD ab mit der Fehlermeldung:
                  Layer 0 [7:usb:/dev/ttyUSB0 0.000] USBLoop-Create: No such file or directory
                  Layer 1 [7:usb:/dev/ttyUSB0 0.000] Close
                  Layer 1 [7:usb:/dev/ttyUSB0 0.000] Release
                  Layer 1 [7:usb:/dev/ttyUSB0 0.000] Close
                  initialisation of backend 'usb:/dev/ttyUSB0' failed: No such file or directory
                  Ich möchte den KNXD mit meiner Gira USB Schnittstelle verwenden. Ich vermute, dass die Startparameter nicht korrekt sind.
                  Versucht habe ich bisher
                  • command: knxd -e 1.1.251 -t 65535 -i -TDS -c usb:/dev/ttyUSB0
                  • command: 'knxd -t 1023 -e 0.0.1 -E 0.0.2:8 -u /tmp/eib -t 1023 -b usb:'
                    (hier musste ich die '' setzen, da sonst der docker mopert "ERROR: yaml.scanner.ScannerError: mapping values are not allowed here in "./docker-compose.yml", line 24, column 71")
                  Per dmesg kann ich leider den USB Pfad nicht korrekt erkennen. Ich vermute, dass /dev/ttyUSB0 nicht korrekt ist.
                  Ausgabe dmesg:
                  hid-generic 0003:135E:0022.0002: hiddev0: USB HID v1.01 Device [Gira Giersiepen GmbH & Co. KG KNX-USB Data Interface] on usb-0000:00:15.0-1/input0

                  Hat evtl jemand von euch den knxd docker mit USB Schnittstelle laufen und könnte mir seine Paramter zum testen nennen?
                  Unten noch meine komplette docker-compose.yml

                  Danke vorab & Grüße,
                  jes

                  Code:
                  smarthome-ng:
                    image: henfri/smarthome-ng:latest
                    volumes:
                      - ./smarthome/etc:/usr/local/smarthome/etc
                      - ./smarthome/items:/usr/local/smarthome/items
                      - ./smarthome/logics:/usr/local/smarthome/logics
                      - ./smarthome/scenes:/usr/local/smarthome/scenes
                      - ./smartvisu:/volume1/web/smartvisu
                      - ./smarthome/var:/usr/local/smarthome/var
                    privileged: true
                    net: "host"
                    restart: always
                  
                  knxd:
                    image: henfri/knxd:latest
                    net: "host"
                  #  command: knxd -e 1.1.251 -t 65535 -i -TDS -c usb:/dev/ttyUSB0
                    command: 'knxd -t 1023 -e 0.0.1 -E 0.0.2:8 -u /tmp/eib -t 1023 -b usb:'
                    restart: always
                  Zuletzt geändert von jes; 28.12.2018, 21:47.

                  Kommentar


                    #10
                    Hallo,

                    initialisation of backend 'usb:/dev/ttyUSB0' failed: No such file or directory
                    Ist ja recht eindeutig.
                    Kannst du auf der Synology kein ls /dev/tty* durchführen?

                    Gruß,
                    Hendrik

                    Kommentar


                      #11
                      Hi,

                      ls /dev/tty* geht. Aber liefert kein /dev/ttyUSB* zurück (siehe screenshot).

                      dmesg|grep -i usb liefert:
                      Code:
                      hid-generic 0003:135E:0022.0001: hiddev0: USB HID v1.01 Device [Gira Giersiepen GmbH & Co. KG KNX-USB Data Interface] on usb-0000:00:15.0-1/input0
                      Grüße,
                      jes
                      Angehängte Dateien
                      Zuletzt geändert von jes; 29.12.2018, 20:32.

                      Kommentar


                        #12
                        Sorry ich weiß nicht, wie man den Namen der Schnittstelle herausfindet.

                        Kommentar


                          #13
                          https://unix.stackexchange.com/quest...-serial-device

                          Kommentar


                            #14
                            Danke, mit dem Script konnte ich nun den dev Pfad finden:
                            admin@Diskstation:/volume1/docker$ bash scriptusb
                            /dev/usb/hiddev8 - Gira_Giersiepen_GmbH___Co._KG_KNX-USB_Data_Interface_ffffffd1ffffffb2ffffffd3ffffffb 5

                            --> /dev/usb/hiddev8

                            Leider kommt es beim Start vom KNXD Docker immer noch zum Fehler:
                            Startparameter: knxd -e 1.1.251 -t 65535 -i -TDS -c usb:/dev/usb/hiddev8 führt zu
                            "initialisation of backend 'usb:/dev/usb/hiddev8' failed: No such file or directory"
                            In Putty bin ich nach /dev/usb/ gegangen und kann dort "hiddev8" auch finden (in gelber Farbe).
                            Aber der knxd bootet dennoch nicht.

                            Grüße,
                            jes

                            Kommentar


                              #15
                              Es sieht so aus, dass der Docker keinen Zugriff auf das USB Device hat. Wenn man in der in der Docker GUI (DSM) den Container mit "hoher Priorität" (=root) startet, bootet der knxd erfolgreich.
                              Jetzt komme ich erstmal weiter, will aber noch schauen, ob ich das über die docker-compose besser einschränken kann, so dass nicht der ganze docker im root Modus laufen müsste.
                              Ein
                              volumes:
                              - /dev/bus/usb:/dev/bus/usb
                              scheint noch nicht auszureichen.

                              Kommentar

                              Lädt...
                              X