Boot per acpi-wakeup oder power switch erkennen?

  • Hallo,
    wie kann man per Skript (Python) abfragen, ob der VDR per ACPI-Wakeup oder durch manuelles Einschalten gebootet wurde ?


    Hintergrund der Frage:
    Ich habe eine per USB schaltbare Steckleiste im Einsatz, schalte darüber den TV ein. Wenn der VDR per ACPI Wakeup gestartet wurde, dann soll der TV aus bleiben.
    Wenn der Rechner per Schalter gestartet wurde, soll der TV über die Leiste eingeschaltet werden.


    Vielen Dank,
    Gruß Wacholder

    VDR1 (Produktivsystem):
    AMD Athlon64-3500+*1GB RAM*NVIDIA EN8600GT Silent*512MB*Technotrend Budget S2-3200+*Technisat Skystar*yaVDR0.5
    VDR2 (Testsystem):
    ASRock B75 Pro3-M*4GB RAM*Intel Pentium G645, 2x 2.90GHz, boxed*DD cineS2 V6*Western Digital Red 3TB*ASUS GT610-SL*Cougar A300*SilverStone Grandia GD06B*yaUSBirv3*yaVDR0.5

  • Hi Wacholder,


    ich hab zwar leider für Dein Problem keine Lösung, wäre aber sehr daran interessiert, welche USB schaltbare Steckerleiste Du verwendest ;-)?


    Gruß
    Holger

    Gruß
    Holger


    HTPC: yaVDR 0.5, M3N78-VM, Athlon II X2 240, 2GB, 2x TT S2-1600, Antec Fusion Remote, Harmony 650, LG 50PK550

  • Zitat

    Ich hab zwar leider für Dein Problem keine Lösung, wäre aber sehr daran interessiert, welche USB schaltbare Steckerleiste Du verwendest ;-)?


    Hallo Holger,
    ich verwende die SIS-PMS Steckdosenleiste.


    http://www.hardwareecke.de/tes…s/silvershieldsteckd1.php


    Für die Steckdosenleiste gibt es auch Software für Linux, bei Ubuntu ist diese in den Paketen vorhanden. Es nennt sich "sispmctl".


    Gruß Wacholder

    VDR1 (Produktivsystem):
    AMD Athlon64-3500+*1GB RAM*NVIDIA EN8600GT Silent*512MB*Technotrend Budget S2-3200+*Technisat Skystar*yaVDR0.5
    VDR2 (Testsystem):
    ASRock B75 Pro3-M*4GB RAM*Intel Pentium G645, 2x 2.90GHz, boxed*DD cineS2 V6*Western Digital Red 3TB*ASUS GT610-SL*Cougar A300*SilverStone Grandia GD06B*yaUSBirv3*yaVDR0.5

  • Zitat

    Original von Wacholder
    wie kann man per Skript (Python) abfragen, ob der VDR per ACPI-Wakeup oder durch manuelles Einschalten gebootet wurde ?


    So direkt geht das nicht. Der Vdr könnte sich beim Runterfahren die Wakeup-Zeit in einem File merken, und dann beim Booten prüfen, ob die Zeit im File zur Bootzeit paßt. Ich mache das so, um den Vdr nach einem EPG-Scan gleich wieder runterzufahren.


    In shutdown.sh wird die Zeit für einen EPG-Scan oder 0, wenn ein Timer vorher dran ist, gespeichert:


    In runvdr wird auf die Zeit geprüft, gegebenenfalls ein EPG-Scan und das Runterfahren per at-Deamon gestartete:


    Es gibt eine gewisse Unschärfe, wenn zum Zeitpunkt eines EPG-Scans der VDR gestartet wird. Da ein EPG-Scan bei mir immer um 04:05 stattfindet, wird das eher nicht passieren.


    Gruß
    e9hack

  • Hallo,
    erstmal vielen Dank für Eure Tipps.


    Zitat

    Der Vdr könnte sich beim Runterfahren die Wakeup-Zeit in einem File merken, und dann beim Booten prüfen, ob die Zeit im File zur Bootzeit paßt.


    Hallo e9hack,
    ich hatte gehofft, des es doch irgendwie möglich ist, abzufragen ob der Powerbutton betätigt wurde. Da das wohl nicht möglich ist, muß ich auch den Umweg gehen.


    Um später keine Probleme bei Updates zu bekommen, möchte ich die original Skripte nicht verändern, daher werde ich mal ein Skript in /etc/rc0.d packen, welches beim Herunterfahren die Datei /proc/driver/rtc sichert.
    Bei Booten werde ich diese mit der aktuellen Zeit vergleichen und ggf. den TV einschalten.


    Zitat

    man könnte das Ganze auch in Hardware lösen. Bsw. das Tastverhalten des Einschalters per Flip-Flop speichern und beim Standby wieder löschen. Über den Pegel kann dann direkt TV oder anderes mit eingeschaltet werden.


    Hallo Frank,
    interessante Lösung, wäre wahrscheinlich der sicherste Weg. Ich bevorzuge aber eine Softwarelösung.


    Gruß
    Michael

    VDR1 (Produktivsystem):
    AMD Athlon64-3500+*1GB RAM*NVIDIA EN8600GT Silent*512MB*Technotrend Budget S2-3200+*Technisat Skystar*yaVDR0.5
    VDR2 (Testsystem):
    ASRock B75 Pro3-M*4GB RAM*Intel Pentium G645, 2x 2.90GHz, boxed*DD cineS2 V6*Western Digital Red 3TB*ASUS GT610-SL*Cougar A300*SilverStone Grandia GD06B*yaUSBirv3*yaVDR0.5

  • Der VDR weiß doch eh ob er per Timer oder manuell geweckt wurde (vermutlich schreibt er dafür beim beenden die Wakeup Zeit in seine Config). Jedenfalls zeigt er für beide Varianten ein unterschiedliches Verhalten. Also sollte sich die Lösung im VDR Quellcode finden lassen (und es sollte sicher sein die selbe Methode wie der VDR zu nutzen).


    cu

  • Zitat

    Original von Keine_Ahnung
    Der VDR weiß doch eh ob er per Timer oder manuell geweckt wurde (vermutlich schreibt er dafür beim beenden die Wakeup Zeit in seine Config). Jedenfalls zeigt er für beide Varianten ein unterschiedliches Verhalten.


    Worin erkennst du das "unterschiedliche Verhalten" ?
    Mir ist kein anderes Verhalten bewusst, mit der Ausnahme, das der Timer sofort die Aufnahme startet. Wenn ich Informationen aus den Config-Dateien auslesen kann, bin ich ja schon einen großen Schritt weiter.


    Gruß
    Michael

    VDR1 (Produktivsystem):
    AMD Athlon64-3500+*1GB RAM*NVIDIA EN8600GT Silent*512MB*Technotrend Budget S2-3200+*Technisat Skystar*yaVDR0.5
    VDR2 (Testsystem):
    ASRock B75 Pro3-M*4GB RAM*Intel Pentium G645, 2x 2.90GHz, boxed*DD cineS2 V6*Western Digital Red 3TB*ASUS GT610-SL*Cougar A300*SilverStone Grandia GD06B*yaUSBirv3*yaVDR0.5

  • Ich habe mir vor längeren auch mal ein Skript gebastelt, welches den Ton am VDR ausschaltet, wenn er per Timer geweckt wird und etwas aufnimmt. Das ganze nutze ich mit dem Skript poweroff.pl (ursprl. in LinVDR enthalten).



    Das Skript prüft ob das System gerade hochgefahren (MAX_UPTIME) wurde und ein neuer Timer zur Aufnahme (MAX_TIMER) ansteht.


    Das ganze wird dann kurz nach Start des VDR (SW) aufgerufen.


    Marcus

    Dateien

    My VDRs:

  • Zitat

    Original von Wacholder


    Worin erkennst du das "unterschiedliche Verhalten" ?


    AFAIK ändert sich das shutdown-Verhalten.
    Bei Timer-Start fährt er nach 5(?) Minuten wieder herunter, wenn keine Benutzeraktivität war. Sonst nach dem eingestellten Timeout (180? min).
    Ich bin mir ziemlich sicher irgendwo (im syslog?) was gelesen zu haben, kann dir aber atm nix genaueres sagen.

    HD-VDR-EG
    Software: yaVDR-0.4
    Hardware: ASRock M3N78D, Athlon II X2 240e, ASUS EN210, TeVii s480
    HD-VDR-DG:
    Software: yaVDR-0.4
    Hardware: ASRock N68-S3 UCC, Athlon II X2 245e, ASUS EN210, TeVii s480
    ---
    Don't sleep and build!

  • Zitat

    Original von Wacholder


    Worin erkennst du das "unterschiedliche Verhalten" ?


    Beim Start per Timer läuft das Video nicht (Softdevice, kein Decoding, springt dann an wenn man ne Taste drückt) und er geht sofort nach der Aufnahme wieder im Standby (auch wenn die Aufnahme wesentlich kürzer war als die eingestellten xx Min. Inaktivität).
    Beim manuellen Start läuft das Video auf dem eingestellten Kanal und er fährt erst xx Min. nach Inaktivität wieder runter.


    cu

  • Zitat

    Beim Start per Timer läuft das Video nicht (Softdevice, kein Decoding, springt dann an wenn man ne Taste drückt) und er geht sofort nach der Aufnahme wieder im Standby (auch wenn die Aufnahme wesentlich kürzer war als die eingestellten xx Min. Inaktivität).
    Beim manuellen Start läuft das Video auf dem eingestellten Kanal und er fährt erst xx Min. nach Inaktivität wieder runter.


    cu


    Stellt sich die Frage, wo VDR die Informationen her bekommt. In der setup.conf habe ich einen Eintrag

    Code
    NextWakeupTime = 1274668080


    hat der evtl. damit zu tun?

    VDR1 (Produktivsystem):
    AMD Athlon64-3500+*1GB RAM*NVIDIA EN8600GT Silent*512MB*Technotrend Budget S2-3200+*Technisat Skystar*yaVDR0.5
    VDR2 (Testsystem):
    ASRock B75 Pro3-M*4GB RAM*Intel Pentium G645, 2x 2.90GHz, boxed*DD cineS2 V6*Western Digital Red 3TB*ASUS GT610-SL*Cougar A300*SilverStone Grandia GD06B*yaUSBirv3*yaVDR0.5

  • Zitat

    Original von Wacholder
    Stellt sich die Frage, wo VDR die Informationen her bekommt. In der setup.conf habe ich einen Eintrag

    Code
    NextWakeupTime = 1274668080


    hat der evtl. damit zu tun?


    Ich meine mich daran zu erinnern, daß VDR lediglich beim Start nachsieht, ob in den nächsten x Minuten (glaube 5) ein Timer ansteht. Falls ja, wird von einem automatischen Start ausgegangen.

    Hardware: Gigabyte GA-970A-D3, AMD Athlon II X2 235e, 4GB RAM, Zotac GeForce 210 Synergy Edition 1GB, Corsair Force3 60GB SSD, Mystique SaTiX-S2 Dual, 6.4" TFT, Atric IR Einschalter Rev.5, Logitech Harmony 900, Samsung LE46A789 full HD LCD, Denon AVR-1910, USB Atmo-Light von Slime
    Software: yaVDR 0.5
    Streaming Client 1: Hauppauge MediaMVP
    Streaming Client 2: Telegant TG100 (wenn ich mal irgendwann die Zeit finde das UPnP-Plugin zu testen)

  • Zitat

    Originally posted by Wacholder
    Stellt sich die Frage, wo VDR die Informationen her bekommt. In der setup.conf habe ich einen Eintrag

    Code
    NextWakeupTime = 1274668080


    hat der evtl. damit zu tun?


    Treffer. Beim Beenden schreibt VDR hier die Epoch-Zeit des nächsten geplanten Reboot rein, um dann beim nächsten Start dies mit der aktuellen Zeit zu vergleichen.


    In diesem Fall:

    Code
    #>perl -e "print scalar localtime(1274668080)"
    Mon May 24 04:28:00 2010


    Die Zeitdifferenz berechnet sich z.B. so:

    Code
    NextWakeupTime=`sed -ne "/NextWakeupTime/s/[^0-9]*//p" setup.conf`
    timediff=$((NextWakeupTime - `date +%s`))


    Liegt timediff in einem kleinen Zeitfenster, (VDR by default +/- 600 Sekunden), so geht VDR von einem automatischen Start aus.


    Gruß,


    Udo

  • Zitat

    Original von Urig
    Treffer. Beim Beenden schreibt VDR hier die Epoch-Zeit des nächsten geplanten Reboot rein, um dann beim nächsten Start dies mit der aktuellen Zeit zu vergleichen.


    Klasse, dann habe ich ja den wichtigsten Parameter.

    Zitat


    Liegt timediff in einem kleinen Zeitfenster, (VDR by default +/- 600 Sekunden), so geht VDR von einem automatischen Start aus.


    Wäre gut, wenn jemand wüsste, wo die Definition des "Zeitfensters" zu finden ist. Somit könnte ich die gleichen Parameter wie VDR benutzen.


    Gruß Michael

    VDR1 (Produktivsystem):
    AMD Athlon64-3500+*1GB RAM*NVIDIA EN8600GT Silent*512MB*Technotrend Budget S2-3200+*Technisat Skystar*yaVDR0.5
    VDR2 (Testsystem):
    ASRock B75 Pro3-M*4GB RAM*Intel Pentium G645, 2x 2.90GHz, boxed*DD cineS2 V6*Western Digital Red 3TB*ASUS GT610-SL*Cougar A300*SilverStone Grandia GD06B*yaUSBirv3*yaVDR0.5

  • Hallo,
    erstmal schönen Dank für eure Hilfe. Abschließend hier nochmal mein Python-Script. Vielleicht kann es der ein oder andere noch gebrauchen:


    Habe das Script derzeit am laufen, erste Tests sind positiv.


    Gruß Wacholder

    VDR1 (Produktivsystem):
    AMD Athlon64-3500+*1GB RAM*NVIDIA EN8600GT Silent*512MB*Technotrend Budget S2-3200+*Technisat Skystar*yaVDR0.5
    VDR2 (Testsystem):
    ASRock B75 Pro3-M*4GB RAM*Intel Pentium G645, 2x 2.90GHz, boxed*DD cineS2 V6*Western Digital Red 3TB*ASUS GT610-SL*Cougar A300*SilverStone Grandia GD06B*yaUSBirv3*yaVDR0.5

  • Hi Wacholder,


    danke nochmal für den Hinweis zur USB Steckerleiste - kam nicht früher zum Antworten ;-))


    Das Script ist ja ne nette Idee dazu. Ich hab mich grad nur Folgendes gefragt: Stell Dir vor, Du hättest zwei Empfangskarten, Du hast was programmiert und der VDR startet die Aufnahme. Was ist, wenn Du während dieser programmierten Aufnahme unerwartet doch dazu kommst, Dir parallel etwas anderes anzuschauen? Wie machst Du den Fernseher nachträglich an? Script auf Taste im VDR?


    Gruß
    Holger

    Gruß
    Holger


    HTPC: yaVDR 0.5, M3N78-VM, Athlon II X2 240, 2GB, 2x TT S2-1600, Antec Fusion Remote, Harmony 650, LG 50PK550

  • Zitat

    Original von pandel
    Ich hab mich grad nur Folgendes gefragt: Stell Dir vor, Du hättest zwei Empfangskarten, Du hast was programmiert und der VDR startet die Aufnahme. Was ist, wenn Du während dieser programmierten Aufnahme unerwartet doch dazu kommst, Dir parallel etwas anderes anzuschauen? Wie machst Du den Fernseher nachträglich an? Script auf Taste im VDR?


    Hallo Holger,
    über die Fernbedienung kann mittels irexec die Steckdose eingeschaltet werden. Funktioniert ganz gut.
    Gruß Michael

    VDR1 (Produktivsystem):
    AMD Athlon64-3500+*1GB RAM*NVIDIA EN8600GT Silent*512MB*Technotrend Budget S2-3200+*Technisat Skystar*yaVDR0.5
    VDR2 (Testsystem):
    ASRock B75 Pro3-M*4GB RAM*Intel Pentium G645, 2x 2.90GHz, boxed*DD cineS2 V6*Western Digital Red 3TB*ASUS GT610-SL*Cougar A300*SilverStone Grandia GD06B*yaUSBirv3*yaVDR0.5

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!