Logitech Harmony Hub

Begonnen von der-Lolo, 07 August 2013, 14:17:16

Vorheriges Thema - Nächstes Thema

Wolfspirit

#1245
Leider funktionierte das setzen eines Sleeptimers bei mir nicht.
"Unauthorized invalid token in request"

Konnte es lösen indem ich aus:
<oa xmlns='connect.logitech.com' mime='harmony.engine?setsleeptimer' token=''>interval=$interval</oa>
ein
<oa xmlns='connect.logitech.com' mime='harmony.engine?setsleeptimer'>interval=$interval</oa>
gemacht hab :-)

Anschließend hatte ich Probleme bei schnellem wechsel des sleeptimers, dass FHEM abstürzt. Ursache ist das Harmony mehrere iq nachrichten auf einmal sendet und der regex im moment beim ersten CDATA anfängt und beim letzten CDATA aufhört. Das dazwischen ist aber dann kein Valides JSON. Außerdem liefert zumindest bei mir Harmony manchmal ein leeres iq element mit:

<iq ....>...</iq><iq/><iq...>
Was das aktuelle Regex garnicht berücksichtigt.

Gelöst hab ich das durch ein:
while( $line =~ m/<(\w*)(\/|([^>]*?)>(.*?)<\/\1)>/g )
anstelle von
if( $line =~ m/^<(\w*)([^>]*)>(.*)<\/\1>(.*)?/ ) {

und das elsif hab ich erstmal durch ein if ersetzt.

Ganz richtig ist das aber noch nicht, aber zumindest stürzt mir fhem nicht mehr ab.

justme1968

<oa xmlns='connect.logitech.com' mime='harmony.engine?setsleeptimer'>interval=$interval</oa>
sehr schön! hab ich eben eingecheckt. ich hatte schon gesucht aber die änderung mit wireshark scheinbar übersehen.

mit welcher meldung ist fhem abgestürzt?

das parsen an sich ist ziemlich unsauber. eigentlich wollte ich das schon vor langer zeit komplett umstellen :)

ich kann gerade nicht selber testen... aber wenn du zeit und lust hast: ein workaround könnte sein direkt nach dem #FIXME: should use real xmpp/xml parser kommentar und vor dem splitten etwas einzubauen das die mehreren <iq...></iq> blöcke mit einem newline trennt und die leeren iq rauschmeisst.etwa so:
  $data =~ s/<iq\/>//g;
  $data =~ s/<\/iq><iq/<\/iq>\n<iq/g;

dann sollte der folgende code die einzelnen iq zeilen korrekt verarbeiten.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Wolfspirit

#1247
Hi,

Es gibt noch einige stellen mit token='' (sendHid, firmware check,...) die hab ich bei mir nicht im Einsatz kann daher nicht sagen ob die funktionieren.

Zitat von: justme1968 am 01 Februar 2017, 15:12:38
mit welcher meldung ist fhem abgestürzt?
garbage after JSON object, at character offset 13 (before "]]></oa></iq><iq/><i...") at ./FHEM/37_harmony.pm line 957.

XML parsen mit regex ist leider immer so eine Sache, ja. :/

  $data =~ s/<iq\/>//g;
  $data =~ s/<\/iq><iq/<\/iq>\n<iq/g;

Konnte ich gerade mal ein bisschen testen und sieht als Workaround gut aus.
Auch beim spammen von sleeptimern ist mir FHEM diesmal nicht abgeraucht.
Ob er auch wirklich alle iq Nachrichten in einer message abarbeitet kann ich noch nicht sagen.

Vielleicht lässt sich das json decode noch "abfedern" falls doch irgendwie ein invalides JSON durch kommt.

justme1968

ich hab eben eine version eingecheckt die den workaround eingebaut hat und json fehler abfängt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Longknife

Moin,

habe gerade gelesen, das der Hub der gleiche ist ?
Kann doch nur Fake sein oder? Die liegen ja bestimmt 6 Jahre aus einander.

Was ist den im Moment die beste Kombi ? Tastatur und Hub findet man kaum,
wobei ich von mir aus eher zur neusten Elite Variante greifen würde und die
Tastatur Hub Variante dann außen vor lassen würde.
Habe 8 oder 9 Fernbedienungen rumfliegen, damit muss mal Schluss sein  :)
Natürlich, vorausgesetzt das Geld würde im Moment keine Rolle spielen  ;)

Nehme jeden Comment/Idear der kommt

Danke so long(knife)

pc1246

Moin Longknife
Der Hub ist der Gleiche! Was ist da auch schon drin? 6(5?) IR-Dioden, WLAN, Bluetooth und USB.
Wenn Du 8 bis 9 FB's hast, dann kommt ja eh nur die Elite in Frage, denn die Ultimate ist ja nicht mehr ganz Stand der Dinge. Der Ultimate-Hub geht auch, aber dann hast Du kein Geraet zum in die Hand nehmen, ausser Handy!
https://www.harmony-remote-forum.de/harmony_compare.php?show=actual
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

doman75

Hallo,

ich habe da mal eine Frage, ich habe jetzt mir den Harmony Hub noch zugelegt, ich kann jetzt dadurch meinen TV einen Samsung LE40B650 per alexa an und auscschalten.
Nun wollte ich etwas in fhem einen dummy anlegen der auf den Kanal 10 schaltet, alle meine Versuche scheitern aber daran es es bei commands nur bis Number9 geht, liegt das an meine alten TV? Hat jemand eine Idee wie ich an den Kanal 10 komme, auch über die Aktionen der Harmony Hub, hab ich es nicht geschafft, wobei ich dort eigentlich sowieso nix anlegen wollte, da der Dreh und Angelpunkt des hauses fhem ist.

