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

    Standard Ein Skript durch ein Skript erstellen lassen

    PHP-Code:
    <?
    /* Beim Skript-Inhalt dürfen vorne keine Leerzeichen sein,
    die werden sonst mit in das Ziel-Skript geschrieben!

    Das Ziel-Skript könnte dann über den Namen an anderer Stelle eingebunden werden
    z.B. mit:    include 'TestSkript.ips.php';
    */

    $ZielSkript_Name "TestSkript";
    $ParentID $_IPS['SELF'];

    $Script_ID = @IPS_GetScriptIDByName($ZielSkript_Name$ParentID);


    if (
    $Script_ID === false) {
        
    fopen("$ZielSkript_Name.ips.php","w");
        
    $Script_Path "$ZielSkript_Name.ips.php";
        
    $Script_ID IPS_CreateScript(0);
        
    $Script IPS_GetScript($Script_ID);
        
    unlink(IPS_GetKernelDir() . '/scripts/' $Script['ScriptFile']);
        
    IPS_SetScriptFile($Script_ID$Script_Path);
       
    IPS_SetParent($Script_ID$ParentID);
        
    IPS_SetName($Script_ID$ZielSkript_Name);
        
    $Script_Inhalt =
    '<?
    // Hier steht der Inhalt vom Ziel-Skript
    echo "Ich bin ein neues Skript!";
    ?>'
    ;
    IPS_SetScriptContent($Script_ID$Script_Inhalt);
    }
    else {
        echo 
    "Das Skript mit dem Namen '$ZielSkript_Name' existiert bereits!";
    }
    ?>
    Geändert von Bayaro (18.07.15 um 10:36 Uhr)

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

    Standard Skript(e) zum Sonnenaufgang und/oder Sonnenuntergang ausführen lassen (per Timer)

    PHP-Code:
    <?
    // Koordination seines Wohnortes eintragen  (kann man z.B. hier ermitteln > http://www.erlebnis-tipps.de/getLatLng.php)
    $latitude 50.53;       // Breitengrad
    $longitude 12.29;    // Längengrad

    // Skripte eintragen, welche bei Sonnenaufgang und/oder Sonnenuntergang ausgeführt werden sollen
    $Scripte_Sonnenaufgang = array(1111122222);
    $Scripte_Sonnenuntergang = array(222223333355555);



    /*** AB HIER NICHTS MEHR ÄNDERN ***/
    $timestamp time();
    $Sonnenaufgang date_sunrise($timestampSUNFUNCS_RET_TIMESTAMP$latitude$longitude90+50/60date("O")/100);
    $Sonnenuntergang date_sunset($timestampSUNFUNCS_RET_TIMESTAMP$latitude$longitude90+50/60date("O")/100);

    $Sonnenaufgang_Stunde = (int)date("G"$Sonnenaufgang);
    $Sonnenaufgang_Minute = (int)date("i"$Sonnenaufgang);

    $Sonnenuntergang_Stunde = (int)date("H"$Sonnenuntergang);
    $Sonnenuntergang_Minute = (int)date("i"$Sonnenuntergang);


    // Timer unter den jeweiligen Skripten erstellen
    foreach ($Scripte_Sonnenaufgang as $ScriptID_Sonnenaufgang) {
        
    SetTimerByName_UhrzeitStundeMinute($ScriptID_Sonnenaufgang"EVENT_Sonnenaufgang"$Sonnenaufgang_Stunde$Sonnenaufgang_Minute);
    }

    foreach (
    $Scripte_Sonnenuntergang as $ScriptID_Sonnenuntergang) {
        
    SetTimerByName_UhrzeitStundeMinute($ScriptID_Sonnenuntergang"EVENT_Sonnenuntergang"$Sonnenuntergang_Stunde$Sonnenuntergang_Minute);
    }


    // Skript jede Nacht um 0.05 Uhr starten, damit die Timer für Sonnenaufgang/-untergang aktualisiert werden
    SetTimerByName_UhrzeitStundeMinute($_IPS['SELF'], "EVENT_ZeitenUpdate"05);



    function 
    SetTimerByName_UhrzeitStundeMinute($parentID$name$Stunde$Minute) {
       
    $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']);
          echo 
    $eid."\n";
          echo 
    $Stunde."\n";
          echo 
    $Minute."\n";
           
    IPS_SetEventCyclicTimeFrom($eid$Stunde$Minute0);
           
    IPS_SetEventActive($eidtrue);
           return 
    $eid;
        }
        else {
           
    IPS_SetEventCyclicTimeFrom($eid$Stunde$Minute0);  // Uhrzeit aktualisieren
        
    }
    }
    ?>
    Geändert von Bayaro (18.07.15 um 12:52 Uhr)

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

    Standard Variablenprofil durch ein Skript erstellen lassen

    PHP-Code:
    <?
    /* Weitere Informationen, zu den einzelnen Befehlen, findet ihr in der Doku:
    https://www.symcon.de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/
    */


    if (IPS_VariableProfileExists("Profilname_Bool_Variable") === false) {
       
    //@IPS_DeleteVariableProfile("Profilname_Bool_Variable");  // mit dieser Zeile könnte man ein vorhandenes Profil vorher löschen lassen
        
    IPS_CreateVariableProfile("Profilname_Bool_Variable"0);
        
    IPS_SetVariableProfileAssociation("Profilname_Bool_Variable"0"Offen""", -1);
        
    IPS_SetVariableProfileAssociation("Profilname_Bool_Variable"1"Geschlossen"""0x00FF00);
        
    IPS_SetVariableProfileIcon("Profilname_Bool_Variable""Shutter");
    }


    if ((
    IPS_VariableProfileExists("Profilname_Integer_Variable") === false) {
       
    //@IPS_DeleteVariableProfile("Profilname_Integer_Variable");  // mit dieser Zeile könnte man ein vorhandenes Profil vorher löschen lassen
        
    IPS_CreateVariableProfile("Profilname_Integer_Variable"1);
        
    IPS_SetVariableProfileValues("Profilname_Integer_Variable"01001);
        
    IPS_SetVariableProfileText("Profilname_Integer_Variable""""%");
        
    IPS_SetVariableProfileIcon("Profilname_Integer_Variable""Intensity");
    }


    if (
    IPS_VariableProfileExists("Profilname_Float_Variable") === false) {
       
    //@IPS_DeleteVariableProfile("Profilname_Float_Variable");  // mit dieser Zeile könnte man ein vorhandenes Profil vorher löschen lassen
        
    IPS_CreateVariableProfile("Profilname_Float_Variable"2);
        
    IPS_SetVariableProfileDigits("Profilname_Float_Variable"1);
        
    IPS_SetVariableProfileValues("Profilname_Float_Variable"5300.5);
        
    IPS_SetVariableProfileText("Profilname_Float_Variable""""°C");
        
    IPS_SetVariableProfileIcon("Profilname_Float_Variable""Temperature");
    }
    ?>

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

    Standard Variablen ein (neues) Actionskript durch ein Skript zuweisen lassen

    PHP-Code:
    <?
    // Hier die Variablen-ID(s) der Variable(n) eintragen, welche das Actionskript zugewiesen bekommen soll(en)
    $VariablenArray = array(11111,22222,33333,44444);

    // Hier die Skript-ID eintragen, welches die Variable(n) als Actionskript zugewiesen bekommen soll(en)
    $ActionSkript_ID 12345;


    Variablen_NeuesActionscriptZuweisen($VariablenArray$ActionSkript_ID);


    function 
    Variablen_NeuesActionscriptZuweisen($VariablenArray$ActionSkript_ID) {
        foreach (
    $VariablenArray as $VariablenID) {
           
    IPS_SetVariableCustomAction($VariablenID$ActionSkript_ID);
        }
    }
    ?>

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

    Standard Switch - Case (Eine Alternative zur IF-Abfrage)

    PHP-Code:
    <?
    $Test_String 
    "Montag";
    //$Test_String = "Donnerstag";

    switch ($Test_String) {
        case 
    "Montag":
           echo 
    "Heute ist Montag\n";
           break;
           
        case 
    "Dienstag":
           echo 
    "Heute ist Dienstag\n";
           break;
           
        case 
    "Mittwoch":
           echo 
    "Heute ist Mittwoch\n";
           break;
        
        case 
    "Donnerstag":
           echo 
    "Heute ist Donnerstag\n";
           break;
        
        case 
    "Freitag":
           echo 
    "Heute ist Freitag\n";
           break;
        
        case 
    "Samstag":
           echo 
    "Heute ist Samstag\n";
           break;
        
        case 
    "Sonntag":
           echo 
    "Heute ist Sonntag\n";
           break;
    }




    $Test_Zahl 50;
    //$Test_Zahl = 100;

    switch ($Test_Zahl) {
        case 
    0:
           echo 
    "Die Zahl ist 0\n";
           break;

        case 
    50:
           echo 
    "Die Zahl ist 50\n";
           break;

        case 
    100:
           echo 
    "Die Zahl ist 100\n";
           break;
    }




    $Test_Zahl 40;
    //$Test_Zahl = 70;

    switch ($Test_Zahl) {
        case (
    $Test_Zahl 60):
           echo 
    "Die Zahl ist kleiner als 50\n";
           break;

        case (
    $Test_Zahl >= 60):
           echo 
    "Die Zahl ist größer oder gleich 60\n";
           break;
    }

    ?>

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

    Standard Überprüfen von Variablen auf Status (z.B. offene Fenster oder eingeschaltete Lampen)

    Weitere Skripte zu dem Thema gibt es hier:
    Überprüfen, ob ein Fenster geöffnet ist (via Links)
    Fensterstatus abfragen und in String schachteln


    PHP-Code:
    <?
    // Hier die ID(s) der Variable(n) eintragen, welche überprüft werden soll
    $VariablenArray = array(11111,22222,33333,44444);



    $Status false;
    foreach(
    $VariablenArray as $Var_ID) {
        if(
    GetValue($Var_ID) === true) {
           
    $Status true;
        }
        break;
    }
    echo 
    "Mindestens eine Variable hat den Status TRUE"."\n\n";




    $Status false;
    $Counter 0;
    foreach(
    $VariablenArray as $Var_ID) {
        if(
    GetValue($Var_ID) === true) {
           
    $Status true;
        }
        
    $Counter++;
    }
    echo 
    "$Counter Variable(n) hat(haben) den Status TRUE"."\n\n";




    $Status false;
    foreach(
    $VariablenArray as $Var_ID) {
        if(
    GetValue($Var_ID) === true) {
           
    $Status true;
           
    $TRUE_Array[] = $Var_ID;
        }
    }
    $VariablenListeMitStatusTRUE implode(",",$TRUE_Array);
    echo 
    "Folgende Variablen haben den Status TRUE:"."\n";
    echo 
    $VariablenListeMitStatusTRUE
    ?>
    Geändert von Bayaro (18.07.15 um 14:09 Uhr)

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

    Standard HomeMatic - Mehrere Aktoren (Lampen, Geräte, ...) ein-/ausschalten (z.B. bei ALL OFF)

    PHP-Code:
    <?
    // Hier die Instanz-IDs der Aktoren (Lampen, Geräte, ...) eintragen, welche ein-/ausgeschaltet werden sollen
    $Aktoren_Array = array(11111,22222,33333,44444,55555);



    // EINSCHALTEN der Aktoren
    foreach ($Aktoren_Array as $HM_InstanzID) {
        
    HM_WriteValueBoolean($HM_InstanzID"STATE"true);
        
    IPS_Sleep(300); // zwischen den Schaltvorgängen einen kleinen Moment warten
    }


    // AUSSCHALTEN der Aktoren
    foreach ($Aktoren_Array as $HM_InstanzID) {
        
    HM_WriteValueBoolean($HM_InstanzID"STATE"false);
        
    IPS_Sleep(300); // zwischen den Schaltvorgängen einen kleinen Moment warten
    }






    // Nur Aktoren ausschalten, die gerade eingeschaltet sind
    foreach($Aktoren_Array as $HM_InstanzID) {
        
    $STATE_ID IPS_GetObjectIDByIdent("STATE"$HM_InstanzID);
        if(
    GetValue($STATE_ID) === true) {
           
    $EingeschalteteAktoren_Array[] = $HM_InstanzID;
        }
    }

    // Wenn eingeschaltete Aktoren gefunden wurden, dann werden diese jetzt ausgeschaltet
    if (isset($EingeschalteteAktoren_Array)) {
        foreach (
    $EingeschalteteAktoren_Array as $HM_InstanzID) {
            
    HM_WriteValueBoolean($HM_InstanzID"STATE"false);
            
    IPS_Sleep(300); // zwischen den Schaltvorgängen einen kleinen Moment warten
        
    }
    }
    ?>
    Geändert von Bayaro (02.12.15 um 21:16 Uhr)

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

    Standard Z-Wave - Mehrere Aktoren (Lampen, Geräte, ...) ein-/ausschalten (z.B. bei ALL OFF)

    PHP-Code:
    <?
    // Hier die Instanz-IDs der Aktoren (Lampen, Geräte, ...) eintragen, welche ein-/ausgeschaltet werden sollen
    $Aktoren_Array = array(11111,22222,33333,44444,55555);



    // EINSCHALTEN der Aktoren
    foreach ($Aktoren_Array as $ZW_InstanzID) {
        
    ZW_SwitchMode($ZW_InstanzIDtrue);
        
    IPS_Sleep(300); // zwischen den Schaltvorgängen einen kleinen Moment warten
    }


    // AUSSCHALTEN der Aktoren
    foreach ($Aktoren_Array as $ZW_InstanzID) {
        
    ZW_SwitchMode($ZW_InstanzIDfalse);
        
    IPS_Sleep(300); // zwischen den Schaltvorgängen einen kleinen Moment warten
    }






    // Nur Aktoren ausschalten, die gerade eingeschaltet sind
    foreach($Aktoren_Array as $ZW_InstanzID) {
        
    $Status_ID IPS_GetObjectIDByIdent("StatusVariable"$ZW_InstanzID);
        if(
    GetValue($Status_ID) === true) {
           
    $EingeschalteteAktoren_Array[] = $ZW_InstanzID;
        }
    }

    // Wenn eingeschaltete Aktoren gefunden wurden, dann werden diese jetzt ausgeschaltet
    if (isset($EingeschalteteAktoren_Array)) {
        foreach (
    $EingeschalteteAktoren_Array as $ZW_InstanzID) {
            
    ZW_SwitchMode($ZW_InstanzIDfalse);
            
    IPS_Sleep(300); // zwischen den Schaltvorgängen einen kleinen Moment warten
        
    }
    }
    ?>
    Geändert von Bayaro (02.12.15 um 21:16 Uhr)

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

    Standard Z-Wave - Eine Lampe langsam auf eine bestimmte Helligkeit dimmen

    PHP-Code:
    <?
    $ZW_InstanzID 
    12345;  // Die Instanz-ID des Z-Wave Dimmers
    $ZielHelligkeit 100;          // Die Helligkeit, die die Lampe am Ende haben soll (1-100)
    $Intervall 3;                        // Intervall in dem das Skript aufgerufen und die Lampe heller gedimmt wird
    $Schrittweite 10;              // Schrittweite in der die Helligkeit, pro Durchlauf, erhöht werden soll


    if ($_IPS['SENDER'] != "TimerEvent") {
        
    $ZW_Intensity_ID IPS_GetVariableIDByName("Intensity"$ZW_InstanzID);
        
    $AktuelleHelligkeit GetValue($ZW_Intensity_ID);
        if (
    $AktuelleHelligkeit $ZielHelligkeit) {
            
    IPS_SetScriptTimer($_IPS['SELF'], $Intervall);
        }
    }
    else {
       
    $ZW_Intensity_ID IPS_GetVariableIDByName("Intensity"$ZW_InstanzID);
        
    $AktuelleHelligkeit GetValue($ZW_Intensity_ID);
          
    $DimWert $AktuelleHelligkeit $Schrittweite;

        if (
    $DimWert >= $ZielHelligkeit) {
           
    IPS_SetScriptTimer($_IPS['SELF'], 0); // Ziel-Helligkeit wurde erreicht > Skript-Timer deaktivieren
           
    ZW_DimSet($ZW_InstanzID$ZielHelligkeit);
        }
        else {
            
    ZW_DimSet($ZW_InstanzID$DimWert);
        }
    }
    ?>

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

    Standard Eine Nachricht an eine Dreambox senden und auf dem TV/Beamer anzeigen lassen

    PHP-Code:
    <?
    $DreamboxIP 
    "192.168.2.20";  // Hier die IP eurer Dreambox eintragen
    $Nachricht "Ich bin ein Test!";   // Text der Nachricht die angezeigt werden soll
    $Anzeigedauer 5;                         // X Sekunden - so lange wird die Nachricht auf TV/Beamer angezeigt


    DreamboxNachricht($DreamboxIP$Nachricht$Anzeigedauer);


    function 
    DreamboxNachricht($DreamboxIP$Nachricht$Anzeigedauer) {
        
    $message utf8_encode($Nachricht);
        
    $message urlencode($message);
        
    $result = @SYS_GetURLContent("http://".$DreamboxIP."/web/message?text=".$message."&type=1&timeout=$Anzeigedauer");
        if (
    $result == true) {
           echo 
    "Nachricht wurde gesendet!\n";
        }
        else {
           echo 
    "Nachricht wurde nicht gesendet!\n";
        }
    }
    ?>
    >> Modul verfügbar >> Enigma2BY - Modul für Receiver mit Enigma2 >> ab IPS 4.0
    Geändert von Bayaro (15.12.15 um 09:41 Uhr)

Ä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