Logitech Harmony Hub und Alexa

Hi,

ich besitze einen Logitech Harmony Hub. Diesen habe ich auch erfolgreich in IPS eingebunden.

In der Instanz zu dem Hub gibt es ein Kontrollkästchen „Alexa Smarthomeskill ist in IP-Symcon verfügbar“. Diesen Haken habe ich gesetzt, weil ich über Alexa IPS Instanzen steuere.

Nun meine Frage, wo tauchen diese Links und Scripte für Alexa (Echo) auf? Und wie kann ich sie nutzen? Gibt es eine Doku zu diesem Feature? Im Forum hab ich mit der üblichen Suche nichts an Doku gefunden.

Kann mir jemand helfen? Ich möchte als Beispiel meinen Fernseher via Alexa an- und ausschalten. Aus dem Webfront klappt es bereits über das Harmony-Modul.

Gruß

Jimmy

Im Form wird zwar geprüft ob die IQL4SmartHomeInstanz vorhanden ist aber die Links werden zur Zeit noch nicht gesetzt, irgendwie hatte ich da ein Problem mit den Idents. Ich schau mal ob ich da eine Lösung finde dann können die Links auch automatisch angelegt werden. So lange ist halt Handarbeit angesagt.

Wenn Du im Harmony Splitter auf Setup Harmony drückst sollten alle Geräte angelegt werden unter anderem auch eine Kategorie mit dem Namen <Hubname> Aktivitäten. Unterhalb dieser Kategorie findest Du für jede Aktion die auf Deinem Harmony Hub eingerichtet ist ein Skript zum Ausführen dieser Aktion.

Du hast nun zwei Möglichkeiten:

[ul]
[li]die simple ist einfach die Aktivitäten mit dem SmartHomeSkill zu schalten. Dazu legst Du Dir unterhalb von IQL4SmartHome mit (CTRL+0) eine neue Kategorie an und benennst diese nach Deinem Logitech HUB. Nun legst Du in dieser Kategorie jeweils einen Link (CTRL+6) an und verlinkst diesen mit der entsprechenden Aktivitäten Skript. dann Bearbeitest Du noch das Objekt (CTRL+Enter) und gibst im Beschreibungs Feld einen ausführlichere Beschreibung für die Aktivität an. Wenn alles fertig ist kannst Du in der Alexa App die Geräte suchen und kannst dann über Alexa das Skript auslösen.[/li][li]Die individuellere Möglichkeit ist einen Custom Skill zu nutzten. Dazu nutzt Du das Patami Framework. Eine Anleitung dazu findest Du im Thread. Wie genau ein Custom Skill für Harmony eingerichtet wird kann ich in einem extra Thread erläutern das würde hier zu weit führen.[/li][/ul]

Bei Problemen und Fragen kannst Du ja sagen wo es hängt.

Ich bin mir ehrlich gesagt gar nicht sicher ob die Skripte noch modifiziert werden müssen oder ob das so geht da ich selber einen Custom Skill für Logitech nutzte und nicht den SmartHome Skill. Da kann am ehesten Dave oder einer der SmartHomeSkill Nutzer was dazu sagen.

Ansonsten musst Du gegeben falls das Skript noch modifizieren in der Art:


<?

 Switch ($_IPS['SENDER']) 
    { 
    Default: 
    Case "RunScript": 
         HarmonyHub_startActivity(12345 /*[Logitech Harmony Hub]*/, 5678912345);
    Case "Execute": 
        HarmonyHub_startActivity(12345 /*[Logitech Harmony Hub]*/, 5678912345);
    Case "TimerEvent": 
        break; 

    Case "Variable": 
    Case "AlexaSmartHome": // Schalten durch den Alexa SmartHomeSkill
           
    if ($_IPS['VALUE'] == True) 
          { 
                // einschalten
               HarmonyHub_startActivity(12345 /*[Logitech Harmony Hub]*/, 5678912345);   
        } 
    else 
        { 
            //ausschalten
            HarmonyHub_startActivity(12345 /*[Logitech Harmony Hub]*/, -1); 
        } 
     

       break;
    Case "WebFront":        // Zum schalten im Webfront 
         HarmonyHub_startActivity(12345 /*[Logitech Harmony Hub]*/, 5678912345);   
                 
     
    }  

