cron Uhrzeit überprüfen nach reboot

  • Wenn ich das richtig verstanden habe, dann entfällt jetzt sogar die Prüfung was sollte geschaltet sein, nach reboot. Da der crotab ja jede Minute durchgefürt wird.


    Nein, das ist (noch) nicht enthalten ;)


    schalten.php macht derzeit nur das Schalten via Crontab, also Zeitgesteuert.
    Wenn Du in Schaltzeit zB eingetragen hast das etwas um 10:00 Ein geschaltet und um 11:30 wieder Aus geschaltet werden soll, der Pi aber gegen 11Uhr neu startet, bleibt das zuvor geschaltete Aus obwohl es noch 30min an sein sollte... Dafür müsste man die schalten.php erweitern. Derzeit schreibt es nur in Vorgang, ausgelesen wird dort noch nichts.



    //EDIT: Hier wäre alles in einem Script:



    Desweiteren kann die Datei über den Webserver/Browser abgerufen werden um den aktuellen Schaltzustand pro Typ anzuzeigen.



    //EDIT2: Da fällt mir gerade auf das man bei "regain" noch eine Prüfung einbauen sollte ob der letzte Schaltzeitpunkt "heute" war, bevor man es einfach ausführt... Das fix ich morgen.

  • Ja super! Dann wäre das auch erledigt. :danke_ATDE:



    //EDIT: Hier wäre alles in einem Script:
    .....


    //EDIT2: Da fällt mir gerade auf das man bei "regain" noch eine Prüfung einbauen sollte ob der letzte Schaltzeitpunkt "heute" war, bevor man es einfach ausführt... Das fix ich morgen.


    Ich kann warten... :D Also kein Problem wenn Du das später machst.


    Allerdings muß ich zugeben, daß ich etwas verwirrt bin. :s :
    "//EDIT: Hier wäre alles in einem Script:" heißt, daß ich diesen Part "regain" unter Deinem schalten.php aus Beitrag #39 in das Skript schalten.php einfüge. Oder???
    So habe ich Deinen
    Crontabeintrag:

    Code
    * * * * *   /usr/bin/php /var/www/schalten.php cron >/dev/null 2>&1
    @reboot     /usr/bin/php /var/www/schalten.php regain >/dev/null 2>&1


    verstanden.
    Sorry wenn ich blöd nachfrage aber in PHP bin ich absoluter Newbie und sehr sehr dankbar für Deine Hilfe aber ich möchte Dir unnötige Arbeit ersparen, nur weil ich mich nicht richtig ausgedrückt oder es nicht richtig verstanden habe..


    Achja. Bevor ich Dir das verheimliche (hatte ich völlig übersehen):


    Wenn du noch ein bash Script nutzt - was ich jetzt nicht rauslesen konnte


    Der eigentliche Schaltvorgang wird in schalten.php, Bsp. USB-Dosen, über mein /var/sudowebscript.sh erledigt:

    Quote


    #********* Anfang Schleife USB-Steckdosen**********
    case ($n1 >= 1) and ($n1 <= 4);
    #
    exec("sudo /var/sudowebscript.sh $n1 $n2");


    Hier nochmal mein /var/sudowebscript.sh (von Dir "geklaut" und angepasst)


    Sorry, daß ich so spät damit rausrücke. :blush:

    Wer einen Schreibfehler findet darf ihn behalten!
    Adler-Suchsystem ist auch nicht ganz einfach zu handhaben...


    In einem wankenden Schiff fällt um, wer stillesteht, nicht wer sich bewegt.
    (Ludwig Börne)

    Edited once, last by janzeitler ().

  • Alles ist in dem Script aus Beitrag#41 enthalten, auch "regain".


    $argv[1] reagiert auf das erste Argument was an das Script übergeben wurde. "regain" spricht nur den jeweils passenden Abschnitt an. "cron" ebenso. Wird kein Argument übergeben wird der aktuelle/letzte Schaltzustand angezeigt, gedacht für direkten Aufruf über einen Webbrowser.

  • Super! Nochmals vielen Dank. Ich werde es ausprobieren.

    Wer einen Schreibfehler findet darf ihn behalten!
    Adler-Suchsystem ist auch nicht ganz einfach zu handhaben...


    In einem wankenden Schiff fällt um, wer stillesteht, nicht wer sich bewegt.
    (Ludwig Börne)

    Edited once, last by janzeitler ().