[Geloest] WOL via FHEM mit Docker

Begonnen von Hackstall, 12 November 2020, 21:02:56

Vorheriges Thema - Nächstes Thema

SonOfAbaddon

defmod WOL_NAS WOL 5C:F4:AB:E7:CF:3D 192.168.50.250 BOTH
attr WOL_NAS devStateIcon on:general_an@orange:off off:general_aus@black:on
attr WOL_NAS event-on-change-reading state
attr WOL_NAS icon it_nas@3399FF
attr WOL_NAS interval 30
attr WOL_NAS room System->Funktionen
attr WOL_NAS shutdownCmd "./NAS_shutdown.sh"
attr WOL_NAS wolCmd "./NAS_WOL.sh"


oder
defmod WOL_NAS WOL 5C:F4:AB:E7:CF:3D 192.168.50.250 BOTH
attr WOL_NAS devStateIcon on:general_an@orange:off off:general_aus@black:on
attr WOL_NAS event-on-change-reading state
attr WOL_NAS icon it_nas@3399FF
attr WOL_NAS interval 30
attr WOL_NAS room System->Funktionen
attr WOL_NAS sshHost fhem@host.docker.internal
attr WOL_NAS shutdownCmd "./NAS_shutdown.sh"
attr WOL_NAS wolCmd "wakeonlan 5C:F4:AB:E7:CF:3D"


Auszug aus dem Log:
2022.02.06 16:40:44 4: WEB_192.168.100.32_50016 POST /fhem?cmd.WOL_NAS=set%20WOL_NAS%20on&XHR=1&fwcsrf=csrf_643243148991735&fw_id=3880; BUFLEN:0
2022.02.06 16:40:44 5: Cmd: >set WOL_NAS on<
2022.02.06 16:40:44 3: [WOL_NAS] set WOL_NAS on
2022.02.06 16:40:44 3: [WOL_NAS] waking  WOL_NAS with MAC 5C:F4:AB:E7:CF:3D IP 192.168.50.250 via BOTH
2022.02.06 16:40:44 1: [WOL_NAS] Guessing broadcast address: 192.168.50.255
2022.02.06 16:40:44 4: [WOL_NAS] keeping WOL_NAS with MAC 5C:F4:AB:E7:CF:3D IP 192.168.50.255 busy
2022.02.06 16:40:44 4: [WOL_NAS] executing /usr/sbin/etherwake 5C:F4:AB:E7:CF:3D
2022.02.06 16:40:44 4: WEB: /fhem?cmd.WOL_NAS=set%20WOL_NAS%20on&XHR=1&fwcsrf=csrf_643243148991735&fw_id=3880 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate


Der shutdown per .sh läuft sauber an und wird ausgeführt.
FHEM in Docker auf HP T620, MQTT über Mosquitto, HomeMatic, Alexa, KODI, FritzBox, diverse gelötete HM-UNI- & ESP-Sensoren/Aktoren

Otto123

#31
Bei dem was Du machen willst gehört das BOTH nicht dahin.
Und gestellte Fragen solltest Du beantworten, nicht mit Prosa sondern mit Fakten.

Wird denn Dein name host.docker.internal aufgelöst? Was liefert:
{qx(host host.docker.internal)}
in der FHEM Kommandozeile?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

SonOfAbaddon

#32
Zitat von: Otto123 am 06 Februar 2022, 16:50:35
Bei dem was Du machen willst gehört das BOTH nicht dahin.
Und gestellte Fragen solltest Du beantworten, nicht mit Prosa sondern mit Fakten.

OK, ich teste ohne both. Hatte nicht mehr im Hinterkopf, dass damit der FHEM-Modus gezündet wird. Ist ein wenig her, dass ich das Modul imtegriert habe.


Worauf willst du hiinaus?
Du hast gefragt welche Benutz - habe ich beschriben.
kadettilac hat nach Logs und der device config gefragt - habe ich beschrieben?

Was soll der Ton?
FHEM in Docker auf HP T620, MQTT über Mosquitto, HomeMatic, Alexa, KODI, FritzBox, diverse gelötete HM-UNI- & ESP-Sensoren/Aktoren

Otto123

