]> git.hoellein.online Git - help/commitdiff
fhem Zufallssteuerung
authorMario Höllein <mhoellein@moellein.homeip.net>
Tue, 31 May 2016 10:48:10 +0000 (12:48 +0200)
committerMario Höllein <mhoellein@moellein.homeip.net>
Tue, 31 May 2016 10:48:10 +0000 (12:48 +0200)
fhem/zufallLichtSteuerung.fhem [new file with mode: 0644]
fhem/zufallRollladenSteuerung.fhem

diff --git a/fhem/zufallLichtSteuerung.fhem b/fhem/zufallLichtSteuerung.fhem
new file mode 100644 (file)
index 0000000..ebe0ca5
--- /dev/null
@@ -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') }");;\
index 64c013a81d7b532dc91fb921fab7973ab2875f2d..fb2bae3e2cd7447021beb45bc326ce51489a5b2e 100644 (file)
@@ -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 );;\