Für jeden Hilfe dankbar.

Grüße
Swen

Esjay

Zitat von: doman75 am 08 März 2017, 21:28:44
Hallo,

ich habe da mal eine Frage, ich habe jetzt mir den Harmony Hub noch zugelegt, ich kann jetzt dadurch meinen TV einen Samsung LE40B650 per alexa an und auscschalten.
Nun wollte ich etwas in fhem einen dummy anlegen der auf den Kanal 10 schaltet, alle meine Versuche scheitern aber daran es es bei commands nur bis Number9 geht, liegt das an meine alten TV? Hat jemand eine Idee wie ich an den Kanal 10 komme, auch über die Aktionen der Harmony Hub, hab ich es nicht geschafft, wobei ich dort eigentlich sowieso nix anlegen wollte, da der Dreh und Angelpunkt des hauses fhem ist.

Für jeden Hilfe dankbar.

Grüße
Swen

Gegenfrage, hast du auf deiner Fernbedienung eine Taste für Kanal 10?

justme1968

du solltest die harmony komplett einrichten und auch die activities nutzen. und dann diese in fhem einbinden. in 99% aller fälle ist es kontraproduktiv über den geräte modus zu gehen und die activities nicht zu nutzen.

wenn du eine activity fernsehen vollständig konfiguriert hast sollte es ein kommando channel geben mit dem du den kanal umschalten kannst. activity deswegen weil du in der harmony konfigurierst wie dein gerät die kanäle umschaltet. mit führender 0, mit return am ende, wie viele stellen ein sender platz haben muss, ... das richtest du ein mal ein und danach macht das set <hub> channel ... kommando alles alleine.

aus irgendwelchen gründen scheint das nicht immer zu gehen. dann kannst du die ziffern schnell genug einzeln nacheinander senden. weiter oben gibt es beispiele dafür.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

doman75

Zitat von: Esjay am 08 März 2017, 21:34:24
Gegenfrage, hast du auf deiner Fernbedienung eine Taste für Kanal 10?

Ich habe natürlich keine 10 auf der Fernbedienung, auf der Fernbedienung tippe ich auf 1 und 0 und okay.


Esjay

Zitat von: doman75 am 08 März 2017, 22:39:00
Ich habe natürlich keine 10 auf der Fernbedienung, auf der Fernbedienung tippe ich auf 1 und 0 und okay.
Dann könntest du das doch auch in fhem so realisieren.Sei es mit Hilfe von Doif oder Notify. Z.B Doif ([Dummy] eq "on")(set harmony1234 command Channel1)(set harmony1234 command Channel2) dazu noch attr name wait 0,1 ..

doman75

Ich habs hinbekommen, mit einer Activity im Hub, da musste ich nur noch die Zeiten für die entsprechenden Verzögerungen der tasten korrekt hinterlegen, dann funktioniert auch die Kanalauswahl in der Activity. Jetzt können die Kinder "Alexa, schalte Kika ein" sagen und schauen Kika.

Pädagogisch wertlos, aber sie werden sich trotzdem freuen.

doman75

Zitat von: justme1968 am 08 März 2017, 21:34:42
aus irgendwelchen gründen scheint das nicht immer zu gehen. dann kannst du die ziffern schnell genug einzeln nacheinander senden. weiter oben gibt es beispiele dafür.

da mich das trotzdem interessieren würde habe ich jetzt mal hier in dem Thread gelesen ( ich gebe zu nicht alles) aber nichts passendes gefunden, weißt du genauer wo das stand oder einen Suchbegriff der mich weiter bringt

Danke
Swen


Mickey Mouse

ich habe jetzt nicht alle 84 Seiten gelesen und weiß auch nicht wonach ich genau suchen soll, bitte entschuldigt falls das Thema schon durchgekaut wurde...

ich habe drei Harmony Hubs im Haushalt laufen und bei allen ein ähnliches Problem das ich aber nicht 100% reproduzieren kann.

wenn ich ein "alles aus" (-1) an den Harmony Hub schicke und dort gerade gar keine Aktivität läuft, dann schaltet er manchmal ein Gerät ein.
das ist bei jedem Hub immer dasselbe, im Wohnzimmer z.B. die PS3, im Schlafzimmer der PopcornHour
da gibt es für mich kein Muster, das ist weder das erste oder letzte Gerät was ich in dem Konto für den jeweiligen Hub eingerichtet habe, da gibt es keine Gemeinsamkeiten.
der Hub "weiß" anschließend nicht, dass er dieses Gerät eingeschaltet hat, er sagt weiterhin: es wird keine Aktion ausgeführt und das Gerät erscheint in der FHEM Übersicht als "aus".
das passiert nicht immer (aber immer öfter...) und auch hier habe ich noch kein Muster erkennen können, wie z.B. letzte Aktion oder ob ich per Harmony direkt oder FHEM/Alexa ausgeschaltet habe.

die Sache ich nervig. Ich sage vor "aus dem Haus" oder "zu Bett" gehen z.B.: "Alexa, schalte Wohnzimmer aus". Per ha-bridge und FHEM werden dann alle Geräte im Wohnzimmer ausgeschaltet (Lampen, Heizung auf Nacht Temp usw. usf.) manchmal läuft noch eine Harmony Aktion, manchmal nicht. Und wenn nicht, dann geht halt in vielen Fällen (50:50, 30:70?) die PS3 an, meist merke ich das dann erst nächsten Tag.