Zitat von: Otto123 am 06 Februar 2022, 15:20:26
Mit welchem user hast Du das getestet? Mit welchem user läuft FHEM?
In der FHEM Kommandozeile
{qx(id)}
in der container cli
id

Falls Du da Hilfe brauchst wie Du ssh für den FHEM User einrichten sollst: https://heinz-otto.blogspot.com/2020/09/ssh-mit-public-key.html
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

SonOfAbaddon

#34
Zitat von: Otto123 am 06 Februar 2022, 16:54:28


wie beschrieben fhem

FHEM
uid=6061(fhem) gid=6061(fhem) groups=6061(fhem),5(tty),8(mail),20(dialout),29(audio),44(video),6001(bluetooth),6002(gpio),6003(i2c)
container
uid=6061(fhem) gid=6061(fhem) groups=6061(fhem),5(tty),8(mail),20(dialout),29(audio),44(video),6001(bluetooth),6002(gpio),6003(i2c)

qx zum host
Host host.docker.internal not found: 3(NXDOMAIN)

Da kommen wir der Sache näher. Interessant: nslookup im container löst auch nicht auf, ein ssh fhem@host..... wakeonlan .....   läuft sauber durch.
FHEM in Docker auf HP T620, MQTT über Mosquitto, HomeMatic, Alexa, KODI, FritzBox, diverse gelötete HM-UNI- & ESP-Sensoren/Aktoren

Otto123

Was liefert der?
{qx(ls -lha wakeonlan)}
Funktioniert das in der FHEM Kommandozeile?
"wakeonlan 5C:F4:AB:E7:CF:3D"

Ach ne quatsch das soll ja per ssh - sorry ich lasse es mal stehen
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

SonOfAbaddon

#36
Hab es hinbekommen. Der entscheidende Hinweis war das "BOTH" auf "CMD" zu drehen.

Dieser device build läuft nun für WOL und shutdown:

defmod WOL_NAS WOL 5C:F4:AB:E7:CF:3D 192.168.50.250 CMD
attr WOL_NAS devStateIcon on:general_an@orange:off off:general_aus@black:on
attr WOL_NAS event-on-change-reading state
attr WOL_NAS icon it_nas@3399FF
attr WOL_NAS interval 30
attr WOL_NAS room System->Funktionen
attr WOL_NAS shutdownCmd "./NAS_shutdown.sh"
attr WOL_NAS sshHost fhem@host.docker.internal
attr WOL_NAS wolCmd wakeonlan 5C:F4:AB:E7:CF:3D



Danke für die Detailhilfe! dem UDP/BOTH/CMD Parameter bin ich nicht mehr auf die Schliche gekommen.
FHEM in Docker auf HP T620, MQTT über Mosquitto, HomeMatic, Alexa, KODI, FritzBox, diverse gelötete HM-UNI- & ESP-Sensoren/Aktoren

SonOfAbaddon

#37
Zitat von: Otto123 am 06 Februar 2022, 17:03:06
Was liefert der?
{qx(ls -lha wakeonlan)}
kommt gar nichts zurück, kein Ergebnis, kein Fehler

Zitat von: Otto123 am 06 Februar 2022, 17:03:06
Funktioniert das in der FHEM Kommandozeile?
"wakeonlan 5C:F4:AB:E7:CF:3D"
Ach ne quatsch das soll ja per ssh - sorry ich lasse es mal stehen
Unknown command wakeonlan, try help.   Ist aber von mir erwartet, da das wakeonlan auf dem host liegt und per SSH getriggert wird, genau.
FHEM in Docker auf HP T620, MQTT über Mosquitto, HomeMatic, Alexa, KODI, FritzBox, diverse gelötete HM-UNI- & ESP-Sensoren/Aktoren

Otto123

ja sorry, sollte nicht gehen, war ein Denkfehler.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

SonOfAbaddon

#39
Kein Ding, passiert.

