Logitech Harmony Ultimate & Smart Control Hub library

Hallo,

hat schon jemand dieses Script erfolgreich mit symcon 4 unter einem Raspberry in Verwendung?

Ich bekomme immer ein:

15.10.2015 13:49:02 | HARMONY XMPP | ERROR in Harmony_init(): No Auth Token!

Obwohl die Zugangsdaten sicher richtig sind (keine Leerzeichen oder…)

Paul

Hallo Leute,

bin seit heute im Besitz der Harmony Companion und habe sie natürlich sofort eingebunden.
Funktionierte auf Anhieb:)
Leider habe ich auch die Probleme, dass sich der Socket ständig trennt.
Gibt es zwischenzeitlich Hofnung, dass alle „Tastendrücke“ der Harmony ausgewertet werden können?

Gruß

Axel

Ich hatte Probleme die Scripte sauber einzubinden, dadurch wurde die aktuelle Aktivität nicht eingetragen.
Ich habe in der Harmony_XMPP.ips.php die Funktion XMPP_getPayload() von unserem Entwickler korrigieren lassen. Ich hoffe, dass klappt für alle so:

function XMPP_getPayload($xml) {
	global $debug;
	
	preg_match('/type="[a-zA-Z\.]+\?(.*)">/', $xml, $type);  // type="harmony.engine?startActivityFinished"
	$items['type'] = $type[1];
	
	preg_match('/<!\[(CDATA)\[\s*(.*?)\s*\]\]>/', $xml, $cdata);
	//if (strpos('{', $cdata) == 1) ...;
	if (preg_match('/^{(.*?)}/', $cdata[2], $cdatat) == 1) {
		//$content = explode(',', $cdatat[1]);
		$content = json_decode($cdatat[0], true);
		
		foreach ($content as $key => $item) {
			$items[$key] = $item;
		}
	} else {
		$content = explode(':', $cdata[2]);
		
		foreach ($content as $item) {
			$itemParts = explode('=', $item);
			$items[$itemParts[0]] = $itemParts[1];
		}
	}
			
	return $items;
}

Zusätzlich habe ich in der Zeile 481 den Befehl

if (strlen($id) > 7) 

ersetzt durch

if (strlen($id) > 8) 

. Ohne das weiter geprüft zu haben, werden die Aktivitäten jetzt korrekt aktualisiert.

Hallo Muffeljupp,

vielen Dank für Deine Hilfe, die Aktivitäten werden jetzt korrekt übertragen, allerdings nur wenn der Client Socket verbunden ist.
Ich wollte gerne bei der Aktivität „Fernsehen“ die Jalousie herunterfahren. Das macht natürlich nur Sinn wenn die Erkennung der Aktivität meistens funktioniert.:frowning:

Gruß

Axel

PS: Die Hotline von Logitech weiß offenbar nichts über die API Schnittstelle

Hat es jemand schon geschafft an einen FireTV Befehle abzusetzen die funktionieren, bzw. weis einer wie man den Code anpassen muss?

Ja ich nutze die Harmonie mit dem FireTV. Wichtig ist, dass Du die beiden Geräte via Bluetooth koppelst (ich glaube man muss Gamecontroller wählen) sonst wird die FB nicht vom FireTV erkannt. Ansonsten gibt es nix zu beachten. Ich hab den FireTV in der Software hinzugefügt und der Rest war Easy Going.

Der FireTV lässt sich über die die Logitech App bzw. die Logitech Remote Fernbedienung auch einwandfre bei mir steuern, dieser ist wie Du sagst per Blutooth gekoppelt. Mein Problem ist wenn ich aus IPS einen Befehl an den FireTV sende, wird dieser immer wiederholt. Bei einer Navigation im Menü drücke ich z.B. einmal Up und dann geht der Cursor so lange nach oben bis es nicht mehr geht.

Meintest Du mit funktioniert das sich der FireTV grundsätzlich mit dem Logitech Hub einwandfrei bedienen lässt oder das ein Senden von Befehlen über IPS an den FireTV funktioniert? Ich würde gerne auch Befehle direkt aus IPS an den FireTV senden können um die Befehle z.B. als Buttons in IPS View zur Verfügung zu haben.

Der Unterschied in liegt wohl in der Art und Weise wie der Befehl gesendet wird. Während die normalen IR Befehle mit dem type=get und status=press abgeschickt werden, wird dies bei FireTv z.B. mit dem type=render und status=action und einem timestamp geschickt und danach mit release wieder aufgehoben. Hat jemand das Skript denn so weit anpassen können das dies funktioniert?

Ah OK, dann hab ich dich falsch verstanden. Ich meinte dass die Harmony FB sehr gut mit dem FireTV funktioniert. Ich sende keine Befehle von IPS aus, ich werte nur aus welche Action gestartet wird um die Endstufe un den Subwoofer einzuschalten.

Hallo Leute,

ich würde gerne die Aktivität auslesen um meine Jalousie und mein Licht damit zu steuern.

