stg93 / blaulichtsms_einsatzmonitor_tv_controller

TV Controller für ein HDMI CEC fähiges Gerät mit dem blaulichSMS Einsatzmonitor
MIT License
20 stars 9 forks source link

HDMI CEC Steuerung mit CEC lib oder cec-utils #13

Closed r00tat closed 5 years ago

r00tat commented 5 years ago

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:

  1. Die python cec lib funktioniert nicht verlässlich
  2. 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 freue mich über Feedback zum Pull Request.

r00tat commented 5 years ago

@stg93 Änderungen und Vorschläge sind übernommen!