Anwesenheitsvariable als IF Bedingung für Skript

Hallo,

ich habe einige Skripte mit HM Aktoren und HM Bewegungsmeldern.

Nun habe ich an ein HM Wired Schließinterface einen Schalter angeschlossen mit dem ich eine Anwesenheitsvariable erstellen will.

Dieser Schalter ist an der Haustür und soll so die Bewegungsmelderskripte auf Wunsch nicht auslösen.


<?
$Zeit = date ("Hi");
$Nachts = "2100";
$Tag = "0700";
$Anwesenheit = GetValueBoolean(20481 /*[Wired\Sonstiges\Anwesenheitsschalter Wohnzimmer\Status]*/);


If ((($Zeit > $Nachts) || ($Zeit < $Tag)) & $Anwesenheit = false)


WFC_PushNotification(53425 /*[WebFront IPS]*/, 'Warnung', 'BWM Terrasse Bewegung!', '', 0);

?>


True soll „Anwesend“ bedeuten
False bedeutet „Abwesend“

Leider funktioniert mein Beispielskript nicht. Heißt es kommt keine Push Nachricht.

Wo ist denn da mein Denkfehler? :confused:

Überprüf doch erst mal mit Echo befehlen ob deine Bedingung auch erfüllt wird.
Bzw, schreib doch als Ausgabe noch eine Zeile die im Log dir zeigt das die Bedingung erfüllt ist
"Echo ‚Skript ausgeführt‘;

Achte bei Vergleichen auf die doppelten ‚==‘.
Auch der logische Operator ‚und‘ schreibt sich ‚&&‘.

Gruß

Burkhard

Danke Jungs :slight_smile:

Damit geht es jetzt…


<?
$Zeit = date ("Hi");
$Nachts = "2100";
$Tag = "1000";
$Anwesenheit = GetValueBoolean(20481 /*[Wired\Sonstiges\Anwesenheitsschalter Wohnzimmer\Status]*/);


If ((($Zeit > $Nachts) || ($Zeit < $Tag)) && $Anwesenheit == false)


WFC_PushNotification(53425 /*[WebFront IPS]*/, 'Warnung', 'BWM Terrasse Bewegung!', '', 0);

?>


Eine Frage habe ich aber dann doch noch…

Jetzt kann ich ja die Variable über den Schalter am Eingang betätigen und so IPS sagen, dass ich unterwegs bin und die Skripte alle laufen sollen.

Kann ich aber jetzt den Status dieser Variable auch über IPS ändern? Also dass ich nicht immer zur Tür gehen muss?

Geht auch, ja

Und wie? Denn es ist ja eine Boolean Variable, die mir im iFront nur so angezeigt wird, die ich aber nicht manuell ändern kann.

Ein Aktionsskript hinterlegen … :rolleyes:

Schade, dass einem hier wirklich gar nicht mehr sinnvoll geholfen wird. Immer gibt es ein dämliches :rolleyes:

Schade

Was fehlt Dir in dem Thread den Bruno angegeben hat denn an Informationen? :confused:

Du hast eine Boolean Variable und der ordnest Du ein Actionskript zu. In dem Skript findet der Schaltvorgang bzw. finden Aktionen nach Deinen Vorgaben statt.

@dpoessl

Der Variable das Profil ~Switch verpassen, ein Script mit Inhalt…

<?
if ($_IPS['SENDER'] == "WebFront")
{
	SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}
?>

…anlegen und der Variable als Aktionsscript eintragen.

Vielleicht musst du noch einmal etwas genauer beschreiben, was du erreichen willst. Wenn ich es richtig sehe, hast du einen Schalter (keinen Taster), den du „umlegst“ wenn du abwesend bist.

Nun möchtest du deine Abwesenheit auch über das Webfront setzen können, oder? Dass du den Schalter nicht softwareseitig umlegen kannst, ist sicherlich klar.

Soll also z.B. der Abwesenheitsstatus auch gesetzt werden können, obwohl der Schalter physikalisch auf „anwesend“ steht?
Wenn dem so sein soll, dann nimm einfach eine zusätzliche Variable, die du über das Webfront einstellen kannst und frage die in deinem Programm zusätzlich mit ab.

Viele Grüße

Burkhard