+ Antworten
Ergebnis 1 bis 3 von 3
  1. #1
    Registriert seit
    Dec 2010
    Beiträge
    95

    Standard Schaltdauer einer Bool-Variable auswerten

    Hallo zusammen,

    ich stehe vor der Herausforderung für mein Bewässerungsprojekt den Regensensor (Regen: ja/nein ohne Menge) auszuwerten und benötige hierzu eure Hilfe.

    Ich möchte gern die Dauer der Regensensorvariable (True bei Regen) nach 24h wissen und diese Zeitdaten in Sekunden in eine Integervariable ausgeben.

    Somit kann ich auswerten, ob der Eventtimer für die Bewässerung am Abend aktiv bleiben soll.

    Ich würde mich freuen wenn mir hierbei jemand helfen könnte.

    Vielen Dank.

    Felix

  2. #2
    Registriert seit
    Feb 2007
    Ort
    Zwickau
    Beiträge
    5,483

    Die Regenvar startet bei "true" ein Script welches time(); und dessen Differenz bei false in eine Integervar schreibt und in einer zweiten Integervar die Summe der jeweiligen Scriptaufrufe, nach 24h kannst Du diese abrufen und wieder zurücksetzen.
    MfG Thomas

    Eaton Xcomfort|FS20|1-Wire|Axis WebCams|WMRS200 Wetterstation|Funksystem-868|Gas und Wasserzähler per S0 1-Wire|E-Zähler per OKK+seriell2LAN Adapter|Amazon Alexa|
    Visu auf: 10"Touchscr.|Apple iPod Touch|Apple iPhone|Apple iPad|IPS V5.x|Dashboard|WebFront|iFront


  3. #3
    Registriert seit
    Nov 2013
    Beiträge
    280

    Hall REDBANDITO,

    script stamm nicht von mir, funktioniert aber zuverlässig, ich werte damit ähnliche vorgänge aus:

    PHP-Code:
    function getLoggedValueDuration ($variableID$tsStart$tsEnd$value)
    {
        
    $duration 0;

        
    $archiveHandlerID IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}');
        
    $archiveHandlerID $archiveHandlerID[0];

        
    $data AC_GetLoggedValues($archiveHandlerID$variableIDtime(), time(), 1);
        
    $openTs count($data) > $data[0]['TimeStamp'] : false;

        
    $data AC_GetLoggedValues($archiveHandlerID$variableID$tsStart$tsEnd100000);
        
    $isOpen = ($openTs !== false && count($data) > 0) ? ($openTs == $data[0]['TimeStamp']) : false;

        if (
    count($data) == 100000)
        {
            return 
    false;
        }

        if (
    count($data) > 0)
        {
            if (
    $data[count($data) - 1]['TimeStamp'] < $tsStart)
            {
                
    $delta $tsStart $data[count($data) - 1]['TimeStamp'];
                
    $data[count($data) - 1]['TimeStamp'] = $tsStart;
                
    $data[count($data) - 1]['Duration'] = max(0$data[count($data) - 1]['Duration'] - $delta);
            }

            if (
    $data[0]['TimeStamp'] + $data[0]['Duration'] > $tsEnd || $isOpen)
            {
                
    $data[0]['Duration'] = $tsEnd $data[0]['TimeStamp'];
            }

            for (
    $i 0$j count($data); $i $j$i++)
            {
                if (
    $data[$i]['Value'] == $value)
                {
                    
    $duration += $data[$i]['Duration'];
                }
            }
        }

        return 
    $duration;
    }
    ?> 
    Anwendungsbeispiel zeitdauer für boolsche variable mit wert = true:

    PHP-Code:
    $dauer getLoggedValueDuration($m,$tsStart,$tsEnd,true); 
    Beste Grüße
    hoep

Ähnliche Themen

  1. Schaltdauer lässt sich nicht übermitteln
    Von fussi24 im Forum HomeMatic
    Antworten: 9
    Letzter Beitrag: 30.12.13, 15:13
  2. Boolean Variable auslesen und mit if/else auswerten
    Von woytkem im Forum Skripte, PHP, SQL
    Antworten: 4
    Letzter Beitrag: 29.12.13, 11:47
  3. Ein- Ausschalter mit Bool Variable + Skript
    Von nsrracer im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 15.10.13, 15:33
  4. Rückgabewert einer IPS Funktion auswerten.
    Von ThomasD im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 13.08.11, 17:21
  5. bool variable zeitlich begrenzt setzen
    Von kadorf im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 6
    Letzter Beitrag: 23.05.09, 04:23