Logitech Harmony Hub Modul [Testversion]

Hi @ll,
als neues Mitglied der IPS-Community erlaube ich es mir eine Frage zu stellen in der Hoffnung, dass sich deren Antwort noch nicht auf den vorherigen Seiten befand (mit ist es nicht gelungen sie ausfindig zu machen). Zuerst möchte ich kurz mein Vorhaben, die Umgebung, die Umsetzung, und anschließend das Fehlerbild und den bisherigen Troubleshooting-Versuch schildern.

Vorhaben:
Aufgrund eines Homematic Tastendruck (Virtueller Taster) eine Harmony Activity durchführen (derzeit via IFTTT gelöst, dauert aber gefühlt Ewigkeiten)

Umgebung:
IPS (5) in Docker (Synology NAS)
Harmony Hub Module Version 0.01 [https://github.com/Wolbolar/IPSymconHarmony.git]
Logitech Harmony HUB (Update auf 210) ["]Forums
Homematic (CCU3)

Umsetzung:
(Homematic Modul wurde installiert wunderbar…Fehler liegt woanders.)
Ich habe das Harmony Modul lt. Anleitung installiert, Hub und Splitter eingeschaltet, Konfiguration ausgelesen etc.

Mit folgendem Script meine Aktivitäten (IDs) ausgelesen:
$activities = HarmonyHub_GetAvailableAcitivities(42813 /[Logitech Harmony Hub]/);
print_r($activities);

Aktivitäts ID kopiert…

Mit nachfolgendem Script starte ich beispielsweise eine Aktivität:
HarmonyHub_startActivity(42813, 34740598);

Fehlerbild
Grundsätzlich funktioniert alles…ABER:
Ca. bei jedem zweiten-dritten Skript-Aufruf schaltet die Aktion nicht.
In dem Fall erscheint bei dem "Logitech Harmony Hub IO Socket ein rotes Ausrufezeichen mit dem Tipp: „Die Instanz ist fehlerhaft“. Wenn ich unmittelbar danach das Skript erneut ausführe funktioniert es.
Ich habe auf den Harmony Hub IO Socket geklickt und oben rechts auf den Bug: Dem Protokoll entnehme ich, dass IPS zwar etwas zum Hub gesendet hat (TRANSMIT) aber es kommt in diesem Fall nichts zurück (RECEIVED).

Ich möchte ergänzen, dass der Fehler sowohl bei dem Aufruf über das Homematic Ereignis als auch bei einem manuellen Aufruf des Skriptes auftaucht. Aus diesem Grund kann die Homematic-Einbindung vernachlässigt werden.

Bisher versucht…
So wie ich das sehe reagiert der Harmony Hub nicht regelmäßig. In Forum bin ich auf einer Seite auf etwas gestoßen was ich ausprobiert habe, jedoch keine Veränderung brachte:
Ich habe das Logitech Harmony Hub Objekt unterhalb der Splitter Instanzen geöffnet, habe UPDATE geöffnet, bei Tagesmuster ein Startdatum hinzugefügt, Zeitmuster alle 55 Sekunden von 0:00 bis 23:59 und in der Aktion habe ich folgendes eingetragen:

$id = $_IPS[‚TARGET‘];
//HarmonyHub_UpdateSocket($id);
$HarmonyHub_Ping($id);

Ich dachte mir, dass vlt. der Ping die Verbindung aufrecht erhalten sollte…die ursprüngliche Zeile 2 habe ich auskommentiert. Scheinbar hat dies aber keine Veränderung gebracht. Das Verhalten ist nach wie vor das Gleiche.

Beim Lesen des Forums habe ich entnommen, dass Fonzo schon häufiger Aktualisierungen herausgebracht hat. Ich bin etwas verunsichert ob ich das neuste Build verwende, da bei mir die Modulversion 0.01 auftaucht?!

Für den Fall, dass jemand einen Tipp für mich hat möchte ich beifügen, dass ich erst vor zwei Tagen IPS installiert habe und so gut wie keine Kenntnisse über das System als auch über PHP-Code verfüge. Vielen Dank für das Lesen und noch mehr für die Hilfe :wink:

Gruß

Sascha

Ich muss schauen das ich dafür eine Lösung finde, habe mal unter Limit Buffer gefragt. So große Datenmengen hatte ich bisher nicht, dass dieser Fehler aufgetreten ist. Im Zweifelsfall muss man das in ein File schreiben und das Modul anpassen, ich warte mal auf Rückmeldung in dem Limit Buffer Thread, was da eine passende Lösung sein kann.

Warum gehst Du in dem Fall über IFTTT? Schau mal bei HomeMatic-Taster in IPS dann solltest Du direkt in IP-Symcon auf eine Änderung der Variable reagieren können ohne Umweg IFTTT.

Bekommst Du den Disconnect des IO nur wenn Du schnell Aktivitäten schaltest oder prinzipiell wenn Du eine Aktivität geschaltest hast? Wenn Du gar keine Aktion schaltest bleibt dann die Verbindung zum Harmony Hub erhalten oder bekommst Du dann auch einen Disconnect?

Probiere mal


$id = $_IPS['TARGET'];
HarmonyHub_UpdateSocket($id);

aus ob dann die Verbindung erhalten bleibt.

Kein Grund zur Verunsicherung, ich habe das nur nie gepflegt, da es in der Vergangeheit nirgends angezeigt wurde. Aber ich kann mal anfangen das zu nutzten. Wenn bei Modules nicht steht das ein Update verfügbar ist, dann handelt es sich um die neuste Version. Ob die Harmony Firmware 210 irgendwelche Auswirkungen hat im Vergleich zu vorher, konnte ich selber noch nicht testen.

Dafür hast Du aber schon viel eingerichtet und ich hoffe zumindest das Homemtic funktioniert. Viel Erfolg weiter beim Ausprobieren. Ich hoffe mal wir finden den Fehler egal ob das jetzt mit der neuen Harmony Firmware 210 zusammen hängen sollte oder mit dem Modul oder IPS.

Hallo Fonzo,

danke für deine schnelle Antwort.

Warum gehst Du in dem Fall über IFTTT? Schau mal bei HomeMatic-Taster in IPS dann solltest Du direkt in IP-Symcon auf eine Änderung der Variable reagieren können ohne Umweg IFTTT.

Genau das habe ich auch vor. Ich wollte damit sagen, dass ich bislang (Homematic ohne IPS, Mediola und Co…) die Harmony über IFTTT Webhooks von der Homematic ansteuer. Es dauert aber gefühlt eine Ewigkeit bis mein Harmony geschalteter Ventilator angeht nachdem ich auf meinen Taster gedrückt habe. Nun ist die Homematic bereits in IPS eingerichtet und läuft super. Über virtuelle Taster veranlasse ich die Sonos-Lautsprecher dazu Ansagen abzuspielen. Nun soll über den selben Weg die Harmony angetriggert werden.

Bekommst Du den Disconnect des IO nur wenn Du schnell Aktivitäten schaltest oder prinzipiell wenn Du eine Aktivität geschaltest hast? Wenn Du gar keine Aktion schaltest bleibt dann die Verbindung zum Harmony Hub erhalten oder bekommst Du dann auch einen Disconnect?

Also…der Disconnect tritt tatsächlich nur beim Ausfuehren der Skripte aus. Der erstmalige Aufruf eines Skriptes scheint stets zu funktionieren. Ich habe es mehrmals ausprobiert und meistens verhaelt es sich so, dass jeder zweite Aufruf funktioniert. Ich nutze derzeit ein ganz einfaches Skript bei dem einfach nur das Licht des Deckenventilators ein und ausgeschaltet wird. Die Aktion besteht lediglich aus einem Tastendruck bzw. Infrarot-Befehl. Wenn ich eine kurze Zeit warte (5 Sec.) klappt es auch direkt wieder. Wenn ich kein Skript aufrufe kann ich die Disconnect-Nachricht nicht im Objektbaum sehen.

Probiere mal

PHP-Code:
$id = $_IPS[‚TARGET‘];
HarmonyHub_UpdateSocket($id);
aus ob dann die Verbindung erhalten bleibt.

So stand der Code auch ursprünglich drin. Ich habe den Code wieder wie empfohlen abgeaendert. Leider hat sich das Verhalten nicht geändert. Jeder zweite Aufruf des Skriptes funktioniert.

Dafür hast Du aber schon viel eingerichtet und ich hoffe zumindest das Homemtic funktioniert. Viel Erfolg weiter beim Ausprobieren. Ich hoffe mal wir finden den Fehler egal ob das jetzt mit der neuen Harmony Firmware 210 zusammen hängen sollte oder mit dem Modul oder IPS.

Dank deiner Dokumentation :wink: Ich hoffe auch, dass ich das ans fliegen bekomme. Mir schmeckt es eigentlich gar nicht, dass IFTTT den Zugang zu meiner Harmony inne hält und auch nicht, dass über einen Webhook mein Ventilator und mein Fernseher gehackt werden können :wink:

Falls du noch eine Idee hast, woran das bei mir liegen könnte, wäre ich sehr dankbar.

Also auf den ersten Blick habe ich jetzt nichts gefunden bzw. konnte das nicht reproduzieren. Ich habe zwei Logitech Hub auf die Firmware 210 gesetzt. Der eine davon, gehört zu einer Ultimate, spinnt und muss zurück gesetzt werden dann ist er wieder auf 206. Der zweite den ich auf 210 upgedatet habe gehört zu einer Elite und funktioniert. Hier habe ich probiert Aktionen zu schalten oder mehrere Tastaturbefehle hintereinander abzusetzten und hatte dabei keine Verbindungsabbrüche oder Probleme.

Rufst Du die Befehle über den Webfront auf oder setzt Du mehrere Befehle in einem Skript ab?
Kannst Du mal ein Skript posten das zu einem Verbindungsabbruch führt?
Tritt das Problem bei Dir nur bei Befehlen auf oder auch wenn Du Aktionen startest oder beendest?
Wenn Du gar keinen Befehl absetzt ist die Verbindung dann stabil oder bekommst Du dann nach einer Zeit auch einen Verbindungsabbruch?

Hi Fonzo,

hier noch ein paar detailliertere Informationen:

Der Harmony Hub um den es sich handelt ist eigenständig (kein Companion, keine Elite) und wird dazu genutzt um einen Ventilator zu schalten.

Es existieren 6 Aktionen die darauf angelegt sind: Fan1, Fan2 ,Fan3 , Fan0, FanLight, FanLight2. Die Aktionen mit dem Namen Fan# steuern die Geschwindigkeit des Ventilators und die Aktionen LanLight und Fanlight 2 betätigen den Ein-/Aus-Schalter für die integrierte Lampe. Die Aktionen bestehen jeweils nur aus einem Infrarot-Befehl und sind innerhalb von 1sec abgearbeitet. Eine 7. Aktion mit dem Namen PowerOff wurde von dem Harmony Konfigurator ausgelesen.

Zum Aufrufen der Aktionen habe ich mir eigene Skripte angelegt: Harmony_Light_1 und Harmony_Light_2.

Ich führe zwei Skripte im Wechsel aus. Beide starten Aktionen. Beendet werden diese Aktionen NICHT.

Das ist technisch ganz einfach zu begründen: Die Harmony beendet immer eine Aktivität bevor sie eine andere startet. Wenn Lampe des Ventilators mit dem Beenden der Aktion „FanLight“ ausgeschaltet würde, hätte dies zur Folge dass die Lampe ausgeht wenn man die Geschwindigkeit des Ventilators modifiziert. Aus diesem Grund ist das Gerät (Ventilator) innerhalb der Harmony als stets eingeschaltet definiert und ich schalte (Ein- und Aus-) das Licht über die wechselnden Aktionen FanLight und FanLight2. Zurück zum Aufruf der Aktion via IPS…

Ein IPS Skript mit dem ich eine Aktion starte besteht tatsächlich nur aus einer einzigen Zeile:

Harmony_Light_1:

<?
HarmonyHub_startActivity(42813, 34740598);  
?>

Harmony_Light_1:

<?
HarmonyHub_startActivity(42813, 34832014);  
?>

Anmerkung:
Alternativ habe ich es auch über den Aufruf des automatisch erstellten Skriptes „FanLight“ probiert, das Problem ist das gleiche. Hier der Code dieses Scriptes:

FanLight: automatisch erstellt

<?
Switch ($_IPS['SENDER']) 
    { 
    Default: 
    Case "RunScript": 
		HarmonyHub_startActivity(42813, 34740598);
    Case "Execute": 
        HarmonyHub_startActivity(42813, 34740598);
    Case "TimerEvent": 
        break; 

    Case "Variable": 
    Case "AlexaSmartHome": // Schalten durch den Alexa SmartHomeSkill
           
    if ($_IPS['VALUE'] == True) 
        { 
            // einschalten
            HarmonyHub_startActivity(42813, 34740598);   
        } 
    else 
        { 
            //ausschalten
            HarmonyHub_startActivity(42813, -1);
        } 
       break;
    Case "WebFront":        // Zum schalten im Webfront 
        HarmonyHub_startActivity(42813, 34740598);   
    }  
?>

Zum Testen starte ich die Skripte über die Webseite/Console „Rechte Maustaste > Skript ausführen“ in einem kurzen Abstand [1-10sec.] hintereinander. Ich habe es mehrfach versucht um eine Schema erkennen zu können. Ich konnte beobachten, dass:

[ul]
[li]der erste Aufruf immer funktioniert,
[/li][li]der zweite Aufruf meist schon nicht mehr, in seltenen Fällen jedoch schon,
[/li][li]der dritte Aufruf führt spätestens zum Fehler,
[/li][li]nachdem die Verbindung abgebrochen ist, funktioniert der nächste Aufruf IMMER
[/li][li]wenn ich die Frequenz der Aufrufe senke (also mir mehr Zeit [>1min] beim wechselseitigen Aufruf von Harmony_Light_1 und Harmony_Light_2 lasse), tritt der Fehler DEUTLICH seltener auf (bislang nur ein einziges Mal), die Zeitabstände zwischen dem Aufruf der Aktivitäten scheinen aber etwas mit meinem Problem zu tun zu haben,
[/li][li]wenn ich statt dem Skript Harmony_Light_1/2 die Scripte FanLight(2) aufrufe, verhält es sich exakt identisch,
[/li][/ul]

Hier ist der Fehler zu sehen:

Der Mouseover zeigt den Infotipp „Die Instanz ist fehlerhaft“.

Das Debug vom Harmony Hub IO Socket zeigt folgendes:

Wie man sehen kann sendet IPS erfolgreich das Kommando zum Schalten der Aktivität, es kommt aber einfach nichts zurück (mittlerer Block).

Hier nochmal ein Screenshot von der Splitter Instanz:

Selbstverständlich könnte es auch am Netzwerk liegen (mit dem ich mich deutlich besser auskenne aus mit dem PHP-Code). IPS läuft in einer Docker Instanz und hat die IP-Adresse 172.17.0.2. Eine statische Route auf meiner Fritzbox routet das Subnet zu meiner Synology (192.168.0.197). Dies scheint wunderbar zu funktionieren. Die Anbindung zwischen IPS und Homematic, sowie zwischen IPS und Sonos laufen tadellos und zuverlässig. Die Firewall auf meiner Synology ist deaktiviert.

Ich gehe fast davon aus, dass es mit der Firmware auf dem Hub zu tun hat. Vielleicht reagiert er nicht auf Anfragen die zu schnell hintereinander eingehen. Das wäre wirklich zu schade…

Es wäre mal interessant, ob bei anderen die ebenfalls auftritt, wenn sie Aktionen kurz hintereinander ausführen.

Danke für die Unterstützung und beste Grüße

Sascha

Da es sich um ein Gerät handelt das mit unterschiedlichen Befehlen angesteuert wird macht es in dem Zusammenhang mit IP-Symcon keinen Sinn Aktionen zu nutzten, das mag als Workarround vielleicht gut sein, aber nicht für das direkte Schalten. Daher lass Dir für das Gerät auch Einzelbefehle als Skripte anlegen, das ist der Weg der gewählt werden sollte die einzelnen IR Befehle zu senden ohne dafür eine Harmony Aktion starten zu müssen.

Das ist im Sinne einer Harmony Aktion zwar richtig gedacht, aber zum schalten aus IP-Symcon der falsche Ansatz. Hier kannst Du unabhänig von einer Aktion schalten, indem Du die Einzelbefehle absetzt, dann brauchst Du Dir auch keine Gedanken zu machen wie die Harmony Aktionen eingerichtet sind. Im Prinzip würde ich nur eine Harmony Aktion nutzten diese schaltet beim Starten der Aktion den Ventilator ein und beim Beenden der Aktion den Ventilator aus. Alles andere wenn Du den Ventilator in der Geschwindigkeit verstellen willst oder diesen abhängig von Bedingungen zusätzlich einschalten willst, geht über Einzelbefehle aus IP-Symcon.

ich würde jetzt fast annehmen es könnte an den Aktionen liegen, da der Harmony Hub nicht beliebig schnell von einer Harmony Aktion zur nächsten wechseln kann. Ein senden von mehreren Einzelbefehlen hintereinander funktioniert bei mir zumindest einwandfrei.

Daher würde ich vorschlagen Du probierst mal aus wie sich das verhällt wenn Du statt Aktionen zu schalten den Ventilator mit den passenden Einzelbefehlen ansteuerst.

ES GEHT!

Das ist im Sinne einer Harmony Aktion zwar richtig gedacht, aber zum schalten aus IP-Symcon der falsche Ansatz. Hier kannst Du unabhänig von einer Aktion schalten, indem Du die Einzelbefehle absetzt, dann brauchst Du Dir auch keine Gedanken zu machen wie die Harmony Aktionen eingerichtet sind. Im Prinzip würde ich nur eine Harmony Aktion nutzten diese schaltet beim Starten der Aktion den Ventilator ein und beim Beenden der Aktion den Ventilator aus. Alles andere wenn Du den Ventilator in der Geschwindigkeit verstellen willst oder diesen abhängig von Bedingungen zusätzlich einschalten willst, geht über Einzelbefehle aus IP-Symcon.

Ganz genau so scheint es zu sein. Nach dem Auslesen der Codes, habe ich mit dem Script…

<?
LHD_Send(39169, "Licht");  
?>

Den Befehl gesendet und dieses klappt beliebig schnell und oft hintereinander.

Da via IFTTT es lediglich möglich ist Aktionen auszuführen, hatte ich auch angenommen, dass auch via IPS lediglich die Aktionen angesteuert werden können. Ich hätte mal deine Anleitung bis zu Ende lesen sollen, vielleicht hätte ich dann direkt diesen Ansatz ausprobiert. So kann ich mir jetzt diesen Teil der Logik (abwechselndes Schalten der Aktionen) in meiner Homematic sparen und einfach die Befehle absenden.

Ich bin total happy, eine echte Bereicherung für meine Homematic.

Vielen Dank Fonzo für deine tolle Arbeit und Hilfe. Ich gebe dir ein virtuelles Bier aus :wink:

Gruß

Sascha

PS: @ll, Aktionen nicht zu schnell hintereinander schalten :wink:

Das ist ja erfreulich, dann muss ich nicht nach einem Fehler suchen ;). Liegt wohl tatsächlich daran das der Harmony Hub eine Weile braucht um eine Harmony Aktion auszuführen, dass sieht man ja auch in der App bzw. der Harmony Remote das dies eine Weile braucht. In der Zeit, in der eine Aktion noch ausgeführt wird und noch nicht vom Harmony Hub abgeschlossen worden ist, kann auch keine neue Aktion gestartet werden. Daher immer Einzelbefehle senden wenn man ein Gerät schalten will.

Nur zur Ergänzung und zum Verständniss IFTTT nutzt die Harmony API, die nur über die Cloud funktioniert. Mit dieser kann man lediglich Harmony Aktionen starten und beenden. Es ist weder möglich auf Aktionen zu reagieren noch Einzelbefehle zu senden, in sofern ist die Harmoyn API für eine Hausautomation in der Form nicht zu gebrauchen so lange damit nicht mehr möglich ist.

Die Logitech App selber steuert den Harmony Hub lokal an, was auch Sinn macht. Es macht keinen Sinn erst mal ein Kommando in die USA zu schicken nur damit man den TV einschalten kann. IP-Symcon sowie andere Hausautomationssysteme nutzten die gleiche Ansteuerung wie die Logitech App, dementsprechend kann man das gleiche machen, was auch mit der App möglich ist, nämlich die aktive Aktion anzeigen und Einzelbefehle absenden.

Die alte Kommunikation über XMPP, die die Logitech App über Jahre genutzt hat, ist von Logitech kurz vor Weihnachten 2018 mit einem automatischen Firmwareupdate abgeschaltet worden. Dank der Rückmeldung der Logitech Nutzer wird nun wohl aber die XMPP Steuerung weiterhin möglich sein. Wenn nicht müste das Modul dann umgebaut werden. Ich warte jetzt erst mal auf die nächste offizielle Firmware von Logitech.

Harmony hub funktioniert nicht mehr

10.01.2019 22:28:04 | TimerPool | Logitech Harmony Hub (HarmonyHubSocketTimer): <br />

<b>Warning</b>: Verbindungsaufbau abgelehnt in <b>/var/lib/symcon/modules/IPSymconHarmony/Harmony Hub/module.php</b> on line <b>296</b><br />

wie kriege ich das wieder zum laufen?

Gruß

Oliver

Kannst Du mal in der Harmony App nachschauen welche Firmware Version auf dem Harmony Hub installiert ist?

wo finde ich das? Windows App?

Gruß

Oliver

Hallo,

habe jetzt auf dem IPAD die harmony app installiert,da kommt bei Versionen
bei meinem Hub 4.15.206

ist das die richtige Info?

Gruß

Oliver

Nein die geht nicht, du musst auf die 210 updaten. Wie das geht findest du hier weiter vorne.

puh, geschafft, läuft wieder, danke

Oliver

Hallo,

Verbindung wieder verloren

Version im Hub ist 210

Gruß

Oliver

Danke hat funktioniert :slight_smile:

Hallo Zusammen,

unser Harmony-Modul funktioniert plötzlich nicht mehr…

2019-01-30 22_43_39-IP-Symcon Management Console.png

Hat jemand eine Idee? Die IP-Adresse ist fix und stimmt.

LG Marcus

Hast Du mal überprüft welche Firmware auf dem Harmony Hub installiert ist? Falls da die 206 drauf läuft kannst Du entsprechend der Beschreibung eine neuere Firmware installieren.

Hallo,

bekomme in regelmäßigen Abständen folgende Fehlermeldungen:

„IPS-Err-PHP 2019-01-31 18:13:02.870 Warning: Waiting for connect timed out
Error in Script /var/lib/symcon/modules/IPSymconHarmony/Harmony Hub/module.php on Line 296“.

bzw.

„IPS-Err-PHP 2019-01-31 19:22:29.625 Notice: Undefined index: activityId
Error in Script /var/lib/symcon/modules/IPSymconHarmony/Harmony Hub/module.php on Line 626“

Hat jemand eine Idee woher der „time out“ kommen könnte?

Im Voraus besten Dank
Gruß Tobias