Es soll einfach nur Meldungen anzeigen, vorerst, aber irgenwie bin ich zu blöd dafür.
2 x HMS100 TFK, jeweils einzelne Meldung Tür auf, Sammelmeldung beide Türen zu.
Teilweise geht es, teilweise nicht.
Wäre schön, wenn mir einer helfen würde, hab schon so ziemlich alles durchprobiert, nur verstehe ich leider einiges noch nicht:mad:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Meldung_Tuerkontakte.ips.php
Trigger :
Interval :
*/
$Haustuer = GetValueBoolean("Tuerkontakt_Haustuer.Status");
$Keller = GetValueBoolean("Türkontakt_Keller.Status");
if ($Haustuer == True);
{
FS20_SwitchMode(55214, true);
echo "Haustür ist offen.";
}
//$Keller == True;
//FS20_SwitchMode(55214, true);
//echo "Kellertür ist offen.";
if (($Haustuer == false) and ($Keller == false))
{
echo "Türen sind geschlossen.";
FS20_SwitchMode(55214, false);
}
?>
also ich versteh das nicht -> else if($Haustuer && $Keller == false)
1.) deine Zeile heißt für mich -> ist ($Haustuer = true wahr) UND ($Keller = false wahr) dann …
aber du wolltest doch bestimmt schreiben -> ist ($Haustuer = true wahr) UND ($Keller = true wahr) dann …
2.) müsste es für mich „true“ heissen (bei true = Tür auf)
3.) geht das mit „deinem“ Syntax so?
Ich hätte für false geschrieben -> elseif (!$Haustuer && !$Keller)
und da ich der Meinung bin es müsste „true“ heißen … dann ->
<?
if (!$Haustuer && !$Keller) // Wenn Haustür AND Kellertür zu sind ..
{
echo "Keine Tuer offen."; // dann schreibe ...
FS20_SwitchMode(55214, false); // und schalte ...
}
else //wenn das nicht zutrifft ...
{
if ($Haustuer) // und es die Haustüre war ..
{
echo "Haustür ist offen."; // dann schreibe ...
}
else // wenn nicht, dann wars der Keller ..
{
echo "Kellertür ist offen."; // dann schreibe ...
}
FS20_SwitchMode(55214, true); // und egal welche von beiden .. schalte ...
}
?>
Obi:
Wenn du [ P H P ] ohne lehrzeichen nutz und abschliesst mit [ / P H P ]
Dann nutzt das forum eine nicht proportionellen schriftart die sich besser lesen lasst.
zb
<?
// Hallo Script
?>
Dein script lasst sich lesen als :
<?
if (!$Haustuer && !$Keller) { // Wenn Haustür AND Kellertür zu sind ..
echo "Keine Tuer offen."; // dann schreibe ...
FS20_SwitchMode(55214, false); } // und schalte ...
else { //wenn das nicht zutrifft ...
if ($Haustuer){ // und es die Haustüre war ..
echo "Haustür ist offen."; } // dann schreibe ...
else // wenn nicht, dann wars der Keller ..
{echo "Kellertür ist offen.";} // dann schreibe ...
FS20_SwitchMode(55214, true); // und egal welche von beiden .. schalte ...
}
?>
Nächstes Problem, nun sollen die Meldungen im Designer angezeigt werden, ich meine hierzu auch schon was gelesen zuhaben, nur finde ich es nicht mehr.
Ich denke ich werde es über ein Label anzeigen lassen. Eine Variable-String erstellen in die dann reingeschrieben wird, nur wie:confused:
Wieso nicht eine ‚alarm‘-variable (boolean) einrichten und anzeigen?
Wenn du diesem siechst - gehe auf die alarm-seite
Und auf die alarm-seite einem label mit texte. Fragst du dich: "hey ! wieso alarm - lassen wir mal sehen ; aha die keller-tur ist offen)
SetValueBoolean("alarm", true);
SetValueString("alarmstr", "Alarm: kellertur nicht geschlossen");
wie GGGss schon schrieb. Bindeglied zwischen Designer und deinen Scripten sind die ipsymcon Variabelen. Lege 2 Variabelen an. Eine String Variabele für die Alarmmeldung (alarmstring) und eine Boolen (False/true) für den Alarm an sich (alarm). Die „Echo“ Ausgabe schreibst du in die String Variabele und den Status in die Boolen Variabele. Nun kannst du beides im Designer anzeigen lassen.
Du kannst so auch die Variabelen in weitere Scripte übernehmen (als Trigger). Z.B. wenn „Alarm = True“ dann Rundumleuchte und Sirene an … und „Alarmstring“ per mail und/oder SMS raus …
$Haustuer = GetValueBoolean("Tuerkontakt_Haustuer.Status");
$Keller = GetValueBoolean("Türkontakt_Keller.Status");
if (!$Haustuer && !$Keller) // Wenn Haustür AND Kellertür zu sind ..
{
echo "Keine Tür offen."; // dann schreibe ...
SetValueBoolean("Alarm", false);
SetValueString("Alarmtext", "Alle Türen geschlossen");
FS20_SwitchMode(55214, false); // und schalte ...
}
else //wenn das nicht zutrifft ...
{
if ($Haustuer) // und es die Haustüre war ..
{
echo "Haustür ist offen."; // dann schreibe ...
SetValueBoolean("Alarm", true);
SetValueString("Alarmtext", "Alarm: Haustür nicht geschlossen");
}
else // wenn nicht, dann wars der Keller ..
{
echo "Kellertür ist offen."; // dann schreibe ...
SetValueString("Alarmtext", "Alarm: Kellertür nicht geschlossen");
}
FS20_SwitchMode(55214, true); // und egal welche von beiden .. schalte ...
}
bei der Kellertür wird die Variabele „Alarm“ nicht auf „True“ gesetzt …
if ($Haustuer) // und es die Haustüre war ..
{
echo "Haustür ist offen."; // dann schreibe ...
SetValueBoolean("Alarm", true); // und setze Alarm = True
SetValueString("Alarmtext", "Alarm: Haustür nicht geschlossen");
}
else // wenn nicht, dann wars der Keller ..
{
echo "Kellertür ist offen."; // dann schreibe ...
SetValueBoolean("Alarm", true); // und setze Alarm = True <- Vergessen !!
SetValueString("Alarmtext", "Alarm: Kellertür nicht geschlossen");
Aber noch besser ist …
if (!$Haustuer && !$Keller) // Wenn Haustür AND Kellertür zu sind ..
{
echo "Keine Tür offen."; // dann schreibe ...
SetValueBoolean("Alarm", false);
SetValueString("Alarmtext", "Alle Türen geschlossen");
FS20_SwitchMode(55214, false); // und schalte ...
}
else //wenn das nicht zutrifft ...
{
if ($Haustuer) // und es die Haustüre war ..
{
echo "Haustür ist offen."; // dann schreibe ...
SetValueString("Alarmtext", "Alarm: Haustür nicht geschlossen");
}
else // wenn nicht, dann wars der Keller ..
{
echo "Kellertür ist offen."; // dann schreibe ...
SetValueString("Alarmtext", "Alarm: Kellertür nicht geschlossen");
}
FS20_SwitchMode(55214, true); // und egal welche von beiden .. schalte ...
SetValueBoolean("Alarm", true); // und setze Alarm = True <- Hier ist richtig !!
}
if ($Haustuer) // und es die Haustüre war ..
{
echo "Haustür ist offen."; // dann schreibe ...
SetValueBoolean("Alarm", true);
SetValueString("Alarmtext", "Alarm: Haustür nicht geschlossen");
}
trifft aber „else“ zu, also Keller Tür auf dann schaltest du den „Alarm“ nicht →
else // wenn nicht, dann wars der Keller ..
{
echo "Kellertür ist offen."; // dann schreibe ...
SetValueString("Alarmtext", "Alarm: Kellertür nicht geschlossen");
}
du schaltest nur →
FS20_SwitchMode(55214, true); // und egal welche von beiden .. schalte ...
solltest hier aber einfach beides schalten (vertrau mir )
→
FS20_SwitchMode(55214, true); // und egal welche von beiden .. schalte ...
SetValueBoolean("Alarm", true);