Script pausieren wenn Bedingung bereits erfüllt

  • Hallo zusammen,

    ich habe auf meinen Raspberry ein Script laufen welches mir den Bildschirm über HDMI CEC ein und ausschaltet. Das ganze wird über einen Bewegungsmelder gesteuert und funktioniert super.

    Allerdings soll der Bildschirm auch noch über eine PHP-Script ein und wieder ausgeschalten werden, das funktioniert auch gut.

    Wenn nun allerdings jemand am Bewegungsmelder vorbeikommt wird das Pythonscript "aktiviert" und ganz normal abgearbeitet. Was zu folge hat, dass der Bildschrim wieder ausgeht, wenn sich niemand mehr bewegt.

    Ist es möglich wenn der Powerstatus bereits auf "on" steht, dass das Pythonscript pausiert o.ä. wird bis der Powerstatus wieder auf "off" gesetzt wird?
    Der Powerstauts lässt sich mit echo pow 0 | cec-client -s -d 1' abfragen.

    Hier der bisherige Code:

    Ich hoffe mir kann jemand weiterhelfen :)

    Gruß

    Philipp

  • Es soll also das PHP-Script Priorität haben?

    Wenn über das PHP-Script der Bildschirm eingeschaltet wird soll das Python-Script den Bildschirm nicht wieder deaktivieren können?

    Dann lass einfach vom PHP-Script eine temporäre Datei erstellen die vom Python-Script auf Existenz geprüft wird.

    Am besten in /tmp/ und dies dann auch als tmpfs einrichten damit die SD nicht unnötig belastet wird.

    Natürlich könnte man das auch über den Inhalt einer temporären Datei regeln aber das ist meiner Meinung nach unnötig mehr Aufwand.

    Ich kann mir auch nicht vorstellen dass das Script wirklich gut funktioniert, da es immer alle 60sec "standby" schaltet egal ob es zuvor Bewegung gab oder nicht - das ist also ziemlich dirty programmiert.

    Die Interrupt Routine läuft in einem separaten Thread, unabhängig der while Schleife. Angenommen "time.sleep(60)" läuft bereits seit 50sec, der PIR löst aus, dann wird der HDMI Port bereits nach 10sec wieder ausgeschaltet. Wird die while dahingegen erst seit 10sec blockiert wird der HDMI Port erst nach 50sec ausgeschaltet - also ziemlich unregelmäßig. Besser wäre die Abschaltung wird an "Ende der Bewegung" gekoppelt, oder zumindest an den Zeitpunkt der Bewegung verknüpft und somit regelmäßiger/gleichmäßiger...

    Guck dir mal die folgenden Beiträge bitte an:

    Zeitmessung Heizung (Python)

    Reboot / Shutdown PI & Reboot Windows Rechner

    https://github.com/meigrafd/Sampl…errupt_delay.py

  • Danke für deine Antwort!

    Genau, das PHP-Script soll Priorität haben.

    Wie bekomm ich dieses denn dazu, dass es mir eine temporäre Datei in /tmp/ ablegt und als tmpfs eingereicht ist?

    Und wie bring ich das Python-Script dazu, dass es bei einer Anfrage des Ordners macht nachdem eine Bewegung erkannt wurde?

    Das mit dem Script konnte ich so noch nicht feststellen, allerdings werde ich mich deinem Script mal annehmen und es damit versuchen. Vielen Dank dafür!

    Gruß

    Philipp

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!