Wenn ich eine Aktion starte während der Client Socket mal wieder nicht verbunden ist, bekomme ich die Änderung natürlich nicht mit.
Gibt es vielleicht eine Möglichkeit regelmäßig ein Skript aufzurufen, was diese Daten von irgendwoher auslesen kann?

Gruß

Axel

Moin moin,

ich fange als blutiger IPS Anfänger grade ein wenig an, habe mir einen Raspberry mit IPS 4 fertig gemacht, einen IR-Empfänger und LEDs angebaut und beginne nun mit der Harmony Anbindung.

Leider funktionieren auch nach stundenlangen Versuchen die Scripts nicht sauber, die Konfiguration wird nicht korrekt ausgelesen. Die Anmeldung läuft durch und einige werte werden auch korrekt erkannt, dann bricht es aber mitten drin ab. Ich habe das Gefühl, dass die Konfig (JSON) abgeschnitten ist, könnte das das Problem sein?

Fehlermeldungen u.A.: „Undefined offset“ innerhalb der Funktion XMPP_getPayload(). Das JSON Objekt siehe Anhang.

Gibt es einen Entwickler unter Euch, bei dem es läuft und der mit seine Scripte schicken könnte?

Harmony_Config.txt (133 KB)

Vielen Dank,
Golo

PS: Was ich selber noch im Code geändert habe, hoffentlich korrekt:

  1. function XMPP_Send, 2 mal Zeile „CSCK_SetOpen“ ersetzt durch „IPS_SetProperty($HARMONY_CLIENT_INSTANCE_ID, „Open“, true);“
  2. in den init und read files die Verlinkung vom filename auf die ID: „include(IPS_GetScriptFile(42227 /[Harmony\Harmony_XMPP]/));“

PS2: Hat von Euch schon jemand Zugriff auf die Harmony API bekommen, oder hält Logitech die noch unter Verschluss?

Auf RasPi / Symbox habe ich ja eigentlich gar keinen Zugriff auf das „Skripte“ Verzeichnis. Bekomme ich die Library so überhaupt zum laufen? Wo müsste ich die Sachen reinkopieren?

Hallo Nico,

die Scripte können direkt über die Symcon Management Console an beliebiger Stelle im Objektbaum eingefügt werden.

CU,
Golo

Anscheinend ist die API nach wie vor nur für selektive Kooperationspartner einsehbar ansonsten unter Verschluss.

Wäre ja Klasse wenn sich die Entwickler einmal darum „bewerben“ würden, evtl. erhalten Sie ja Zugriff und können das Ganze an einzelne User delegieren die dann ein Modul daraus entwickeln?

Ich denke Harmony ist für die AV Bedienung wie HUE bei der LED RGB Leuchten und SONOS beim Multiroom Audio.
Es hat sich ganz gut etabliert, ist wohl Marktführer und am weitesten verbreitet. Viele tolle FB Systeme sind oder waren angekündigt, aber so richtig am Markt angekommen ist eben noch nichts.
Um außerhalb der IR-Trans Bastellösungen den Bereich „AV-Bedienung“ zumindest mal mit einem Produkt und einem Modul abzudecken, halte ich es für sinnvoll mal mit Harmony zu starten und dies stabil zu entwickeln.

Individuelle User haben sich wohl bei Logitech gemeldet aber bisher keine Freischaltung bekommen, da müste sich also wohl eher der Hersteller von IP-Symcom offiziell mal bei Logitech melden.

Alternativ zu Logitech kann auch Mediola für IR benutzt werden, da habe ich mal angefangen ein Modul zu basteln.
[Modul] AIOGateway (Testversion)
Der Unterschied zu Logitech ist nur das es keine IR Datenbank gibt, die IR Codes sind entweder bekannt, können importiert werden oder müssen einzeln per IR Code am Gateway angelernt werden. Allerdings gibt es nur das Gateway bei Mediola, das entspricht dann dem Logitech Hub und sendet die IR Codes. Fernbedienungen wie bei Logitech gibt es für das System nicht, dafür kann man dann aber jedes Smartphone als Fernbedienung nutzten.

Also da finde ich die Logitech Lösung aber viel ausgereifter und handlicher.

Zu meiner Schande muss ich gestehen das ich wohl zugriff zur Api habe (oder hatte) aber bislang zu nichts gekommen bin (aus zeitlichen Gründen)…

Bei FHEM gibt es zumindest auch schon ein Addon dafür: Logitech Harmony per FHEM anbinden – Perfekte Integration ins Smart Home | meintechblog.de

War es schwer da ein Zugang zu bekommen ich hatte auch mal hingeschrieben aber nie wieder was gehört? Ich gehe davon aus das wohl jeder der die API einsehen will einen Zugang beantragen muss. Kann die API dann überhaupt in einem Script oder Modul verwendet werden oder darf diese dann nicht öffentlich einsehbar sein?

Da gebe ich Dir recht deswegen benutzte ich bzw. meine Frau ja auch Logitech wegen der Fernbedienung und dem Entfall des Anlernens von IR Codes weil die in der Datenbank schon enthalten sind.