Eigenartiges Verhalten bei RequestAction

Ich hab eine Zigbee Sirene, die auch bellen kann. Bis zum Update auf V6 hat folgendes funktioniert


Die Sirene hat mehrere Instanzen, das ist systembedingt.
Ich hab mir dann noch eine Dummy-Instanz erstellt, wo ich alles zusammengefasst habe. In der Instanz kann ich die Melodie und die Lautsärke definieren. Ebenso einen „Auslösebutton“ zum testen.
Der Button hat ein Actionskript hinterlegt mit RequestAction auf eine Variable einer Sireneninstanz
image
Der Button funktioniert auch und die Sirene bellt mich an. Oder spielt die eingestellte Meldoie.
Was aber seit V6 nicht mehr funktioniert ist, wenn ich ein RequestAction auf diese Button Variable mache. Da bleibt diese stumm.
image
Zeile 9 bewirkt nichts. Auch keinen Fehler. Bei Zeile 10 tut sich was. Ob das jetzt sinnvoll ist, oder nicht, soll bitte nicht Thema werden. Mich würde nur interessieren ob so verschachtelte RequestAction ein Problem darstellen. Oder liegt es daran, dass sich der Wert der Buttonvariable nicht ändert und daher nichts gemacht wird?

EDIT:
Ja, es liegt an der nicht vorhandenen Wertänderung. Die Variable hat praktisch immer den Wert 0. Ändere ich den Wert auf 1 und starte dann das Skript mit RequestAction(ID, 0); dann wird das Actionskript auch ausgeführt. Ich fürchte das das möglicherweise nicht so gewollt ist, oder?

Magst du in das Skript mal ein IPS_LogMessage einfügen, ob es korrekt gestartet wird? Ist der Inhalt vom Skript 57488 der aus dem 1. Screenshot?

paresy

Interessanterweise werden beide Skripte korrekt gestaretet. Ich bekomme in der Meldungsübersicht zwei Einträge.

57488 ist das Actionskript hinter dem Button.

Wie sieht denn das Aktionsskript aus?

paresy

Das sieht so aus

<?php
$sireneausloesergeraet=14576;
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
//RequestAction($sireneausloesergeraet, 2);
IPS_LogMessage("Button","Post war da");

Ich habe die RequestAction im Moment auskommentiert, da die Sieren in einem Zimmer liegt, wo gerade jemand (noch immer) schläft :wink:

Das folgende Skript startet (oder sollte) per RequestAction das Skript welches hinter dem Button liegt.

<?php
$zeitpunktletzteoeffnung=47414;
$sensorbriefkasten=36537;
$volume=18505;
$melodie=50716;
$sireneausloesergeraet=14576;
$sireneausloeserbutton=47403;

Global_IPS_Nachricht("Post","Die Post war da!");
Global_Log_Eintrag_erstellen("Hinweis","Zigbee","Die Post war da");
setvalue($zeitpunktletzteoeffnung,IPS_GetVariable($sensorbriefkasten)['VariableUpdated']);
//ECHO_Ankuendigung("Die Post war da!");
RequestAction($volume, 2);
RequestAction($melodie, 10);
IPS_Sleep(2000);
IPS_LogMessage("Ereignis","Post war da");
RequestAction($sireneausloeserbutton, 0);
//RequestAction($sireneausloesergeraet, 2);