Mit einem Tastendruck einen Tastendruck auslösen

Hallo zusammen,

ich habe eine Instanz „Anwesenheit“ und eine Instanz „Licht Wohnzimmer“. Beide kann ich per Webfront bedienen, da sich dahinter ein Script versteckt, welches Dinge auslöst.
Wenn ich nun aber mit der Instanz „Anwesenheit“ den Status Abwesend setzen, dann soll die Instanz „Licht Wohnzimmer“ den Status „alles aus“ annehmen. Ich setze das mit

SetValueInteger(43468 /*[EG\Start_rechts\Lichtzentrale\Lichtzentrale Wohnzimmer]*/, 0);	// Lichtszenario Wohnzimmer "Alles Aus"

passieren tut aber folgendes; es wird der Status im Webfront (Visualisierung) gesetzt, aber nicht das Script gestartet, dass dann auch wirklich die Lichter löscht.
Nun meine Frage: wie bekomme ich das hin, dass ich mit dem Tippen auf „a“ das tippen von „b“ auslöse?

B durch A triggern ?!?

Ja, genau. Oder andersherum. :wink:
Auf jeden Fall soll es sich so verhalte, als wenn ich durchs Drücken von „a“ auch „b“ gedrückt hätte und nicht nur die Assoziation gesetzt habe.

Das Setzen von Variablen führt nicht die dazugehörigen Aktionen aus. Du müsstest also stattdessen das Aktionsskript mit dem neuen gewünschten Wert ausführen.

Genau das habe ich mir schon gedacht; und wie stelle ich das an?
Aktuell setze ich die Variable und führe dann das Script aus. Ich vermute das geht einfacher, richtig?

Die Variable musst und solltest du nicht vorher ändern, das sollte ja dein Aktionsskript tun. Um es von außen schalten als wäre es das WebFront, musst du die entsprechenden Systemvariablen mitgeben:


IPS_RunScriptEx($profileAction, ['VARIABLE' => $variableID, 'VALUE' => $value, 'SENDER' => 'WebFront']);

Ok, das verstehe ich und das macht auch Sinn.
Allerdings scheitere ich gerade dabei das ordentlich zu füllen.


das kommt als Fehlermeldung.

IPS_RunScriptEx($profileAction, [‚43468‘ => $variableID, ‚0‘ => $value, ‚SENDER‘ => ‚48959‘]);
43468 ist dabei die Variable die mit einen Wert versorgt werden soll.
0 ist der Wert der übergeben werden soll.
48959 ist mein WebFront

Äh… Du musst die $Variablen im Beispiel von Niels mit Werten ersetzen.
Nicht den Rest :wink:
$profileAction = ID vom AktionsSkript der ZielVariable.
$variableID = ID der Variable
$value = der neue Wert.


IPS_RunScriptEx( Hier ID AktionsSkript von Variable 43468, ['VARIABLE' => 43468, 'VALUE' => 0, 'SENDER' => 'WebFront']);

Michael

Es ist die Sonne … oder die Hitze … oder Sonnenstürme. :wink: :stuck_out_tongue:
Vielen Dank für die Unterstützung! So tut es genau was es soll.