Ergänzend zu dem Skript oben willst Du ja das z.B. ein Licht nur dann eingeschaltet wird wenn es Dunkel ist und eine Aktion ausgeführt wird.
Sobald eine Aktion von der Harmony Remote getriggert wurde ändert sich die Variable
Harmony Activity unterhalb der Splitter Instanz die den Logitech Hub darstellt.
Wenn jetzt also etwas passieren soll wenn auf der Harmony Remote eine Aktion gestartet wird nimmt man ein Skript wie oben in dem steht was ausgeführt werden soll. Dann markiert man das Skript und mit
CTRL+4 fügt man ein Ereignis hinzu. Hier wählt man
Ausgelöstes Ereignis, als Variable wählt man die Variable
Harmony Activity unterhalb der Splitter Instanz und als Auslöser
Bei Variablenaktualisierung. Jetzt wird das Skript also jedes mal ausgeführt wenn sich ein Aktion ändert. Da wir aber nur in dem Skript etwas ausführen wollen wenn eine bestimmte Aktion aktiv ist wird die Aktivität noch im Skript abgefragt.
Hierzu gibt es zwei Möglichkeiten:
Abfrage der Activity ID
Code: Alles auswählen
$activity = GetValue(24290 /*[Logitech Harmony Hub\Harmony Activity]*/); // Objekt ID der Variable Harmony Activity unterhalb Splitters in der Harmony Hub Instanz
Diese wäre bei Power OFF z.B. -1, die Activity IDs können am einfachsten eingesehen werden in dem Skript das die jeweilige Aktivität ausführt.
In dem Skript was ausgeführt werden soll wenn eine Aktivität gestartet wurde kommt zu Beginn also noch eine Abfrage ob es sich überhaupt um die Aktivität handelt die wir nutzten wollen.
Code: Alles auswählen
$activity = GetValue(24290 /*[Logitech Harmony Hub\Harmony Activity]*/);
if($activity == -1)
{
// wenn die Aktivität Power Off gestartet wurde dann den folgenden Code innerhalb der Klammern ausführen
}
Die zweite Möglichkeit ist nicht die Aktivity ID zu nutzen sondern den Namen der Aktivität
Diese bekommt man mit
Code: Alles auswählen
$activityname = GetValueFormatted(24290 /*[Logitech Harmony Hub\Harmony Activity]*/); // Objekt ID der Variable Harmony Activity unterhalb Splitters in der Harmony Hub Instanz
Das Skript das mit einem Event getriggert wird sieht dann also vom Rahmen her so aus
Code: Alles auswählen
$activityname = GetValueFormatted(24290 /*[Logitech Harmony Hub\Harmony Activity]*/);
if($activity == "Power Off")
{
// wenn die Aktivität Power Off gestartet wurde dann den folgenden Code innerhalb der Klammern ausführen
}