FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: FunkOdyssey am 22 Januar 2018, 17:42:43

Titel: Docker und Dashbuttons via dash_dhcp?
Beitrag von: FunkOdyssey am 22 Januar 2018, 17:42:43
Hallo,

ich habe im GitHub-Projekt https://github.com/doublexminus/xx-fhem#dash_dhcp-amazon-dashbuttons gelesen, dass man die Ports der Dashbuttons (67) einfach über den Port-Docker-Parameter auf 6767 umrouten kann. Persönlich habe ich das über die "docker-compose.yml" umgesetzt.

  -p 67:6767

Drücke ich auf die Dashbuttons, so sehe ich im tcpdump auch die empfangen Pakete:

sudo tcpdump -i eth0 port 67 or port 68 -e -n

Gehe ich aber in meinem FHEM-Container (egal ob privileged oder nicht), so wird dort nichts empfangen. Der FHEM-Container läuft selbstverständlich nicht im Host-Modus.

Innerhalb des Containers läuft FHEM eigentlich auch mit Root-Rechten. Dürfte die Weiterleitung auf Ports > 1000 dann nicht sowieso egal sein?

Hat sich zufälligerweise irgendjemand mit Docker und den Dashbuttons beschäftigt und kann mir einen Tipp geben?

Lesestoff:
https://github.com/doublexminus/xx-fhem#dash_dhcp-amazon-dashbuttons
https://haus-automatisierung.com/hardware/fhem/2017/12/11/fhem-tutorial-reihe-part-49-dash-button.html
https://maker-tutorials.com/fhem-geraete-mit-amazon-dash-button-schaltensteuern-raspberry-pi-home-automation/
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: FunkOdyssey am 30 Januar 2018, 12:20:05
Zwischenstand:

Ich bin in einem anderen Docker-Projekt zufällig darüber gestolpert, dass man dem Container evtl. mehr Rechte mitgeben muss.

    cap_add:
      - NET_ADMIN
      - NET_RAW


Das scheint sinnvoll, da dann auch der volle Zugriff auf das Netzwerk eingerichtet wird. Aber ich habe mein FHEM nicht (wie im oben erwähnten Docker-Projekt als "network_mode: host" laufen).

Ich hätte wetten können, dass der erste Versuch in dash_dhcp erfolgreich war. Aber ich kann es nicht mehr rekonstruieren. Irgendwie reagiert mein dash_dhcp gar nicht mehr. Auch eine Neuanlage der dash_dhcp-Konfiguration führte nicht zum Erfolg.

Internals:
   CFGFN     
   CONNECTS   2
   FD         216
   LAST_CONNECT 2018-01-29 22:15:46
   LAST_DISCONNECT 2018-01-29 22:15:46
   NAME       dash_buttons
   NR         1109
   NTFY_ORDER 50-dash_buttons
   PORT       6767
   STATE      listening
   TYPE       dash_dhcp
   READINGS:
     2018-01-29 22:15:46   state           listening
Attributes:
   allowed    xc:63:be:xc:01:x8
   port       6767


Ich habe die Mac-Adresse auch vorsichtshalber mal groß geschrieben. Und es auch mit devAlias (dann mit Bindestrichen) versucht.

Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: eszych am 25 Februar 2018, 17:50:05
Hallo FunkOsyssey,

ich hatte das gleiche Problem.
Wichtig is zu wissen, dass ein DHCP Request als UDP geschickt wird, Docker aber standardmäßig Portumleitungen auf TCP anlegt.
Das läßt sich auch leicht verifizieren, wenn Du auf dem Docker Host mit deiner Einstellung netstat -atn aufrufst.
Dort sollte irgendwo der Port 67 auftauchen. Wenn Du netstat -aun aufrufst, dann taucht da aber kein Port 67 auf...

Wenn Dir das ganz zu hoch ist, hier mal der Auszug aus meiner docker-compose.yml:
    fhem:
        restart: always
        expose:
            - "8080"
            - "8083"
            - "7072"
            - "67"
        ports:
            - 7072:7072
            - 8083:8083
            - 8080:8080
            - 67:6767/udp
        build: fhem
        container_name: fhem
        privileged: true


ach ja - es ist eine docker-compose.yml Version "2"...

Mit der Einstellung funktioniert es bei mir.

Viel Erfolg!
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: FunkOdyssey am 25 Februar 2018, 20:21:53
Ach, so etwas doofes. Das hat mich Tage an Nerven gekostet und ich habe das schlussendlich anders gemacht:
- Dash_dhcp in einem leeren FHEM-Container im Host-Modus
- Anbindung per FHEM2FHEM mit dem Produktiv-FHEM-Container

Also jede Menge unnötiger Ballast. Und das nur, weil ich nicht aufs Protokoll geachtet habe. Obwohl ich das sogar gesehen habe. Nur wüsste ich nicht, dass Docker nur TCP forwarded.

Danke dir. Läuft auf Anhieb. Auch ohne ,,privileged". Die ,,cap_add"-Zeilen habe ich sowieso aktiv.
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: doublexminus am 21 Dezember 2018, 17:52:17
Ich weiß, es ist schon ein paar Tage her, dass hier das Problem aufgetaucht ist.

Da ich grade selbst dabei bin, mein FHEM mit Docker (auf alpine-basis) neu aufzusetzen, bin ich lustiger weise selbst darüber gestolpert.

