+ Antworten
Seite 5 von 8 ErsteErste ... 3 4 5 6 7 ... LetzteLetzte
Ergebnis 41 bis 50 von 73
  1. #41
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,302

    Standard Waschmaschine/Wäschetrockner/Spülmaschine/... - Maschine aktiv/inaktiv? Mit Push-Info

    Variable "Aktiv (true/false)" und Event-Trigger werden automatisch angelegt. Dazu muss das Skript einmal von Hand ausgeführt werden, danach läuft alles automatisch.

    Dazu muss der Grenzwert herausgefunden werden, dazu am besten einen Wasch-/Trockenvorgang loggen und die Werte, besonders am Ende, beobachten. Dazu auf Pausen während dem Vorgang achten und gegebenenfalls den Timer noch anpassen.

    Um dieses Skript verwenden zu können, muss die Waschmaschine/der Wäschetrockner an einem Leistungsmesser angeschlossen sein.
    PHP-Code:
    <?
    $MaschinenPower 
    12345;  // Hier die Variable mit Leitungsmessung eintragen (WATT, AMPERE)
    $Power_Grenzwert 3;     // Hier den Grenzwert eintragen, bei dem bei Über-/Unterschreitung das Skript ausgeführt werden soll
    $PushSenden true;       // TRUE = Push-Nachricht wird gesendet, FALSE = Push-Nachricht wird nicht gesendet (gültige IPS-Subscription notwendig!!)
    $PushNachrichtTitel "WASCHMASCHINE";     // Hier den Titel eintragen, der per Push versendet wird
    $PushNachrichtMessage "...ist FERTIG!";  // Hier den Text eintragen, der per Push versendet wird
    $WF_ID 11111;           // ID vom WebFront zum Push-Versand
    $TimerDauer 120;       // X Sekunden nach Grenzunterschreitung, wenn dazwischen keine Grenzüberschreitung war, wird das Ende vom Wasch-/Trockenvorgang gemeldet



    /****** AB HIER NICHTS MEHR ÄNDERN ******/
    $MaschineAktiv CreateVariableByName($_IPS['SELF'], "Aktiv"0"""");  // Bool-Variable (TRUE = Maschine AKTIV, FALSE = Maschine INAKTIV)


    if ((GetValueFloat($MaschinenPower) < $Power_Grenzwert) AND (GetValue($MaschineAktiv) == true))  {
       
    IPS_SetScriptTimer($_IPS['SELF'], $TimerDauer);
    }

    if (
    GetValueFloat($MaschinenPower) > $Power_Grenzwert)  {
        
    SetValue($MaschineAktivtrue);
        
    IPS_SetScriptTimer($_IPS['SELF'], 0);
    }


    // Timer-Event
    if($IPS_SENDER == "TimerEvent") {
        if (
    GetValueFloat($MaschinenPower) < $Power_Grenzwert)  {
           
    IPS_SetScriptTimer($_IPS['SELF'], 0);
            
    //PUSH-Nachricht senden
            
    if ($PushSenden == true) {
                
    WFC_PushNotification($WF_ID$PushNachrichtTitel$PushNachrichtMessage""0);
            }
              
    // Maschine auf inaktiv setzen
              
    SetValue($MaschineAktivfalse);
        }
    }


    if(
    $_IPS['SENDER'] == "Execute")  {
        
    $Event1_ID CreateEventTrigger("EVENT_Power_Grenzueberschreitung"$MaschinenPower$_IPS['SELF'], 2);
        
    $Event2_ID CreateEventTrigger("EVENT_Power_Grenzunterschreitung"$MaschinenPower$_IPS['SELF'], 3);
        
    IPS_Sleep(1000);
        
    IPS_SetEventTriggerSubsequentExecution($Event1_IDfalse);
        
    IPS_SetEventTriggerSubsequentExecution($Event2_IDfalse);
    }


    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;
    }


    function 
    CreateEventTrigger($EventName$VarID$ParentID$EventTyp) {
         Global 
    $Power_Grenzwert;
        
    $eid = @IPS_GetEventIDByName($EventName$ParentID);
        if (
    is_numeric($eid) == false) {
            
    $eid IPS_CreateEvent(0);
            
    IPS_SetEventTrigger($eid$EventTyp$VarID);
            
    IPS_SetEventTriggerValue($eid$Power_Grenzwert);
            
    IPS_SetParent($eid$ParentID);
            
    IPS_SetName($eid$EventName);
            
    IPS_SetEventActive($eidtrue);
        }
         return 
    $eid;
    }
    ?>

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

    Standard DOM XPath (Auslesen/Parsen von Webseiten)

    Beispiel am Auslesen der aktuellen Beiträge im IPS Forum, Bereich "Neuigkeiten & Ankündigungen". Am einfachsten findet man den XPath mit dem Chrome Browser heraus. Einfach rechte Maustaste auf ein Element und dann auf "Element untersuchen". Unten auf den markierten Teil erneut mit der rechten Maustaste klicken und dann auf "Copy XPath".
    Gibt aber auch ein AddOn für den Firefox und allgemein für Browser weitere AddOns.

    PHP-Code:
    <?
    //error_reporting(E_ERROR | E_WARNING | E_PARSE);

    $curl curl_init('https://www.symcon.de/forum/');
    curl_setopt($curlCURLOPT_RETURNTRANSFERTRUE);
    curl_setopt($curlCURLOPT_SSL_VERIFYPEER0);
    curl_setopt($curlCURLOPT_SSL_VERIFYHOST0);
    curl_setopt($curlCURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
    $page curl_exec($curl);
    //print_r($page);


    if(curl_errno($curl)) // Error-Check
    {
        echo 
    'Scraper error: ' curl_error($curl);
        exit;
    }
    curl_close($curl);

    $DOM = new DOMDocument;
    //print_r($DOM);


    libxml_use_internal_errors(true);

    if (!
    $DOM->loadHTML($page))
        {
            
    $errors="";
            foreach (
    libxml_get_errors() as $error)  {
                
    $errors.=$error->message."<br/>";
            }
            
    libxml_clear_errors();
            print 
    "libxml errors:<br>$errors";
            return;
        }
    $xpath = new DOMXPath($DOM);


    // Anzahl der Themen im IPS Forum unter "Neugikeiten & Ankündigungen"
    $content $xpath->query('.//*[@id="forum2"]/div/ul[2]/li[1]');
    foreach (
    $content as $entry1) {
        
    $output[] = $entry1->nodeValue;
    }
    //print_r($output);

    // Wegschneiden von unnötigen Zeichen
    preg_match_all('!\d+!'$entry1->nodeValue$matches);


    // Ausgabe
    $output_final $matches[0][0];
    echo 
    "Anzahl der Themen: $output_final";
    ?>
    Geändert von Bayaro (29.07.15 um 08:26 Uhr)

  3. #43
    Registriert seit
    Dec 2011
    Ort
    am Ende des Internets
    Beiträge
    330

    Standard Informationen über ein IP-S Objekt

    - In der IP-Symcon-Verwaltungskonsole Ansicht 'Objektbaum' auswählen
    - das betreffende IP-S Objekt anklicken
    - rechte Maustaste -> 'ObjektID kopieren'
    - in Zeile 3 des folgenden Skriptes mit 'CTRL-V' einkopieren (bzw. vorhandenen Nr. überschreiben)
    - Skript 'Ausführen'

    PHP-Code:
    <?php
    // Analysiert das IP-S Objekt mit folgender ObjektID:
    $ObjID 37671  /*[Skripte\Konfiguration\ObjectAnalyse]*/;


    $Objekt IPS_GetObject ($ObjID);
    $ObjektTyp = array ('Kategorie''Instanz''Variable''Skript''Ereignis''Media''Link');
    print( 
    "Object:   $ObjID " . @IPS_GetLocation ($ObjID) . " (ist " $ObjektTyp[$Objekt['ObjectType']] . ')');
    print( 
    "\nParent:   " $Objekt['ParentID'] . ' ' IPS_GetLocation ($Objekt['ParentID']));
    if (
    $Objekt['HasChildren']) {
        print( 
    "\nChildren: ");
        foreach (
    $Objekt['ChildrenIDs'] as $i => $ChID) {
            print( 
    "\n          $ChID " IPS_GetLocation ($ChID));
        }
    }
    print(
    "\n\n1. ObjectInfo:    ");
    print_r ($Objekt);

    switch (
    $Objekt['ObjectType']) {
        case 
    0:
            break;
        case 
    1:
            
    $ModuleType = array ('Kern''I/O''Splitter''Gerät''Konfigurator');
            print(
    "\n2. InstanceInfo (" $ModuleType[IPS_GetInstance ($ObjID)['ModuleInfo']['ModuleType']] . '):     ');
            
    print_r (IPS_GetInstance ($ObjID));
            break;
        case 
    2:
            
    $VariablenTyp = array ('Boolean''Integer''Float''String');
            print(
    "\n2. VariableInfo (" $VariablenTyp[IPS_GetVariable ($ObjID)['VariableValue']['ValueType']] . '):     ');
            
    print_r (IPS_GetVariable ($ObjID));
            
    $Prof IPS_GetVariable ($ObjID)['VariableCustomProfile'];
            if (
    $Prof) {
                print(
    "\n3. CustomProfile '" $Prof "':     ");
                
    print_r (IPS_GetVariableProfile ($Prof));
            }
            
    $Prof IPS_GetVariable ($ObjID)['VariableProfile'];
            if (
    $Prof) {
                print(
    "\n3. VariableProfile '" $Prof "':     ");
                
    print_r (IPS_GetVariableProfile ($Prof));
            }
            print(
    "\n4. Changed:     " strftime ("%d.%m.%y-%X"IPS_GetVariable ($ObjID)['VariableChanged']));
            print(
    "\n5. Updated:     " strftime ("%d.%m.%y-%X"IPS_GetVariable ($ObjID)['VariableUpdated']));
            break;
        case 
    3:
            print(
    "\n2. SkriptInfo:      ");
            
    print_r (IPS_GetScript ($ObjID));
            print(
    "\n3. SkriptName:      " IPS_GetScriptFile ($ObjID));
            if (
    IPS_GetScript ($ObjID)['LastExecute'])
                print(
    "\n4. LastExecute:     " strftime ("%d.%m.%y-%X"IPS_GetScript ($ObjID)['LastExecute']));
            break;
        case 
    4:
            
    $EventTyp = array ('getriggert''zyklisch''Wochenplan');
            print(
    "\n2. EventInfo (" $EventTyp[IPS_GetEvent ($ObjID)['EventType']] . '):     ');
            
    print_r (IPS_GetEvent ($ObjID));
            print(
    "\n3. LastRun:         " strftime ("%d.%m.%y-%X"IPS_GetEvent ($ObjID)['LastRun']));
            print(
    "\n4. NextRun:         " strftime ("%d.%m.%y-%X"IPS_GetEvent ($ObjID)['NextRun']));
            break;
        case 
    5:
            
    $MedienTyp = array ('Formular''Bild''Ton''Stream''Chart');
            print(
    "\n2. MedienobjektInfo (" $MedienTyp[IPS_GetMedia ($ObjID)['MediaType']] . '):     ');
            
    print_r (IPS_GetMedia ($ObjID));
            if (
    IPS_GetMedia ($ObjID)['LastUpdate'])
                print(
    "\n3. LastUpdate:     " strftime ("%d.%m.%y-%X"IPS_GetMedia ($ObjID)['LastUpdate']));
            break;
        case 
    6:
            print(
    "\n2. LinkInfo:         ");
            
    print_r (IPS_GetLink ($ObjID));
            print( 
    "\n3. Target:   " IPS_GetLink ($ObjID)['TargetID'] . ' ' IPS_GetLocation (IPS_GetLink ($ObjID)['TargetID']));
            break;
        default:
    }
    ?>
    Ergibt z.B.:
    Code:
    Object:   37671 Skripte\Konfiguration\ObjectAnalyse (ist Skript)
    Parent:   45470 Skripte\Konfiguration
    
    1. ObjectInfo:    Array
    (
        [ChildrenIDs] => Array
            (
            )
    
        [HasChildren] => 
        [ObjectIcon] => 
        [ObjectID] => 37671
        [ObjectIdent] => 
        [ObjectInfo] => 
        [ObjectIsHidden] => 
        [ObjectIsReadOnly] => 
        [ObjectName] => ObjectAnalyse
        [ObjectPosition] => 2
        [ObjectSummary] => 
        [ObjectType] => 3
        [ParentID] => 45470
    )
    
    2. SkriptInfo:      Array
    (
        [IsBroken] => 
        [LastExecute] => 1438422139
        [ScriptFile] => ObjectAnalyse.ips.php
        [ScriptID] => 37671
        [ScriptType] => 0
    )
    
    3. SkriptName:      ObjectAnalyse.ips.php
    4. LastExecute:     01.08.15-11:42:19

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

    Standard UNIXtime in DELPHItime umrechnen/umwandeln

    Quelle: settings.xml - "LastUpdated/LastChanged-Value" manuell editieren (by Horst und nancilla)

    PHP-Code:
    <? 
    // Datum und Zeit 

    $tag 13
    $monat 8
    $jahr 2003

    $stunden 15
    $minuten 04
    $sekunden 00


    // Unix-Timestamp 
    $time mktime($stunden,$minuten,$sekunden,$monat,$tag,$jahr); 
    if (!
    date("I",$time)){$gmtplus 3600;}else{$gmtplus 7200;}  // Sommerzeit ? 

    // Delphi-Timestamp (DateTime) 
    $ergebnis round((($time $gmtplus)/ 86400) + 25569,5); 

    // Überprüfung mit Funktion Horst 
    function delphiTStoUnix ($ts

        if (!
    date("I")){$gmtplus 3600;}else{$gmtplus 7200;} 
        
    $result round(($ts 25569) * 86400)-$gmtplus
        
    $result strtotime(gmdate("Y-m-d\\TH:i:s".date("P"time()), $result)); 
        return 
    $result

    $ergebnis_horst date("H:i:s d.m.Y"delphiTStoUnix(str_replace(",""."$ergebnis))); 

    echo 
    "$ergebnis_horst\r\n\r\n"
    echo 
    "$ergebnis\r\n"
    ?>

    by Bayaro:
    PHP-Code:
    <?
    $TestDatum 
    "11.01.2010 12:00";

    $test1 strtotime($TestDatum);
    echo 
    $test1.PHP_EOL;
    $test2 date("d.m.Y H:i"$test1);
    echo 
    $test2.PHP_EOL;

    $test3 UnixToDelphiTime($TestDatum);
    echo 
    $test3;



    function 
    UnixToDelphiTime($unixtime) {
        
    $unixtime strtotime($unixtime);
        
    $delphitime = ($unixtime 86400) + 25569;
        return 
    $delphitime;
    }
    ?>
    Geändert von Bayaro (13.08.15 um 14:13 Uhr)
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

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

    Standard Mittelwert / Median / Mean

    Quelle: Gleitenden Mittelwert oder gleitenden Median berechnen (by bbernhard)
    PHP-Code:
    <?
    $IDArchiveHandler 
    22801 /*your Archive Handler ID*/;
    $varId 37190 /*Var Id you want to examine*/;
    $interval 50/*Timespan in seconds for Mean/Median Calculation*/;
    $default 0/* default value in case no data capturd */

    echo "Mean: ".getMean ($IDArchiveHandler,$varId,$interval,$default);
    echo 
    chr (13). chr (10);
    echo 
    "Median: ".getMedian ($IDArchiveHandler,$varId,$interval,$default);



    function 
    getMean ($IDArchivehandler,$varId,$log_interval,$default) {
    $logData AC_GetLoggedValues ($IDArchivehandler$varIdtime()- $log_interval,time(),-1);
    if (
    count($logData) <1) return $default;
    foreach (
    $logData as $key => $data)
    {
        
    $value[$key] = $data['Value'];
    }
    return 
    array_sum($value)/count($value);
    }

    function 
    getMedian ($IDArchivehandler,$varId,$log_interval,$default) {
    $logData AC_GetLoggedValues ($IDArchivehandler$varIdtime()-$log_interval,time(),-1);
    if (
    count($logData) <1) return $default;
    foreach (
    $logData as $key => $data)
    {
        
    $value[$key] = $data['Value'];
    }
    asort($value);
    return 
    $value[count($value)/2];
    }
    ?>

    Quelle: HomeMatic Funk-Schaltaktor 1fach mit Leistungsmessung - Seite 15 (by Frauenhofer)
    PHP-Code:
    <?
    $archiveID 
    24522 /*[Archiv]*/;
    $objectID DEINE ID ;  // hier deine Steckdose rein der Wert der die Watt oder was auch immer loggt, muss aber ein geloggter wert sein
    $endtime time(); // time() for "now"
    $starttime time()-(5*60); // n für minuten zurück
    $limit 0// kein Limit

    //print_r(AC_GetLoggedValues($archiveID, $objectID, $starttime, $endtime, $limit));
    $buffer AC_GetLoggedValues($archiveID$objectID$starttime$endtime$limit);
    $anzahl 0;
    $summe 0;
    foreach (
    $buffer as $werte){
        
    $wert $werte["Value"];
        
    $anzahl $anzahl +1;
        
    $summe $summe $wert;
    }
    echo 
    "N-Werte: ".$anzahl"\n";
    $mittelw $summe $anzahl;
    echo 
    "Mittelwert: " $mittelw "\n";
    SetValue(10810 /*Steckdose Wama]*/ ,$mittelw);  // in eine Variable speichern wenn du willst
    if ($mittelw 10)
    {
    //tu dies
    echo "test" ;
    }
    ?>
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

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

    Standard Dateinamen (neuste Datei in Ordner auslesen)

    Quelle: PHP Dateinamen für neueste Datei in einem Verzeichnis auslesen (by 1007)

    PHP-Code:
        $dir IPS_GetKernelDir() . "logs\\";
       
    $lastfile '';

        
    $handle opendir$dir );

       if( !
    $handle )
           return 
    false;
        
        while ( ( 
    $file readdir$handle ) ) !== false )
            {
            if( 
    $file != '.' && $file != '..' && is_file $dir.$file ) )
                {
             if( 
    filemtime$dir.$file ) >= filemtime$dir.$lastfile ) )
                    {
                
    $lastfile $file;
                    }
            }

        }

        
    closedir$handle );

        echo 
    "\nNeueste Datei:" $lastfile
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

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

    Standard Doppelte Skript-Ausführung verhindern/unterbinden

    Quelle: Skript-Ausführung (by steiner)
    PHP-Code:
    <?
    // ID von diesem Skript ermitteln
    $event IPS_GetObject($_IPS['SELF']);
    $id $event['ObjectID'];  
    echo 
    "Skript-ID: $id\n";

    $data IPS_GetScript($id);
    // Unix Timestamp des letzten Aufrufs
    // siehe auch:http://www.ip-symcon.de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscript/
    $last_up $data[LastExecute];   
    echo 
    "Letzte Ausführung Unix: $last_up\n";
    // zur Kontrolle
    // siehe auch: http://de.php.net/manual/de/function.date.php
    echo "Letzte Ausführung (His): ".date("H:i:s"$last_up)."\n";

    $deltaT time() - $last_up;
    echo 
    "Letzte Ausführung in sec. : $deltaT\n";

    if (
    $deltaT 60){

        
    // hier folgt ein tolles Skript
        // das nur alle 60 Sekunden ausgeführt werden darf

    }
    ?>


    Quelle: Skript-Ausführung (by HJH)
    PHP-Code:
    <?
    define 
    ("SPERRZEIT"60);                           // Wartezeit (Sekunden) in der das Skript nicht abgearbeitet werden darf 

    switch ($_IPS['SENDER']) 

        case 
    "Variable":                                // Trigger durch Variable 
           
    if (IPS_GetScriptTimer($_IPS['SELF']) == 0
            {                                           
    // Timer läuft nicht, Skript darf ausgeführt werden 
              
    IPS_SetScriptTimer($_IPS['SELF'], SPERRZEIT); // Timer aufziehen und 
                // weitere Anweisungen                  // Skript ausführen 
            

            else                                        
    // Sperrzeit läuft bereits, daher 
                
    return;                                 // Abarbeitung abbrechen 
        
    break; 
         
        case 
    "TimerEvent":                              // Trigger durch Timer 
            
    IPS_SetScriptTimer($_IPS['SELF'], 0);           // Timer wieder löschen 
        
    break; 
    }
    ?>
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

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

    Standard Fehlerhafte Objekte/Skripte aus IPS auslesen und anzeigen

    Quelle: Fehlerhafte Objekte / Skripte auflisten (by Horst)
    PHP-Code:
    <?php
    // -----------------------------------------------------------------------------
    // WebFront-freundliche HTML-Ausgabe aller defekten Instanzen, Skripte und Links
    // -----------------------------------------------------------------------------

    $ContentVariableID 12345;    // Variablen-ID zur Speicherung der Meldung.
                                   // Wert 0 führt zur direkten Ausgabe.

    // -----------------------------------------------------------------------------

    $content '';

    $instanceStatusCodes = array(
        
    100 => 'module base status',
        
    101 => 'module is being created',
        
    102 => 'module created and running',
        
    103 => 'module is being deleted',
        
    104 => 'module is not beeing used',
        
    200 => 'instance error',
        
    201 => 'instance could not be created'
    );

    $errorCount 0;

    $ids IPS_GetInstanceList();
    foreach (
    $ids as $id)
    {
        
    $instance IPS_GetInstance($id);
        if (
    $instance['InstanceStatus'] > 103)
        {
            if (
    $errorCount == 0)
            {
                
    $content .= '<b>Defekte Instanzen:</b><br />'."\r\n";
            }
            
    $errorCount++;
            
    $content .= '<span style="color: '.($instance['InstanceStatus'] >= 200 'red' 'grey').';">#'.$id.': '.IPS_GetLocation($id).': '.$instanceStatusCodes[$instance['InstanceStatus']].'</span><br />'."\r\n";
        }
    }

    if (
    $errorCount 0)
    {
        
    $content .= '<br />'."\r\n";
        
    $errorCount 0;
    }
    $ids IPS_GetScriptList();
    foreach (
    $ids as $id)
    {
        
    $script IPS_GetScript($id);
        if (
    $script['IsBroken'])
        {
            if (
    $errorCount == 0)
            {
                
    $content .= '<b>Defekte Skripte:</b><br />'."\r\n";
            }
            
    $errorCount++;
            
    $content .= '<span style="color: red;">#'.$id.': '.IPS_GetLocation($id).'</span><br />'."\r\n";
        }
    }

    if (
    $errorCount 0)
    {
        
    $content .= '<br />'."\r\n";
        
    $errorCount 0;
    }
    $ids IPS_GetLinkList();
    foreach (
    $ids as $id)
    {
        
    $link IPS_GetLink($id);
        if (!
    IPS_ObjectExists($link['LinkChildID']))
        {
            if (
    $errorCount == 0)
            {
                
    $content .= '<b>Defekte Links:</b><br />'."\r\n";
            }
            
    $errorCount++;
            
    $content .= '<span style="color: red;">#'.$id.': '.IPS_GetLocation($id).'</span><br />'."\r\n";
        }
    }

    $printContent true;

    if (
    IPS_VariableExists((int)$ContentVariableID))
    {
        
    $variable IPS_GetVariable($ContentVariableID);
        if (
    $variable['VariableValue']['ValueType'] === 3)
        {
            
    $printContent false;
            
    SetValueString($ContentVariableID$content);
        }
    }

    if (
    $printContent)
    {
        echo 
    $content;
    }
    ?>
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

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

    Standard Min. und Max. Temperatur eines Zeitraumes (mit Zeitangabe)

    Quelle: Min Max Temperaturen mit Zeit Angabe (by PR-Homesystem)
    PHP-Code:
    <?
    /* Min Max Temperatur Werte mit Zeitangabe
     erstellt von Patrick Ramm
     Nur für den privaten Gebrauch */
     
    $AktuellNR 51908 /*[Terrasse\Außenfühler\Temperatur Außen]*///ID vom Temperaturfühler

    /* Ab hier nichts mehr verändern */

    $kategorie=IPS_GetParent($_IPS['SELF']);
    $ObjektID = @IPS_GetObjectIDByName("Max Temp"$kategorie);
    if (
    $ObjektID === false)
    {

    $eid IPS_CreateEvent(1);      //Timer erstellen
    IPS_SetParent($eid$_IPS['SELF']);
    IPS_SetEventCyclic($eid/* Keine Datumsüberprüfung */002/* Minütlich */ /* Alle 1 Minuten */);
    IPS_SetEventActive($eidtrue);

    $Variabel = array();
    $Variabel[] = array("Typ" => 2,
                           
    "Name"=>"Max Temp",
                           
    "Info"=>"",
                           
    "Profil"=>"~Temperature");

    $Variabel[] = array("Typ"=>3,
                           
    "Name"=>"Max Time",
                           
    "Info"=>"",
                           
    "Profil"=>"~String");

    $Variabel[] = array("Typ"=>2,
                           
    "Name"=>"Min Temp",
                           
    "Info"=>"",
                           
    "Profil"=>"~Temperature");

    $Variabel[] = array("Typ"=>3,
                           
    "Name"=>"Min Time",
                           
    "Info"=>"",
                           
    "Profil"=>"~String");



    for(
    $i=0$i count($Variabel); $i++)
       {
      
    /* echo $Variabel[$i]["Typ"];
       echo $Variabel[$i]["Name"];
       echo $Variabel[$i]["Info"];
       echo $Variabel[$i]["Profil"]; */

    $kategorie=IPS_GetParent($_IPS['SELF']);

    echo 
    $Variabel[$i]["Typ"];

    $vid IPS_CreateVariable($Variabel[$i]["Typ"]);
    IPS_SetParent($vid$kategorie);
    IPS_SetName($vid$Variabel[$i]["Name"]);
    IPS_SetInfo($vid$Variabel[$i]["Info"]);
    IPS_SetVariableCustomProfile($vid$Variabel[$i]["Profil"]);

    $Reset = @IPS_GetObjectIDByName("Reset"$kategorie);
    IPS_RunScript($Reset);
        }}

    Else
    {
    $Aktuell GetValue($AktuellNR);
    $MaxNR = @IPS_GetObjectIDByName("Max Temp"$kategorie);
    $MinNR = @IPS_GetObjectIDByName("Min Temp"$kategorie);
    $MaxTimeNR = @IPS_GetObjectIDByName("Max Time"$kategorie);
    $MinTimeNR = @IPS_GetObjectIDByName("Min Time"$kategorie);
    $Max GetValue($MaxNR);
    $Min GetValue($MinNR);

    //Zeit für min und max Werte
    $TimerWertMax IPS_GetVariable($MaxNR);
    $tempMax $TimerWertMax["VariableChanged"];
    $timeMax date("d.m.Y H:i"$tempMax);

    SetValueString($MaxTimeNR,$timeMax);

    $TimerWertMin IPS_GetVariable($MinNR);
    $tempMin $TimerWertMin["VariableChanged"];
    $timeMin date("d.m.Y H:i"$tempMin);

    SetValueString($MinTimeNR,$timeMin);
    //Ende Zeit

    If ($Aktuell $Max)
    {
    SetValue($MaxNR,$Aktuell);
    }
    Else if (
    $Aktuell $Min)
    {
    SetValue($MinNR,$Aktuell);
    }}
    ?>

    Zugehöriges RESET-Skript:
    PHP-Code:
    <?
    /* Min Max Temperatur Werte mit Zeitangabe
     erstellt von Patrick Ramm
     Nur für den privaten Gebrauch */

    $AktuellNR 51908 /*[Terrasse\Außenfühler\Temperatur Außen]*///ID vom Temperaturfühler

    /* Ab hier nichts mehr verändern */

    $kategorie=IPS_GetParent($_IPS['SELF']);

    $Aktuell GetValue($AktuellNR);
    $MaxNR = @IPS_GetObjectIDByName("Max Temp"$kategorie);
    $MinNR = @IPS_GetObjectIDByName("Min Temp"$kategorie);
    $MaxTimeNR = @IPS_GetObjectIDByName("Max Time"$kategorie);
    $MinTimeNR = @IPS_GetObjectIDByName("Min Time"$kategorie);
    $Max GetValue($MaxNR);
    $Min GetValue($MinNR);

    SetValue($MaxNR,$Aktuell);

    SetValue($MinNR,$Aktuell);

    $TimerWertMax IPS_GetVariable($MaxNR);
    $tempMax $TimerWertMax["VariableChanged"];
    $timeMax date("d.m.Y H:i"$tempMax);

    $TimerWertMin IPS_GetVariable($MinNR);
    $tempMin $TimerWertMin["VariableChanged"];
    $timeMin date("d.m.Y H:i"$tempMin);


    SetValueString($MaxTimeNR,$timeMax);
    SetValueString($MinTimeNR,$timeMin);
    ?>

    Weitere Varianten sind hier zu finden:
    https://www.symcon.de/forum/threads/...atur-ermitteln
    Geändert von Bayaro (13.08.15 um 14:39 Uhr)
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

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

    Standard TCP/UDP Port-Check

    Quelle: TCP/UDP Portcheck (by RWN)
    PHP-Code:
    <?
    ##################################################################################
    # Zum überprüfen ob der entsprechende TCP-Port erreichbar ist oder geblockt wird #
    # Für einen UDP Check muss ein udp// vor die IP-Adresse gesetzt werden.          #
    ##################################################################################

    //$port = array(1012,49000); // Fritzbox
    //$port = array(2000,2001,2002,5544); // Homematic. Für den Lanadapter muss nur Port 2001 und 5544 erreichbar sein

    for($i=0$i<count($port); $i++)
    {
        
    $socket fsockopen("xxx.xxx.xxx.xxx"$port[$i], $errno$errstr); // IP Adresse anpassen
        
    if(!$socket)
        {
            echo 
    "ERROR: $errno - $errstr\r\n";
        }
        else
        {
            echo 
    "Port: ".$port[$i]." ist erreichbar.\r\n";
        }
    }
    ?>
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

Ä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