Hallo zusammen,
Als absoluter Neuling bitte ich Euch um Unterstützung.
Ich habe Fhem auf einem Raspberry Pi3 installiert und kann via Twillight wenn es dunkel/hell wird diverse Elro AB440 Steckdosen mit 433 MHz Sender ein- ausschalten.
Wenn es morgens hell wird bzw. um 23:00 gehen die Lampen an den Steckdosen auch aus.
Was mir noch fehlt ist die Möglichkeit die Ein (5:30)- bzw. Ausschaltzeit (23:00) zufällig um +-10 Minuten zu variieren.
Weiterhin hätte ich gerne eine Schaltung wie oben beschrieben für die Arbeitstage und für Wochenende/Feiertage nur eine ,,Abendschaltung".
Licht an wenn Dunkel und 23:00 +-10 Minuten wieder aus
Bisher habe ich folgendes hinbekommen:
+ Steckdose ist wie folgt definiert:
define Steckdose_1 ShellSwitch send 11111 1 1 0
+ Twilight ist installiert und scheint vernünftig zu aktualisieren
Aus Twilight nutze ich den Wert ,,light"
+ Steckdose schalten wenn Dunkel/Hell
define di_test DOIF ( ([5:30-9:00] or [13:00-23:00]) and [myTwilight:light] < 5)\
(set Steckdose_1 on)\
DOELSE\
(set Steckdose_1 off)
Ich habe das Forum bereits durchforstet und schon diverse Dinge ausprobiert, bin aber leider gescheitert, daher mein Hilfegesuch.
Ich würde ich über Eure Vorschläge riesig freuen
Vielen Dank
Thomas
Schau dir mal den Befehl
sunset_abs(3700,"18:00","21:00")
und
sunrise_abs(300,"06:30","08:00")
an. Damit kannst du eine Start und Endzeit angeben und mit der ersten Anzahl (hier z.b 300 Sekunden) wird zwischen der Zeit immer bis zu 300 Sekunden variiert.
Ist eigentlich das, was du suchst. Das erlaubt dir ein zufälliges Schalten in einem definierten min/max Zeitbereich
Deine Lösung steht in der COMMANDREF für DOIF. Genau dieses Beispiel...
Ciao, -MN
Hallo Devender,
Hallo Morgennebel,
vielen Dank für den Input und den Hinweis auf die COMMANDREF.
Die Wochentagsteuerung habe ich mir angesehen.
Mein Verständnis ist, dass ich den Wochentag mit Pipe + 1-8 angegeben kann.
In meinem Beispiel also:
5:50 - 9.00 an Arbeitstagen =|8
13:00-23:00 an allen Tagen (WE+Arbeitstage) = |78
Kann ich das dann so schreiben:
define di_test DOIF ( ([5:30-9:00|8] or [13:00-23:00|78]) and [myTwilight:light] < 5)\
(set Steckdose_1 on)\
Gruss
Thomas
und für die Zufallsschaltung so?
define di_test DOIF ( ([(5:30+int(rand(600))-9:00|8] or [13:00-(23:00+int(rand(600))|78]) and [myTwilight:light] < 5)\
(set Steckdose_1 on)\
DOELSE\
(set Steckdose_1 off)
Probiers mal aus :)
Warum aber so kompliziert? Wieso nutzt du nicht sunset/sunrise?
Hi,
Ja, ich probiers einfach mal...
( ([5:30-9:00|8] or [13:00-23:00|78]) and [myTwilight:light] < 5)
(set Steckdose_1 on)
DOELSE
(set Steckdose_1 off)
in 50 Minuten weiss ob das Licht ausgeht und morgen Früh dann wieder an.
Danach guck ich mal nach der Zufallsschaltung... der "code" mit "+int(rand(600)" wurde nicht angenommen - falsche Klammersetzung.
Warum nicht sunrise/sunset... gibt keinen wirklichen Grund.
Ich hatte einen Codesnipsel mit Twilight gefunden und einfach ausprobiert - hatte funktioniert.
Update folgt
Danke
Gruss
Thomas
Licht ging aus um 23:00
Hi,
Licht ging heute um 5:30 an und um 8:32 wieder aus.
Gerade um 16:36 wieder an !
Am Wochenende wird sich zeigen ob die Wochentagsschaltung funktioniert.
Mit der Zufallsschaltung um 5:30 bzw. 23:00 komme ich nicht weiter.
Dürfte ich nochmal um Unterstützung bitten.
Ich hatte es wie folgt versucht, scheitere jedoch an einer Fehlermeldung:
error: the function "(5:30+int(rand(600)))" must return a timespec and not syntax error at (eval 617) line 1, near "5:"
( ([5:30+int(rand(600))-9:00|8]) or [13:00-23:00+int(rand(600))|78]) and [myTwilight:light] < 5)\
Kann das in der Art überhaupt funktionieren
Vielen Dank im Voraus
Gruss
Thomas
http://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitberechnung
Hallo Morgennebel,
Vielen Dank dass Du nicht die Geduld mit mir verloren hast ! und mich mit der Nase nochmals draufgestossen hast ! ! !
"... Zeitberechnungen werden innerhalb der eckigen Klammern zusätzlich in runde Klammern gesetzt...."
Ich hoffe ich hab es jetzt ... fhem hat beim Speichern diesmal nicht gemecktert und die Readings zeigen jetzt auch andere Zeiten.
Kannst Du bitte nochmal gegenlesen und ggfs. kommentieren.
( ([([5:30]+int(rand(600)))-9:00|8] or [13:00-([23:00]+int(rand(600)))|78]) and [myTwilight:light] < 5)
(set Steckdose_1 on)
DOELSE
(set Steckdose_1 off)
timer_01_c01
18.01.2017 05:36:08|8
timer_04_c01
17.01.2017 23:02:15|78
Eine Frage habe ich doch noch ...
Es wird aktuell ein Zufallswert ADDIERT, geht auch Zufallswert +/-
Besten Dank
Thomas
Das |78 ist überflüssig - es trifft ja auf Wochentage UND Wochenenden zu. Einfach weglassen.
Und bei der Subtraktion - test doch einfach mal. Probieren geht über fragen...
Ciao, -MN
Besten Dank !!!
Hallo,
heute (Samstag) ist um 5:25 das Licht angegangen; es ist also noch was im Code falsch.
Mit "|8" sollte die Schaltung um 5:25 doch nur an Wochentagen und nicht an Wochenenden ausgeführt werden.
Könnt Ihr mir bitte einen Tip geben - wie muss der Code aussehen.
( ([([5:25]+int(rand(600)))-9:00|8] or [13:00-([22:55]+int(rand(600)))]) and [myTwilight:light] < 5)
(set Steckdose_1 on)
DOELSE
(set Steckdose_1 off)