+ Antworten
Ergebnis 1 bis 2 von 2
  1. #1
    Registriert seit
    Nov 2016
    Ort
    Österreich, OÖ, Schärding
    Beiträge
    629

    Standard Skript - nur ausführen in einem bestimmten Zeitfenster (bei Anfang und Ende)

    Guten Tag,

    ich möchte ein Logikskript Beschattung für 2 Fenster aus wenn Markise beschattet schreiben.

    Das Skript funktioniert soweit gut.
    Was ich aber nicht schaffe ist, das das Skript nur einmal bei Start des Zeitfensters und einmal bei Ende des Zeitfenster ausgeführt wird.

    Sinn ist, das bei Ende Zeitfenster der Status der Beschattung der beiden Fenster wieder auf aktiv gesetzt wird.

    Hier die Logik:

    Code:
    <?php
    // wenn Beschattung Markise Süd Aktiv > dann keine Beschattung Terrassentür Wohnen und Treppe UC_GetIconContent
    // zwischen 10:00 und 15:00 Uhr
    
    // 40527
    // 29250
    // 55619
    
    $timestamp = time();
    $uhrzeit = date("H:i", $timestamp);
    $datum = date("d.m.Y", $timestamp);
    
    $MarkiseSuedBeschattungAktiv = GetValueBoolean(40527);
    $LogikAktiv = GetValueBoolean(43484);
    
    // Zeitfenster
    $actualZeitStartHour = GetValue(12415); 
    $actualZeitStartMinute = GetValue(11282); 
    $actualZeitStopHour = GetValue(25530); 
    $actualZeitStopMinute = GetValue(11596); 
    
    // Abfrage ob Uhrzeit im Tagbetrieb ist (Nach keine Durchsage)
    $tagbetrieb = false;
    $timeStart = mktime($actualZeitStartHour,$actualZeitStartMinute); 
    $timeStop = mktime($actualZeitStopHour,$actualZeitStopMinute); 
        // Gibt den Timestamp für: 2006-04-05T01:02:03+00:00 
        // mktime(1, 2, 3, 4, 5, 2006) 
    if ($timestamp > $timeStart && $timestamp < $timeStop) 
        { 
            $tagbetrieb = true;
        }
    
    if ($LogikAktiv == true)
    {   // Logik aktiv
    
        if ($MarkiseSuedBeschattungAktiv == true)
        {
            if($tagbetrieb == true)
            {
            // Markise beschattet > Auto auf AUS bei Treppe + TerrTür Wohnen
            EIB_Switch(12651, false);
            EIB_Switch(11222, false);  
            
            
           
            }
            else
            {
            // Beschattungszustand wieder normalisieren wenn Tagbetrieb zu Ende
            EIB_Switch(12651, true);
            EIB_Switch(11222, true); 
            }
        }
        else
        {   // Beschattungszustand bleibt wie er ist
                
        }
    
    }
    else
    { // Logik nicht aktiv
      // nichts machen
    
    }
    KNX: IPS @ Raspberry Pi3 Unlimited
    IPSStudio - Collibrico - Sonos - Alexa - ekey - Synology NAS - Reolink - Vaillant LWP + KWL

  2. #2
    Registriert seit
    Feb 2017
    Beiträge
    1,721

    Ich vermute mal das Skript wird über Ereignisse ausgeführt. Dann kannst du dort die Zeitgrenzen als Erweiterte Bedingungen hinzufügen. Dein "LogikAktiv" kannst du auch darüber einstellen.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 10.11.19, 10:20
  2. Script nur in Bestimmten monaten Ausführen
    Von tom376 im Forum Skripte, PHP, SQL
    Antworten: 17
    Letzter Beitrag: 17.05.18, 12:05
  3. Script Nur in einer bestimmten Zeit ausführen
    Von Kalikola im Forum Skripte, PHP, SQL
    Antworten: 10
    Letzter Beitrag: 20.09.12, 22:14
  4. Skript aus Skript heraus starten und dessen Ende Abwarten
    Von ChristianL im Forum Skripte, PHP, SQL
    Antworten: 9
    Letzter Beitrag: 14.06.12, 11:09
  5. [Semaphore] Skript nur ausführen...
    Von steiner im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 65
    Letzter Beitrag: 21.11.07, 13:17