Statusmeldung länger anzeigen

Ich habe in jedem Raum Bewegungsmelder. Im Designer zeige ich jeweils den Status als grünes Männchen an.
Die Bewegungsmelder führen aber nur ca. alle 10 Sekunden eine Überprüfung der Anwesenheit durch. Die Variable mit dem Status bleibt also ca. 2 Sekunden auf TRUE und 8 Sekunden auf FALSE.
Ich möchte das Symbol ca. 10 Sekunden anzeigen lassen, auch wenn der TRUE Status bereits wieder auf FALSE ist. Damit sehe ich jederzeit, in welchem Raum sich eine Person befindet und muss nicht permanent auf den Bildschirm starren.

Wer hat eine Lösung dazu?

besten Dank
Roberto

D.h. im schlechtesten Fall stehst du 8 Sekunden im Dunkeln? Was sind das für Bewegungsmelder?

Du müsstest über ein Script, das durch den Bewegungsmelder getriggert wird, eine „Hilfs“-Variable setzen. Die setzt du dann durch den Scripttimer nach 10 Sekunden zurück und nur den Zustand dieser Variablen zeigst du im Dashboard an.

Hallo Ralf,
es geht mir nur um die Anzeige auf dem Stockwerkplan. Jetzt leuchtet das Symbol wenige Sekunden auf und wartet auf den nächsten Impuls des Bewegungsmelders.
Ich möchte jedoch den Hintergrund des Raums oder des Symbols solange anzeigen, bis der nächste Befehl des BM kommt, wenn sich eine Person dauernd in einem Raum aufhält (oder der Hund, oder die Katze, etc.).
Die BM sind von B.E.G., diese melden eine Anwesenheit nur ca. alle 10 Sek. an den Binäreingang, und nicht dauernd.

Gruss Roberto

<?php
$varid = 12345;

if($IPS_SENDER == "Variable" && $IPS_VALUE)
{
    SetValueBoolean(CreateVariableByName($IPS_SELF, "Status", 0), true);
    IPS_SetScriptTimer($IPS_SELF, 11);
}
else if($IPS_SENDER == "TimerEvent")
{
    SetValueBoolean(CreateVariableByName($IPS_SELF, "Status", 0), GetValueBoolean($varid));
    IPS_SetScriptTimer($IPS_SELF, 0);
}

function CreateVariableByName($id, $name, $type)
{
    global $IPS_SELF;
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid === false)
    {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
    }
    return $vid;
}
?>

Ist auf 11 Sekunden gestellt, damit kein hässliches Flackern auftritt, wenn es mal ein paar ms länger dauert.

Immer wieder schön, aus den Scripten der Profis zu lernen :).

… siehe auch: http://www.ip-symcon.de/forum/f53/timer-praesenz-5431/

Hallo Horst
Das funktioniert wunderbar, genau was ich wollte.
Was wird aber bei VARID eingetragen? ->TimerEvent?

Besten Dank
Roberto

Die ID deiner Triggervariablen, also die Status-Variable des BM.

Egal was in VARID drin steht, der Script funktioniert bei mir immer richtig.
Wann kommt VARID zum zug?
Roberto

Das holt den Wert der Beweungsmeldervariable und weist ihn nach Timerablauf zu. Wenn der Bewegungsmelder nach Timerablauf wieder true ist soll das ja weiterhin da stehen und nicht auf false gesetzt werden.