Logitech Harmony Hub Modul [Testversion]

Problem bestand weiterhin, Synology neu gestartet und jetzt passt es wieder.
Komische Sache, evtl mochte die den Restart der FritzBox nicht

Hallo,
ich habe nun mit der neuesten Firmware wieder das Harmony Hub in IPS eingebunden.
Es funktioniert auch alles aber ich bekomme unregelmäßig folgende Fehlermeldungen:
Hat jemand eine Idee wo das Problem liegen könnte?

IPS-Err-PHP 2019-06-18 20:20:17.643 Warning: Waiting for connect timed out
Error in Script /var/lib/symcon/modules/.store/fonzo.ipsymconharmony/Harmony Hub/module.php on Line 134
134 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
37 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
in IPSLogger_PhpErrorHandler
134 in modules/.store/fonzo.ipsymconharmony/Harmony Hub/module.php (call IPS_ApplyChanges)
199 in __generated.inc.php (call UpdateSocket)
1 in /- (call HarmonyHUB_UpdateSocket)

IPS-Err-PHP 2019-06-19 00:02:59.825 Warning: Keine Route zum Zielrechner
Error in Script /var/lib/symcon/modules/.store/fonzo.ipsymconharmony/Harmony Hub/module.php on Line 134
134 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
37 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
in IPSLogger_PhpErrorHandler
134 in modules/.store/fonzo.ipsymconharmony/Harmony Hub/module.php (call IPS_ApplyChanges)
199 in __generated.inc.php (call UpdateSocket)
1 in /- (call HarmonyHUB_UpdateSocket)

Hallo zusammen,

seit dem letzten Moduleupdate im Store funktioniert leider nichts mehr mit IP Symcon und dem Harmony Hub. Habe dann alles gelöscht und versucht das Modul neu zu installieren, bekomme aber nun immer eine Fehlermeldung beim Auslesen der Konfiguration. Ich komme also erst gar nicht zum Einrichten.

Fehler.png

Habt ihr auch diese Problem?

Aktuelle IPS 5.1 installiert?
Michael

Ich habe die 5.1 vom 15.02.2019. Ist das zu alt? Ich scheue mich immer ein wenig das über Docker zu aktualisieren, wenn es nicht sein muss.

Ja, zu alt.
Du kannst nicht immer nur einen Teil aktualisieren. Die Module setzten in der Regel die aktuelle stable vorraus.
Michael

ok, danke. Dann werde ich das mal aktualisieren.

Hi,
im aktuellen Harmonymodul ist auch ein Roku-Emulator enthalten.

Diesen Emulator kann man dazu benutzen einen 2. Hub z.B. mit der Elite zu bedienen. Vorgehen ist: Roku+TV oder RokuTV in der Elite anmelden. Für jede Aktion, die man auf dem 2. Hub steuern möchte, eine neue Roku-TV Aktion mit diesen Geräten anlegen und einen Namen geben. Jetzt überlegen welche Tasten man WIRKLICH beim 2. Hub braucht für die neuen Aktionen. In IPS jetzt für den 1. Hub für jede Aktion des 2. Hubs entsprechen Roku-Scripte konfigurieren und in MyHarmony die Tasten der Harmony mit den Roku-Befehlen konfigurieren. Et voila man kann mit einer Harmonyfernbedienung 2 Hubs bedienen.

Nachteile:

  1. Roku versteht anscheinend nur 13 unterschiedliche Befehle deswegen kann man nur Kommandos nehmen die man wirklich braucht.
  2. Die Funkverbindung Elite-Fernbedienung-Hub reicht nur ca. 10m weit also kann man nur 2 Hubs bedienen die eher in einem Nachbarzimmer stehen.
  3. Die Harmony wird dadurch nicht wirklich eine Multiroomfernbedienung. Im Gegensatz zum Ansatz mit der Neeo kann immer nur eine Aktion laufen.

Ralf

Hallo,

ich muss feststellen das bei meiner Installation (aktuelle 5.2 in Docker) der Client Socket auf Symcon-Seite nach jeweils genau 40 Sekunden geschlossen und neu geöffnet wird. Die Initiative scheint von Symcon auszugehen, ich habe im Netzwerk-Trace nichts seitens des Harmony-Hub gesehen was einen Disconnect durch Symcon provozieren könnte.

Schlägt hier irgendein Inactivity-Timeout auf Symcon-Seite zu?

Die Initiative geht auch von IP-Symcon aus, der Socket wird absichtlich kurz nach diesem Intervall kurz getrennt und wieder aufgebaut. Wenn man das nicht machen würde, würde unmittelbar danach der Harmony Hub die Verbindung trennen und dann braucht es länger bis IP-Symcon darauf reagiert und die Verbindung wieder aufbaut als wenn die Verbindung von IP-Symcon selber kurz gezielt unterbrochen wird.

Hier schlägt ein Inactivity Timout von Seiten des Harmony Hub zu dem man zuvorkommt. Wenn jemand eine Idee hat was man dem Harmony Hub so schicken kann ohne unnötig Konfigurationen abzufragen oder einen realen Befehl zu schicken um die Verbindung aufrecht zu erhalten, wäre ich auch mehr als dankbar. Dann könnte man nämlich einfach zyklisch so einen Befehl senden, damit es zu keinem Timeout kommt, dann müste auch nicht der Socket neu aufgebaut werden.

