Hallo,
wie in dem anderem Thread angekündigt hier mal meine Heimkinosteuerung:
Randbedingungen:
Abspielmedien:
HTPC: KODI auf Windows 7
BluRay-Player
Steuerung: Harmony Elite mit Hub
Haussteuerung: FHEM mit diverseren Modulen auf einem Pi3b
Die Sinn und Zweck meiner Kinosteuerung ist recht einfach. Ich bin Faul und möchte echtes Kinofeeling.
Das heißt:
Dimmen des Lichtes in Anghängigkeit der Filmstati (Play, Pause, Stop)
Überwachen und Schalten der Geräte auch von Unterwegs
Automatisches Umschalten der Quellen.
Integration in die Haussteueurung (Signalisierung von Babyfon, Türklingel und Telefon)
Kontrolle der klimatischen Gegebenheiten (Temperatur und Luftfeuchtigkeit)
Die Beleuchtung wird mithilfe von Zigbee und Homematic angesteuert. Dies wird bei uns Zentral über FHEM erledigt. Daher musste eine Schnittstelle her, welche die Kommunikation zu FHEM aufnimmt. Dies übernimmt der Harmony Hub, welcher als „Modul“ in FHEM integriert ist.
Der Start des Kinos schaut im Grunde wie folgt aus:
Ich starte eine Harmony Activity z.B. KODI. Diese kann ich über die Fernbedienung, Harmony App, Wandtaster oder auch Telegram…
Der Start der Activity wird an FHEM übergeben. Dieses schaltet alle für diese Activity notwendigen Steckdosen zu und die Beleuchtung entsprechend ein/ um.
Mittlerweile habe ich die Logik aus der Harmony Activity komplett in FHEM integriert, so dass nun alle für die Activity benötigten Geräte nacheinander eingeschaltet bzw. Eingänge umgeschaltet werden.
Zwischendurch gibt es Benachrichtungen um den Start zu überwachen.
Die Steuerung im Kino erfolgt ausschließlich über die Harmony Elite. Die verschiedenen Aktionen werden ebenfalls über dummys bzw. Module direkt an FHEM weitergeleitet, so dass FHEM jede Situation mitbekommt.
Im Falle der Activity KODI reagiert das FHEM-Modul seitens FHEM auf den Playstatus. Dies ist mit dem BluRayPlayer so nicht möglich, daher wird beim Starten des Films über die Fernbedienung paralllel zu dem Befehl Play ein weiterer Befehl Netzwerkgerät (FakeRoku) gesendet damit die entsprechenden Dummys gesteuert werden können und die Haussteuerung analog dessen die Beleuchtung schalten kann.
Klingt erstmal kompliziert, funktioniert aber zu 100% und hat einen extrem hohen WAF.
Hier mal der Code für die Hauptsteuerung. Es handelt sich um ein zentrales DOIF welches in Abhängigkeiten Programmschritte durchläuft.
([hub_ug_kn_Kellopolis:currentActivity] eq "starting KODI" and ([?doi_ug_kn_Kinosteuerung:zustand] eq "PowerOff"))
(set std_ug_kn_Beamer_swt:FILTER=STATE!=on on, set swi.ug.kn.Media:FILTER=STATE!=on on, set std_ug_kn_PC:FILTER=STATE!="on" on)
(setreading doi_ug_kn_Kinosteuerung zustand KODI, set dum.ug.kn.media KODI, set teleBot message Kino startet im KODI-Modus)
(set hub_ug_kn_Beamer PowerOn, setreading hub_ug_kn_Beamer power on)
(setreading hub_ug_kn_AVR power on, get med_ug_kn_Beamer standbyReadings)
(set hub_ug_kn_AVR PowerOn, setreading hub_ug_kn_AVR power on)
(set hub_ug_kn_AVR InputDvd, set med_ug_kn_KODI connect)
(set dum_ug_kn_iNuke6000dsp:FILTER=STATE!="on" on, setreading hub_ug_kn_DBA power on)
(set teleBot message Kino bereit --KODI--)
(set str.ug.kn.Podestbeleuchtung RGB AA00FF, set dim_ug_kn_Fries_Sw_01 50, set dim_ug_kn_Fries_Sw_02 30, set rgb_ug_kn_Hinten on, set teleBot message Kino Geräte eingeschaltet)
(get med_ug_kn_Beamer standbyReadings)
##0,0,5,2,2,13,0,0,20:
DOELSEIF
([hub_ug_kn_Kellopolis:currentActivity] eq "starting BluRay" and ([?doi_ug_kn_Kinosteuerung:zustand] eq "PowerOff"))
(set std_ug_kn_Beamer_swt:FILTER=STATE!=on on, set swi.ug.kn.Media:FILTER=STATE!=on on)
(setreading doi_ug_kn_Kinosteuerung zustand BluRay, set dum.ug.kn.media BluRay, set teleBot message Kino startet im BluRay-Modus)
(set hub_ug_kn_Beamer PowerOn, setreading hub_ug_kn_Beamer power on)
(setreading hub_ug_kn_AVR power on)
(set hub_ug_kn_AVR PowerOn, setreading hub_ug_kn_AVR power on)
(set hub_ug_kn_AVR InputBlu-ray)
(set dum_ug_kn_iNuke6000dsp:FILTER=STATE!="on" on, setreading hub_ug_kn_DBA power on)
(set hub_ug_kn_BluRay Eject, set teleBot message Kino bereit --BluRay--, get med_ug_kn_Beamer standbyReadings)
(set str.ug.kn.Podestbeleuchtung RGB AA00FF, set dim_ug_kn_Fries_Sw_01 50, set dim_ug_kn_Fries_Sw_02 30, set rgb_ug_kn_Hinten on, set teleBot message Kino Geräte eingeschaltet)
(get med_ug_kn_Beamer standbyReadings)
##0,0,5,2,2,13,0,0,20:
DOELSEIF
([hub_ug_kn_Kellopolis:currentActivity] eq "stopping KODI" and ([?doi_ug_kn_Kinosteuerung:zustand] ne "PowerOff") and [?doi_ug_kn_Kinosteuerung:zustand] ne "PoweringDown")
(setreading doi_ug_kn_Kinosteuerung zustand PoweringDown, set med_ug_kn_KODI shutdown)
(set str.ug.kn.Podestbeleuchtung HSV 0,100,100, set rgb_ug_kn_Hinten rgb EF1E1F)
(set med_ug_kn_Beamer Power Standby, setreading hub_ug_kn_Beamer power off, set med_ug_kn_Beamer Power Standby)
##(set hub_ug_kn_Beamer PowerOff, setreading hub_ug_kn_Beamer power off, set hub_ug_kn_Beamer PowerOff)
(set dum_ug_kn_iNuke6000dsp:FILTER=STATE!=off off, setreading hub_ug_kn_DBA power off)
##(set hub_ug_kn_Beamer PowerOff)
(setreading hub_ug_kn_Beamer power off)
(set hub_ug_kn_AVR PowerOff)
(set teleBot message Kino Geräte Shutdown wird vorbereitet)
DOELSEIF
([hub_ug_kn_Kellopolis:currentActivity] eq "stopping BluRay" and ([?doi_ug_kn_Kinosteuerung:zustand] ne "PowerOff") and [?doi_ug_kn_Kinosteuerung:zustand] ne "PoweringDown")
(setreading doi_ug_kn_Kinosteuerung zustand PoweringDown, set med_ug_kn_KODI shutdown)
(set str.ug.kn.Podestbeleuchtung HSV 0,100,100, set rgb_ug_kn_Hinten rgb EF1E1F)
(set hub_ug_kn_Beamer PowerOff, setreading hub_ug_kn_Beamer power off)
(set hub_ug_kn_Beamer PowerOff)
(set dum_ug_kn_iNuke6000dsp:FILTER=STATE!=off off, setreading hub_ug_kn_DBA power off)
(set hub_ug_kn_AVR PowerOff)
(set teleBot message Kino Geräte Shutdown wird vorbereitet)
DOELSEIF
OELSEIF
([hub_ug_kn_Kellopolis:currentActivity] eq "stopping KODI" and ([?doi_ug_kn_Kinosteuerung:zustand] ne "PowerOff") and [?doi_ug_kn_Kinosteuerung:zustand] ne "PoweringDown")
(setreading doi_ug_kn_Kinosteuerung zustand PoweringDown, set med_ug_kn_KODI shutdown)
(set str.ug.kn.Podestbeleuchtung HSV 0,100,100, set rgb_ug_kn_Hinten rgb EF1E1F)
(set med_ug_kn_Beamer Power Standby, setreading hub_ug_kn_Beamer power off, set med_ug_kn_Beamer Power Standby)
##(set hub_ug_kn_Beamer PowerOff, setreading hub_ug_kn_Beamer power off, set hub_ug_kn_Beamer PowerOff)
(set dum_ug_kn_iNuke6000dsp:FILTER=STATE!=off off, setreading hub_ug_kn_DBA power off)
##(set hub_ug_kn_Beamer PowerOff)
(setreading hub_ug_kn_Beamer power off)
(set hub_ug_kn_AVR PowerOff)
(set teleBot message Kino Geräte Shutdown wird vorbereitet)
DOELSEIF
([hub_ug_kn_Kellopolis:currentActivity] eq "stopping BluRay" and ([?doi_ug_kn_Kinosteuerung:zustand] ne "PowerOff") and [?doi_ug_kn_Kinosteuerung:zustand] ne "PoweringDown")
(setreading doi_ug_kn_Kinosteuerung zustand PoweringDown, set med_ug_kn_KODI shutdown)
(set str.ug.kn.Podestbeleuchtung HSV 0,100,100, set rgb_ug_kn_Hinten rgb EF1E1F)
(set hub_ug_kn_Beamer PowerOff, setreading hub_ug_kn_Beamer power off)
(set hub_ug_kn_Beamer PowerOff)
(set dum_ug_kn_iNuke6000dsp:FILTER=STATE!=off off, setreading hub_ug_kn_DBA power off)
(set hub_ug_kn_AVR PowerOff)
(set teleBot message Kino Geräte Shutdown wird vorbereitet)
DOELSEIF
([?doi_ug_kn_Kinosteuerung:zustand] eq "PoweringDown" and [std_ug_kn_Beamer_pwr:power] < 6)
(set hub_ug_kn_Kellopolis activity Standby, setreading doi_ug_kn_Kinosteuerung zustand PowerOff, set dum.ug.kn.media Standby)
(set std_ug_kn_PC:FILTER=STATE!=off off, set swi.ug.kn.Media:FILTER=STATE!=off off, set std_ug_kn_Beamer_swt:FILTER=STATE!=off off)
(set str.ug.kn.Podestbeleuchtung off, set rgb_ug_kn_Hinten off)
(set teleBot message Kino Geräte sind komplett ausgeschaltet, set dum.ug.kn.Playstatus stop)
Alles anzeigen
Eine weitere Spielerei:
Ich habe meine kompletten Filme, auch die als BluRay bestehenden in KODI importiert. Diese Stub-Dateien werden ebenfalls von KODI verwaltet. Rufe ich nun besagte Datei auf, erscheint ein Fenster in KODI, welches mir angibt meinen faulen Hintern aus dem Sessel zu heben und die BluRay einzulegen. Im Hintergrund wird bereits der BluRayPlayer gestartet sofern noch nicht an und das Laufwerk geöffnet und die Activity BluRay gestartet.
Schaue ich allerdings ein Film über das CinemaVision Addon von KODI, ist das Prozedere anders. Hier kommt dann die Aufforderung zum einlegen der BluRay, parallel werden allerdings Trailer abgespielt und erst nach Beendigung der Trailer wird auf den BluRayPlayer umgeschaltet.
Die ist tatsächlich nur eine Spielerei, da diese Geschichte noch nicht Zuverlässig läuft. Aber zu 75% klappt es
Nicht direkt mit der Heimkinosteuerung haben folgende Punkte zu tun.
Telefonanrufe, sowie das Türklingeln signalisiere ich mit Umschalten der Beleuchtungsfarben, Licht blinken, oder auch Pause des Films bei sogenannten Notfallnummern.
Die Steuerung des Raumklimas wird ebenfalls bei Filmwiedergabe unterdrückt um nicht vom Entfeuchter, oder der Hinterlüftung des DBAs gestört zu werden.
Mich würden Eure Abläufe interessieren.