+ Antworten
Seite 2 von 8 ErsteErste 1 2 3 4 ... LetzteLetzte
Ergebnis 11 bis 20 von 73
  1. #11
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Typ einer IPS-Variable herausfinden (Boolean, Integer, Float, String)

    PHP-Code:
    <?
    $Variablen_ID 
    12345;  // Hier die Objekt-ID der Variable eintragen
    $Variable_Daten IPS_GetVariable($Variablen_ID);

    // 0 = Bool, 1 = Integer, 2 = Float, 3 = String
    $Variablen_Typ $Variable_Daten['VariableValue']['ValueType'];

    switch(
    $Variablen_Typ) {
        case 
    0:
           echo 
    "Die Variable ist vom Typ > BOOLEAN"."\n";
           break;
        case 
    1:
           echo 
    "Die Variable ist vom Typ > INTEGER"."\n";
           break;
       case 
    2:
           echo 
    "Die Variable ist vom Typ > FLOAT"."\n";
           break;
       case 
    3:
           echo 
    "Die Variable ist vom Typ > STRING"."\n";
           break;
    }
    ?>

  2. #12
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Zeiten um einen Zeitpunkt herum (z.B. für einen Vorlauf/Nachlauf)

    PHP-Code:
    <?
    //$mittelpunkt = time();  // Aktuelle zeit als Mittelpunkt
    $mittelpunkt mktime(2000date("m"), date("d"), date("Y"));  // 20 Uhr als Mittepunkt

    $differenzzeit 2;  // 2 Stunden Vorlauf und Nachlauf um deine Mittelpunkt Ausgangszeit

    $vorlaufstring "-".$differenzzeit." hour";
    $nachlaufstring "+".$differenzzeit." hour";
    $vorlauf strtotime($vorlaufstring$mittelpunkt);
    $nachlauf strtotime($nachlaufstring$mittelpunkt);

    echo 
    $mittelpunkt."\n"// Unix-Timestamp
    echo $vorlauf."\n";     // Unix-Timestamp
    echo $nachlauf."\n";    // Unix-Timestamp

    echo "Vorlauf-Event: ".date('d.m.Y H:i:s'$vorlauf)."\n";
    echo 
    "Mittelpunkt: ".date('d.m.Y H:i:s'$mittelpunkt)."\n";
    echo 
    "Nachlauf-Event: ".date('d.m.Y H:i:s'$nachlauf)."\n";
    ?>

  3. #13
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Wochentage + Werktag und Wochenende

    PHP-Code:
    <?
    $Tag 
    Date("w");
    $Tag1 = array("7","1","2","3","4","5","6");
    echo 
    "Aktueller Tag in der Woche = "$Tag1[$Tag]."\n";

    if (
    $Tag1[$Tag] == 1) {
        echo 
    "Es ist Montag"."\n";
    }
    if (
    $Tag1[$Tag] == 2) {
        echo 
    "Es ist Dienstag"."\n";
    }
    if (
    $Tag1[$Tag] == 3) {
        echo 
    "Es ist Mittwoch"."\n";
    }
    if (
    $Tag1[$Tag] == 4) {
        echo 
    "Es ist Donnerstag"."\n";
    }
    if (
    $Tag1[$Tag] == 5) {
        echo 
    "Es ist Freitag"."\n";
    }
    if (
    $Tag1[$Tag] == 6) {
        echo 
    "Es ist Samstag"."\n";
    }
    if (
    $Tag1[$Tag] == 7) {
        echo 
    "Es ist Sonntag"."\n";
    }


    if (((
    date("H") > 14) OR (date("H") <= 2)) AND (($Tag1[$Tag] >= 1) AND ($Tag1[$Tag] <= 5))) {
        echo 
    "Es ist ein Werktag (Montag bis Freitag) und es ist zwischen 14 und 2 Uhr";
    }
    elseif ((
    date("H") <= 2) AND ($Tag1[$Tag] >= 6)) {
        echo 
    "Es ist Wochenende (Samstag oder Sonntag) und vor 2 Uhr"."\n";
    }
    ?>

  4. #14
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Z-Wave Aktor/Device // Parameter auslesen per Script

    PHP-Code:
    <?
    // Parameter eintragen, dann Gerät aufwecken, falls mit Batterie betrieben, und dann das Skript ausführen

    $ParameterListe = array(1,2,3); // hier die gewünschten Parameter eintragen, die ausgegeben werden sollen
    $InstanzID 12345// Hier die Instanz-ID des Z-Wave Gerät eintragen

    foreach ($ParameterListe as $Parameter) {
        
    $Wert = @ZW_ConfigurationGetValue($InstanzID$Parameter);
        echo 
    "Z-WAVE ABFRAGE // Parameter #$Parameter = $Wert\n";
        
    IPS_Sleep(250);
    }
    ?>

  5. #15
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Z-Wave Aktor/Device // Parameter setzen per Script

    PHP-Code:
    <?
    // Parameter + Wert eintragen, dann den Aktor aufwecken (falls mit Batterie betrieben), kurz danach das Skript ausführen

    $ParameterListe = array(1,2,3,4,5,6);   // Hier den/die gewünschten Parameter eintragen
    $WerteListe = array(99,1,10,55,10,60);  // Hier den/die zugehörigen Werte eintragen
    $InstanzID 12345// Hier die Instanz-ID des Z-Wave Aktor eintragen

    $i 0;
    foreach (
    $ParameterListe as $ParameterX) {
        
    $WertX $WerteListe[$i];
        
    $result = @ZW_ConfigurationSetValue($InstanzID$ParameterX$WertX);
        if (
    $result === true) {
            echo 
    "Parameter #$ParameterX wurde erfolgreich auf den Wert -$WertX- gesetzt!"."\n";
        }
        else {
           echo 
    "Parameter #$ParameterX - FEHLER - Der Wert konnte nicht gesetzt werden!\n";
        }
        
    $i++;
        
    IPS_Sleep(300);
    }
    ?>
    Geändert von Bayaro (14.10.15 um 07:34 Uhr)

  6. #16
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Sekunden umrechnen (in Minuten, Stunden und Tage)

    PHP-Code:
    <?
    $Sekunden 
    199999;
    $Ausgabe SekundenUmrechnen($Sekunden);

    echo 
    "Tage: " $Ausgabe['tag'] . "\n";
    echo 
    "Stunden: " $Ausgabe['std'] . "\n";
    echo 
    "Minuten: " $Ausgabe['min'] . "\n";



    function 
    SekundenUmrechnen($Sekunden){
       
    $Tage  floor($Sekunden / (3600*24));
       
    $Stunden  floor($Sekunden 3600 24);
       
    $Minuten  floor($Sekunden 60 60);
       return array(
    "min"=>$Minuten,"std"=>$Stunden,"tag"=>$Tage);
    }
    ?>

  7. #17
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Event(s) herausfinden, die auf eine Variable "zeigen/reagieren"

    PHP-Code:
    <?
    $Such_ID 
    12345// Objekt-ID der Variable auf die ein Event "zielt/lauscht/reagiert"
    $Ereignisse IPS_GetEventListByType(0); // Alle "ausgelösten Ereignisse"

    foreach ($Ereignisse as $Ereignis) {
       if (
    IPS_GetEvent($Ereignis)['TriggerVariableID'] == $Such_ID) {
          
    $ParentID IPS_GetParent($Ereignis);
          
    $ParentName IPS_GetName($ParentID);
            echo 
    "Variable gefunden in Event-ID: ".$Ereignis." // Parent Objekt: ".$ParentName."\n";
       }
    }
    ?>

  8. #18
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Variable durch ein Skript erstellen/anlegen

    PHP-Code:
    <?
    /*
    Variablen-Typ
    0    Legt eine Variable vom Typ Boolean an
    1    Legt eine Variable vom Typ Integer an
    2    Legt eine Variable vom Typ Float an
    3    Legt eine Variable vom Typ String an
    */

    $Variablen_ID CreateVariableByName($_IPS['SELF'], "Test-Variable"1"""");  // Legt eine Integer Variable mit Namen "Test-Variable" unter diesem Skript an (ohne Variablenprofil oder Action-Skript)
    echo "Die erstellte Variable hat die Objekt-ID $Variablen_ID";



    function 
    CreateVariableByName($ParentID$VarName$VarTyp$VarProfile ""$VarActionScript "") {
        
    $VarID = @IPS_GetVariableIDByName($VarName$ParentID);
       if(
    $VarID === false) {
            
    $VarID IPS_CreateVariable($VarTyp);
          
    IPS_SetParent($VarID$ParentID);
          
    IPS_SetName($VarID$VarName);
          
    IPS_SetInfo($VarID"This variable was created by script #".$_IPS["SELF"]);
          if(
    $VarProfile !== "") {
                
    IPS_SetVariableCustomProfile($VarID$VarProfile);
            }
            if(
    $VarActionScript !== "") {
                
    IPS_SetVariableCustomAction($VarID$VarActionScript);
            }
        }
       return 
    $VarID;
    }
    ?>
    Geändert von Bayaro (18.07.15 um 09:45 Uhr)

  9. #19
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Trigger-Event durch ein Skript erstellen/anlegen

    PHP-Code:
    <?
    /*
    Event-Typ
    0    Bei Variablenaktualisierung
    1    Bei Variablenänderung
    2    Bei Grenzüberschreitung. Grenzwert wird über IPS_SetEventTriggerValue festgelegt
    3    Bei Grenzunterschreitung. Grenzwert wird über IPS_SetEventTriggerValue festgelegt
    4    Bei bestimmtem Wert. Wert wird über IPS_SetEventTriggerValue festgelegt
    */

    CreateEventTrigger("Test-Event"12345$_IPS['SELF'], 1);  // Legt ein Trigger-Event (bei Variablenänderung) für die Variable mit der Objekt-ID 12345 an (damit dieses Skript hier ausgeführt wird, wenn die Variable sich ändert)



    function CreateEventTrigger($EventName$VarID$ParentID$EventTyp) {
        
    $eid = @IPS_GetEventIDByName($EventName$ParentID);
        if (
    is_numeric($eid) == false) {
            
    $eid IPS_CreateEvent(0);
            
    IPS_SetEventTrigger($eid$EventTyp$VarID);
            
    IPS_SetParent($eid$ParentID);
            
    IPS_SetName($eid$EventName);
            
    IPS_SetEventActive($eidtrue);
        }
    }
    ?>
    Geändert von Bayaro (18.07.15 um 09:54 Uhr)

  10. #20
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,080

    Standard Timer per Skript erstellen (Aufruf in/alle X Sekunden // inkl. deaktivieren d. Timer)

    PHP-Code:
    <?
    SetTimerByName_InSekunden
    ($_IPS['SELF'], "TimerIn5Sekunden"5);  // Legt einen Timer für dieses Skript an, welcher das Skript in 5 Sekunden ausführt

    // Der Timer würde das Skript alle 5 Sekunden erneut aufrufen, bis man den Timer, z.B. wie folgt, wieder deaktiviert
    if ($_IPS['SENDER'] == "TimerEvent") {
       
    SetTimerByName_InSekunden($_IPS['SELF'], "TimerIn5Sekunden"false);
    }



    function 
    SetTimerByName_InSekunden($parentID$name$Sekunden) {
        Global ${
    $_IPS['SELF']};
       
    $eid = @IPS_GetEventIDByName($name$parentID);
       if(
    $eid === false) {
           
    $eid IPS_CreateEvent(1);
          
    IPS_SetParent($eid$parentID);
          
    IPS_SetName($eid$name);
          
    IPS_SetInfo($eid"this timer was created by script #".$_IPS['SELF']);
       }
       if (
    $Sekunden === false) {
          
    IPS_SetEventActive($eidfalse);
           return 
    $eid;
       }
       else {
           
    IPS_SetEventCyclicTimeFrom($eidintval(date("H"time() + $Sekunden)), intval(date("i"time() + $Sekunden)), intval(date("s"time() + $Sekunden)));
           
    IPS_SetEventActive($eidtrue);
           return 
    $eid;
        }
    }
    ?>

Ähnliche Themen

  1. IP-Symcon - Wie kann ich... 2.0 (Ideen & Wünsche)
    Von Bayaro im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 33
    Letzter Beitrag: 01.01.18, 20:35
  2. Ich kann keine neue Version mehr installieren.
    Von egonkernien im Forum Allgemeine Diskussion
    Antworten: 14
    Letzter Beitrag: 06.09.15, 18:14
  3. Wie kann ich Somfy über IPS steuern?
    Von mockpa im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 3
    Letzter Beitrag: 21.07.15, 16:26
  4. Wie kann ich falsch aufgezeichnete Werte korrigieren?
    Von Uhlhorn im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 4
    Letzter Beitrag: 07.05.15, 22:55
  5. Antworten: 10
    Letzter Beitrag: 07.05.15, 21:28

Stichworte