FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: pwlr am 26 August 2018, 00:47:57

Titel: Modul WOL - Frage zum ping via Broadcast und MAC-Adresse
Beitrag von: pwlr am 26 August 2018, 00:47:57
Moin,

Netwok ist nun nicht gerade meine starke Seite, daher eine Frage an die Spezis.
Wenn ich die CommandRef richtig interpretiere, dann kann man mit WOL über eine bekannte MAC und der Broadcast-Adresse ein Network-Device anpingen. Damit könnte ich das Einloggen von Gästen (Handy) überwachen, da die IPs von meiner FritzBox per DHCP vergeben werden. Feste Adressen will ich nicht für diesen Zweck vergeben.

Zitatattr <name> useUdpBroadcast <broardcastAdress>
When using UDP then the magic packet can be send to one of the broardcastAdresses (x.x.x.255, x.x.255.255, x.255.255.255) instead of the target host address. Try using this, when you want to wake up a machine in your own subnet and the wakekup with the target adress is instable or doesn't work.

Geht aber nicht, der Status ist immer "on", also anwesend.

Hier meine Definitionen:
Internals:
   DEF        XX:XX:XX:BC:A7:0E YYY.YYY.YYY.255 UDP
   IP         YYY.YYY.YYY.255
   MAC        XX:XX:XX:BC:A7:0E
   MODE       UDP
   NAME       WOL_H_Handy
   NR         119
   REPEAT     000
   STATE      on
   TYPE       WOL
   READINGS:
     2018-08-25 23:41:29   active          off
     2018-08-26 00:26:50   isRunning       true
     2018-08-25 23:41:29   packet_via_EW   none
     2018-08-25 23:41:29   packet_via_UDP  none
     2018-08-26 00:26:50   state           on
   TIMER:
     WOL_H_Handy_ping:
       HASH       WOL_H_Handy
       MODIFIER   ping
       NAME       WOL_H_Handy_ping
     WOL_Heidi_Handy_ping:
       HASH       WOL_H_Handy
       MODIFIER   ping
       NAME       WOL_Heidi_Handy_ping
   helper:
Attributes:
   group      WLAN
   interval   600
   room       Buero
   useUdpBroadcast YYY.YYY.YYY.255
   verbose    4
   webCmd     :


Logauszug

2018.08.26 00:16:50 4: [WOL_H_Handy] executing: ping -c 1 -w 2 YYY.YYY.YYY.255
Do you want to ping broadcast? Then -b. If not, check your local firewall rules.
2018.08.26 00:16:50 4: [WOL_H_Handy] result executing ping:
2018.08.26 00:16:50 4: [WOL_H_Handy] ping succesful - state = on


Die Option -b kann ich nirgends angeben. Der Ping ist immer succesful, unabhängig vom Gerätestatus.

Hab ich ewas falsch verstanden oder ist da ein BUG drin ?

Moin und schon mal danke für Eure Hilfe !
Bernd

Titel: Antw:Modul WOL - Frage zum ping via Broadcast und MAC-Adresse
Beitrag von: Otto123 am 26 August 2018, 09:55:40
Moin Bernd,

ZitatWenn ich die CommandRef richtig interpretiere, dann kann man mit WOL über eine bekannte MAC und der Broadcast-Adresse ein Network-Device anpingen.
Nein, man kann bekannte Geräte damit aufwecken!
WOL -> Wake On Lan

Was Du willst geht auch, dazu brauchst Du das Modul Fritzbox und ermittelst dort die MAC Adressen deiner Clients. Dazu gibt es viele Lösungen, ein paar davon stehen auch im Wiki.
https://wiki.fhem.de/wiki/FRITZBOX#Anwendungsbeispiele

Gruß Otto
Titel: Antw:Modul WOL - Frage zum ping via Broadcast und MAC-Adresse
Beitrag von: pwlr am 26 August 2018, 23:53:42
Moin Otto,
ok, kann man nicht, danke für die Info! Schade... :'(

Aber warum ist dann das Reading "isRunning" = "true" und "state" = "on", wenn das Device gar nicht online ist ? Wenn man ein Device aufwecken wollte, wäre der tatsächliche Status vor und nach einem Command ja auch ganz wichtig.

Wenn man die richtige IP anstelle der Broadcast-Adresse im WOL eingibt, stehen diese Readings richtig. Ich nx verstehen...

Dein Tipp mit der Mac-Analyse via Modul FritzBox ist gut. Habe ich gleich probiert. Leider sind die Fritzen ziemlich träge. Das Einloggen wird relativ schnell erkannt, das Ausloggen erst nach ca. 10 Minuten. Ich muss mal schauen, ob ich von den Fritzen für eine bekannte Mac eine gültige IP bekomme und dann könnte man mit PRESENCE lan-ping weitermachen.

