Hallo zusammen,
stehe vor nem Problemchen und würde euch gerne mal um ein paar Ideen bitten.
Also: Ich will meine Alarmsteuerung und Visualisierung komplett mit IPS realisieren. Habe auch schon ein paar Grundideen…leider scheint das Script bei meinen ü1000 Variablen komplett ab zu schmiergeln, da ich in dem Script ALLE Geräte überprüfe und durch eine while Schleife jage - vielleicht denke ich auch nur zu kompliziert- keine Ahnung - dafür frage ich ja jetzt euch. :rolleyes:
So. Ich habe im Eingangsbereich eine Signalleuchte die Rot,Grün und Gelb darstellt. Diese ist über einen Schaltaktor mit der HomeMatic und dem IPS verbunden.
Die Farben stellen folgendes dar:
Rot = Alarmanlage scharf
Grün = Alarmanlage unscharf, alle Fenster und Türen geschlossen
Gelb = Alarmanlage unscharf, ein oder mehrere Fenster oder Türen sind geöffnet.
Sinn des ganzen soll sein, das ich weiss wenn ich das Haus verlasse ob alle Fenster und Türen geschlossen sind oder ob irgendwo noch eins geöffnet ist. natürlich sollte die LED automatisch zwischen Grün und Gelb wechseln.
Wenn ich per Knopfdruck auf meinem Funkschlüssel drücke soll die Alarmanlage dann nach 20 Sekunden scharf bzw unscharf gestellt werden, das habe ich soweit aber schon mit einem anderen Script realisiert (ist ja nix wildes.)
Hier mal mein jetziges Script, IPS hängt sich dabei auf, da es einfach zu viel wird.
Alle Fenster und Türen im IPS müssen logischerweise überprüft werden. Sind aber in verschiedenen Kategorien…also lese ich hier alle Variablen aus dem IPS raus, was meiner Meinung nach nen bisl unsinnig ist…?
Danach sucht das Script in jeder ID nach einem Wort, hier STATE (Status des Fensters / der Tür) und überprüft dann ob es geöffnet oder geschlossen ist…
aber seht selbst:
#################################
## KONFIGURATION
################
##Status-Variablen der Ampelanzeige:
$aktor_green = 37651;
$aktor_yellow = 49603;
$aktor_red = 51124;
####################################################
##ID der Zustands-Variable der Alarmanlage
##Gibt Wert 1-3 (1=unscharf ,2= unsch. offen ,3=scharf)
$zustand = 59260 ;
####################################################
#Suchbegriff des Statuses in den Instanzen.
$suche = "STATE";
###################################################
###########
## ENDE KONFIGURATION DER IDs
#################################
$objekte = IPS_GetObjectList(); //Alle Variablen-IDs aus dem IPS auslesen
$Anzahl = count($objekte);
$i = 0;
while ($i< $Anzahl)
{
$var2 = (IPS_GetChildrenIDs($var_1[$i]));
$wert = IPS_GetObjectIDByName("$suche", $var_1[$i]);
$vergleich = GetValueBoolean($wert);
$i++;
if ($vergleich == true)
{
$bewegung = IPS_GetName(IPS_GetParent($wert));
$text[$i] = IPS_GetName(IPS_GetParent($wert));
}//if ($vergleich == true)
}//while ($i < $Anzahl)
$ausgabe = implode(", ",$text);
print ($ausgabe);
Das Script wird zwar ausgeführt, bei $ausgabe = implode(", ",$text); bekomme ich aber folgenden Fehler:
Warning: implode(): Invalid arguments passed in D:\IP-Symcon\scripts\30499.ips.php on line 73
und…
Warning: Variable #0 existiert nicht in D:\IP-Symcon\scripts\30499.ips.php on line 63
Notice: Undefined variable: text in D:\IP-Symcon\scripts\30499.ips.php on line 73