WOL - Shutdown funktioniert nicht mehr.

Begonnen von Wolle02, 12 Februar 2014, 19:42:49

Vorheriges Thema - Nächstes Thema

siggi85

#15
Zitat von: Dietmar63 am 18 Februar 2014, 14:53:23
man kann auf vielfachem Wunsch nun jeden fhem-Befehl angeben. Beispiel: wie <command> in at oder notify.

Achso, das ist irgendwie an mir vorbei gezogen. Das werde ich zu Hause mal testen. :)

EDIT:
In der commandref steht es noch anders drin:
Attributes

    attr <name> sysCmd <string>
    Custom command executed to wakeup a remote machine, i.e. /usr/bin/ether-wake or /usr/bin/wakeonlan

Owel

Zitat von: Dietmar63 am 18 Februar 2014, 14:53:23
Die Syntax für sysCmd hat sich geändert. :
attr wol_rechner sysCmd "/usr/sbin/etherwake"

Gibt bei mir im Log
2014.02.18 15:45:17 3: WOL set Tower on
2014.02.18 15:45:17 3: WOL waking  Tower with MAC 00:25:22:24:6C:03 IP 192.168.178.11
2014.02.18 15:45:19 3: WOL keeping Tower with MAC 00:25:22:24:6C:03 IP 192.168.178.11 busy
2014.02.18 15:45:19 1: [Tower] system command '"/usr/bin/wakeonlan"' not found


Funktioniert also auch nicht :(

siggi85

Ich weiß, dass das "shutdownCmd" Attribut daraufhin geändert wurde, aber das sysCmd wüsste ich bisher nicht. Ich sage das nur auf die Gefahr hin, dass du das vielleicht vertauscht haben könntest?!
Dazu kommt noch, dass es bei mir vorher auch ohne Etherwake funktioniert hat, also mit dem Net::Wake(CPAN) Modul.

Dietmar63

ZitatIch weiß, dass das "shutdownCmd" Attribut daraufhin geändert wurde, aber das sysCmd wüsste ich bisher nicht. Ich sage das nur auf die Gefahr hin, dass du das vielleicht vertauscht haben könntest?!
stimmt, habe ich auf die Schnelle durcheinander gebracht.

ZitatDazu kommt noch, dass es bei mir vorher auch ohne Etherwake funktioniert hat, also mit dem Net::Wake(CPAN) Modul.
Diese Methode ist unverändert geblieben, und läuft bei mir problemlos mit dem NAS von Buffalo.

Kann es sein, dass die Probleme seit der Umstellung auf FB 6.03 zusammenhängen.

ich habe diesen Code eingebaut:

  #               Fritzbox               Raspberry
  my @commands = "/usr/bin/ether-wake", "/usr/sbin/etherwake";

  my $standardEtherwake = "no etherwake installed";
  foreach my $sysCmd (@commands) {
     if (-e $sysCmd) {
        $standardEtherwake = $sysCmd;
     }
  }

  my $sysCmd = AttrVal($hash->{NAME}, "sysCmd", $standardEtherwake);

mit ihm soll intelligent nach dem Pfad des etherwake Kommandos gesucht werden. Funktioniert auf meiner FB auch soweit. Ich prüfe nocheinmal nach was los sein könnte.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

siggi85

Also ich habe keine FB sondern FHEM auf nem Rasp laufen. Ich bin aber zuversichtlich, dass wir noch dahinter kommen, woran es liegt. :)

Dietmar63

kann jemand von euch mal die anhängende Datei ausprobieren.

Ich glaube meine Schleife hat nicht richtig funktioniert, und die RPI Pfade wurden nicht ausgewählt, bzw. "/usr/sbin/etherwake" funktioniert wg. der Rechteverwaltung nicht.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Owel

Ich glaube ich habe den Fehler gefunden!

qx ("$sysCmd $mac");
die " machen hier glaube ich einen error.
Zumindest bei mir. Wenn ich diese entferne funktioniert WOL wieder.
Die Zeile muss also
qx ($sysCmd $mac); lauten.

Und wenn du schonmal dabei bist, kannst du bitte auch den STATE abhängig von isRunning setzen?
Ich habe öfters den Fall dass STATE=on aber isRunning = false und umgekehrt. Kommt daher dass ich den PC nicht nur mit FHEM bediene.

Danke
Owel

Dietmar63

