Frage zu WOL (shutdown abbrechen)

Begonnen von juemuc, 21 Februar 2021, 17:43:22

Vorheriges Thema - Nächstes Thema

juemuc

Hallo,

ich habe in einem WOL-Device das shutdownCmd-Attribut definiert um einen PC herunterfahren zu können. Nun möchte ich die Möglichkeit diesen Shutdownbefehl abzubrechen.

Auf der CMD-Ebene kann ich dies über
{net rpc abortshutdown -I IP-PC -U USER%PSW}

Weder als wolCmd noch als sysCmd funktioniert es. Auch als Menue-Erintrag funktioniert es nicht. Hier habe ich es so probiert
Stop Shutdown,/fhem?cmd={system("net rpc abortshutdown -I I IP-PC -U USER%PSW")} 

Wer kann mir einen Tipp geben.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Keiner eine Idee?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Otto123

#2
Hi,

Idee: mach das ganze nicht per net rpc sondern per ssh und mit shutdown. Der Windows Befehl kann es:
Zitat/a         Bricht das Herunterfahren des Systems ab.
Ob der net rpc Befehl den Abbruch beherrscht weiß ich leider nicht. Das Handbuch sagt nein
ZitatRPC SHUTDOWN [-t timeout] [-r] [-f] [-C message]
       Shut down the remote server.
       -r
          Reboot after shutdown.
       -f
          Force shutting down all applications.
       -t timeout
          Timeout  before system will be shut down. An interactive user of the
          system can use this time to cancel the shutdown.
       -C message
          Display the specified message on the screen to  announce  the  shut-
          down.

Ja ok Du musst dazu erst ssh Server auf dem Windows installieren. Aber Du kannst dann auch mehr mit machen ;)
Wie es geht findest Du auf meinem Blog.

Gruß Otto
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

juemuc

Hallo Otto,

danke für Deinen Tipp. Einen SSH-Server wollte ich aber nicht auf jedem PC installieren  8)

Ich hoffe, es hat noch jemand eine Idee wie den Befehl direkt aus FHEM absetzen kann  ::)

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Otto123

Hallo Jürgen,

die Frage ist warum denn nicht? Auf jedem Linux ist er doch quasi auch drauf.
Es geht auch mit powershell, dann musst Du powershell auf dem linux installieren und remote powershell einrichten.

Aber meine eigentliche Frage ist: warum erst shutdown einleiten und dann abbrechen wollen? Von wo aus abbrechen? Vom gleichen  FHEM?

Vielleicht hilft die Überlegung: shutdown vorbereiten, ein benanntes sleep einfügen und bei Bedarf das sleep mit cancel abbrechen?
Als Einzelzeilen Test für die FHEM Kommanozeile.
sleep 60 sh;set Windows off
cancel
cancel sh


Gruß Otto
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: juemuc am 21 Februar 2021, 17:43:22
Weder als wolCmd noch als sysCmd funktioniert es. Auch als Menue-Erintrag funktioniert es nicht. Hier habe ich es so probiert
Stop Shutdown,/fhem?cmd={system("net rpc abortshutdown -I I IP-PC -U USER%PSW")} 

Wer kann mir einen Tipp geben.


Teste mal einfache Hochkomma     '   statt " ... % ist in Perl ein Hash. Ich vermute es wird versucht einen Hash %PSW zu finden was schief läuft.

{system('net rpc abortshutdown -I I IP-PC -U USER%PSW')} 
Wenn es damit auch nicht geht. Hast du einen Fehler oder einen Eintrag im Fhem-Log?

Otto123

#6
Was bei mir funktioniert:
"net rpc shutdown -I lpk10 -t 120 -U UserShutdown%password"
"net rpc abortshutdown -I lpk10 -U UserShutdown%password"
Den ganzen Perl {system()} Umstand braucht man dafür nicht. Siehe https://fhem.de/commandref_DE.html#command

Sorry ich habe das Kommando abortshutdown in der Manpage nicht gefunden.

Das doppelte I in deinem Befehl ist doch ein Fehler oder? Aber wie gesagt nimm das einfache Konstrukt shell command :)
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

juemuc

Hallo zusammen,

in der CMD-Line funktioniert natürlich nur

{system("net rpc abortshutdown -I IP-PC -U shutdown-user%PSW")}

Als Attribut geht es aber nicht:
attr WEB menuEntries Backup,/fhem?cmd=backup,Stop Shutdown,/fhem?cmd={system("net rpc abortshutdown -I IP-PC -U shutdown-user%PSW")}

Es gibt keine Fehlermeldung im Log. Der Wechsel von " zu ' bringt auch keine Änderung.

@Otto: "Warum benötigt man das?" ->  Wenn man angefangen hat seinen PC per FHEM herunterzufahren, dann aber merkt, dass man den PC doch noch benötigt  8). Also Spielerei   ;D

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Otto123

#8
Und warum bestehst Du auf system() Was an meiner Version aus #6 falsch?

Bei menuentries musst Du url encoden siehe Doku https://commandref.fhem.de/commandref_DE.html#FHEMWEB
ZitatmenuEntries
Comma separated list of name,html-link pairs to display in the left-side list. Example:
attr WEB menuEntries fhem.de,http://fhem.de,culfw.de,http://culfw.de
attr WEB menuEntries AlarmOn,http://fhemhost:8083/fhem?cmd=set%20alarm%20on
Sowas geht bei mir (schreibt willi ins LogFile)
attr WEB menuEntries AlarmOn,/fhem?cmd=%22echo%20willi%22

So ungefähr in Deiner Ausprägung
attr WEB menuEntries Backup,/fhem?cmd=backup,Stop Shutdown,/fhem?cmd=%22net%20rpc%20abortshutdown%20-I%20IP-PC%20-U%20shutdown-user%25PSW%22
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

juemuc

Zitat von: Otto123 am 27 Februar 2021, 00:40:27
Und warum bestehst Du auf system() Was an meiner Version aus #6 falsch?

Nichts  ;D
hat bei mir nur nicht funktioniert, weil ich die Hochkomma weggelassen hatte  8) Manchmal sitzt das Problem ja vor dem Bildschirm  ::)

Mit dem "encoding" funktioniert es nun. Vielen Dank noch einmal für den Hinweis.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).