+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    Oct 2013
    Beiträge
    14

    Question Ereigniss ruft Script nicht auf

    Hallo, ich habe leider ein Problem mit meinen zyklischen Ereignissen.
    Ich habe mir vor ein paar Tagen eine Keymatic gekauft und wollte einstellen das diese automatisch um 22 Uhr abschliesst.
    Hab also ein kleines Script und ein Ereigniss angelegt. Doch leider wird dieses nicht aufgerufen.
    Hab im Script auch ganz oben eine Log Ausgabe und diese kommt auch nicht, kann also nicht direkt am Script liegen.

    Eingestellt ist so:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	2017-10-19.png 
Hits:	119 
Größe:	16.7 KB 
ID:	40912

    Das Script sieht so aus:
    PHP-Code:
    <? 
        $ID_KEYMATIC 
    11226 /*[Geräte\KEYMATIC]*/;     

        
    IPS_LogMessage($_IPS['SELF'], "KEYMATIC CALL FROM " $_IPS['VARIABLE']);
        
    IPS_LogMessage($_IPS['SELF'], "ZEIT: " date("H:i"));

        if(
    $_IPS['SENDER'] == "TimerEvent")
        {
            if (
    date("H:i") >= "22:00") {
                
    HM_WriteValueBoolean($ID_KEYMATIC"STATE" false); 
            }
            else if (
    date("H:i") >= "07:00" && date("H:i") < "08:00") {
                
    HM_WriteValueBoolean($ID_KEYMATIC"STATE" true); 
            }
        }
        
    ?>
    Mein System läuft auf einem Raspberry 3 und wurde erst vor einer Woche upgedated.
    Ich kann allerdings nicht sagen ob es vorher lief, weil das ist mein erstes zyklisches Ereignis was ich nutze.

    Danke & Gruß
    Henning

  2. #2
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,765

    Das Script kannst du komplett sparen, zumal es Fehler enthält.
    $_IPS['VARIABLE'] gibt es nicht bei zyklischen Ereignissen.
    Und wozu Uhrzeit prüfen, wenn es eh nur um 22 Uhr aufgerufen wird.

    Viel einfacher:
    Keymatic Instanz öffnen.
    Oben Ereignisse anklicken. Zyklische Ereignis wählen und neu anklicken.
    Zeitpunkt einstellen und dann weiter.
    Als Ziel Gerät ausführen.
    Funktion HM_WriteValueBoolean.
    Dann Datenpunkt und Wert eintragen.
    Fertig.
    Kein Script

    Michael
    PS: zum testen des Ereignisses hattest du aber schon ein Datum in der Vergangenheit ausgewählt? Weil 19.10 22 Uhr ist ja erst heute
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  3. #3
    Registriert seit
    Aug 2016
    Beiträge
    4,341

    Hallo,

    ich habe mir gerade mal selbst ein Ereignis auf ein Script angelegt, bei mir funktioniert das sofort.
    Hast du wirklich das Ereignis auf das Script angelegt?

    Du kannst das Ganze aber auch ohne Script regeln, in dem du die Variable direkt schaltest.

    Edit: Ah Michael war schneller.

    Grüße,
    Kai
    Geändert von KaiS (19.10.17 um 11:49 Uhr)
    IPS 5.2, auf Tinkerboard und RPI, piVCCU, Homematic & Homematic IP, diverse Tasmota Geräte, Shelly, GHoma, LG HomBot, Sonos, Tvheadend, HomeKit, AppleTV
    Einfach mal rein schauen: IP-Symcon Discord Channel

  4. #4
    Registriert seit
    Oct 2013
    Beiträge
    14

    Also das Script ist etwas länger, hab nur einen Teil rauskopiert. Es wird zum einen eben auch Morgens um 8 Uhr aufgerufen zum aufschliessen, deshalb die Zeitprüfung.

    Das ganze Script sieht so aus:

    PHP-Code:
    <? 
        $ID_KEYMATIC 
    11226 /*[Geräte\KEYMATIC]*/;                                                  // Keymatic Instanz ID 
        
    $ID_KEYMATIC_STATE =29252 /*[Geräte\KEYMATIC\STATE]*/;                                     // STATE Variable der Keymatic Instanz 
        
    $ID_VAR_ACTION 10000 /*[Geräte\KEYMATIC\Status]*/;    // Integer Variable für Schalt und Darstellungszustände 

        
    IPS_LogMessage($_IPS['SELF'], "KEYMATIC CALL FROM " $_IPS['VARIABLE']);

        
    $time date("H:i");
        
    IPS_LogMessage($_IPS['SELF'], "ZEIT: " $time);

        if(
    $_IPS['SENDER'] == "TimerEvent")
        {
            if (
    $time >= "12:00") {
                
    HM_WriteValueBoolean($ID_KEYMATIC"STATE" false); 
            }
            else if (
    $time >= "07:00" && $time "08:00") {
                
    HM_WriteValueBoolean($ID_KEYMATIC"STATE" true); 
            }
        }
        else if(
    $_IPS['VARIABLE']==39401 /*[Geräte\eKey\INSTALL_TEST]*/ || $_IPS['VARIABLE'] == 19558 /*[Geräte\Telefonsummer\INSTALL_TEST]*/) {
            
    HM_WriteValueBoolean($ID_KEYMATIC"OPEN" true); 
        }
        else if(
    $_IPS['VARIABLE'] == 16427 /*[Geräte\Tür - Haustür\Zustand]*/) {
            
    $doorstate GetValueBoolean(22649 /*[Geräte\Tür - Haustür\Offen (Real)]*/);
            if(
    $doorstate == false) {
                if (
    $time >= "22:00") {
                    
    HM_WriteValueBoolean($ID_KEYMATIC"STATE" false); 
                }
            }
        }
        else if(
    $_IPS['VARIABLE']==28089 /*[Geräte\KEYMATIC\MAINTENANCE\LOWBAT]*/) {
            
    SMTP_SendMail(55431 /*[E-Mail senden (SMTP)]*/'Batterie Alarm''Die Batterie des Gerätes: "KEYMATIC" ist leer!');
        }
        else 
        { 
            if (
    getValue($ID_KEYMATIC_STATE)==true
            { 
                
    SetValue($ID_VAR_ACTION,2); 
            } 
            if (
    getValue($ID_KEYMATIC_STATE)==false
            { 
                
    SetValue($ID_VAR_ACTION,1); 
            } 
        } 

    ?>
    Sollte das mit der Variable $_IPS['VARIABLE'] denn ein Problem darstellen?
    Dachte dann ist die Ausgabe an der Stelle einfach leer, wenn das Script vom Timer aufgerufen wird.
    Also ich hab auch vers. Timer ausprobiert mit +1h und -1h wegen UTC Problem oder so. Hab jetzt nicht immer auf 22 Uhr gewartet
    Wenn ich das Script so manuell aufrufe wird auch die richtige Uhrzeit ausgegeben.
    Ich denke das irgendwie die zyklischen Ereignisse gar nicht gehen, denke nicht das es am Script liegt.

    Kann man das irgendwie testen oder kann ich da in irgend ein Log schauen um das zu testen?

  5. #5
    Registriert seit
    Oct 2013
    Beiträge
    14

    So sind die Verknüpft:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	2017-10-19 (3).png 
Hits:	113 
Größe:	41.5 KB 
ID:	40913
    Hab gerade auch nochmal einen neuen angelegt um 13:08 aber wie man sieht wurde er "Nie" aufgerufen.

  6. #6
    Registriert seit
    Oct 2013
    Beiträge
    14

    Hab den Fehler gefunden, es liegt anscheint wirklich an UTC.
    Hab gerade 11:14 Uhr probiert und ging. Hatte vorher immer nur +-1h probiert, sind aber 2h.

    Liegt der Fehler dann an der Raspberry Konfig?

    Gruß und Danke
    Henning

  7. #7
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,765

    Ja, du hast dort nicht die richtige Zeitzone eingetragen.
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 31.10.13, 13:14
  2. Script reagiert nicht auf $_IPS
    Von SmartHomeSchweiz im Forum Skripte, PHP, SQL
    Antworten: 7
    Letzter Beitrag: 26.09.13, 05:08
  3. dashboard.php ruft Authentifizierung auf
    Von Ferengi-Master im Forum WebFront
    Antworten: 0
    Letzter Beitrag: 24.01.10, 23:53
  4. Script läuft nicht mehr nach Update auf 2.1
    Von wolfi56 im Forum Skripte, PHP, SQL
    Antworten: 26
    Letzter Beitrag: 07.11.09, 09:23
  5. Wer ruft das Skript auf
    Von wgreipl im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 4
    Letzter Beitrag: 03.05.08, 12:38

Stichworte