Alarmanlage mit Geofancy steuern

Hi Fonzo,

vielen Dank, nur jetzt ist es so, dass wenn ich Abwesend bin auf unscharf geschalten wird und wenn ich Anwesen bin, dann scharf geschalten wird.

Finde den Fehler nicht…

Dann musst Du wohl einfach setvalue der Alarmanlage true gegen false tauschen dann sollte es wohl richtig herum sein

Gesendet von iPhone mit Tapatalk

ok, ich musste alle einmal tauschen, jetzt geht es.

Man, man…das ist echt nicht einfach das zu verstehen, wenn man es noch nie gemacht hat.

Jetzt mus sich das Handy meiner Frau auch noch einbinden und dann das Script für die das einschalten der Sirene
zu erzeugen, wenn ein Fenster oder Tür geöffnet wird.

Kann man das auch wieder alles in ein Script schreiben und dann auf jeden Kontakt ein Ereignis legen, welches das Script auslöst bei aktualisierung?

Danke dir!

Dann legst Du Dir eine dritte Variable an die die Abwesenheit von beiden anzeigt und diese schaltet dann die Alarmanlage macht ja kein Sinn wenn diese angeht weil Du nicht im Haus ist aber Deine Frau fernsehen schaut.
Anwesenheit in Variable eintragen (Beispiel mit 2 Personen)
Lesen bildet :cool:, Bayaro hat sich so viel Mühe gemacht ;).

glaub mir, auch den habe ich schon gelesen, bekomme das halt nur alles noch nicht zusammen.
Das ist gerade als muss ich chinesisch lernen. :slight_smile:

Gesendet von iPhone mit Tapatalk

Vielleicht geht das ja mit den Workflows von IPSStudio einfacher, da habe ich mich noch nicht mit beschäftigt aber dann musst Du nur IPSStudio Experte und keine Chinesisch Experte werden.

Alles gut, dank deiner Hilfe lerne ich ja jeden Tag ein paar Wörter mehr. :slight_smile:

Das mit den Workflows geht doch noch nicht oder?
Erst ab dem nächsten Release.

Gesendet von iPhone mit Tapatalk

Hi Fonzo,

kann ich den in unserem Script hier meine Frau noch mit einbinden?

Ich habe als Test auch noch das Script von Bayaro mal genutzt, es soll ja die Zustände
0 1 2 oder 3 setzen, je nachdem wer gerade zu Hause ist.

Ich habe das dann mal durchgetestet und es setzt die Variaben nicht immer richtig! Es bleibt manchmal auf
einem Zustand stehen obwohl dann beide Objekt ID´s auf abwesend stehe oder so.
Aber in dem Script einen Fehler finden, sorry, da steige ich definitiv aus.

VG

MEIN FEHLER!
Ich habe das Script noch einmal neu angelegt, da ich die ObjectID erst nachträglich eingetragen hatte, kam in den Ergeignissen 2 x mein Device.

Es funktioniert jetzt einwandfrei mit den 2 Personen!

Aber macht das jetzt Sinn das mit den Fenstern da noch zu integrieren? Ist es egal wieviele Scripte man laufen hat oder dreht das System dann auch mal durch?

Das Skript sind ja nur ein paar Zeilen ich wüste jetzt auch nicht wo da ein Fehler sein soll, bei mir geht es auch. Wann funktioniert es denn nicht, ist das irgendwie reproduzierbar?

Die Anzahl der auf einmal ausgeführten Skripte ist nur durch die Anzahl der Threads und die CPU begrenzt. Da sich ein Raspberry eher alleine mit IP-Symcon langweilt kann bedenkenlos auch die Anzahl der Threads hochsetzt werden.

Ich habe bei mir IP-Symcon stabil mit einem Thread Count 30 und Thread Queue Limit 50 laufen. Was da sinnvoll ist hängt davon ab wie viele Threads gleichzeitig laufen.

Die Einstellungen kannst Du unter Spezialschalter anzeigen einstellen, ein Überblick über die laufenden Threads gibt Expertenansicht hinzufügen -> PHP Informationen.

Hi Fonzo,

sorry, kann heute erst weiter machen.

Kurze Frage, ich habe jetzt mit Geofency die Anwesenheit meiner Frau und mir realisiert, diese mündet in eine
Iteger Variable, die einen Wert von 0-3 augibt, 0 ist praktisch alle Abwesend, 1 ich anwesend, 2 meine Frau anwesend und 3 beide anwesen.

Jetzt möchte ich diese Variable abfragen, sprich bei null „Alarm scharf“ und bei 1-3 „Alarm unscharf“.

Meine Verständisfrage, lege ich jetzt praktisch ein Script an, welches wieder eine Variable auswirft „scharf“ oder „unscharf“?

Und anschließend dann auf jeden Fensterkontakt ein Ereignis legen, welches bei „scharf“ und einer Veränderung die Sirene anwirft?

Wie Frage ich die Ineger Variable dann so ab, dass die BoolenVariable, dann bei 0 == true ist und bei 1-3 == false?

Oder denke ich da gerade falsch?

Danke

<?
	$anwesenheit_wohnung = GetValue(39990 /*[An/Abwesend\Anwesenheit_2 Personen\Anwesenheit_Wohnung]*/); 
	
	 

if($abwesend) 
	
 if($abwesenheit_wohnung == 0)
 {
 //Setze Alarm scharf
    $alarmanlage = 49756 /*[An/Abwesend\Alarmanlage]*/;
    SetValue($alarmanlage, true); //Alarm einstellen     
	
}
	 
 {
     //  Nachricht das die ALARMANLAGE aktiv ist
    WFC_PushNotification(58465 /*[WebFront]*/, 'Warnung', 'ALARMANLAGE aktiv!', '', 0);
	
}	

?>

Habe das jetzt so mal angelegt, bekomme aber eine Fehlermeldung in Zeile 8

Die Pushmeldung geht aber raus.

