Eis/Frostschutz für Raffstores - Skript

Guten Abend,

ich habe mir ein kleines, wahrscheinlich unschönes, Skript gebastelt das bei mir die Raffstore in eine Eis/Frostschutzposition fährt.

Die Bordeigene Funktion von MDT war mir zu dämlich.
Sie kann nämlich nicht zwischen Tag und Nacht unterscheiden. Also fuhren die Raffstore entweder hoch, blöd in der Nacht, oder runter am Tag, auch blöd weil dann finster. Man kann nämlich nur einstellen ob hoch/runter oder eine % Position.

Bei mir wird die Außentemperatur, die Windgeschwindigkeit und der Regen ausgewertet.
Und dann noch ob es Tag oder Nacht ist.
Anhand dessen wird entschieden ob Automatikposition 1 (Raffstore nach Oben) oder 2 (85% Raffstore und 85% Lamellen) angefahren wird.

Ich bitte um eure Kommentare. Danke

Frage: Weiß Jemand ob die Automatikposition mit einer „1“ aktiviert wird, und solange bleibt bis sie wieder „0“ ist. Oder muss sie nur kurz mit einer „1“ getriggert werden?


[b]<?php[/b]

$timestamp = time();
$uhrzeit = date("H:i", $timestamp);
$datum = date("d.m.Y", $timestamp);

$textt = "Raffstore Eis/Frostschutz";

$Logik = "0";

//Start writing your code here

// Vorgabe für die Unterscheidung Automatikposition 1 / 2
$Sonnenuntergang = GetValue(41017); 
$Sonnenaufgang = GetValue(28663); 

// Abfrage ob Uhrzeit im Tagbetrieb ist -> Automatik 2 (85/85)
$tagbetrieb = "Nacht";

    // Gibt den Timestamp für: 2006-04-05T01:02:03+00:00 
    // mktime(1, 2, 3, 4, 5, 2006) 
if ($timestamp > $Sonnenaufgang && $timestamp < $Sonnenuntergang) 
    { 
        $tagbetrieb = "Tag";
    }

//Außentemperatur
$Temperatur_außen = GetValue(27081); 

//Windgeschwindigkeit
$Windgeschwindigkeit = GetValue(23566); 

//Regen?
$Regen = GetValue(13749); 

If ($Regen == 0) 
{
    $rain = "kein Regen";
}
else { $rain = "Regen";
}

// Logikteil
// Regen == JA
// Temperatur <= 0
// Windgeschwindkeit >= 1 m/s
// Uhrzeit zwischen 08:30 und 

if ($Regen == true && $Temperatur_außen <= 1 && $Windgeschwindigkeit >= 1)
{
// Gefahr durch einfrieren
    if ($tagbetrieb == "Tag")
    {
        $Logik = 1;
        // RequestAction(43236, true);
        $texttt = "aktiviert [Regen - ".$Temperatur_außen."°C - ".$Windgeschwindigkeit."m/s -> Automatikposition 1 (Oben)";
    }
    else
    {
        $Logik = 2;
        // RequestAction(49250, true);
        $texttt = "aktiviert [Regen - ".$Temperatur_außen."°C - ".$Windgeschwindigkeit."m/s -> Automatikposition 2 (85/85)";;
    }

    // Meldung eintragen

    $text = "</b>".$datum." ".$uhrzeit."</b><b> ".$textt." </b>".$texttt;
    $number = IPS_RunScriptWaitEx(19710, array('action' => 'add', 'text' => $text, 'expires' => time() + 3000000, 'removable' => true, 'type' => '0')); 
    # - 'type' (optional): Art der Meldung ... 0 => Normal(grün), 1 => Fehler(rot), 2 => Warnung(gelb), 3 => Todo(blau) 

}
else
{
// keine Gefahr durch einfrieren
$Logik = 0;
}


echo "
 Uhrzeit: ",$timestamp, "
 Sonnenuntergang: ",$Sonnenuntergang, "
 Sonnenaufgang: ",$Sonnenaufgang,"
 TempAußen: ", $Temperatur_außen, "
 Windgeschw: ", $Windgeschwindigkeit, "
 Regen: ", $rain;
echo "
 Tagbetrieb: ", $tagbetrieb;
echo "
 Logik: ", $Logik;


Um das aufheben des Frostschutzes muss ich mich noch kümmern… Ideen?

Hi,
Ich hatte mal ein Modul angefangen welches viele dieser Dinge übernimmt. Schau mal nach „Control by weather“.

Gesendet von iPhone mit Tapatalk

Danke Pommel,
das Modul ist sehr ausführlich und mächtig… Ich schau mir das mal an…
lg

Ich werde vielleicht eine andere Strategie verfolgen:

Zuerst die aktuelle Position jedes einzelnen Raffstore auslesen und:

[ul]
[li]Position < 15% : Oben -> Sperre (Aber welche der 4: Sperre, Sperre Abs. Pos., Sperre Zentrale Funktionen, Sperre Funktionen) ?[/li][li]Position > 15% : Unten -> Je nach Tag oder Nacht entweder nach Oben fahren und sperren (Tag) oder 85/85 anfahren und sperren (Nacht).[/li][/ul]
[b][b][b]Was haltet Ihr davon?

lg[/b][/b][/b]