+ Antworten
Seite 1 von 59 1 2 3 11 51 ... LetzteLetzte
Ergebnis 1 bis 10 von 581
  1. #1
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,516

    Exclamation Logitech Harmony Hub Modul [Testversion]

    WICHTIG:
    Durch ein automatisches Firmware Update auf 4.15.206 wird der Zugang von externen Systemen, wie auch IP-Symcon, zu einem Logitech Hub durch Logitech selber geblockt.
    Nähere Infos zum Update auf 4.15.206

    Ab Firmware 4.15.250 ist es notwenig explizit Enable XMPP zu aktivieren damit der Logitech Hub extern durch Ip-Symcon gesteuert werden kann.

    Siehe auch
    Update to accessing Harmony Hub’s local API via XMPP


    Ich benutzte schon seit längerer Zeit die Skripte von Zapp für das Anzeigen von Aktivitäten des Logitech Harmony Hub und das Senden von Befehlen.

    Auf Grundlage der Arbeit und der Scripte von Zapp sowie der Diskussionen aus diesem Thread
    Logitech Harmony Ultimate & Smart Control Hub library
    habe ich mir mal die Skripte so angepasst und erweitert um ein Modul für den Logitech Harmony Hub zu erstellen.

    Das ganze ist sicher noch ausbau fähig, in Zukunft wird hoffentlich mit Anpassungen der Logitech API dann noch mehr möglich sein.

    Installation
    Voraussetzung:
    - IP-Symcon 4.x
    - Logitech Harmony Hub im gleichen Netzwerk wie IP-Symcon
    - Konfigurierter Logitech Harmony Hub mit angelegten Aktionen und Geräten
    - Zugangsdaten für MyHarmony

    Das Modul unter Kern Instanzen Modules mit der URL
    Code:
    https://github.com/Wolbolar/IPSymconHarmony
    hinzufügen.

    Danach IP-Symcon 4.x eine Instanz hinzufügen (CTRL+1).
    Hier nun als Hersteller Logitech eingeben und Logitech Harmony Hub auswählen.

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Harmony-Hub-1.png 
Hits:	1071 
Größe:	13.0 KB 
ID:	34535

    Im dem sich öffnenden Fenster zunächst bei Erstinstallation folgende Dinge auswählen:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Harmony-Form-1.png 
Hits:	1340 
Größe:	23.9 KB 
ID:	34536
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Harmony-Form-2.png 
Hits:	912 
Größe:	8.5 KB 
ID:	34537

    1
    Haken bei Öffnen setzten. Dies ist notwendig damit der I/O Instanz später aktiv ist.

    2
    IP Adresse des Logitech Harmony Hub eintragen

    3
    Port bleibt unverändert auf 5222

    4
    Email Adresse (entspricht Anmeldename) für MyHarmony

    5
    Passwort für MyHarmony

    6
    Vorher ist in IP Symcon eine Kategorie anlegen. Diese ist hier auszuwählen. Unter dieser Kategorie werden die Geräte Instanzen angelegt.

    7
    Hier einen Haken setzten. Wird in einer späteren Version entfernt. Die Variablen CommandOut und IOIN zeigen die ein- und ausgehenden Daten an.

    8
    Optional Wenn diese Option gewählt wird werden für jede Befehlsgruppe eines Logitech Harmony Geräts eine Variable zum Schalten aus dem Webfront angelegt. VORSICHT: Diese Option sollte nur gewählt werden wenn noch ausreichend Variablen in IP-Symcon verfügbar sind oder die Variablenanzahl unbegrenzt ist, da eine hohe Anzahl an Variablen je nach angelernten Geräten im Harmony Hub verbraucht werden kann.

    9
    Optional Dies Option kann gewählt werden als Alternative oder Ergänzung zu 8. Es werden für jedes Gerät im Harmony Hub ein Skript zum schalten des Befehls angelegt.


    Nach dem Druck auf Übernehmen wird zunächst der User Auth Token für den Logitech Harmony Hub abgefragt und in IP-Symcon abgelegt. Wenn das Abrufen des User Auth Token erfolgreich war kann mit Schritt 10 und 11 vorgefahren werden.

    10
    Nachdem der User Auth Token vorhanden ist kann auf Konfiguration auslesen geklickt werden. Es dauert einen Moment nach vollständigem Empfang vom Logitech Harmony Hub wird die Konfiguration in IP-Symcon in der Variable Harmony Config abgespeichert. Wenn sich etwas an den Geräten im Logitech Harmony Hub ändert ist die Konfiguration erneut auszulesen.

    11
    Sobald die Konfiguration ausgelesen wurde kann auf Setup Harmony gedrückt werden.
    Abhängig von der optionalen Auswahl 8 und 9 werden nun die Instanzen, Skripte und Variablen angelegt.

    Im Webfront sieht das z.B. dann so aus:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Harmony-Webfront-1.png 