#22
habe eine geänderte Version eingecheckt.
Zitat
Und wenn du schonmal dabei bist, kannst du bitte auch den STATE abhängig von isRunning setzen?
Ich habe öfters den Fall dass STATE=on aber isRunning = false und umgekehrt. Kommt daher dass ich den PC nicht nur mit FHEM bediene.

STATE soll den Zustand des WOL angeben und nicht den Zustand des zu schaltenden Geräts, insofern sehe ich keine Veranlassung den STATE mit isRunning  zu synchronisieren.

Wenn du für dich den STATE des anzuschaltenden Geräts in der Anzeige des WOL sehen möchtest, kannst du stateFormat verwenden:
attr   NAS               stateFormat {sprintf("%s",ReadingsVal("NAS","isRunning","???")eq "true" ? "on":"off")}
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Owel

Ok das mit State sehe ich anders.
Aber da du ja eine feine Lösung präsentiert hast, werde ich das so nutzen :)

siggi85

Die on/off Lösung für den STATE finde ich schöner als meine true/false Lösung, habe ich auch mal übernommen. :)

Aber an geschaltet bekomme ich meinen Rechner immer noch nicht über das WOL Modul. off und refresh funktionieren super, aber on streikt weiterhin... :(

Dietmar63

Schalte mal für das WOL verbose auf 5, und veröffentliche den Output im log dazu.


Bitte auch die Definition angeben. Welches Kommando führst du beim shutdown aus?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

siggi85

#26
Log
2014.02.20 21:21:07 3: [wz_wol_htpc] set wz_wol_htpc on
2014.02.20 21:21:07 3: [wz_wol_htpc] waking  wz_wol_htpc with MAC e0:cb:4e:40:b7:aa IP 192.168.12.20
2014.02.20 21:21:07 4: [wz_wol_htpc] keeping wz_wol_htpc with MAC e0:cb:4e:40:b7:aa IP 192.168.12.20 busy
2014.02.20 21:21:07 5: [wz_wol_htpc] standard wol command: /usr/bin/wakeonlan
2014.02.20 21:21:07 5: [wz_wol_htpc] user wol command(sysCmd): '/usr/sbin/etherwake'
2014.02.20 21:21:07 5: [wz_wol_htpc] executing /usr/sbin/etherwake e0:cb:4e:40:b7:aa


Definition
define wz_wol_htpc WOL e0:cb:4e:40:b7:aa 192.168.12.20
attr wz_wol_htpc devStateIcon off:black_FS20.off on:black_FS20.on
attr wz_wol_htpc fp_wohnzimmer 137,434,2,HTPC
attr wz_wol_htpc group HTPC
attr wz_wol_htpc interval 30
attr wz_wol_htpc room Wohnzimmer
attr wz_wol_htpc shutdownCmd set wz_xbmc_htpc shutdown
attr wz_wol_htpc stateFormat {sprintf("%s",ReadingsVal("wz_wol_htpc","isRunning","???")eq "true" ? "on":"off")}
attr wz_wol_htpc sysCmd /usr/sbin/etherwake
attr wz_wol_htpc verbose 5
attr wz_wol_htpc webCmd on:off:refresh


Etherwake von Commandozeile funktiniert, sowohl als root,pi und fhem Nutzer (Sticky Bit ist gesetzt).

EDIT: Ich seh gerade wir sind ja noch in einem "Shutdown funktioniert nicht Thread". Bei mir funktioniert das Aufwachen nicht, der Shutdown funktioniert!

Dietmar63

lösch bitte mal diese Zeile:
sysCmd /usr/sbin/etherwake
dann mußte /usr/bin/wakeonlan aufgerufen werden - das funktioniert bei mir.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

siggi85

Alles klar. Seit dem Update gestern habe ich das nicht mehr ohne sysCmd getestet. Werde ich heute nachmittag/abend ausprobieren und Rückmeldung geben!  :)

Dietmar63

sbin/etherwake funktioniert bei mir nicht.
Ich vermute, dass es mit Berechtigungen zu tun hat. Fhem läuft auf dem Rpi unter dem user fhem, darf eigentlich nichts aus sbin aufrufen. Es gibt bestimmt die Möglichkeit sudo für fhem zuzulassen, aber einfacher ist wakeonlan zu nutzen. Bei mir wacht der Büro-PC damit auf.

Der eine oder andere hat einfach solange die binarys etherwake hin- und herkopiert oder umbenannt, bis der wol funktionierte.

Eventuell müssen wir mit Wireshark prüfen ob die Magic-Pakete ankommen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm