From: Mario Höllein Date: Tue, 31 May 2016 10:48:10 +0000 (+0200) Subject: fhem Zufallssteuerung X-Git-Url: https://git.hoellein.online/?a=commitdiff_plain;h=353c4cb596cc2c22e5c027779045e6b8705ff538;p=help fhem Zufallssteuerung --- diff --git a/fhem/zufallLichtSteuerung.fhem b/fhem/zufallLichtSteuerung.fhem new file mode 100644 index 0000000..ebe0ca5 --- /dev/null +++ b/fhem/zufallLichtSteuerung.fhem @@ -0,0 +1,39 @@ +#Stehlampe zwischen 19:01:01 und 19:15:15 Uhr einschalten für 1h +define abends_Stehlampe at *19:00:00 {\ + my $Zufallszahl = int(rand(15) +11 );;\ + my $Uhr = "19:".$Zufallszahl.":".$Zufallszahl;;\ + fhem("define Stehlampe_Zufall at *".$Uhr." { fhem('set STEHLAMPE on-for-timer 3600') }");;\ +} + +#wie oben, nur die Zeit des leuchtens noch per Zufall +define abends_Stehlampe at *19:00:00 {\ + if (!$we) {\ + my $Zufallszahl = int(rand(15) +11 );;\ + my $Uhr = "18:".$Zufallszahl.":".$Zufallszahl;;\ + my $Zufallszahl2 = int(rand(3500) +11 );;\ + my $Timer = (100 + $Zufallszahl2);;\ + fhem("define Stehlampe_Zufall at *".$Uhr." { fhem('set STEHLAMPE on-for-timer ".$Timer."') }");;\ + }else{\ + my $Zufallszahl = int(rand(15) +11 );;\ + my $Uhr = "19:".$Zufallszahl.":".$Zufallszahl;;\ + my $Zufallszahl2 = int(rand(3500) +11 );;\ + my $Timer = (100 + $Zufallszahl2);;\ + fhem("define Stehlampe_Zufall at *".$Uhr." { fhem('set STEHLAMPE on-for-timer ".$Timer."') }");;\ + }\ +} + + +#Dieses Beispiel generiert verschiedene Zufallszahlen, anhand derer jeden Tag neu der „define“ Befehl zum +#Anschalten des Lichtes gesetzt wird: Zunächst werden die beiden Zufallszahlen $ZufallszahlMin und $ZufallszahlMax erstellt, +#die für den frühesten und spätesten Zeitpunkt zum Schalten für den sunset Befehl genutzt werden: Die Lampe wird +#(falls der Sonnenuntergang außerhalb dieses Zeitrahmens liegt) an einem jeden Tag neu berechneten Startpunkt zwischen 17:11 +#und 17:25 Uhr angeschaltet und spätestens zwischen 21:45 und 21:59 Uhr ausgeschaltet. + +Liegt der „sunset“ Wert, also der Zeitpunkt des Sonnenuntergangs zwischen diesen Werten, schaltet FHEM die Lampe immer kurz vor Sonnenuntergang ein: Zwischen dem Wert „HORIZON=3.7“ und „HORIZON=0.2“ wird die Lampe dann in einem Zeitfenster von knapp 30 Minuten. +my $ZufallszahlMin = int(rand(15) +1 );;\ +my $ZufallszahlMax = int(rand(15) +1 );;\ +my $SunsetStart1 = int(rand(3) + 0 );;\ +my $SunsetStart2 = int(rand(5) + 2 );;\ +my $start = "17:".($ZufallszahlMin + 10);;\ +my $ende = "21:".($ZufallszahlMax + 44);;\ +fhem("define abends_Licht_an at *{sunset('HORIZON=".$SunsetStart1.".".$SunsetStart2."',0,'".$start."','".$ende."')} { fhem('set LAMPE on-for-timer 3600') }");;\ diff --git a/fhem/zufallRollladenSteuerung.fhem b/fhem/zufallRollladenSteuerung.fhem index 64c013a..fb2bae3 100644 --- a/fhem/zufallRollladenSteuerung.fhem +++ b/fhem/zufallRollladenSteuerung.fhem @@ -1,7 +1,11 @@ -Achtung: Dieses Skript ist so angelegt, dass es direkt in die FHEM Konfigurationsdatei „fhem.cfg“ kopiert werden kann – daher ist der „\“ am Ende der Zeile und die doppelten „;;“ wichtig. Kopiert man das Skript über die Web-Oberfläche in eine Definition, muss man den Backslash „\“ weglassen und darf eine Zeile nur mit einem „;“ abschließen. +Achtung: Dieses Skript ist so angelegt, dass es direkt in die FHEM Konfigurationsdatei „fhem.cfg“ kopiert werden kann, +daher ist der „\“ am Ende der Zeile und die doppelten „;;“ wichtig. Kopiert man das Skript über die Web-Oberfläche in +eine Definition, muss man den Backslash „\“ weglassen und darf eine Zeile nur mit einem „;“ abschließen. -Dieses Skript wird mit einem „define“ Befehl jeden Morgen um 08:00 Uhr gestartet und erzeugt dann eine Zufallszahl zwischen 1 und 15. In der Woche werden die Rolläden dann zwischen 08:01:01 und 08:15:15 Uhr hochgefahren, am Wochenende erst zwischen 10:01:01 und 10:15:15 Uhr. +Dieses Skript wird mit einem „define“ Befehl jeden Morgen um 08:00 Uhr gestartet und erzeugt dann eine Zufallszahl +zwischen 1 und 15. In der Woche werden die Rolläden dann zwischen 08:01:01 und 08:15:15 Uhr hochgefahren, am Wochenende erst zwischen 10:01:01 und 10:15:15 Uhr. +#Rolladen in einem zufälligen 15 Minuten Zeitrahmen steuern: define morgens_Schlafzimmer_Rollaeden at *08:00:00 {\ if (!$we) {\ my $Zufallszahl = int(rand(15) +1 );;\