?>


In der Funktion muss logischerweise Deine ObjektID für den Logitech Hub eingefügt werden statt 12345, und die passende Aktivität aufgerufen werden statt 5678912345, diese findest Du ja in dem jeweiligen Skript der Aktivität.

Hallo Fonzo,

danke für für diese ausführliche Antwort.

War ein langer Tag im Büro. Ich brauch wahrscheinlich nur einen, der mir das Brett wegnagelt.

Ich habe ein Script für den Fernseher für „Power on“ und ein Script für „Power off“.

Wie bekomme ich jetzt den Befehl für „Alexa, schalte den Fernseher ein“ bzw. „Alexa, schalte den Fernseher aus“ elegant hin?

Da muss ich doch sicher keine separaten Aktivitäten für anlegen, oder?

Gruß Jimmy

Du hast ein einziges Skript siehe oben Vorlage. In dem Skript steht unter ausschalten die Aktivität PowerOff -1 und unter Einschalten die Aktivität die Dein Fernseher einschaltet. Dann legst Du auf dieses Skript einen Link siehe oben. Der Linkname ist der Gerätename für Alexa also Fernseher benennen. Im Beschreibungsfeld kannst Du so was reinschreiben wie Harmony Aktivität Fernseher einschalten. Nachdem der Link hinzugefügt wurde und die Geräte neu in der Alexa App eingelesen wurde sollte das Gerät Fernseher in der Alexa App auftauchen. Jetzt solltest Du den Fernseher ein /ausschalten können.

So es gibt ein Update, damit ist der Haken jetzt auch mit Funktion. Wenn dieser angekreuzt wird, werden unterhalb der SmartHomeInstanz von Dave Links zu den Aktivitäten des Harmony Hub gesetzt. Kannst ja mal Rückmeldung geben ob das bei Dir klappt. Am besten vorher noch mal Setup Harmony ausführen im Hub (Splitter), damit auch wirklich alle Aktivitäten Skripte vorhanden sind.

Ganz tolle Funktion…
Jetzt fummelt dein Modul auch noch irgendwo im Baum unterhalb von fremden Instanzen.
Wirf das ganz raus.
Spätestens wenn Dave dann doch auf Listen umbaut, ist dein Modul wieder kaputt.
Michael

Spätestens wenn Dave umbaut ist das auch wieder ganz schnell entfernt. Die Links müssen aber so oder so angelegt werden, das kann der User gerne auch von Hand machen. Was spricht dagegen das bei einer Unzahl an Skripten automatisch zu machen. Das kostet verdammt viel Zeit für jedes Skript einen Link anzulegen es muss ja auch keiner nutzten, automatisch geht da nix, das ist etwas das aktiviert werden muss.

Du bewegst dich aber außerhalb deiner Instanz!
Und was ist so schlimm mit STRG+L & V eben alle Scripte selbst zu verlinken?
Das geht ja sogar mit Mehrfachauswahl.
Naja, musst du ja wissen.
Michael

Ist ja nicht meine Erfindung das da Links unterhalb der Instanz hingehören. Aber ich stelle das gerne zur Diskussion ob das sinnvoll ist oder ein NoGo. Die Amazon App braucht außerdem noch ein Beschreibungsfeld, da musst Du dann also doch wieder in jeden Link rein, das geht nicht einfach mit STRG+L & V. Und wie gesagt es kann ja jemand nutzten muss es aber nicht. Ich käme sonst bestimmt auch nie auf die Idee unterhalb von anderen Instanzen etwas anzulegen aber so ist nun mal die Funktionsweise zur Zeit von Daves Instanz.

