Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Hi,
ich starte ein Dockerimage basierend auf dem von Henfri.
localhost und 127.0.0.1 habe ich vorher probiert bei groupswrite mit gleichem Ergebnis.
Den Router konnte ich aus dem Docker heraus anpingen.
viele Grüße
Frank
Ah. Hast du dem Docker gesagt, er soll UDP-Pakete auf Port 6720 durchlassen/weiterschicken/was-auch-immer?
Wahrscheinlich nicht.
Ich finde Docker ehrlich gesagt ziemlich sinnfreie Ressourcenverschwendung, erstens auf dem Rechner an sich – und zweitens, weil gefühlt *jeder*, der ihn verwenden will, erstmal ein Problem damit hat … und Leute fragt, die sich zwar mit der verpackten App, aber mit Docker selber nicht die Bohne auskennen. Oder umgekehrt, aber wenigstens davon bekomme ich nix mit …
Hi,
es dauert nicht mehr lange und ich muss ins Irrenhaus wegen dem Docker Scheiß. Hab noch ne Baustelle zwischen fhem und mariadb im docker mal sehen wann das läuft. Irre was ich deswegen an Zeit verschwende...
Zurück zu knxd in docker
Das Dockerfile lautet:
Code:
FROM debian:jessie
MAINTAINER Hendrik Friedel hendrik@friedels.name
RUN apt-get -y update
RUN apt-get -y install git-core build-essential debhelper autotools-dev autoconf automake libtool \
libusb-1.0-0-dev pkg-config base-files base-files libev-dev \
init-system-helpers dh-systemd libsystemd-dev libsystemd-daemon-dev
# now build+install knxd
RUN git clone https://github.com/knxd/knxd.git && cd knxd && git checkout tags/v0.12.6 && \
dpkg-buildpackage -b -uc && cd .. && dpkg -i knxd_*.deb knxd-tools_*.deb
#EXPOSE 4720 6720 3671/udp
##### NOTE AND README ######
#start this container with --net=host instead of binding ports
CMD [knxd -e 1.1.200 -E 1.1.201:4 -u /tmp/eib -t 1023 -DTRS -b ipt:192.168.178.23]
QUOTE=Smurf ;n1558752]Ah. Hast du dem Docker gesagt, er soll UDP-Pakete auf Port 6720 durchlassen/weiterschicken/was-auch-immer?
Wahrscheinlich nicht.[/quote]
Ja, dafür ist net=host nötig (zumindest habe ich keine Alternative gefunden).
Ich finde Docker ehrlich gesagt ziemlich sinnfreie Ressourcenverschwendung, erstens auf dem Rechner an sich – und zweitens, weil gefühlt *jeder*, der ihn verwenden will, erstmal ein Problem damit hat … und Leute fragt, die sich zwar mit der verpackten App, aber mit Docker selber nicht die Bohne auskennen. Oder umgekehrt, aber wenigstens davon bekomme ich nix mit …
Wenn es eine statisch gelinkte knxd gäbe, die man einfach herunterladen könnte, dann bräuchte man in meinen Augen Docker auch nicht.
Aber zumindest vor einiger Zeit war das Kompilieren (damals noch vom eibd) eine Katastrophe.
Ich bin OSS fan. Aber auf Autos (Autovergleiche sind ja immer gut) angewandt würde das bedeuten, dass es Open-Source Autos gibt, bei denen Tante Hilde dann erstmal die Zylinder selbst in den Motorblock packen müsste. Mit dem dafür nötigen Spezialwerkzeug (compiler bei Software) muss sie sich auch erstmal vertraut machen.
Nachdem ihr das gelungen ist, sieht sie, dass der Motor der Version 1.7.2.1 nicht mit dem Getriebe der Version 1.2.3 kompatibel ist. Sie kauft also ein Getriebe in der Version 1.2.4. Aber damit ist der Schaltknauf nicht kompatibel. Also muss sie den Schaltknauf auch updaten. Dafür muss sie sich aber wieder mit einem Spezialwerkeug vertraut machen.
OSS ist gut. Aber es wäre besser wenn man nicht alles selbst kompilieren müsste.
Die Kritik mag nicht (mehr) auf den knxd, v.a. unter Debian zutreffen.
Warum build? Warum willst du das Docker image selbst bauen?
Siehe oben, dann nimmst du das vom Docker hub - geht auch schneller.
Ich hab das doch hier ausführlich beschrieben. Hier machst du was anderes, als ich dir geschrieben hab.
Du kannst gerne was anderes machen. Wenn du weißt was du tust. Bis dahin, geh doch einfach den eingetretenen Pfad.
funktioniert das ganze nur bei Vollmond und dann doch wieder nicht in docker?
es dauert nicht mehr lange und ich muss ins Irrenhaus wegen dem Docker Scheiß. Hab noch ne Baustelle zwischen fhem und mariadb im docker mal sehen wann das läuft. Irre was ich deswegen an Zeit verschwende...
danke für deine Hinweise. Ich erwarte eigentlich den eingetretenen Pfad zu nehmen wenn ich knxd Befehle verwende, die vorher bei knxd ohne Docker funktioniert haben. Daher habe ich nicht deine Befehle benutzt.
Ich habe jetzt auf dein image umgestellt. Das Kommando im stack lautet
ich kann jetzt Kommandos auf den Bus geben und Lampen schalten.
Aber es scheint mir den bus zu zerschießen. Kann keine Rollo mehr bewgen, da Kommados scheinbar verfielfältigt werden. Auf dem busmmonitor sind alle Befehle jetzt in 4facher Ausfertigung zu finden. Siehe Bild im Anhang.
Ich glaube es liegt weinger am image als an der richtigen Konfig des knxd wenn er in einem Docker ist
-DTRS -c -i --send-delay=120 -B single -b ipt:192.168.178.23
Standardproblem. Schleife im Bus. Sowohl dein Adapter als auch dein knxd lauschen auf Multicast *und* reden direkt miteinander.
Das hat noch nie funktioniert. Mach eines dieser Features aus, d.h. entweder deinem Adapter das Multicasten verbieten, oder dem knxd, oder das "-B single -b ipt:X.X.X.X" entfernen. Ich an deiner Stelle würde Ersteres tun.
Dass dieses Problem deine Rollosteuerung zerschießt, ist im Übrigen so auch nicht vorgesehen. KNX-Befehle sollen idempotent sein, es hat egal zu sein ob sie einmal oder viermal ankommen. Da musst du mit dem Empfänger dieser Pakete mal ein ernstes Wort reden.
DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben
Der bus ist wieder nüchtern. Ich kann schalten und sehe auch nichts mehr doppelt. Wunderbar.
Die Rollos gingen nicht in dem Sinn, dass sie nur kurz geruckt haben. Die GA für den Start kann auch stoppen.
Jetzt stelle ich fest, dass FHEM den knxd nicht ansprechen kann. Beide container sind in --net=host. Alle ports sind also offen. Weder -i noch -u geht. Obwohl der TUL auf initialized steht.
Es bleibt spannend.
Zuletzt geändert von Frank6320; 21.10.2020, 20:40.
Jetzt stelle ich fest, dass FHEM den knxd nicht ansprechen kann. Beide container sind in --net=host. Alle ports sind also offen. Weder -i noch -u geht. Obwohl der TUL auf initialized steht.
Es bleibt spannend.
"-u" landet irgendwo im lokalen Dateisystem. Der Docker hat aber sein eigenes. "-i" ohne Parameter ist auch Localhost, das lässt der Docker durch oder auch nicht, nimm die IP-Adresse des Rechners stattdessen. (Dito für knxtool und FHEM und so.) Vielleicht geht das. Oder auch nicht. (Ja, man kann das Ganze auch so konfigurieren, dass zwar beide ins Netz können, aber lokaler Traffic *nicht* möglich ist …)
Das sind alles, mit Verlaub, Kindergartenproblem in dem Sinne, dass die Leute mit diesen Problemen nicht wissen, wie Docker überhaupt funktioniert und wieso nicht. Alles gut, man muss nicht alles wissen – aber die Leute die Docker empfehlen sollten sich halt im Klaren sein dass das Zeug auch seine Tücken hat und es eben *nicht* zwangsläufig einfacher ist, sich ein Docker-Image mit knxd drauf runterzupfeifen und alles funktioniert, statt ihn selber zu bauen – falls die Distro ihn nicht eh bereits hat.
ok werde -i und -u noch mal ein wenig variieren.
Ja hatte nicht erwartet mir so viel Theater einzuhandeln. Hatte zwischendurch alles in proxmox. Da ist es stärker getrennt, so als wären es verschiedene Systeme. Das lief auf anhieb.
viele Grüße
Frank
aber die Leute die Docker empfehlen sollten sich halt im Klaren sein dass das Zeug auch seine Tücken hat und es eben *nicht* zwangsläufig einfacher ist, sich ein Docker-Image mit knxd drauf runterzupfeifen und alles funktioniert, statt ihn selber zu bauen – falls die Distro ihn nicht eh bereits hat.
Ist ihnen aber anscheinend nicht.
Ja, da hast du Recht. Man muss sich schon mit Docker befassen - allerdings muss man das Prinzip nur einmal verstehen, im Gegensatz zu den Compiler/Lib/Abhänigkeitsproblemen.
Ist vielleicht auch Geschmackssache.
Und was eben auch nicht ausbleibt: Man muss sich mit der Anwendung auseinandersetzen und wissen, was i und u machen.
Ja hatte nicht erwartet mir so viel Theater einzuhandeln. Hatte zwischendurch alles in proxmox. Da ist es stärker getrennt, so als wären es verschiedene Systeme. Das lief auf anhieb.
Hatte aber andere Nachteile, sonst würdest du ja nix ändern, oder?
tja einfach mal probieren. auf /tmp/knx verweisen statt eib. Hat aber nicht geholfen. Wenn ich die Antwort hätte bräuchte ich es nicht. Mir leuchtet nicht ein wieso eine Kommunikation zu einer anderen ip oder innerhalb eines Systems funktionert, aber mit docker so ein Bohei entsteht.
das ist ein gute Idee. Ich kann das Verzeichnis mal mounten zu beiden Containern. Mal schauen was passiert.
Gestern habe ioch noch einen eleganten Weg gefunden, damit FHEM mit dem KNX bus redet: Es gibt in FHEM schon direkt einen KNXTUL der ohne den knxd auskommt. Funktioniert super. Werde den dann wahrscheinlich benutzen, da dann kein extra Container notwendig wird.
da Henfris Glaskugel die Lösung nicht aussupcken will, lüfte ich mal das Geheimnis wieso es bei mir Probleme gibt mit dem knxd.
Ich hatte nicht net=host verwendet. Ich hatte eine bridge verwendet, bei denen es dann Probleme mit dem udp ins äußere Netz gibt. Das ww ist scheinbar voll mit diesem Sachverhalt.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar