+ Antworten
Seite 4 von 4 ErsteErste ... 2 3 4
Ergebnis 31 bis 39 von 39
  1. #31
    Registriert seit
    Nov 2016
    Ort
    Ruhrgebiet
    Beiträge
    192

    Hi Fonzo,

    ich habe mir jetzt ein scharf schalten Script und ein unscharf schalten Script gebastelt und ich glaube das geht.

    scharf schalten:

    PHP-Code:
    <?

    // Button soll geprüft werden, ob alle Kontakte geschlossen sind
    $state GetValue(44655 /*[Scripte\Fensterstatus\FENSTERSTATUS]*/); // Wert der Kontakt Variable auslesen

    // wenn ein, soll die Fehlermeldung als Push kommen, dass ein Fenster geöffnet ist.
    if($state)
    {
    WFC_PushNotification(58465 /*[WebFront]*/'Warnung''Das Fenster ist offen!''bell'0); // Objekt ID des Webfrontkonfigurators anpassen
    }
    // Sollten alle Kontakte geschlossen sein
    else
    {
    // soll scharf geschalten werden
    SetValue(57737 /*[Scripte\Alarmanlage_scharf\scharf/unscharf]*/true); // Variable "Scharf" auf true setzten
    // und eine Push Meldung kommen, dass ALARM_scharf ist
    WFC_PushNotification(58465 /*[WebFront]*/'Warnung''Alarm ist scharf!''alarm'0); // Objekt ID des Webfrontkonfigurators anpassen
    // und an meinem MP3 Türgong soll die rote LED blinken.
    HM_WriteValueString(24345 /*[Geräte\Diele_EG\MP3-Türgong_Licht]*/ ,"SUBMIT",'1,1,108000,18,0,18,0,18,0,18,0,18,0');
    }  

    ?>

    unscharf schalten:

    PHP-Code:
    <?

    // Button soll geprüft werden, ob alle Kontakte geschlossen sind
    $state GetValue(44655 /*[Scripte\Fensterstatus\FENSTERSTATUS]*/); // Wert der Kontakt Variable auslesen

    // wenn ein, soll die Fehlermeldung als Push kommen, dass ein Fenster geöffnet ist.
    if($state)
    {
    WFC_PushNotification(58465 /*[WebFront]*/'Warnung''Das Fenster ist offen!''bell'0); // Objekt ID des Webfrontkonfigurators anpassen
    }
    // Sollten alle Kontakte geschlossen sein
    else
    {
    // soll unscharf geschalten werden
    SetValue(57737 /*[Scripte\Alarmanlage_scharf\scharf/unscharf]*/false); // Variable "unscharf" auf false setzten
    // und eine Push Meldung kommen, dass ALARM_unscharf ist
    WFC_PushNotification(58465 /*[WebFront]*/'Warnung''Alarm ist unscharf!''alarm'0); // Objekt ID des Webfrontkonfigurators anpassen
    // und an meinem MP3 Türgong soll die rote LED blinken.
    HM_WriteValueString(24345 /*[Geräte\Diele_EG\MP3-Türgong_Licht]*/ ,"SUBMIT",'1,1,108000,18,0,18,0,18,0,18,0,18,0');
    }  

    ?>
    Beziehungsweise, ob bei der unscharf schalten die $state Zeile noch sein muss weiß ich auch nicht, denn eigentlich müsste er ja nur unscharf schalten, wenn ich den Button drücke.

    Was ich jetz nur nicht hinbekomme ist, ich muss ja jetzt das Alarm aktiv Script schreiben, sprich, wenn meine Variable scharf/unscharf scharf ist und eins meiner Fenster geht auf, dann muss Push raus ALARM und die Sirenen müssen angehen.

    Wie frage ich die Variable auf scharf ab und muss ich bei jedem Fensterkontakt ein Ereignis hinzufügen bei öffnen dieses Script dann starten?

    Danke
    BH
    Geändert von Blonder Hans (03.10.18 um 22:08 Uhr)

  2. #32
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    5,216

    Zitat Zitat von Blonder Hans Beitrag anzeigen
    Beziehungsweise, ob bei der unscharf schalten die $state Zeile noch sein muss weiß ich auch nicht, denn eigentlich müsste er ja nur unscharf schalten, wenn ich den Button drücke.
    Naja das Skript entspricht zumindest nicht dem was Du mal 3) beschrieben hattest. Du willst ja lediglich den Status auf unscharf stellen und die LED blicken lassen, dazu must Du ja keinen Status der Fenster prüfen.

    PHP-Code:
    // soll unscharf geschalten werden
    SetValue(57737 /*[Scripte\Alarmanlage_scharf\scharf/unscharf]*/false); // Variable "unscharf" auf false setzten
    // und eine Push Meldung kommen, dass ALARM_unscharf ist
    WFC_PushNotification(58465 /*[WebFront]*/'Warnung''Alarm ist unscharf!''alarm'0); // Objekt ID des Webfrontkonfigurators anpassen
    // und an meinem MP3 Türgong soll die grüne LED 5x blinken.
    HM_WriteValueString(24345 /*[Geräte\Diele_EG\MP3-Türgong_Licht]*/ ,"SUBMIT",'1,1,108000,34,0,34,0,34,0,34,0,34,0'); 
    Zitat Zitat von Blonder Hans Beitrag anzeigen
    Was ich jetz nur nicht hinbekomme ist, ich muss ja jetzt das Alarm aktiv Script schreiben, sprich, wenn meine Variable scharf/unscharf scharf ist und eins meiner Fenster geht auf, dann muss Push raus ALARM und die Sirenen müssen angehen.

    Wie frage ich die Variable auf scharf ab und muss ich bei jedem Fensterkontakt ein Ereignis hinzufügen bei öffnen dieses Script dann starten?
    Du must einfach auf jeden Fensterkontakt ein Ereigniss legen das auslöst wenn der Fensterkontakt auf ist, dann wird das Skript gestartet das den Zustand des Alarms prüft und gegebenenfalls Alarm auslöst.
    PHP-Code:
    // check alarm state
    $alarm_state GetValue(57737 /*[Scripte\Alarmanlage_scharf\scharf/unscharf]*/);
    if(
    $alarm_state)
    {
    WFC_PushNotification(58465 /*[WebFront]*/'Alarm''Fenster wurde geöffnet während Alarm scharf ist!''siren'0); 
    // Sirene anschalten
    // Befehl ergänzen
    }
    SetValue(44655 /*[Scripte\Fensterstatus\FENSTERSTATUS]*/true); // Fenster Status offen 

  3. #33
    Registriert seit
    Nov 2016
    Ort
    Ruhrgebiet
    Beiträge
    192

    Hi Fonzo,

    ich habe das jetzt als unscharf Script angelegt, bekomme aber im Scriptausgabe Text eine Fehlermeldung:

    PHP-Code:
    <?

    // soll unscharf geschalten werden
    SetValue(57737 /*[Scripte\Alarmanlage_scharf\scharf/unscharf]*/false); // Variable "unscharf" auf false setzten
    // und eine Push Meldung kommen, dass ALARM_unscharf ist
    WFC_PushNotification(58465 /*[WebFront]*/'Warnung''Alarm ist unscharf!''alarm'0); // Objekt ID des Webfrontkonfigurators anpassen
    // und an meinem MP3 Türgong soll die grüne LED 5x blinken.
    HM_WriteValueString(24345 /*[Geräte\Diele_EG\MP3-Türgong_Licht]*/ ,"SUBMIT",'1,1,108000,34,0,34,0,34,0,34,0,34,0');   
    SetValue(57565 /*[Geräte\Wohnzimmer\Piezo-Sirene_Wohnzimmer\WORKING]*/false); //schalte Sirene Wohnzimmer aus
    SetValue(59955 /*[Geräte\Garage\Piezo-Sirene_Garage\STATE]*/false); //schalte Sirene Garage aus

    ?>
    Fehlermeldung lautet:


    Warning: Variable is marked as read-only and cannot be changed in /var/lib/symcon/scripts/44929.ips.php on line 9

    Warning: Variable is marked as read-only and cannot be changed in /var/lib/symcon/scripts/44929.ips.php on line 10


    Kann ich die Sirene so nicht ausschalten, denn ich will ja auch bei Fehlalarm oder wenn Sie mal angehen es auch ausschalten können.

    Danke
    BH

  4. #34
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    5,216

    Zitat Zitat von Blonder Hans Beitrag anzeigen
    Kann ich die Sirene so nicht ausschalten, denn ich will ja auch bei Fehlalarm oder wenn Sie mal angehen es auch ausschalten können.
    Du kannst nur Variablen, die Du selbst angelegt hast über SetValue schalten, Variablen von Instanzen sind immer Read only daher auch die Fehlermeldung. Du must die Sirene also über eine Funktion schalten und nicht die Variable verstellen. Was für ein System ist denn die Sirene? Bei Homematic siehe hier
    HM_WriteValueBoolean — IP-Symcon :: Automatisierungssoftware

  5. #35
    Registriert seit
    Nov 2016
    Ort
    Ruhrgebiet
    Beiträge
    192

    Hi Fonzo,

    ist eine HM-LC-Sw1-Ba-PCB Piezzo Sirene von HM.

    Habe es jetzt so gemacht und sollte gehen.
    Siehe Script:
    PHP-Code:
    <?

    // soll unscharf geschalten werden
    SetValue(57737 /*[Scripte\Alarmanlage_scharf\scharf/unscharf]*/false); // Variable "unscharf" auf false setzten
    // und eine Push Meldung kommen, dass ALARM_unscharf ist
    WFC_PushNotification(58465 /*[WebFront]*/'Warnung''Alarm ist unscharf!''alarm'0); // Objekt ID des Webfrontkonfigurators anpassen
    // und an meinem MP3 Türgong soll die grüne LED 5x blinken.
    HM_WriteValueString(24345 /*[Geräte\Diele_EG\MP3-Türgong_Licht]*/ ,"SUBMIT",'1,1,108000,34,0,34,0,34,0,34,0,34,0');

    HM_WriteValueBoolean(35130 /*[Geräte\Wohnzimmer\Piezo-Sirene_Wohnzimmer]*/"STATE"false); //schalte Sirene Wohnzimmer aus
    HM_WriteValueBoolean(29041 /*[Geräte\Garage\Piezo-Sirene_Garage]*/"STATE"false); //schalte Sirene Garage aus

    ?>

    Jetzt nächstes Thema, die Garagentür soll auch scharf sein Nachts, wenn wir zu Hause sind, da ich diese immer abgesichert haben möchte, dazu habe ich mir folgendes Script erstellt, passt das?

    PHP-Code:
     <?
    $Zeit 
    date ("Hi"); //Prüfe in der Zeit von 23.30 Uhr bis 06.00Uhr
    $Nachts "2330";
    $Tag "0600";

    If (
    $Zeit $Nachts $Zeit $Tag)
    {
    HM_WriteValueBoolean(35130 /*[Geräte\Wohnzimmer\Piezo-Sirene_Wohnzimmer]*/"STATE"true); //schalte Sirene Wohnzimmer an
    HM_WriteValueBoolean(29041 /*[Geräte\Garage\Piezo-Sirene_Garage]*/"STATE"true); //schalte Sirene Garage an
    }

    ?>
    und die letzte Frage, wie kann ich es einbauen, dass die Sirenen noch 300 Sekunden an bleiben? Über ON_TIME?

    Danke
    BH

  6. #36
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    5,216

    Zitat Zitat von Blonder Hans Beitrag anzeigen
    Jetzt nächstes Thema, die Garagentür soll auch scharf sein Nachts, wenn wir zu Hause sind, da ich diese immer abgesichert haben möchte, dazu habe ich mir folgendes Script erstellt, passt das?

    PHP-Code:
     <?
    $Zeit 
    date ("Hi"); //Prüfe in der Zeit von 23.30 Uhr bis 06.00Uhr
    $Nachts "2330";
    $Tag "0600";

    If (
    $Zeit $Nachts $Zeit $Tag)
    {
    HM_WriteValueBoolean(35130 /*[Geräte\Wohnzimmer\Piezo-Sirene_Wohnzimmer]*/"STATE"true); //schalte Sirene Wohnzimmer an
    HM_WriteValueBoolean(29041 /*[Geräte\Garage\Piezo-Sirene_Garage]*/"STATE"true); //schalte Sirene Garage an
    }

    ?>
    Nein das passt nicht, und zwar aus dem Grund das Du hier ein String hast und versuchst diesen mit größer und kleiner zu vergleichen, das funktioniert aber nicht.

    Wenn Du etwas bei Zeit vergleichen willst, ob es größer oder kleiner, brauchst Du eine Zahl, in dem Fall must Du also den Timestamp nehmen und diesen vergleichen und nicht den als String formatierten Wert.

    PHP-Code:
     //Prüfe in der Zeit von 23.30 Uhr bis 06.00Uhr 
    $Zeit time(); // aktueller Timestamp
    $Nachts strtotime("23:30");
    $Tag strtotime("+1 day 06:00");

    If (
    $Zeit $Nachts $Zeit $Tag

    // komm nur nicht auf die Idee das Skript so auszuführen nach 23:30, dann geht die Sirene an, was Du bestimmt nicht willst bzw. Deine Nachbarn nicht. ich nehme an das Skript wird durch eine Event aufgerufen vielleicht solltest Du daher noch prüfen ob auch ein Event der Auslöser ist und nur dann die Sirene schalten. 
    HM_WriteValueBoolean(35130 /*[Geräte\Wohnzimmer\Piezo-Sirene_Wohnzimmer]*/"STATE"true); //schalte Sirene Wohnzimmer an 
    HM_WriteValueBoolean(29041 /*[Geräte\Garage\Piezo-Sirene_Garage]*/"STATE"true); //schalte Sirene Garage an 

    Im übrigen ist das zwar gut um PHP zu verstehen, aber um das zu lösen kannst Du auch wesentlich einfacher vorgehen.
    Dazu nimmst Du einfach nur ein Skript was die Sirenen schaltet und legst da ein Ereigniss drauf. Bei einem Ereigniss hast Du die Möglichkeit erweiterte Bedingungen zu nutzten siehe Dokumentation Ereignisse, da kanst Du dann so was wie Deine Uhrzeit abfragen ohne Dir Gedanken über PHP Code und Uhrzeit Vergleich machen zu müssen.
    Geändert von Fonzo (07.10.18 um 22:48 Uhr)

  7. #37
    Registriert seit
    Nov 2016
    Ort
    Ruhrgebiet
    Beiträge
    192

    Danke Dir.

    Und das mit der Anschaltdauer von 300 Sekunden? Wie realisiere ich das dann?

    Danke und Gruß
    BH

  8. #38
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    5,216

    Zitat Zitat von Blonder Hans Beitrag anzeigen
    Und das mit der Anschaltdauer von 300 Sekunden? Wie realisiere ich das dann?
    Das würde ich in einem anderen Thread seperat fragen, hier geht das unter. Ich selber weis das nicht, da ich kein solches Gerät besitze.

  9. #39
    Registriert seit
    Nov 2013
    Ort
    Nördlich von Berlin
    Beiträge
    63

    Hallo Blonder Hans,

    ich habe jetzt diesen Thread nur überflogen aber evtl. hilft dir mein Modul "AlarmSystem". Es befindet sich zurzeit noch in Entwicklung von mir (deshalb auch Branch "DEV01"), jedoch ist noch nichts dokumentiert. Unter anderem kannst du in dem Modul auch ein Script angeben, welches mit einem Delay aufgerufen wird.
    Achso: Das Modul hat natürlich primär erstmal nichts mit IPSView zu tun.
    https://github.com/dampflok2000/Symc...01/AlarmSystem

    Viele Grüße
    Peter
    IP-Symcon 5.0 Professional auf Raspberry Pi 3 mit piVCCUals CCU-Ersatz, Android-Tablet als Dashboard und USB-Ampel, verschiedene Homematic-Geräte

Ähnliche Themen

  1. Alarmanlage mit IPS und Homematic
    Von Tintifax im Forum Skripte, PHP, SQL
    Antworten: 34
    Letzter Beitrag: 13.03.16, 12:18
  2. Alarmanlage für IPS?
    Von ThomasD im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 2
    Letzter Beitrag: 14.03.14, 15:22
  3. Keymatic & Ips Alarmanlage Idee gesucht?
    Von KrasserMann im Forum HomeMatic
    Antworten: 3
    Letzter Beitrag: 21.05.13, 17:34
  4. Günstige Funk-Alarmanlage gesucht (ohne IPS)
    Von grind im Forum Haustechnik
    Antworten: 2
    Letzter Beitrag: 07.08.11, 16:11