Ich werde dann wohl mal die Beschreibung updaten, so das man direkt sieht das es sich um UDP handelt :D
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: solidphili am 30 Januar 2019, 10:54:11
Sorry für das Hochziehen des alten Threads.
Ich versuche den Dash Button in meiner FHEM Docker Instanz zum Laufen zu bekommen. Ich kriege den UDP Port nicht hinzugefügt.
In meinem Container bekomme ich die Fehlermeldung "Lokaler Port 67,.... steht in Konflikt mit anderen Ports und anderen Diensten". Mit netstat finde ich keinen Dienst der diesen Port benutzt.
Ich hab auch einen Tipp gefunden, in dem stand, man solle hier nach Applikationen und Ports suchen: /usr/local/etc/services.d
Leider finde ich dort auch nichts.

Jemand vielleicht ne Idee?
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: volschin am 24 Mai 2020, 21:10:20
Zitat von: FunkOdyssey am 25 Februar 2018, 20:21:53
Danke dir. Läuft auf Anhieb. Auch ohne ,,privileged". Die ,,cap_add"-Zeilen habe ich sowieso aktiv.
Das Leben kann so einfach sein.  :) Vielen Dank.

Bei mir reicht die einfache Ergänzung:
        ports:
            - 67:6767/udp

Es sieht also so aus, dass weder ein cap_add noch ein privileged=true für die Funktion notwendig ist, also keine Sicherheitseinbuße.
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Gear am 14 Januar 2023, 09:20:15
Um kein neues Thema zu öffnen, frage ich hier mal nach:

Habe FHEM im Docker:
services:

####>---- FHEM ----<######################################################################################################

  fhem:
    container_name: FHEM
    image: fhem/fhem:latest
    hostname: fhem
    privileged: true
    restart: always
    networks:
      internal:
        ipv4_address: 172.18.0.2
    ports:
      - 8083:8083
      - 7072:7072
      - 67:6767/udp
    cap_add:
      - NET_ADMIN
      - NET_RAW
    environment:
      PIP_PKGS: "fhem beautifulsoup4"
    volumes:
      - /My/Path/2/FHEM:/opt/fhem

####>---- Network ----<######################################################################################################

networks:
  internal:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/16
          gateway: 172.18.0.1
          ip_range: 172.18.0.1/24


Habe auf dem Host folgendes ausgeführt:
sudo iptables -I PREROUTING -t nat -i enp1s0 -p udp --src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6767
sudo apt-get install iptables-persistent


Mein FHEM Define:
defmod DHCP.Catcher dash_dhcp
attr DHCP.Catcher DbLogExclude .*
attr DHCP.Catcher allowed XX:XX:XX:XX:XX:XX
attr DHCP.Catcher port 6767


Device getestet auf eine RPi ohne Docker.
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Wernieman am 14 Januar 2023, 13:14:01
Warum machst Du per iptables eine NAT-Umleitung??
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Gear am 14 Januar 2023, 13:38:16
Weil ich das damals irgendwo nach einer Anleitung gemacht hatte.
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Wernieman am 14 Januar 2023, 14:32:01
Kann es sein, das DU alle Befehle irgendwie "nur nach Anleitung" gemacht hast? Die apt-get Installationen machen erstmal keinen Sinn ...
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Gear am 14 Januar 2023, 14:47:16
Ich habe das nach der Anleitung gemacht, das ist aber auch schon ewig her.
Habe es nur aus meinen Notizen genommen und für das neue System auch so gemacht.

https://haus-automatisierung.com/hardware/fhem/2017/12/11/fhem-tutorial-reihe-part-49-dash-button.html
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Gear am 14 Januar 2023, 17:34:00
@Werner
Jetzt verstehe ich, was du meinst.
Doch der Befehl speichert die aktuellen Netzwerksettings feste ein.
Sonst müsste man das nach einem Neustart neu setzen.
So bin ich damals auf das Tutorial gestoßen.
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Wernieman am 14 Januar 2023, 20:53:41
tcpdump brauchst Du aber dafür nicht ....

Und leider OT .. von dem Tutorial halte ich nichts. Mangels Hardware kann ich Dir nur nicht weiterhelfen ...
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Gear am 14 Januar 2023, 20:58:11
Na ja, ich nutze keine Dash-Buttons.
Man kann hier auf jedes Gerät was sich am DHCP-Server anmeldet reagieren.

z.B. wenn das Smartphone sich anmeldet, ein TV-Stick, oder was auch immer.

Und ob das Tutorial gut ist oder nicht, es hat auf dem RPi bisher funktioniert.
Aber wie auch immer...
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Wernieman am 14 Januar 2023, 21:08:33
Man kann hier auf jedes Gerät was sich am DHCP-Server anmeldet reagieren.
Da würde ich Dir besser einen richtigen DHCP-Server mit Scripting funktionen empfehlen ....
Titel: Antw:Docker und Dashbuttons via dash_dhcp?
Beitrag von: Gear am 14 Januar 2023, 21:42:17
Zitat von: Wernieman am 14 Januar 2023, 21:08:33
Man kann hier auf jedes Gerät was sich am DHCP-Server anmeldet reagieren.
Da würde ich Dir besser einen richtigen DHCP-Server mit Scripting funktionen empfehlen ....

Brauche ich das wirklich?
Das steht in keinster Weise in Relation für mein Vorhaben.
Ich lausche nach drei Geräten, um mein WiFi 5 GHz zu steuern und das HomeComing zu realisieren.

Danke für Deinen Vorschlag, aber es ist wie gesagt zu viel für mein Vorhaben.