Hits:	1377 
Größe:	87.6 KB 
ID:	34538


    Es lassen sich über das Webfront oder die Skripte dann Befehle absetzten. Die Aktivität wird im Webfront angezeigt.
    Sobald ein Gerät oder Harmony Fernbedienung eine Harmony Aktivität auslöst wird diese auch in IP-Symcon aktualisiert.
    Die aktuelle Aktivität wird in der Variable Harmony Activity, diese liegt unter dem Logitech Harmony Splitter, angezeigt. Es wird automatisch ein Link unter der oben gewählten Kategorie zu dieser Variable angelegt.

    Die Variablennamen und die Bezeichnung der Befehle werden so angelegt wie diese von der Bezeichnung im Harmony Hub hinterlegt sind. Für jede angelegte Variable wird auch das Beschreibungsfeld genutzt, hier steht der eigentliche Befehl drinnen der an den Harmony Hub gesendet wird. Daher darf das Beschreibungsfeld der Variable nicht geändert werden. Die Bezeichnung der Variable sowie die Befehlsnamen die im Variablenprofile der Variable hinterlegt sind können individuell vom Nutzer angepasst werden. Dabei darf nur nicht die Reihenfolge im Variablenprofil verändert werden.

    Wem die vorgebende Anordnung durch den Harmony Hub nicht gefällt, der kann auch den Haken bei 8 weglassen. Es werden dann keine Variablen angelegt. Diese können dann später individuell von Hand angelegt werden. Dabei ich dann zunächst mit der Funktion
    LHD_GetCommands(integer $InstanceID);
    zu schauen welche Befehle für das Gerät zur Verfügung stehen. Dies Befehle können dann nach Belieben auf Variablen mit dem entsprechenden Variablenprofil verteilt werden. Das Variablenprofil muss für den Typ Integer sein, die Namen der Befehle im Variablenprofil können individuell gewählt werden. Wichtig ist das Beschreibungsfeld der Variable entsprechend der Reihenfolge im Variablenprofil mit den tatsächlichen Befehlsnamen, die von der Funktion LDH_GetCommands ausgegeben wurde, zu befüllen. Wenn das Profil erstellt wurde kann dann die Variable angelegt werden.

    PHP-Code:
    $InsID 44015 /*[Geräte\Heimkino\Harmony\Harmony Geräte\Amazon Fire TV]*/// ObjektID des Harmony Geräts
    $VarIdent "Navigation"//Ident
    $VarName "Navigation"//Name
    $profiledevicename "FireTV"// Gerätename
    $profilegroupname "Navigation"//Commandogruppe
    $Profilname =  "LogitechHarmony.".$profiledevicename.".".$profilegroupname;
    $descriptionjson '["DirectionDown","DirectionLeft","DirectionRight","DirectionUp","OK"]' ;
    $varid LHD_SetupVariable($InsID$VarIdent$VarName$Profilname); //Letzter Parameter ist der vergebene Profilname
    IPS_SetInfo($varid$descriptionjson); 
    In dem Beispiel würde eine Variable angelegt die den Namen Navigation hat und die Befehle "DirectionDown","DirectionLeft","DirectionRight"," DirectionUp","OK" enthält. Diese sind in der gleichen Reihenfolge im selbst erstellten Variablenprofil beginnend bei 0 (DirectionDown) bis 4 (Ok) hinterlegt. Die Beschreibung $descriptionjson ist im JSON Format anzugeben.

    Zusätzliche Funktionen:
    PHP-Code:
    HarmonyHub_getCurrentActivity(integer $InstanceID); 
    Parameter $InstanceID ObjektID des Harmony Hub Splitters
    Fordert eine manuelle Aktualisierung der Aktivität in IP-Symcon an. Die Aktivität wird in der Variable Harmony Activity abgelegt.

    Liest alle verfügbaren Aktivitäten des Logitech Harmony Hub aus und gibt einen Array zurück.
    PHP-Code:
    HarmonyHub_GetAvailableAcitivities(integer $InstanceID); 
    Parameter $InstanceID ObjektID des Harmony Hub Splitters

    Beispiel:
    PHP-Code:
    $activities HarmonyHub_GetAvailableAcitivities(44523 /*[Logitech Harmony Hub]*/);
    print_r($activities); 
    Liest alle verfügbaren Device IDs des Logitech Harmony Hub aus und gibt einen Array zurück.
    PHP-Code:
    HarmonyHub_GetHarmonyDeviceIDs(integer $InstanceID); 
    Parameter $InstanceID ObjektID des Harmony Hub Splitters

    Beispiel:
    PHP-Code:
    $devices HarmonyHub_GetHarmonyDeviceIDs(44523 /*[Logitech Harmony Hub]*/);
    print_r($devices); 
    Schaltet auf die gewünschte Logitech Harmony Hub Aktivität
    PHP-Code:
    HarmonyHub_startActivity(integer $InstanceIDinteger $activityID); 
    Parameter $InstanceID ObjektID des Harmony Hub Splitters Parameter $activityID ID der Harmony Aktivität, verfügbare IDs können über HarmonyHub_GetAvailableAcitivities ausgelesen werden

    Liest die verfügbaren Funktionen des Geräts aus und gibt diese als Array aus
    PHP-Code:
    LHD_GetCommands(integer $InstanceID); 
    Parameter $InstanceID ObjektID des Harmony Hub Geräts

    Beispiel:
    PHP-Code:
    $commands LHD_GetCommands(44015 /*[Geräte\Heimkino\Harmony\Harmony Geräte\Amazon Fire TV]*/);
    print_r($commands); 
    Hier wird auf die Instanz verwiesen von der man die Befehle auslesen will hier Amazon Fire TV.

    Sendet einen Befehl an den Logitech Harmony Hub
    PHP-Code:
    LHD_Send(integer $InstanceIDstring $Command); 
    Parameter $InstanceID ObjektID des Harmony Hub Geräts
    Parameter $Command Befehl der gesendet werden soll, verfügbare Befehle werden über LHD_GetCommands ausgelesen.

    Wer einzelne Tastendrücke einer Harmony Remote nutzen will um damit Aktionen in IP-Symcon auszulösen kann dies unter Hinzunahme von FHEM lösen. Eine Anleitung wie dies geht findet man hier:
    Logitech Harmony Hub Modul [Testversion] - Seite 7

    Da es ab IP-Symcon 4.1 auch einen Multicast Socket gibt könnt man diesen Umweg über FHEM wohl in Zukunft nicht mehr brauchen. Eine Umstellung des Moduls auf Funktionen die erst ab 4.1 verfügbar sind wird es aber erst in Zukunft geben.
    Geändert von Fonzo (17.02.19 um 08:42 Uhr) Grund: Firmware Update für XMPP

  2. #2
    Registriert seit
    May 2015
    Beiträge
    6

    Vielen Dank - dieses Modul hat mir bislang sehr gefehlt - ich werde mal testen!

  3. #3
    Registriert seit
    Nov 2009
    Ort
    Taunus
    Beiträge
    85

    Vielen Dank auch von mir, ich habe ebenfalls schon länger auf sowas gewartet.
    Bis jetzt läuft es sehr gut bei mir.
    HP N54L als Server, Homematic, XComfort, FS20, LevelJet, Xbee, Sonos und jede Menge mehr

  4. #4
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,516

    Standard Schalten von Skripten bei einer Harmony Aktion

    Anbei noch ein kleines Beispiel wie man eigene Skripte bei einer Aktion des Harmony Hub startet z.B. Steckdose einschalten.

    Zunächst ein Skript anlegen und Code einfügen
    PHP-Code:
    $activities HarmonyHub_GetAvailableAcitivities(44523 /*[Logitech Harmony Hub]*/);
    print_r($activities); 
    Die ObjektID muss auf den Logitech Harmony Hub Splitter verweisen. Dann auf Ausführen drücken. Im Skriptausgabefenster steht nun der Array der die Aktion als Schlüssel enthält und die ID der Aktion als Wert.

    Code:
    Array
    (
        [Film FTV Leinwand] => 11746407
        [Amazon Prime] => 11697675
        [Küche] => 11738612
        [Film anschauen] => 12491805
        [AppleTV] => 11697760
        [Wohnzimmer] => 11738662
        [Spielen] => 16188673
        [PowerOff] => -1
        [TV Leinwand] => 11768391
        [Fernsehen] => 11697506
        [Film Leinwand] => 12491850
    )
    Wenn beim Harmony Hub eine Aktion ausgeführt wird aktualisiert sich automatisch auch der Wert der Variable Harmony Activity in IP-Symcon. Wenn also PowerOff ausgeführt wird ist der Wert -1, in dem Beispiel oben wäre der Wert bei Fernsehen 11697506. Im Webfront steht dann Fernsehen, da dem Wert ein Variablenprofil zugewiesen ist. Anhand der Skriptausgabe ist also jetzt bekannt welcher Wert für welche Aktivität des Harmony Hub steht.

    Die kann man nun nutzten um einerseits einfach eine Aktion über Skript auszulösen.
    Beispiel Fernsehen aus obiger Ausgabe
    PHP-Code:
    HarmonyHub_startActivity(44523 /*[Logitech Harmony Hub]*/11697506); 
    Beispiel PowerOff
    PHP-Code:
    HarmonyHub_startActivity(44523 /*[Logitech Harmony Hub]*/, -1); 

    Anderseits kann man jetzt auch einfach auf eine Aktion ein Ereignis erfolgen lassen.

    Dazu ein Skript anlegen
    PHP-Code:
    $Status GetValue(22137 /*[Logitech Harmony Hub\Harmony Activity]*/);

        if (
    $Status == - 1)
        {
           
    IPS_RunScript(33089 /*[Geräte\Heimkino\Harmony\Funktionen\Power Off ]*/);
           
    IPS_LogMessage("Logitech Harmony Hub""Power Off ausführen");
        }
        elseif(
    $Status == 11746407//Film FTV Leinwand
        
    {
           
    IPS_RunScript(15173 /*[Geräte\Heimkino\Harmony\Funktionen\Amazon Fire TV auf Leinwand]*/);
           
    IPS_LogMessage("Logitech Harmony Hub""Film FTV Leinwand ausführen");
        }
        elseif(
    $Status == 11697675//Amazon Prime
        
    {
           
    IPS_RunScript(43129 /*[Geräte\Heimkino\Harmony\Funktionen\Amazon Fire TV auf TV]*/);
           
    IPS_LogMessage("Logitech Harmony Hub""Amazon Prime ausführen");
        } 
    In dem Skript wird bei dem jeweiligen Wert jeweils ein anderes Skript gestartet. In dem jeweils anderen Skript steht dann drinnen was zusätzlich passieren soll wenn diese Aktion gestartet wird z.B. eine Steckdose anschalten.

    Jetzt markieren wir das Skript noch mit der rechten Maustaste und gehen auf Objekt hinzufügen -> Ereignis hinzufügen
    Hier wählen wir Auslösendes Ereignis. Als Variable wählen wir Harmony Activity unterhalb des Logitech Harmony Splitters. Als Auslöser bei Variablenaktualisierung. Jetzt wird dann jedes mal wenn sich eine Aktivität ändert das Skript aufgerufen. Dies schaut welcher Wert denn aktuell vorliegt um dann das passende weitere Skript, das Aktionen wie z.B. Steckdose oder Licht einschalten ausführen soll, zu starten.

  5. #5
    Registriert seit
    Jun 2012
    Ort
    Dresden
    Beiträge
    273

    Hallo Fonzo,

    danke für das super Modul. Funktioniert soweit ganz gut. Nur bekomme ich beim Harmony-Taste drücken immer folgende Fehlermeldung:
    PHP-Code:
    18.06.2016 14:51:59*| FlowHandler*| Kann Daten nicht zur Instanz #54365 weiterleiten: <br />
    <b>Notice</b>:  Undefined indexactivityId in <b>D:\IP-Symcon\modules\IPSymconHarmony\Harmony Hub\module.php</bon line <b>574</b><br /> 
    Gruss Jürgen

    IP-Symcon V5.1 auf Acer Veriton N2620G (6GB RAM), Windows 7 Prof. 64 Bit / 2x ipad Terminal / ipad / iphone / IPS-868 / piVCCU3, 103 HM Devices / VSM-102 / Sonos / Logitech Harmony / Philips HUE / IPSView

  6. #6
    Registriert seit
    Feb 2016
    Beiträge
    138

    Standard danke

    Super Modul! Teste auch gerade fleißig...
    Danke!

  7. #7
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,516

    Ich habe mal ein Update hochgeladen.
    Neu ist die Funktion
    PHP-Code:
    HarmonyHub_getDiscoveryInfo(integer $id); 
    Parameter $id ist die ObjektId des Harmony Hub Splitters. Die Funktion liest zur Zeit die Firmwareversion und den Hub Namen aus und schreibt diese in Variablen beim Harmony Hub Splitter. Die Funktion ist auch über die Testumgebung verfügbar.

    Zitat Zitat von jnicke Beitrag anzeigen
    Nur bekomme ich beim Harmony-Taste drücken immer folgende Fehlermeldung:
    Tritt der Fehler auch nach dem Update noch auf?

  8. #8
    Registriert seit
    Feb 2016
    Beiträge
    138

    Erstes Feedback:

    1. Nach dem ersten Befehl per Skript auf ein Device funktionierte meine Fernbedienung(Smart Control) nicht mehr. Ich musste neu pairen, nun läuft sie auch nach einer Skriptausführung.

    2. Beim ausführen von einem Skript (zb Taste OK meiner Vu Solo2) kommt ein Warnung:

    18.06.2016 18:10:18*| FlowHandler*| Kann Daten nicht zur Instanz #47378 weiterleiten: <br />
    <b>Warning</b>: Objekt mit Ident IOIN wurde nicht gefunden in <b>C:\Program Files (x86)\IP-Symcon\scripts\__ipsmodule.inc.php</b> on line <b>36</b><br />
    <br />
    <b>Warning</b>: Variable #0 existiert nicht in <b>C:\Program Files (x86)\IP-Symcon\modules\IPSymconHarmony\Harmony Hub\module.php</b> on line <b>474</b><br />


    Teste weiter, aber erster Eindruck ist Mega! Danke für das Modul

  9. #9
    Registriert seit
    Jun 2012
    Ort
    Dresden
    Beiträge
    273

    Ja, der Fehler ist noch da. Die Variable "Harmony Activity" ändert sich dann auch immer auf "Power Off".

    Irgendwie sind auch nicht alle Variablen gefüllt:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	ScreenShot130.png 
Hits:	318 
Größe:	18.7 KB 
ID:	34632
    Gruss Jürgen

    IP-Symcon V5.1 auf Acer Veriton N2620G (6GB RAM), Windows 7 Prof. 64 Bit / 2x ipad Terminal / ipad / iphone / IPS-868 / piVCCU3, 103 HM Devices / VSM-102 / Sonos / Logitech Harmony / Philips HUE / IPSView

  10. #10
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,516

    Zitat Zitat von baraka Beitrag anzeigen
    1. Nach dem ersten Befehl per Skript auf ein Device funktionierte meine Fernbedienung(Smart Control) nicht mehr. Ich musste neu pairen, nun läuft sie auch nach einer Skriptausführung.
    Bisher authentifiziert sich das Modul als guest, das kann bei den neusten Firmware Versionen ab 4.x des Harmony Hub wohl für Probleme sorgen auf Device Ebene. Das wird aber noch umgestellt auf Authentifizierung auf uuid. Muss aber noch getestet werden bevor das Einzug hält.

    Zitat Zitat von baraka Beitrag anzeigen

    <b>Warning</b>: Objekt mit Ident IOIN wurde nicht gefunden in <b>C:\Program Files (x86)\IP-Symcon\scripts\__ipsmodule.inc.php</b> on line <b>36</b><br />

    Teste weiter, aber erster Eindruck ist Mega! Danke für das Modul
    Danke fürs Feedback, nur so lassen sich auch Fehler finden und ausbessern.
    Das hört sich für mich ihm ersten Moment unerklärlich an. Kannst Du mal schauen ob im Konfigurationsformular Debug angekreuzt ist und ob die Variable IOIN unterhalb des Harmony Hub Splitters existiert. Wenn ja dann beende mal den IP-Symon Diensr lösche die Datei _generated.inc.php im scripts Ordner von IP-Symcon und starte danach den IP-Symcon Dienst wieder neu. Dann schau noch mal ob der Fehler immer noch auftritt.

Ähnliche Themen

  1. Logitech Harmony Ultimate & Smart Control Hub library
    Von zapp im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 148
    Letzter Beitrag: 20.12.16, 17:06
  2. Logitech Harmony Ultimate, Smart Control & HUB
    Von roadsterhh im Forum Schaufenster
    Antworten: 18
    Letzter Beitrag: 15.10.13, 22:01
  3. Logitech Harmony 895
    Von Dani_CH im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 7
    Letzter Beitrag: 21.06.09, 15:08