Ich habe selbst auch etwas ähnliches gebaut um den Monitor für eine BlaulichtSMS Anzeige zu steuern, allerdings war dies nicht so weit fort geschritten und dadurch auch nicht Open Source.
Da dieses Projekt jedoch einige Vorteile bietet, habe ich jetzt unsere Monitore auch umgestellt. Leider habe ich festgestellt, dass das ein und ausschalten der Monitore nicht sauber funktioniert.
Folgende 2 Ursachen habe ich eruieren können:
Die python cec lib funktioniert nicht verlässlich
Der Algorithmus für das ausschalten funktioniert nicht, wenn in der Zwischenzeit ein weiter Alarm herein kommt
ad 1:
Ich habe direkt versucht den Monitor mit der python cec lib ein und auszuschalten, dies hat aber nur in manche der Fälle funktioniert. Manchmal hat die cec lib dann zurück geliefert der Monitor ist ein, er war aber aus. Einschalten hat auch oft einfach gar nicht funktioniert.
In meinem bisherigen Python Program habe ich hier einfach cec-client über subprocess aufgerufen, ist nicht ganz schön, aber verlässlich. Ich habe dies jetzt als Option über einen cec_helper implementiert. In der Config kann man mit cec_mode = 2 auf cec-utils wechseln, default ist weiterhin die python cec lib.
ad 2:
Das Ausschalten des Monitors erfolgte immer einfach Zeitverzögert. Hierbei wurde nicht geprüft, ob vielleicht in der Zwischenzeit schon ein weiterer Alarm herein gekommen ist. Dadurch kann es sein, dass der Monitor sich ausschaltet, obwohl ein Alarm aktiv ist. Genau so wird nicht geprüft, ob sich vielleicht der Status des Monitors geändert hat (jemand hat mit der Fernbedienung herum gedrückt).
Um dies zu lösen, wird bei der Berechnung ob ein Alarm aktiv ist, auch die hdmi_cec_device_on_time an den BlaulichtSMS Controller übergeben. Somit wird nicht nur überprüft, ob ein neuer Alarm dazu gekommen ist, sondern ob einer der Alarme im aktuellen Zeitraum liegt.
Ich habe selbst auch etwas ähnliches gebaut um den Monitor für eine BlaulichtSMS Anzeige zu steuern, allerdings war dies nicht so weit fort geschritten und dadurch auch nicht Open Source.
Da dieses Projekt jedoch einige Vorteile bietet, habe ich jetzt unsere Monitore auch umgestellt. Leider habe ich festgestellt, dass das ein und ausschalten der Monitore nicht sauber funktioniert.
Folgende 2 Ursachen habe ich eruieren können:
ad 1:
Ich habe direkt versucht den Monitor mit der python cec lib ein und auszuschalten, dies hat aber nur in manche der Fälle funktioniert. Manchmal hat die cec lib dann zurück geliefert der Monitor ist ein, er war aber aus. Einschalten hat auch oft einfach gar nicht funktioniert. In meinem bisherigen Python Program habe ich hier einfach
cec-client
übersubprocess
aufgerufen, ist nicht ganz schön, aber verlässlich. Ich habe dies jetzt als Option über einen cec_helper implementiert. In der Config kann man mitcec_mode = 2
auf cec-utils wechseln, default ist weiterhin die python cec lib.ad 2:
Das Ausschalten des Monitors erfolgte immer einfach Zeitverzögert. Hierbei wurde nicht geprüft, ob vielleicht in der Zwischenzeit schon ein weiterer Alarm herein gekommen ist. Dadurch kann es sein, dass der Monitor sich ausschaltet, obwohl ein Alarm aktiv ist. Genau so wird nicht geprüft, ob sich vielleicht der Status des Monitors geändert hat (jemand hat mit der Fernbedienung herum gedrückt). Um dies zu lösen, wird bei der Berechnung ob ein Alarm aktiv ist, auch die
hdmi_cec_device_on_time
an den BlaulichtSMS Controller übergeben. Somit wird nicht nur überprüft, ob ein neuer Alarm dazu gekommen ist, sondern ob einer der Alarme im aktuellen Zeitraum liegt.Ich freue mich über Feedback zum Pull Request.