27-06-2014, 23:30:31
(Dieser Beitrag wurde zuletzt bearbeitet: 29-06-2014, 16:58:02 von Smarter.)
Liebes Forum,
die Logitech Harmony Smart Control Fernbedienung link ist bereits standalone schon eine praktische Sache, da viele IR Fernbedienungen damit ersetzt werden können. Der Hub wird per WLAN ins Heimnetzwerk integriert und kann sowohl Infrarot, als auch Bluetooth Geräte steuern. Mittels mobile phone oder tablett wird sie zur Universalfernbedienung. Wäre es nicht schön, wenn auch mittels RWE SH Geräte geschaltet werden könnten. Zur Zeit steuere ich standalone bereits meine Heimkinogeräte inkl Sonos Playbar, die Hue Lampen, LED Backlight und einen Elektrokamin.
Senario
In der Übergangszeit kommt bei mir ein Elektrokamin zum Einsatz. Der Elektrokamin soll anstatt mit der mitgelieferten IR Fernbedienung bzw. Logitech Fernbedienung mit dem RWE SmartHome Raumthermostat bedient werden. Die mitgelieferten IR Fernbedienung kann nur An oder Aus als Toggle Schalter und verschiedene Heizstufen. Dies soll nun inteligenter werden. Wird am Raumthermostat die Solltemperatur über der Aktuellen Temp. eingestellt, so soll ein IR Signal ausgesendet werden um den Elektrokamin einzuschalten. Damit dies nur bei Anwesenheit erfolgt, wird ein weiteres Kriterium verwendet. Eines der Heimkino Geräte muss eingeschaltet sein. Die IR Integration würde der Heimautomatisierung neue Möglichkeiten eröffnen, da IR Geräte nun über RWE SH Bedienelemente aber auch über Logikprofile geschaltet werden könnten wie Markisen, Jalousien, TV, CD .....
Ich möchte heute mein php Script vorstellen, welches meinen Elektrokamin steuert. Zusätzlich werde ich auch vorstellen wie Gerätegruppen geschaltet werden. Im ersten Schritt werden Schaltvorgänge nur von SH angestoßen, und Schaltvorgänge über Fernbedienung oder mobile/Tablett werden nicht in SH visualisiert. Leider fehlt mir zur Zeit das Wissen wie man Zustandsänderungen "subscripted" (siehe hier)
Lösungsansatz
Logitech benutzt zur Steuerung sogenannte Szenarien oder auch Aktionen genannt wie "Fernsehen" oder "PS4" die Gerätegruppen schalten. Wir benötigen auch die Funktion Einzelgeräte zu schalten. Die Lösung basiert auf dem C++ Programm von Pete LePage. http://sourceforge.net/p/harmonyhubcontr...ster/tree/ und zusätzlicher Dokumentation hier http://www.domoticz.com/wiki/Harmony_Hub_Control
Das C++ Programm muss auf den RaspberryPi heruntergeladen werden und dann kompiliert werden oder aus der angehängten ZIP Datei verwenden. Das ausführbare Programm wird dann im PHP Skript aufgerufen. Das Herunterladen und Komplieren wird ausführlich im Wiki beschrieben.
Was wird benötigt:
-RaspberryPi (Model B) oder NAS oder Fritzbox mit Webserver und PHP
- Logitec Fernbedienung link
Kurzanleitung:
1. Logitech Credentials beantragen
Die Fernbedienung ist auf der Web-Seite https://setup.myharmony.com/ einzurichten. Die MyHarmony user credentials (email & password) sind in der cofig.ini Sektion [HARMONY] einzutragen
2. GeräteID und Befehle vom HUB auslesen
Mit folgendem Befehl werden die GeräteIDs und die angelernten IR Befehle vom Hub angezeigt.Dieser Befehl muss als Kommando in der Unix Shell eingegeben werden:
./HarmonyHubControl your@email.de password 192.168.178.xx list_commands
Es dauert einige Minuten bis die Ausgabe erzeugt wurde. Die Ausgabe der GeräteID und die notwendigen Ein und Ausschaltbefehl sind heraussuchen und in der config.ini Sektion [HARMONY-DEVICES] einzutragen. Hier ein Beispiel für Kamin und TV
TV_On="start_activity 7780566"
TV_Off="start_activity -1"
Kamin = "issue_device_command 17347422 PowerToggle"
"start _activity" und "issue_device" sind command line option des Unix executable "./HarmonyHubControl" und es muss die GeräteID z.B. 7780566 (action) oder 17347422 (device) ergänzt werden. Bei issue_device_command wird zusätzlich der Ein- und Ausschaltbefehl benötigt. In meinem Fall ist dort "PowerToggle" abgelegt worden.
3. PHP Script
Script und config.ini auf den Raspberry kopieren und Rechte ausführbar machen mit z.B. Filezilla. Die SH Anmeldeinformationen sind in config.ini Sektion [RWE_SmartHome] einzutragen.Die GeräteID und der Ein- bzw Ausschaltbefehl aus Schritt Nr. 2 sind in der config.ini einzutragen. In meinem Fall kann leider nur ein Toggle Befehl gesendet werden, da vom Hersteller keine separaten IR Ein- bzw Ausschaltbefehl implementiert wurden. Es wurde Grenzwertgesteuertes Schalten implemtiert. Es wird die Solltemperatur des Raumthermostat verwendet. Die Raumtemperatur der letzten Periode wird in einer Datei abgelegt und mit der gewünschten eingestellten Raumtemperatur des Raumthermostat verglichen.
Separate Ein- bzw Ausschaltbefehl gibt es bei meinen Geräten nur für die Gerätegruppe TV und PS4.
Aufruf über Befehlszeile: php sonos.php oder über Unix script launcher_sonos.sh
Es werden die credential aus der config.ini gelesen, und eine Verbindung über WLAN zum Hub & SH aufgebaut. Die Kommunikation erfolgt mit dem XMPP Server der auf dem Hub läuft. Das Skript sonos.php läuft auf einem RaspberryPi. Sobald die Status Variable "S_Kamin" auf "JA" schaltet, wird das Unterprogramm "Kamin" in script mySonosScripts.php aufgerufen und es wird eine Verbindung zum Hub aufgebaut und ein IR Signal ausgesendet.
4. Anlegen von Zustandsvariablen für Kamin
Es wird empfohlen einen zusätzlichen Raum "HARMONYHUB" anzulegen. Sodann ist eine ZV "S_Kamin" (siehe image 1) anzulegen.
Der ZV prefix "S_" wird im PHP code ausgewertet (AN) und das Unterprogramm "Kamin" wird aufgerufen.
In meinem Fall habe ich bereits ein Zeitprofil im Raum WOHNZIMMER, welches die Heizung steuert. Hier wird einfach die neue ZV aufgenommen, da der Elektrokamin nur in einer vorgegebenen Zeitspanne betrieben werden soll. (siehe image 2). Zusätzlich wird die ZV sollte auch im An- & Abwesenheits-Logikprofil geschaltet.
5. Anlegen von ZV für TV
Für das Ein- und Ausschalten ist jeweils eine ZV anzulegen S_On_TV und S_Off_TV (siehe image 3), Die ZV wird mit einer Abschaltdauer von 20 Sek eingerichtet. Sobald die ZV auf "AN" geht wird das Unterprogramm On bzw. Off in script mySonosScripts.php aufgerufen. Es könnte nun ein Wandschalter die ZV einschalten und somit die TV Gerätegruppe. Die GeräteID und der Ein- und Ausschaltbefehle sind in der Config.ini definiert und der Gerätename muss in SH mit der ZV und in der config.ini übereinstimmen (Groß und Kleinschreibung beachten).
Anmerkungen und Hinweise zur Verbesserung sind willkommen.
PS: Da ich mit der Sonos Integration angefangen habe und dann mehr hinzugekommen ist, tragen die Scripts noch diesen Namen. Einfach meine anderen Entwicklungen in config.ini ignorieren und nur General, RWE und HARMONY Sektionen updaten.
Viel Spaß beim Nachbauen wünscht Smarter
die Logitech Harmony Smart Control Fernbedienung link ist bereits standalone schon eine praktische Sache, da viele IR Fernbedienungen damit ersetzt werden können. Der Hub wird per WLAN ins Heimnetzwerk integriert und kann sowohl Infrarot, als auch Bluetooth Geräte steuern. Mittels mobile phone oder tablett wird sie zur Universalfernbedienung. Wäre es nicht schön, wenn auch mittels RWE SH Geräte geschaltet werden könnten. Zur Zeit steuere ich standalone bereits meine Heimkinogeräte inkl Sonos Playbar, die Hue Lampen, LED Backlight und einen Elektrokamin.
Senario
In der Übergangszeit kommt bei mir ein Elektrokamin zum Einsatz. Der Elektrokamin soll anstatt mit der mitgelieferten IR Fernbedienung bzw. Logitech Fernbedienung mit dem RWE SmartHome Raumthermostat bedient werden. Die mitgelieferten IR Fernbedienung kann nur An oder Aus als Toggle Schalter und verschiedene Heizstufen. Dies soll nun inteligenter werden. Wird am Raumthermostat die Solltemperatur über der Aktuellen Temp. eingestellt, so soll ein IR Signal ausgesendet werden um den Elektrokamin einzuschalten. Damit dies nur bei Anwesenheit erfolgt, wird ein weiteres Kriterium verwendet. Eines der Heimkino Geräte muss eingeschaltet sein. Die IR Integration würde der Heimautomatisierung neue Möglichkeiten eröffnen, da IR Geräte nun über RWE SH Bedienelemente aber auch über Logikprofile geschaltet werden könnten wie Markisen, Jalousien, TV, CD .....
Ich möchte heute mein php Script vorstellen, welches meinen Elektrokamin steuert. Zusätzlich werde ich auch vorstellen wie Gerätegruppen geschaltet werden. Im ersten Schritt werden Schaltvorgänge nur von SH angestoßen, und Schaltvorgänge über Fernbedienung oder mobile/Tablett werden nicht in SH visualisiert. Leider fehlt mir zur Zeit das Wissen wie man Zustandsänderungen "subscripted" (siehe hier)
Lösungsansatz
Logitech benutzt zur Steuerung sogenannte Szenarien oder auch Aktionen genannt wie "Fernsehen" oder "PS4" die Gerätegruppen schalten. Wir benötigen auch die Funktion Einzelgeräte zu schalten. Die Lösung basiert auf dem C++ Programm von Pete LePage. http://sourceforge.net/p/harmonyhubcontr...ster/tree/ und zusätzlicher Dokumentation hier http://www.domoticz.com/wiki/Harmony_Hub_Control
Das C++ Programm muss auf den RaspberryPi heruntergeladen werden und dann kompiliert werden oder aus der angehängten ZIP Datei verwenden. Das ausführbare Programm wird dann im PHP Skript aufgerufen. Das Herunterladen und Komplieren wird ausführlich im Wiki beschrieben.
Was wird benötigt:
-RaspberryPi (Model B) oder NAS oder Fritzbox mit Webserver und PHP
- Logitec Fernbedienung link
Kurzanleitung:
1. Logitech Credentials beantragen
Die Fernbedienung ist auf der Web-Seite https://setup.myharmony.com/ einzurichten. Die MyHarmony user credentials (email & password) sind in der cofig.ini Sektion [HARMONY] einzutragen
2. GeräteID und Befehle vom HUB auslesen
Mit folgendem Befehl werden die GeräteIDs und die angelernten IR Befehle vom Hub angezeigt.Dieser Befehl muss als Kommando in der Unix Shell eingegeben werden:
./HarmonyHubControl your@email.de password 192.168.178.xx list_commands
Es dauert einige Minuten bis die Ausgabe erzeugt wurde. Die Ausgabe der GeräteID und die notwendigen Ein und Ausschaltbefehl sind heraussuchen und in der config.ini Sektion [HARMONY-DEVICES] einzutragen. Hier ein Beispiel für Kamin und TV
TV_On="start_activity 7780566"
TV_Off="start_activity -1"
Kamin = "issue_device_command 17347422 PowerToggle"
"start _activity" und "issue_device" sind command line option des Unix executable "./HarmonyHubControl" und es muss die GeräteID z.B. 7780566 (action) oder 17347422 (device) ergänzt werden. Bei issue_device_command wird zusätzlich der Ein- und Ausschaltbefehl benötigt. In meinem Fall ist dort "PowerToggle" abgelegt worden.
3. PHP Script
Script und config.ini auf den Raspberry kopieren und Rechte ausführbar machen mit z.B. Filezilla. Die SH Anmeldeinformationen sind in config.ini Sektion [RWE_SmartHome] einzutragen.Die GeräteID und der Ein- bzw Ausschaltbefehl aus Schritt Nr. 2 sind in der config.ini einzutragen. In meinem Fall kann leider nur ein Toggle Befehl gesendet werden, da vom Hersteller keine separaten IR Ein- bzw Ausschaltbefehl implementiert wurden. Es wurde Grenzwertgesteuertes Schalten implemtiert. Es wird die Solltemperatur des Raumthermostat verwendet. Die Raumtemperatur der letzten Periode wird in einer Datei abgelegt und mit der gewünschten eingestellten Raumtemperatur des Raumthermostat verglichen.
Separate Ein- bzw Ausschaltbefehl gibt es bei meinen Geräten nur für die Gerätegruppe TV und PS4.
Aufruf über Befehlszeile: php sonos.php oder über Unix script launcher_sonos.sh
Es werden die credential aus der config.ini gelesen, und eine Verbindung über WLAN zum Hub & SH aufgebaut. Die Kommunikation erfolgt mit dem XMPP Server der auf dem Hub läuft. Das Skript sonos.php läuft auf einem RaspberryPi. Sobald die Status Variable "S_Kamin" auf "JA" schaltet, wird das Unterprogramm "Kamin" in script mySonosScripts.php aufgerufen und es wird eine Verbindung zum Hub aufgebaut und ein IR Signal ausgesendet.
4. Anlegen von Zustandsvariablen für Kamin
Es wird empfohlen einen zusätzlichen Raum "HARMONYHUB" anzulegen. Sodann ist eine ZV "S_Kamin" (siehe image 1) anzulegen.
Der ZV prefix "S_" wird im PHP code ausgewertet (AN) und das Unterprogramm "Kamin" wird aufgerufen.
In meinem Fall habe ich bereits ein Zeitprofil im Raum WOHNZIMMER, welches die Heizung steuert. Hier wird einfach die neue ZV aufgenommen, da der Elektrokamin nur in einer vorgegebenen Zeitspanne betrieben werden soll. (siehe image 2). Zusätzlich wird die ZV sollte auch im An- & Abwesenheits-Logikprofil geschaltet.
5. Anlegen von ZV für TV
Für das Ein- und Ausschalten ist jeweils eine ZV anzulegen S_On_TV und S_Off_TV (siehe image 3), Die ZV wird mit einer Abschaltdauer von 20 Sek eingerichtet. Sobald die ZV auf "AN" geht wird das Unterprogramm On bzw. Off in script mySonosScripts.php aufgerufen. Es könnte nun ein Wandschalter die ZV einschalten und somit die TV Gerätegruppe. Die GeräteID und der Ein- und Ausschaltbefehle sind in der Config.ini definiert und der Gerätename muss in SH mit der ZV und in der config.ini übereinstimmen (Groß und Kleinschreibung beachten).
Anmerkungen und Hinweise zur Verbesserung sind willkommen.
PS: Da ich mit der Sonos Integration angefangen habe und dann mehr hinzugekommen ist, tragen die Scripts noch diesen Namen. Einfach meine anderen Entwicklungen in config.ini ignorieren und nur General, RWE und HARMONY Sektionen updaten.
Viel Spaß beim Nachbauen wünscht Smarter
openHAB RaspberryPi3Innogy-Smarthome+PhilipsHue+Sonos+Buderus-Brennwertkessel+SamsungCAM+SamsungGalaxyTab4+Fritzbox7490+FIBARO-Zwischenstecker+LogitechHarmonyHub+Netatmo+DreamboxDM800