Hallo zusammen,
ich scheiter gerade an der Umsetzung eines Programmes und hoffe, dass mir hier jemand weiterhelfen kann.
Ein Raspberry Pi ist mit HDMI an einen Fernseher angeschlossen und schaltet diesen mittels HDMI CEC ein und wieder aus. Ausgelöst wird das ganze über einen PIR, das Script dafür läuft logischerweise die ganze Zeit.
Parallel dazu soll es noch eine Möglichkeit geben den Fernseher von einem Windows PC mit Hilfe einer batch Datei welche den Raspberry Pi über SSH anspricht zu aktivieren.
Die Umsetzung mit dem Bewegungsmelder ist mir klar, wie ich den Raspberry über SSH anspreche und damit den Fernseher aktiviere ebenfalls.
Mir stellt sich allerdings nun die Frage, ob sich das in einem Script umsetzten lässt oder ob ich zwei Scripts brauche?
Macht es Sinn ein Script für TV an/aus über SSH und eines nur für den Bewegungsmelder zu schreiben?
So dass das Bewegungsmelder Script den Fernseher an- und ausschaltet und sobald er über SSH aktiviert wird dieses schließt und nach Ablauf eines Timers wieder aufruft.
Ich hoffe die Frage ist nicht zu doof gestellt, ich bin noch relativ neu auf dem Gebiet.
Gruß
Philipp
Fernseh über PIR und SSH an/ausschalten
Was du brauchst ist ein Skript, das mit zwei Arten von Ereignissen umgehen kann. GPIOs und etwas anderem, zb einem socket. Damit kann man von außen auf den Programm Ablauf einwirken.
Ob der socket dann per SSH & zb “echo schaltaus > /var/run/meinsuperheimautomationssystem” angesprochen wird, oder per HTTP ist zweitrangig.
Ob der socket dann per SSH & zb “echo schaltaus > /var/run/meinsuperheimautomationssystem” angesprochen wird, oder per HTTP ist zweitrangig.
@Philipp238: zwei Skripte machen die Sache komplizierter. Einfacher wäre es, statt SSH HTTP zu benutzen, dazu braucht man nur ein HTTP-Framework (z.B. bottle), einbinden, Funktion schreiben, fertig.
Am besten läßt Du den HTTP-Server in einem Thread arbeiten, füllst beim Aufruf einer bestimmten Web-Seite eine Queue mit einem AN/AUS-Kommando, füllst die selbe Queue in einem Call-Back für den Bewegungsmelder mit einem HUCH-Kommando, und arbeitest in der main-Funktion die Queue ab, um den Fernseher an oder auszuschalten.
Am besten läßt Du den HTTP-Server in einem Thread arbeiten, füllst beim Aufruf einer bestimmten Web-Seite eine Queue mit einem AN/AUS-Kommando, füllst die selbe Queue in einem Call-Back für den Bewegungsmelder mit einem HUCH-Kommando, und arbeitest in der main-Funktion die Queue ab, um den Fernseher an oder auszuschalten.
-
- User
- Beiträge: 4
- Registriert: Sonntag 7. Januar 2018, 14:38
Danke für eure Antworten!
Das scheint mir wohl doch komplizierter zu sein als zunächste angenommen, zumindest wenn man nicht so tief in der Materie drin steckt.
Lässt sich die Variante mit dem Socket einfach umsetzen oder die mit dem HTTP-Framework?
Habt ihr eventuell das ein oder andere Codebeispiel zur Hand?
Das scheint mir wohl doch komplizierter zu sein als zunächste angenommen, zumindest wenn man nicht so tief in der Materie drin steckt.
Lässt sich die Variante mit dem Socket einfach umsetzen oder die mit dem HTTP-Framework?
Habt ihr eventuell das ein oder andere Codebeispiel zur Hand?