Ich schaffe, dass einfach nicht was ich hier vor haben ;-(

Versuch es mal so…


<? 
    $anw = GetValueInteger(39990 /*[An/Abwesend\Anwesenheit_2 Personen\Anwesenheit_Wohnung]*/);  
    $alarmanlage = 49756 /*[An/Abwesend\Alarmanlage]*/;  
      


     
 if($anw <1) 
 { 
 //Setze Alarm scharf 
    
    SetValueBoolean($alarmanlage, true); //Alarm einstellen      
     
} 
else     
 { 
     // Alarmanlage unscharf
     SetValueBoolean($alarmanlage, false); //Alarm ausschalten 
}     

?>


Dein Skript war doch an sich schon fertig Du musst nur die Variable Abwesenheit auf die neue Variable Abwesenheit für 2 ändern und die Bedingung anpassen. Des weiteren musst Du dann logischerweise noch ein Ereignis auf die Variable Abwesenheit für 2 legen das das Skript ausführt, Bedingung bei Variablenaktualisierung.


<? 
$abwesenheit = GetValue(39990 /*[An/Abwesend\Anwesenheit_2 Personen\Anwesenheit_Wohnung]*/); 
$window1 = GetValue(51186 /*[Geräte\Diele_EG\FK-Haustür\STATE]*/); 
$window2 = GetValue(37445 /*[Geräte\Badezimmer\FK-Badezimmer\STATE]*/); 
$window3 = GetValue(29876 /*[Geräte\Büro\FK-Büro\STATE]*/); 
$window4 = GetValue(55129 /*[Geräte\HWR\FK-HWR\STATE]*/); 
$window5 = GetValue(34130 /*[Geräte\Küche\FK-Küche_Straße\STATE]*/); 
$window6 = GetValue(59129 /*[Geräte\Küche\FK-Küche_Einfahrt\STATE]*/); 
$window7 = GetValue(41033 /*[Geräte\Esszimmer\FK-Esszimmer\STATE]*/); 
$window8 = GetValue(54658 /*[Geräte\Wohnzimmer\FK-Terasse_links\STATE]*/); 
$window9 = GetValue(45365 /*[Geräte\Wohnzimmer\FK-Terrasse_rechts\STATE]*/); 
$window10 = GetValue(12768 /*[Geräte\Gäste-WC\FK-Gäste-WC\STATE]*/); 
$window11 = GetValue(58233 /*[Geräte\Schlafzimmer\FK-Schlafzimmer\STATE]*/); 
$window12 = GetValue(53526 /*[Geräte\Schlafzimmer\FK-Schlafzimmer_Gaube\STATE]*/); 
$window13 = GetValue(59697 /*[Geräte\Kinderzimmer\FK-Kinderzimmer\STATE]*/); 
$window14 = GetValue(36182 /*[Geräte\Kinderzimmer\FK-Kinderzimmer_Gaube\STATE]*/); 
$alarmanlage = 49756 /*[An/Abwesend\Alarmanlage]*/;  
  

if($abwesenheit < 1) 
{ 
    if($window1 == false && $window2 == false && $window3 == false && $window4 == false && $window5 == false && $window6 == false && $window7 == false && $window8 == false && $window9 == false 
&& $window10 == false && $window11 == false && $window12 == false && $window13 == false && $window14 == false) 
{ 
//Fenster alle zu 
SetValue($alarmanlage, true); //Alarm einstellen 
} 
if($window1 == true || $window2 == true || $window3 == true || $window4 == true || $window5 == true || $window6 == true || $window7 == true || $window8 == true || $window9 == true 
|| $window10 == true || $window11 == true || $window12 == true || $window13 == true || $window14 == true) 
{ 
// ein Fenster ist offen 
WFC_PushNotification(58465 /*[WebFront]*/, 'Warnung', 'Ein Fenster ist auf!', '', 0); 
SetValue($alarmanlage, true); //Alarm einstellen 
} 
} 
else 
{ 
    SetValue($alarmanlage, false); //Alarm ausstellen 
} 


?>


Hi Zusammen,

ich habe jetzt die 2 Personen Abwesenheit hinbekommen. Das Script spukt mir eine Variable aus, die sagt, ob beide an oder abwesend sind oder wer zu Hause ist. -> erledigt

Darauf habe ich ein Script, welches wenn beide abwesend sind prüft, ob die Fenster zu sind und wenn nicht eine Nachricht erstellt. Sonst stellt es eine Variable $Alarmanlage, auf „True“ und die Variable damit auf scharf. -> erledigt

dann habe ich ein Script „Alarm_aktiv“ erstellt, welches beim Zustand der Variable $alarmanlage = scharf (true)
die Sirene anschalten soll. Hirauf wollte ich die Ereignisse der Fensterkontakte legen, die bei „True“ dieses Script starten.

<?

$alarmanlage = GetValue(49756 /*[An/Abwesend\Alarmanlage]*/);
$piezzo = 10355 /*[Geräte\Wohnzimmer\Piezo-Sirene_Wohnzimmer\STATE]*/


if($alarmanlage == true)

{
// Piezzo anschalten und Push schicken

SetValue($piezzo, true); //Sirene AN

}  
 
?>

Nur leider geht das nicht.

Wo habe ich hier ein Fehler?

Ist das so in gesamten so gelöst, wie es Sinn macht?

Danke
BH

In Zeile 4 fehlt ein ; am Schluss.

Danke Fonzo!

Das war es, er hat immer über Zeite 7 gemeckert, daher ist mir Zeile 4 nicht aufgefallen ;-(

Ist das denn von der Logik so wie ich es jetzt aufgebaut habe ok oder kann man das viel einfacher/anders machen?

Ehrlich gesagt kann ich dem ganzen Text nicht mehr richtig folgen. Da müsstest Du schon ein Bild vom Objektbaum machen wie es denn jetzt grob aussieht. Aber im Prinzip würde ja ein Skript und ein Ereignis ausreichen. Aber wenn es denn funktioniert ist ja ok.

Hi Fonzo,

anbei der Baum:

VG