yaVDR shutdown / reboot via http GET

  • Hallo liebes Forum,


    kennt jemand von euch eine Möglichkeit, wie man yaVDR über einen http Aufruf runterfahren kann? Steuern lässt es sich mit restfulapi über http Aufrufe sehr schön, aber ich finde dort nirgends eine Möglichkeit, das System runterzufahren oder neu zu starten. Aufrufe mit ssh gehen leider nicht....


    Tipps wären Klasse!


    Grüße,


    Tom

  • Ohne Zugriffskontrolle per inetd. Ansonsten nen kleinen Webserver starten (Apache2 läuft eh bei yaVDR, kannst auch den nehmen) und nen CGI Srcipt hinterhängen was bei korrekten Passwort die Aktion ausführt.


    cu

  • kennt jemand von euch eine Möglichkeit, wie man yaVDR über einen http Aufruf runterfahren kann?


    Ich würde da einfach mal die Power-Taste drücken lassen (per Restfulapi dann aber mit POST, siehe API-Beschreibung auf Port 8002 deines VDR):

    Code
    POST http://<ip>:8002/remote/Power


    Ansonsten müsstest du dir AFAIK noch einen Webserver mit CGI-Unterstützung einrichten und entsprechende Aktionen definieren.


    Edit: Wenn du eine der User-Tasten per Keymakro so belegst, dass sie einen Neustart über das Befehlsmenü auslöst, geht auch ein Neustart über einen Tastendruck per Restfulapi-Plugin.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Zitat von »LimpBiz« kennt jemand von euch eine Möglichkeit, wie man yaVDR über einen http Aufruf runterfahren kann?
    Ich würde da einfach mal die Power-Taste drücken lassen (per Restfulapi dann aber mit POST, siehe API-Beschreibung auf Port 8002 deines VDR):
    Quellcode1
    POST http://:8002/remote/Power



    genau da beginnt mein Problem:


    Ich versuche, diese Kommandos direkt mit wget von einer Fritz!Box abzusetzen. Das klappt für GET ganz prima, aber POST scheint dort nicht implementiert zu sein. Zumindest bekomme ich dort beim Versuch "wget --post-data ..." den Hinweis, das diese Option `--post-data' nicht bekannt sei. Also brauche ich entweder ein Möglichkeit, dass yadr auf "GET" hört oder aber eine Möglichkeit, von dem Linux einer Fritzbox mit POST zu arbeiten....


    Hat das mit den cgi-Skripten nicht den Nachteil, dass beim nächsten update alles weg ist?


    Per Keymacro ginge theoretisch ja auch, bloß schmiert das eben manchmal ab. Genau dafür suche ich ja die "harte" Möglichkeit von der Fritze...

  • Ich würde mir nen kleines php Script schreiben und das in Apache als neue Seite (/etc/apache2/conf.d) definieren so das es unter "http://<vdr ip>/shutdown?action=shutdown&passwd=geheim" verfügbar ist.


    cu

  • Wie wäre es mit curl? Gibt's für jedes gängige OS.


    Code
    curl -d "foo=bar" http://<ip>:8002/remote/Power


    Das war mal schnell aus der Hüfte geschossen. Offensichtlich muß man ja gar keine
    POST DATA mitsenden. Ob es jedoch ganz ohne, oder einfach mit leerem String
    klappt, weiß ich jetzt grad nicht.


    Edit: Ach ja, ging dem OP ja um ne Fritz!Box. Keine Ahnung, ob da curl dabei ist.
    Mit Freetz aber auf jeden Fall, denke ich mal.

    Mein VDR: OrigenAE/Amisos X15e, ASUS A68HM-K A68H FM2+ mATX, AMD A4 5300, 4 GB DDR3, WD Green 1 TB, Nvidia GT 430 PCIe, KNC One DVB-C Karte, 7" TFT (GraphTFT, ohne Touch), irtrans-Empfänger + Harmony 300i, yaVDR 0.6.2, 32" Toshiba 32XV635D, 2.1 Boxen-Set Edifier C2 rev2, Kabelprovider Wilhelm Tell (ohne Grundverschlüsselung), 10 TB extern (USB) für Serien und Filme.
    Hinweis für Allergiker: Dieser Beitrag kann Spuren von Nüssen enthalten.

  • ja, das hattest du schon mal geschrieben. Leider sagt mit inetd gar nix und bei dem apache2, ist das dann beim nächsten update nicht futsch?


    inetd wäre eine weitere Möglichkeit.


    Apache wäre die um die es hier geht. Und das bedeutet eine *.conf im Apache Ordner und eine php Datei irgendwo.


    [/etc/apache2/conf.d/shutdown.conf ]


    Dann in /usr/share/shutdown/ die php Datei und die passwd Datei. Dann übernimmt Apache auch die Passwordabfrage (kannst du so aufrufen http://<username>:<passwd>@<url>) und das php Script muss nur noch das Shutdownkommando absetzen wenn es aufgerufen wird.



    Das nur mal grob skiziert, mach doch einfach mal.


    cu

  • So, erst mal vielen Dank für die Ideen.


    curl habe ich mir besorgt, leider keine Reaktion darauf. Keine Fehlermeldung, nix. Wird einfach ignoriert. Sämtliche Kombinationen von Groß/Kleinschreibung werden brav ignoriert.


    Jetzt bastel ich das mal so, wie es keine_ahnung vorgeschlagen hat. Das Rezept ist ganz gut, jetzt mache ich doch einfach mal....


    Bloß: Wird das dann nicht beim yaVDR update irgendwann mal überschrieben?

  • Bloß: Wird das dann nicht beim yaVDR update irgendwann mal überschrieben?


    Wenn das in den für Apache (IMHO zu fett für soetwas) bzw. lighttpd vorgesehenen Verzeichnissen (/var/www/ bzw. /usr/lib/cgi-bin/) landet sollte der yaVDR keinen Grund haben das zu überschreiben. Bitte beachte, dass Port 80 bereits belegt ist und ändere den des zweiten Webservers entsprechend ab.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

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