Hast Du mal getestet ob Whitespace-Keepalive oder XMPP-Ping funktionieren? Wenn ja wäre das die optimale Lösung.

Und wenn nicht: Bevor man alle 40 Sekunden die Verbindung ab- und aufbaut und damit die Überwachung kurz unterbricht als auch unnötige Fehlermeldungen ins Log bringt, würde ich lieber irgendetwas senden was eine definierte Rückmeldung vom Hub liefert, und wenn es bis Kenntnis einer besseren Lösung einfach eine erwartete Fehlermeldung ist.

Hi,
es ist ja keine Fehlermeldung sondern nur eine informelle Meldung.

Ralf

Nein habe ich bisher nicht, dazu kenne ich mich ehrlich gesagt auch zu wenig mit XMPP im Detail aus. Was ich anbieten kann ist eine Option im Hub (Splitter) zu setzten, mit der man den Reconnect deaktivieren kann. Wenn Du Dich mit XMPP besser auskennst kannst Du das dann unter den Bedingungen ja gerne ausprobieren ob Du zu einer Lösung kommst, die Verbindung aufrecht zu erhalten. Wenn Deine Test funktionieren sollten, kann man das ja ins Modul übernehmen.
Wie das die Harmony App früher gemacht hat kann ich nicht mehr nachvollziehen, diese nutzt inzwischen selber kein XMPP mehr sondern Websockets zur Kommunikation.

Wenn Du einen Vorschlag hast was das sein soll bin ich offen, oder wenn Du einen Befehl kennst der eine Rückmeldung liefert aber keinen Schaltbefehl auslöst den man also dafür nutzten könnte. Ich kenne nur das Abrufen der Konfiguration und das habe ich persönlich ausgeschlossen als Anfrage zu stellen um die Verbindung aufrecht zu erhalten da dies so viel Daten überträgt das der Harmony Hub während der Übertragung nicht zu nutzten ist. Was man also bräuchte wäre wirklich so was wie ein Ping.

Hallo,

kann mir bitte jemand helfen? Ich bekomme ständig diese Meldungen…:confused:

Hi,
hast Du XMPP in der App frei gegeben?

Ralf

Hallo,

ja XMPP ist freigegeben.
Es funktioniert auch alles, nur kommen immer diese Meldungen und ich muss entsprechend den Email Dienst für Error-Meldungen abschalten, da ich sonst am Tag nur unnötige Mails mit diesen Meldungen bekomme…

Ich habe im Beta Kanal jetzt im Spltter im Konfigurationsformular ein Feld eingebaut in dem man das Updateintervall auch einstellen kann. Standard ist wie gesagt das der Socket alle 40 Sekunden neu aufgebaut wird. Wenn man das Intervall auf 0 stellt wird auch nichts mehr neu aufgebaut, dann kann man also beobachten wie sich IP-Symcon verhällt bzw. manuelle Test durch führen ob man die Verbindung irgendwie aufrecht erhalten kann.

Wenn du auf WebSocket umstellst, kannst du das reconnect umgehen.
Einfach ein Ping im WebSocket senden und die Verbindung bleibt bestehen.
Michael

Das würde ich auch langfristig machen wenn denn mal 5.2 sich die internen Websockets nutzten lassen, aber das habe ich ehrlich gesagt zur Zeit noch nicht probiert bzw. verstanden wie das geht. Und bei Deinem Ansatz war irgendwas warum es nicht funktioniert hat, aber ich weis nicht mehr warum.

Allerdings bin ich grundsätzlich etwas skeptisch ganz auf Websockets umzustellen. Das mit XMPP war ja schon ein Kampf und ist nach dem Gerangel mit Logitech jetzt ja zumindest als Entwickleroption in der Harmony App aktivierbar. Somit ist das Protokoll wie es genutzt wird praktisch auch eingefroren auch wenn es keine offizielle Dokumentation gibt. Wenn man jetzt Websockets nutzt geht das ganze Katz und Maus Spiel wieder von vorne los. Logitech liefert keine Dokumentation dazu und will auch nicht das dies genutzt wird. Natürlich kann man das dennoch nutzten nur dann muss man jedes mal wenn Logitech wieder was anpasst und ändert auch wieder das gesamte Modul anpassen bzw. läuft Gefahr, dass das Modul zwischenzeitlich nicht funktioniert. Auch kann es sein wenn das Logitech wirklich mal so stören sollte, dass dies genutzt wird, dass die das am Schluss doch noch verschlüsseln oder andere Schutzmaßnahmen ergreifen das wirklich ausschließlich die Logitech App so kommunizieren kann. Der Weg über XMPP ist und bleibt jetzt nach der Aufnahme in die Logitech App ja so erhalten. Insofern wenn auf Dauer also mit Websockets nicht einfach mehr möglich sein sollte, würde ich eher bei XMPP verbleiben. Damit wäre eine Lösung für das Disconnect Problem unter XMPP also weiterhin von Interesse.

Oder meinst Du einfach bei XMPP belassen und nur einfach zusätzlich ein Websocket aufbauen und ein Ping senden? Bleibt dann auch die XMPP Verbindung bestehen?