+ Antworten
Seite 1 von 15 1 2 3 11 ... LetzteLetzte
Ergebnis 1 bis 10 von 149
  1. #1
    Registriert seit
    Feb 2006
    Ort
    Riyadh, KSA
    Beiträge
    262

    Standard Logitech Harmony Ultimate & Smart Control Hub library

    Hallo,

    Anhand der online verfügbaren Anweisungen und der inoffiziellen und noch unvollständigen Protokoll Beschreibung, habe ich eine Library mit Funktionen zur Kommunikation mit dem Harmony Ultimate Hub gebastelt.
    Damit ist es möglich, die Daten des Hubs und der verbundenen FB in IPS rein zu bekommen und auch Aktivitäten und Apparate über den Hub aus IPS raus zu schalten.

    Das ganze ist noch etwas Experimentell. Der XMPP Server im Hub reagiert nicht ganz wie in den Links oben beschrieben. Das könnte an unterschiedlichen Versionen liegen. Daher bin ich sehr an Feedback interessiert.

    Die Authentifizierung erfolgt in 2 Schritten. Zuerst muss ein User-spezifischer Token beim myharmony Server angefordert werden. Damit ist dann ein einloggen im XMPP Server möglich. Die Anmeldung beim Server sollte normalerweise in 2 Phasen durchgeführt werden, einmal als Gast und dann als authentifizierter User. Irgendwie ist aber die Kommunikation schon als Gast möglich.

    Voraussetzungen sind ein schon konfigurierter Hub und daher auch ein myharmony Account.

    Installation:
    - Wie üblich muss zuerst ein Client Socket angelegt werden mit der IP des Hubs und Port 5222.
    - Kategorie in IPS anlegen (z.B. "Harmony")
    - Lehres Skript in der Kategorie anlegen und den Inhalt des Skripts Harmony_Read.ips.php hinein kopieren (Zip-Datei im Anhang).
    - Register-Variable anlegen und auf den Client Socket verbinden. Harmony_Read Skript als Target ID setzen.
    - Harmony_XMPP.ips.php library (Zip-Datei) in das Skript Verzeichnis kopieren.
    - Harmony_XMPP.ips.php library editieren und darin die Client Socket Instance ID ($HARMONY_CLIENT_INSTANCE_ID) und myharmony Email (login) und Passwort angeben. Die IP wird nicht gebraucht.
    - in der Harmony Kategorie ein zweites Skript anlegen und Harmony_Init reinkopieren.

    Ausführung:
    Das Harmony_Init Skript oder die Harmony_init() Funktion sollten am besten vom IPS_Startup aus ausgeführt werden. Die Authentifizierung ist anscheinend nur ein mal nötig.

    Die Harmony_formatConfig() Funktion kann dann hilfreich sein, um die IDs der Aktivitäten, Befehle und "Devices" ausfindig zu machen. Vorher ist unbedingt ein Harmony_getConfig() nötig, um die Config in eine Datei zu schreiben. Die IDs werden unbedingt gebraucht und die aus dem Konfiguration-Output direkt zu lesen kann zur Verzweiflung führen. Ich habe an der Format Funktion lange gearbeitet
    Der nächste Schritt wäre automatisch damit eine FB im WF aufzubauen.

    Beispiele:

    PHP-Code:

    Harmony_getConfig
    ();          // request configuration from Server and format it

    Harmony_sendCommand("13831264""PowerOff"); // TV Samsung - Off
    Harmony_startActivity(-1);    // Switch all devices from current activity off ("off" button) 
    Bekannte Probleme:
    - Die Verbindung zum Client Socket wird häufig unterbrochen. Keine Ahnung warum. Befehle dann noch einmal senden. Das Skript prüft aber, ob das Socket in IPS offen ist und öffnet es ggf.
    - Manche Befehle werden mehrmals im Config output gelistet
    - Wann läuft der User Token aus?...


    Viel Spaß damit,

    Zapp

    Harmony_v07.zip

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

Name:	Harmony_Variables.png 
Hits:	978 
Größe:	5.0 KB 
ID:	23115
    Geändert von zapp (01.04.16 um 20:55 Uhr) Grund: Update v0.7
    IPS 5.1 - HM LAN - ZigBee: Plugwise, Philips Hue - Z-Wave: Diverse Fibaro - wM-Bus: FFW EnergyCam - LevelJet-WL - Munic OBD Box - Netatmo - AirVisual Node - Foobot - Diverse Squeezeboxen - MS Kinect - Roomba 780 - Withings Scale & Thermo - Beurer BM90 Connect - Diverse Axis Cams - Harmony Ultimate - Myo - Echo - Gigaset DX800 - QNAP TS-439 - APC UPS - Kodi -> full list http://www.naphane.net/

  2. #2
    Registriert seit
    Jun 2011
    Beiträge
    506

    Moin Zapp,

    danke schonmal für deine Arbeit. Kann es kaum erwarten bis das Hub da ist :0) Melde mich dann wieder.

    Ciao

    Andreas
    Professional

  3. #3
    Registriert seit
    Feb 2006
    Ort
    Riyadh, KSA
    Beiträge
    262

    Standard Update v0.3

    Changelog:

    - XMPP_getPayload() gibt jetzt ein Array zurück mit Message Typ (startActivityFinished, notify,...), die betroffene Activity ID und Error Codes. Damit kann in IPS eine Aktion getriggert werden, wenn eine Aktivität gestartet wird. Das Harmony_Read skript wurde mit einem Beispiel angepasst.
    - Harmony_processIQ() startet nun automatisch Harmony_formatConfig() wenn die Antwort des Servers komplett angekommen ist. Damit ist jetzt nur mehr Harmony_getConfig() gebraucht (einmal ausführen reicht oder nach jeder Änderung der Config mit dem myharmony Tool). Die Aktivitäten werden in eine IPS String Variable gespeichert.
    - Harmony_getActivityFromId($id) gibt den Namen einer Aktivität anhand der ID zurück. Beispiel im Read Skript. Harmony_getConfig() muss einmal vorher ausgeführt sein.

    Gruß
    Zapp

  4. #4
    Registriert seit
    Jun 2011
    Beiträge
    506

    So das gute Stück ist da :0)

    Ich teste mal weiter ;0)

    Danke

    Andreas
    Geändert von wuppi83 (19.10.13 um 17:10 Uhr)
    Professional

  5. #5
    Registriert seit
    Jun 2011
    Beiträge
    506

    So laufen tut das ganze ....

    Bei mir wird der Socket aber auch ständig getrennt und wieder verbunden. Werde die Frage mal an anderer Stelle stellen. Vielleicht hat einer ne Idee. Ist schon nervig.

    Im Log habe ich auch regelmäßige diese Fehlermeldung

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

