Harmony Hub Activität einschalten durch Aktor

Begonnen von Enilno, 05 September 2015, 23:45:13

Vorheriges Thema - Nächstes Thema

Enilno

Hey,
versuche schon seit 3 Abenden meinen neuen Harmony Hub durch bewegen der Somfy Motoren zu bestimmten activitys zu bewegen, aber es klappt einfach nicht.

Ich habe einen Funkmotor (TV) und die Harmony (Hub) mit der gespeicherten activity (TV.Xbox.one). Die Harmony ist in fhem eingebunden, die devices und activitys lassen sich auslesen und steuern.

Jetzt wollte ich TV.Xbox.one starten, wenn  TV über fhem geschaltet wird.

habs erst mit notify probiert:
define TVXboxEin notify TV parsestate on set Hub activity TV.Xbox.one
schalte ich jetzt den Motor passiert nichts, Event Monitor spuckt nur "SOMFY TV parsestate on" aus.

Habs danach mit DOIF versucht:

define Xboxein DOIF ([TV:on]) (set Hub activity TV.Xbox.one)

Event Monitor sagt mir "DOIF TVXboxOneEin error: reading does not exist: [TV:on]"


ich habe schon etliche Schreibweisen getestet die ich im net finden konnte, auch nach dem wiki habe ich versucht anhand des Beispiels nachzubaun, es funktioniert einfach nicht.
Da einzeln alles funktioniert gehe ich davon aus, dass es mit meinen befehlen zutun hat. Habt Rücksicht mit mir, habe grad erst mit fhem angefangen und keine Ahnung von Linux/Perl.

Vielleicht wäre jemand so nett mir ein Beispiel zu geben wie es funktionieren muss?

Raspi 2 mit Jessie Lite und Fhem 5.7, CUL868 fw 1.66, Philips Hue Bridge, Logitech Harmony Companion HUB, Somfy RTS, Elro FS

Brockmann

Ich kenne Deine Konfiguration nicht, aber aus dem gelesenen würde ich es mir ungefähr so zusammenreimen:

define Xboxein DOIF ([TV:parsestate] eq "on") (set Hub activity TV.Xbox.one)

Wenn Du das mit Deinem Versuch vergleichst, verstehst Du auch die Fehlermeldung, die das DOIF Dir rausgeworfen hat.

Das Notify ist auch formal falsch. Nach notify muss ein regulärer Ausdruck folgen. Der kann keine Leerzeichen enthalten, sondern müsste eher so aussehen:
TV.parsestate:.on
Ist aber ohne Gewähr, ob das in diesem konkreten Fall so passt. Unter regexpal.com findest Du einen Tester für solche Ausdrücke. Unten den Ausschnitt aus dem Event Monitor einfügen, oben den RegEx basteln. So kann man sich mit dem Thema ganz gut vertraut machen.

Enilno

Dein DOIF funktioniert perfekt bei mir, ich werde mal ein bisschen auf regexpal ausprobieren.

Danke für die Hilfestellung :)
Raspi 2 mit Jessie Lite und Fhem 5.7, CUL868 fw 1.66, Philips Hue Bridge, Logitech Harmony Companion HUB, Somfy RTS, Elro FS

Enilno

Es klappt gut, jetz wo ich Weis wie es aussehen muss  ;D

Allerdings habe ich jetz ein anderes Problem.
Ist es möglich per fhem eine Aktion mit activity zu starten, aber erst einen anderen Befehl auszuführen bevor die Signale per harmony gesendet werden?

Der tv wird mit dem Befehl TV in den Schrank gefahren, bzw wieder ausgefahren und die Geräte werden durch den harmony per TV.Xbox.one eingeschaltet. Sende ich zuerst die activity schaltet sich der Fernseher nicht ein, da er in dem Moment noch nicht ausgefahren ist und der hub es nicht schafft ihn einzuschalten(Schrank davor)
Bei der ersten Funktion ist das ja kein Problem, erst fährt der tv raus, dann schaltet harmony. Jetzt hab ich aber noch weitere Geräte, nehmen wir als Beispiel die ps4 mit der activity TV.Ps4. Fang ich jetzt wieder mit dem Befehl an den tv auszufahren, schaltet sich ja automatisch die Xbox an. Wie kann ich das am geschicktesten umgehen?
Raspi 2 mit Jessie Lite und Fhem 5.7, CUL868 fw 1.66, Philips Hue Bridge, Logitech Harmony Companion HUB, Somfy RTS, Elro FS

Brockmann

Vielleicht solltest besser Du auf die Activities des Harmony Hub reagieren.
Wenn eine Activity gewählt wird, die den TV benötigt, lässt Du ihn ausfahren.

Für das Problem, dass der TV nur ausgefahren geschaltet werden kann, gibt es verschiedene Lösungsmöglichkeiten.
-Du kannst mit dem Harmony Hub selbst Aktionen verzögert ausführen lassen.
-Du kannst DOIF Aktionen verzögern lassen und dem TV das Einschaltsignal nach x Sekunden senden.
-Vielleicht kannst Du auch den Extra-Sender des Hubs im Schrank platzieren, dann kommt der TV schon ausgeschaltet raus.

Enilno

Den sensor in den Schrank wird schwer, die Entfernung ist zu groß.
Werde es dann erstmal mit der verzögerung per harmony probieren, ansonsten probiere ich es mit der verzögerung per doif. Vielen dank erstmal, melde mich wenn ich es geschafft habe zu testen :)
Raspi 2 mit Jessie Lite und Fhem 5.7, CUL868 fw 1.66, Philips Hue Bridge, Logitech Harmony Companion HUB, Somfy RTS, Elro FS

Enilno

fhem wartet erst bis die hamrony aktivity abgeschlossen ist und fängt dann erst an den tv hochzufahren und Steckdosen etc anzuschalten. Baue ich eine Verzögerung beim Harmony Hub ein, dauert es nur länger bis der TV hochgefahren wird. Baue ich in fhem eine Verzögerung ein, macht er auch nur eine pause zwischen aktivity und TV Hochfahren.
Starte den DOIF ja jetzt mit der Aktivity, diese wird abgeschlossen und erst dann fängt fhem an. Gibt es eine Möglichkeit fhem beim start der aktivity anfangen zu lassen und beide somit gleichzeitig arbeiten?

Ansonsten bliebe mir nur noch nach der activity und den Aktionen von Fhem nochmals ein Power on für den TV zusenden, finde ich aber umständlich, da ich es immer überall anpassen müsste.
Raspi 2 mit Jessie Lite und Fhem 5.7, CUL868 fw 1.66, Philips Hue Bridge, Logitech Harmony Companion HUB, Somfy RTS, Elro FS

Brockmann

Zitat von: Enilno am 17 September 2015, 17:54:49
Gibt es eine Möglichkeit fhem beim start der aktivity anfangen zu lassen und beide somit gleichzeitig arbeiten?
Das Reading currentActivity wechselt gleich zu beginn einer Activity zu "starting ...".
Also wenn Du beispielsweise die Activity "TV" startest, dann wechselt das Reading sofort zu "starting TV" und erst nach Abschluss aller Bestandteile der Activity zu "TV".
Beim Abschalten übrigens auch: erst "stopping TV" und dann erst "PowerOff".
Wenn Du also auf "starting xyz" triggerst, dann sollte FHEM direkt zu Beginn der Activity reagieren.

Mach mal der Event-Monitor auf und starte dann eine Activity, dann siehst Du den genauen Ablauf.