NoGo, hier lesen : [Draft] Best Practice zur PHP-Modul Erstellung
Und das mit der Beschreibung verstehe ich nicht. Meine sind schon immer leer gewesen.
Michael

Das kenne ich, aber es heißt auch Draft, daher stelle ich das auch zur Diskussion. Grundsätzlich würde ich von sowas auch Abstand nehmen, ich persönlich sehe das Alexa Modul hier als Sonderfall. So wie das Websocket Modul auch ein Sonderfall ist weil manche Module theoretisch gar nicht ohne dies als ein Zusatzmodul lauffähig sind. Und wie gesagt aus Sicht des Nutzers ist es einfach eine Zeitersparniss ohne den Objektbaum zu verschandeln oder über die Hohheit des Nutzers hinweg irgendwas irgendwo anzulegen.

Alexa-SmartSkill-Beschreibung.png

Die untere Zeile wird aus der Beschreibung ausgelesen. Wenn Du wegen der Übersichtlichkeit in der Alexa App hier etwas stehen haben willst musst Du also in jedem Link etwas eintragen, ansonsten steht da halt einfach nichts.

Hallo Fonzo,

ich hab alles komplett rausgeschmissen, dann das Update in Models gemacht. Instanz neu angelegt und Harmony ausgelesen.
Jetzt wird unter der SmartHomeInstanz eine Kategorie Logitech Harmony Hub angelegt und ein Link auf „Home“.

In der Alexa-Konfiguration taucht aber noch nichts Neues auf.

Gruß

Jimmy

Kannst Du mal ein Bild posten wie das im Objektbaum aussieht. Du solltest ja an sich auch mehr als eine Aktivität haben. In der Alexa App tauchst das erst auf nachdem Du die Geräte neu eingelesen hast.
Bei mir sieht das so aus
alexa-link-1.png

Geräte in Alexa habe ich neu eingelesen.

Kann sein das das nicht funktioniert sondern nur wenn alles komplett neu angelegt wurde. Da jetzt alles über Ident geht.

In Deinem Fall ist da auf alle Fälle was verkehrt, da es sich bei Dir ja aber nur um zwei Aktivitäten handelt ist es wie NallChan schon sagte das einfachste einfach einen Link zu erstellen diesen unter der SmartHomeInstanz abzulegen und dann in der Alexa App neu einzulesen. ich schau aber noch mal ob ich da was finde.

Es sind nur zwei Aktivitäten, weil ich noch nicht losgelegt habe.

Falls du sowieso noch nicht alles eingerichtet hast ist es wohl das einfachste Du löscht die Kategorie Logitech (192.168.0.95) mitsamt allen Unterkategorien und Geräten und gehst dann in die Instanz Logitech Hub (Splitter) und drückst dort erneut auf Setup Harmony. Dann sollten alle Sachen korekt angelegt worden sein das kannst Du dann auch daran erkennen das der Kategorie des Logitech sowie allen Scripten ein Ident zugeordnet sein worden sollte.

Hallo Fonzo,

Alexa findet die Links unter der Instanz IQL4SmartHome nicht. Hab diese auch schon mehrfach gelöscht und danach die Geräte suche in der Alexa App neu gestartet.

Oder muss ich den Harmony Hub komplett neu anlegen damit die Geräte bei Alexa gefunden werden? Würde ich ungern machen, weil sich dann die ObjektID´s alle ändern und ich meine View wieder anpassen muss.

Hast du da noch eine Idee?

2017-11-11 20_03_27-IP-Symcon Management Console [IP Symcon].png2017-11-11 20_03_05-IP-Symcon Management Console [IP Symcon].png

Beste Grüße
Kai

Ich muss das ändern bzw. so rausnehmen. Das IQL4SmartHome Modul arbeitet ab Version 2 nicht mehr mit Links sondern mit Listen. Nimm also das beim Harmony Modul raus und lege Einträge in den Listen innerhalb des IQL4SmartHome Moduls per Hand an dann sollte es auch funktionieren. Ansonsten gibt noch mal Feedback.