Name:	log.jpg 
Hits:	691 
Größe:	78.1 KB 
ID:	23149

    Wenn ich die Init ausführe kommt die Fehlermeldung

    PHP-Code:
    Notice:  Undefined variableid in [Geräte\Elektrogeräte\Harmony\Harmony_XMPPon line 279 
    Der Token und die Config wird aber angelegt.

    Ist das schlimm ?!
    Professional

  6. #6
    Registriert seit
    Feb 2006
    Ort
    Riyadh, KSA
    Beiträge
    262

    Hallo Andreas,

    Danke für die Rückmeldung. Die Meldungen sind nicht kritisch. Deine Logging Einstellungen sind etwas sensibler als bei mir. Ich werde es in der nächsten Version korrigieren.

    Leider konnte ich auch noch nicht rausfinden, warum das Socket getrennt wird. Ich müsste diese Woche mehr Zeit zum testen haben.

    Gruß

    Zapp

  7. #7
    Registriert seit
    Feb 2006
    Ort
    Riyadh, KSA
    Beiträge
    262

    Hallo,

    Ich habe die Verbindung des Sockets in den letzten Tagen geloggt. Die Verbindung trennt sich nach exakt einer Minute und wird dann nach 10-12 Sekunden im Durchschnitt wieder aufgesetzt. Ich denke daher, dass der XMPP Server die Verbindung regelmäßig trennt und IPS diese danach wieder aufsetzt. Das kann daran liegen, dass der XMPP Server eine Verbindung als Gast nicht länger als eine Minute zulässt. Oder er erwartet regelmäßig ein Ping.

    Ich habe jedoch einen Fehler in meinem Code zur Authentifizierung gefunden und bekomme jetzt eine ID zurück. Diese scheint jedoch keine Session ID zu sein. Ein einloggen als authentifizierter User mit dem Session Token sollte das Verbindungsproblem lösen. Es ist jedoch relativ schwer das ganze zu testen, da bei jedem falschen Befehl anscheinend der Server die Verbindung trennt. Ich suche weiter.

    Gruß

    Zapp

  8. #8
    Registriert seit
    Jun 2011
    Beiträge
    506

    Moin,

    genau das habe ich auch festgestellt. Nach einer Minute Trennung ... und dann nach 10-12 Sekunden im Durchschnitt wieder verbunden. Das mit dem Gastzugang hört sich gut an. Hab ich auch schon dran gedacht. Leider verstehe ich von dem Code nix :0( Du kriegst das aber bestimmt hin :0) !!

    Das der Client nach einem fehlerhaften Befehl blockt kann ich übrigens auch bestätigen.

    Danke schonmal für deine Mühe
    Wenn ich irgendwie helfen kann sag bescheid, auch wenns nur zum testen ist ;0)

    Gruß

    Andreas
    Professional

  9. #9
    Registriert seit
    May 2012
    Ort
    Braunfels
    Beiträge
    595

    Hi,
    ich finde die Idee mit einer Harmony auch sehr interessant - somit denke ich an eine Anschaffung.

    Was ich noch nicht verstehe ist, ob ich auch Funktionen in IPS seitens der Harmony ansteuern kann? Also z.B. Rollo hoch oder runter - leider sehe ich diese nicht in Beispielscripten. Auch würde mich interessieren ob ich denn auch Dinge wie z.B. die Außentemperatur im Display anzeigen kann.

    Danke für eine kurze Rückmeldung.

    Enno

  10. #10
    Registriert seit
    Apr 2011
    Ort
    Cologne
    Beiträge
    801

    Hallo Enno,

    ich sehe keine Möglichkeit selbst Infos in die Harmony zu pushen.

    Verblüffend ist die Integration in der TVDigital Apo: dort kann mann mit Klick auf ein Sender im EPG den Kanal wählen und eine FB mit Tasten einblenden. Cool gemacht!

Ähnliche Themen

  1. Logitech Harmony Ultimate, Smart Control & HUB
    Von roadsterhh im Forum Schaufenster
    Antworten: 18
    Letzter Beitrag: 15.10.13, 22:01
  2. Logitech Harmony Link
    Von andyt im Forum Off Topic
    Antworten: 5
    Letzter Beitrag: 24.05.12, 13:21
  3. Logitech Harmony 895
    Von Dani_CH im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 7
    Letzter Beitrag: 21.06.09, 15:08

Stichworte