Gibt es da ein TR-Command?
ZitatGetSpecificHostEntry ( NewMACAddress ) = ( NewIPAddress NewAddressSource NewLeaseTimeRemaining NewInterfaceType NewActive
                               NewHostName )
...ist ziemlich "unübersichtlich" für mich, um es mal möglichst positiv auszudrücken....
Moin
Bernd
Titel: Antw:Modul WOL - Frage zum ping via Broadcast und MAC-Adresse
Beitrag von: rischbiter123 am 27 August 2018, 07:52:29
Moin,

das mit dem lan-ping wirst Du wohl vergessen können, da fast alle Handys bei ausgeschaltetem Bildschirm heutzutage nicht mehr anpingbar sind. Du wirst also mit dem Zeitversatz beim ausloggen leben müssen.

LG

Andreas
Titel: Antw:Modul WOL - Frage zum ping via Broadcast und MAC-Adresse
Beitrag von: Frank_Huber am 27 August 2018, 08:53:00
so geht es:
https://wiki.fhem.de/wiki/FRITZBOX#Anwesenheitserkennung_per_regelm.C3.A4.C3.9Figer_Abfrage_.C3.BCber_das_PRESENCE_Modul
Auch mit aktuellen Mobilgeräten.
Titel: Antw:Modul WOL - Frage zum ping via Broadcast und MAC-Adresse
Beitrag von: Otto123 am 27 August 2018, 09:01:40
Moin Bernd,

das WOL Modul ist zum aufwecken, überwachen und herunterfahren eines LAN Gerätes. Du musst nur alles richtig konfigurieren. Steht aber alle sin der Doku -> https://commandref.fhem.de/#WOL
Es ist quasi ein LAN Ein/Aus Schalter mit Rückmeldung.

Das Fritzboxen träge beim Erkennen des WLAN abgemeldet Zustandes sind, ist bekannt. Da kann ich auch nix dran ändern. Mein OpenWrt Router macht das in Sekunden.

Mit TR meinst Du TR064? Das das unübersichtlich ist, dafür kann ja keiner was.  ;D Die Welt ist manchmal unübersichtlich, dass macht es ja auch interessant  ;D
Die Dokumente dazu findest Du bei avm.

TR064 - habe ich vor kurzem mal etwas damit gespielt, hier meine Notizen (https://heinz-otto.blogspot.com/2018/08/fritzbox-mit-tr064-abfragen.html) dazu. Nicht das was Du suchst, aber vielleicht hilft es beim experimentieren.

Gruß Otto
Titel: Antw:Modul WOL - Frage zum ping via Broadcast und MAC-Adresse
Beitrag von: pwlr am 27 August 2018, 11:02:22
ok, danke für Eure Anregungen !

Also TR064 Command um von einer bekannten MAC unter anderem die IP zu bekommen :


get <FB.Name>  tr064Command Hosts:1 hosts GetSpecificHostEntry NewMACAddress XX:XX:AB:A3:1B:B6


<FB.Name>, XX:XX:AB:A3:1B:B6 usw. jeweils gegen die eigenen Daten ersetzen  ;)

Ergebnis:

Service='Hosts:1'   Control='hosts'   Action='GetSpecificHostEntry'
Parameter1='NewMACAddress' => 'XX:XX:AB:A3:1B:B6'
----------------------------------------------------------------------
$VAR1 = {
          'GetSpecificHostEntryResponse' => {
                                            'NewInterfaceType' => 'Ethernet',
                                            'NewHostName' => 'Bezeichnung der MAC auf der FritzBox',
                                            'NewAddressSource' => 'DHCP',
                                            'NewIPAddress' => 'YYY.YYY.YYY.30',
                                            'NewLeaseTimeRemaining' => '0',
                                            'NewActive' => '1'
                                          }
        };


'NewInterfaceType' => 'Ethernet' kommt, weil mein WLAN auf einer anderen Fritze läuft.
Die Daten sind aber beim Ausloggen natürlich nicht aktueller als beim Modul FRITZBOX. Immerhin bekommt man die IP.
Wenn man nun die Infos aus der Fritze mit zusätzlichen Infos aus pings mischen würde, könnte man Stati wie "online" "standby" oder "offline" generieren. "standby" wäre ein Kompromiss und steht für tatsächlich schon aus oder wirklich standby. Oder vielleicht wäre "inactive" dafür besser. Mal sehen - spannend.

Moin
Bernd