Allerdings sind mein Log zum WOL so aus, wenn über FHEM getriggert:
2022.02.06 17:06:36 3: [WOL_NAS] Executing command >"ssh fhem@host.docker.internal  -T wakeonlan 5C:F4:AB:E7:CF:3D"<
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LC_ADDRESS = "de_DE.UTF-8",
LC_NAME = "de_DE.UTF-8",
LC_MONETARY = "de_DE.UTF-8",
LC_PAPER = "de_DE.UTF-8",
LC_TELEPHONE = "de_DE.UTF-8",
LC_MESSAGES = "en_DK.UTF-8",
LC_MEASUREMENT = "de_DE.UTF-8",
LC_TIME = "de_DE.UTF-8",
LC_NUMERIC = "de_DE.UTF-8",
LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
Sending magic packet to 255.255.255.255:9 with 5C:F4:AB:E7:CF:3D


Kann ich den Container noch irgendwie tweaken, das er mit der locale besser klarkommt? -e LC_ALL="en_US.UTF-8", oder was hätte FHEM gerne aus unterbau?
FHEM in Docker auf HP T620, MQTT über Mosquitto, HomeMatic, Alexa, KODI, FritzBox, diverse gelötete HM-UNI- & ESP-Sensoren/Aktoren

Otto123

Schau mal hier https://www.thomas-krenn.com/de/wiki/Perl_warning_Setting_locale_failed_unter_Debian

Ich meine dpkg-reconfigure ... löst am Ende das Problem. Hatt ich schon mal bei einer älteren Installation  :-[

Liegt ev. hier am ssh Befehl
ZitatFalls das Problem nur per SSH auftritt, kann die Deaktivierung der SSH Client Option SendEnv LANG LC_* helfen.
Könnte aber sicher auch woanders auftreten
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

SonOfAbaddon

Ich hab das DEV-experimental image von FHEM laufen. Da der Fehler bei jedem container rebuild auftauchen wird wird's wohl Zeit für einiges ein eigenes docker build zu bauen. Im swarm ist ein container schneller weg als einem lieb ist. :D

Danke!
FHEM in Docker auf HP T620, MQTT über Mosquitto, HomeMatic, Alexa, KODI, FritzBox, diverse gelötete HM-UNI- & ESP-Sensoren/Aktoren

Otto123

Aber auch dem Image gab es doch sowas wie ein Script / Mechanismus für eigene Add Ons. Bin Da nur spontan nicht so fit :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kadettilac89

Zitat von: SonOfAbaddon am 06 Februar 2022, 17:52:30
Ich hab das DEV-experimental image von FHEM laufen. Da der Fehler bei jedem container rebuild auftauchen wird wird's wohl Zeit für einiges ein eigenes docker build zu bauen. Im swarm ist ein container schneller weg als einem lieb ist. :D

Danke!

Spricht was dagegen deinen Container mit selben Locals zu betreiben wie auch den Host? Mein Setup ohne die besagte Meldung:

Paraemeter in Docker:
            LANG: "de_DE.UTF-8"
            LC_ALL: "de_DE.UTF-8" 

Host:

<<<<<<   locale
LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=


Container:

<<<<<< locale
LANG=de_DE.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=de_DE.UTF-8


Ein paar Worte zu "Da der Fehler bei jedem container rebuild auftauchen"

Pakete per Parameter

Debian APT packages:

-e APT_PKGS="package1 package2"
Perl CPAN modules:

-e CPAN_PKGS="App::Name1 App::Name2"
Python PIP packages:

-e PIP_PKGS="package1 package2"
Node.js NPM packages:

-e NPM_PKGS="package1 package2"


Scripte:

Should you require any different permissions, you may read the next section to learn more about how to make any changes using custom pre start script /pre-start.sh or /docker/pre-start.sh.


Dazu habe ich mir ein pre-start.sh in ein Volume gelegt. Das wird auch ausgeführt.
        volumes:
            - ./fhem:/opt/fhem            <<<<< default volume
            - ./fhemscripts:/docker      <<<<< Script folder


ein eigenes Dockerfile ist natürlich Crème de la Crème  aber "dein" Problem solltewst du mit den vorhandenen Mitteln auch lösen können.

Otto123

Zitat von: kadettilac89 am 07 Februar 2022, 08:38:47
Spricht was dagegen deinen Container mit selben Locals zu betreiben wie auch den Host?
Gute Idee :)
Dann konsequenterweise die Parameter im docker yml:
    environment:
      - TZ=Europe/Berlin
      - LC_ALL
      - LANG
um das Environment aus dem Host zu übernehmen.
getestet und funktioniert ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz