Harmony mit Homee verknüpfen

@hblaschka vielen Danke für die Amtwort. ich habe nähmlich vermutet, dass es daran liegt. Ich habe aber nicht verstanden wor ich die URL´s bei einem CMD Plugin einbringen kann. Wo sollen die URL´s reingeschrieben werden und was ist mit Status und Checkintervall? Kann der Status einer activity ausgelesen werden (das wäre genial)?

{
“deviceName”: “CMDSwitch”,
“type”: “SimpleCMDPlugin”,
“pluginParams”: {
“onCmd”: “touch /tmp/file”,
“offCmd”: “rm /tmp/file”,
“statusCmd”: “ls /tmp/file >> /dev/null; echo 0”,
“checkInterval”: 2000
}
}
Kannst Du mir bitte, anhand des o.g. Beispiels die Schalterkonfiguration ändern?

Viel Dank vorab…

Ich glaube daran (frei nach Montessori), dass man nur lernt, wenn man Dinge selber tut und damit versteht, deshalb nur folgendes:

Nimm das curl-Beispiel aus der o.g. Beschreibung, adaptiere es auf Post und benutze die richtige URL und probiere anhand der verlinkten Doku curl (wo nötig) richtig zu verstehen.

1 „Gefällt mir“

Download
Das ist bei mir die TV Simulation über IFTTT

1 „Gefällt mir“

ich habe einfach mal mit folgender Konfiguration probiert:

{
„deviceName“: „CMDSwitch“,
„type“: „SimpleCMDPlugin“,
„pluginParams“: {
„onCmd“: „curl -X POST -H ‚Content-Type: application/json‘ -d ‚{"on":true}‘ http://192.168.178.29:8282/hubs/harmony-hub/activities/fernsehen“,
„offCmd“: „curl -X POST -H ‚Content-Type: application/json‘ -d ‚{"on":false}‘ http://192.168.178.29:8282/hubs/harmony-hub/activities/poweroff“,
„statusCmd“: „ls /home/pi/.homeeup >> /dev/null“,
„checkInterval“: 2000}
}
damit kann ich die activity „fernsehen“ einschalten. Das Problem, was ich habe ist, dass der virtuelle Schalter in homee nach ca. 1 sek automatisch ausgeht. Jemand eine Idee, woran es liegen kann?

1 „Gefällt mir“

Hallo @lirand,

hatte bis gerade das gleiche Problem. @anon21150642 hat gerade die Lösung erarbeitet, sodass die Statusabfrage jetzt funktioniert. Dazu gibt es 2 Varianten:

Variante 1 (mit checkInterval: 2000 (siehe oben)):

Wird z.B. der TV angeschaltet, geht zunächst der homee Button wieder AUS, bis im Hintergrund homeeup den tatsächlichen Status ermittelt hat (hier: AN). Das hängt mit der Verzögerung des Startvorgangs je nach Activity zusammen, der schon ein paar Sekunden dauern kann. Erst danach springt der Button auf AN. Die „statusCmd“ sieht dann wie folgt aus. Rest wie oben:

„statusCmd“: „curl -v --silent http://RASPBERRYIP:8282/hubs/harmony-hub-elite/status 2>&1 | grep ‚{"id":"12345678","slug":"fernseher","label":"Fernseher","isAVActivity":true}‘ > /dev/null; echo $?“,

Entsprechende Anpassung über die individuelle Status-Infos siehe http://RASPBERRYIP:8282

Variante 2 (mit checkInterval: 2000 plus Pause):

Damit der Button nicht wie in Variante 1 wieder zunächst auf AUS geht, bevor der eigentliche AN-Status festgestellt wird, hat @anon21150642 eine Pause des CheckIntervalls eingebaut. Diese kann nach belieben und auf die jeweilige Aktivität und die damit verbundene Verzögerung angepasst werden. Damit die Pause aber funktioniert, muss homeeup auf die neueste Verion upgedatet werden (mindestens v0.1.4)! Das Ganze sieht dann so aus:

 {
                        "deviceName": "TVSwitch",
                        "type": "SimpleCMDPlugin",
                        "pluginParams": {
                                "onCmd": "curl -X POST -H ‘Content-Type: application/json’ -d ‘{“on”:true}’ http://RASPBERRYIP:8282/hubs/harmony-hub-elite/activities/fernseher",
                                "offCmd": "curl -X POST -H ‘Content-Type: application/json’ -d ‘{“on”:false}’ http://RASPBERRYIP:8282/hubs/harmony-hub-elite/activities/poweroff",
                                "statusCmd": "curl -v --silent http://RASPBERRYIP:8282/hubs/harmony-hub-elite/status 2>&1 | grep '{\"id\":\"12345678\",\"slug\":\"fernseher\",\"label\":\"Fernseher\",\"isAVActivity\":true}' > /dev/null; echo $?",
                                "checkInterval": 2000,
                                "pauseCheckIntervalAfterSwitch": 15000
                        }
                }

Und bei beiden Varianten natürlich am Ende nicht vergessen:

sudo systemctl restart homeeup

Das Vorgehen kann natürlich auf alle anderen Activities übertragen und individuell angepasst werden.

Danke nochmals an @anon21150642 für die großartige Unterstützung!

VG
Sebastian

5 „Gefällt mir“

Bei mir schmiert homeeup immer ab wenn ich den virtuellen Schalter für meine harmony Action Fernsehen betätige. Der Schalter ist dann ausgegraut. Den Status zeigt er vorher aber immer korrekt an. Hat jemand eine Idee woran es liegen könnte?

Hallo Daniel, was sagt die Log-Datei? Momentan ist es leider noch so, dass du nach einem homee Neustart über Gerät hinzufügen > WLAN > CCU einmal den „Geräte suchen“-Prozess anstoßen musst. Du wirst dabei keine neuen Geräte finden und kannst dies mit „Abbrechen“ bestätigen. Anschließend sollte homeeUp funktionieren.

Hab gerade gesehen ich habe nicht die aktuelle Version von homeeup. Wenn ich versuche neu zu installieren bringt er aber Fehler.
ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b master https://github.com/kdietrich/node-xmlrpc.git /root/.npm/_cacache/tmp/git-clone-de1ff680
npm ERR! fatal: Konnte führende Verzeichnisse von ‘/root/.npm/_cacache/tmp/git-clone-de1ff680’ nicht erstellen.: Keine Berechtigung
npm ERR!

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-09-12T21_04_41_185Z-debug.log

Sieht nach Nutzer Rechten aus. Ich habe aber über homeean ursprünglich installiert. @anon21150642 oder @stfnhmplr wie bekomme ich die Rechte zur Installation der aktuellen homeeup Version?

Hallo Sebastian, vielen Dank für die Infos. Würde das gerne mal ausprobieren, kriege aber homeeup nicht auf 0.1.4 aktualisiert. Wie hast Du das Update gemacht? sudo apt-get update und sudo apt-get upgrade haben bei mir nichts gebracht. homeeup ist immer noch 0.1.2

Das klingt nach einem Berechtigungsproblem. Zunächst würde ich mal den NPM Cache leeren sudo npm cache clean --force und danach noch mal das Update starten: sudo npm install -g homeeup.

@lirand Du aktualisierst homeeUp mit sudo npm install -g homeeup.

2 „Gefällt mir“

danke _kevdi. hat funktioniert. habe jetzt 0.1.5

Danke, installation läuft bei mir auch.

Ich hab eine Frage @anon21150642: Kann man den StatusCmd auch so abändern, dass der Schalter auf alle Aktivitäten reagiert? Also egal, welche Aktivität man startet, dass der Schalter auf „An“ springt?
Bei einer Aktivität würde das so aussehen:

„statusCmd“: „curl -v --silent http://RASPBERRYIP:8282/hubs/harmony-hub-elite/status 2>&1 | grep ‚{"id":"12345678","slug":"fernseher","label":"Fernseher","isAVActivity":true}‘ > /dev/null; echo $?“,

Ich habe versucht, die id, slug und label zu entfernen und nur auf „isAVActivity“ das true abzufragen aber ohne Erfolg. Der Schalter springt immer auf Aus, wenn man den Schalter einschaltet, eine Aktivität läuft aber noch.

Kann man das irgendwie anders abbilden?

Hintergrund ist, dass ich über Google Home den Fernseher mit der Stimme ausschalten kann. Dafür brauche ich aber den aktuellen Status des Fernsehers (Auch, wenn man über die Fernbedienung einschaltet)
Ich habe nämlich jetzt 3 Aktionen für den Fernseher und möchte ein Gerät haben, mit dem ich alle 3 ausschalten kann. Der Aus Befehl ist nämlich für alle Aktionen identisch…

Habe mir nun eine QNAP TS453Be zugelegt. Dort ist ja Container Station drauf. Wie aber kriege ich dort den Harmony-Container drauf? Da ist kein Terminal oder sonstwas. Der möchte gerne eine .tar zum Installieren. Muss ich da irgendwas vorher machen oder installieren wie nodered oder mqtt? Das Ziel soll momentan nur sein, die Webhooks lokal auszulösen, damit dafür kein Internet nötig ist. Die Verzögerung und/oder Zuverlässigkeit von IFTTT ist ja manchmal nicht berauschend.