Zufälliges Schalten mit at unabhängig vom Sonnenlauf

Begonnen von Gundermann, 03 Dezember 2019, 08:40:55

Vorheriges Thema - Nächstes Thema

Otto123

#15
Hallo Gundermann,

das mit den Basics FHEM hat Damian ja schon erklärt, auch das findet  man natürlich in der Doku. https://fhem.de/commandref_modular.html#command

Der Befehl sleep 5;; Befehl funktioniert wie dokumentiert. Mein Fehler: die Zahl aus einer Perlfunktion zu erzeugen, das funktioniert nicht. Wer liest ist klar im Vorteil: In der Doku steht sleep {Perlfunc} muss wieder einen TimeSpec zurückliefern und nicht eine Zahl in Sekunden.
Damit war meine Idee falsch. Es bleibt nur die Errechnung der Zeit als TimeSpec.
Tut mir leid.
Oder man macht alles in Perl. Ich habe meinen Beitrag #1 entsprechend richtig gestellt und ein Beispiel mit Perl Code eingestellt.
Man kann den Perlcode auch so direkt ohne at in der FHEM Kommandozeile testen.
{my $val=int(rand(600));;fhem("sleep $val;;set LichtWzLO on")}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Gisbert

Hallo Otto,

ZitatSteht doch aber klar :) sleep; Befehl ist simpel und funktioniert.

Warum wird eine einfache Lösung die auch noch exakt in der Doku beschrieben ist dermaßen zerredet?

Das war wohl ein Fehlschluss von mir, und in meinem Kleinhirn hat sich die Benutzung von Perl sleep als u.U. gefährlich verankert. Dass derselbe Befehl in Fhem sinnvoll angewendet werden kann, hab ich nicht vermutet, sorry :-X

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Otto123

#17
Um die Sache mit timespec und Zufallsberechnung noch abzurunden:
So erhält man das geforderte Format der aktuellen Zeit + 5 sec.
{(strftime("%H:%M:%S",localtime(time+5)))}
somit bekommt man damit eine zufällige Zeit in der Zukunft für die Verwendung mit at
{(strftime("%H:%M:%S",localtime(time+int(rand(600)))))}

Für die Verwendung in sleep müsste man es so machen (FHEM Kommandozeile):
sleep {(strftime("%H:%M:%S",gmtime(int(rand(20)))))};set LichtWzLO off

Hab ich jetzt mehr Verwirrung gestiftet als geholfen? :)

Doku zum nachlesen: https://perldoc.perl.org/functions/localtime.html
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Gundermann

@ Otto123:

ZitatHab ich jetzt mehr Verwirrung gestiftet als geholfen?

Irgendwie schon.

Du merkst sicher, dass mir einiges an Grundwissen fehlt. Da habe ich noch Nachholbedarf und lebe deshalb bei irgendwelchen Problemen meist von konkreten Beispielen aus dem Forum oder sonstigen Quellen (nicht selten auch von Otto123  ;)), die ich dann anpasse.

Deshalb bitte noch einmal "zurück auf Anfang":

define Lampe_morgens_AUS at *08:00:00 sleep {(int(rand(600)))};;set Lampe off funktioniert also nicht, weil die Zahl aus einer Perlfunktion erzeugt wird. OK.

Wie müsste denn nun die Zeile korrekt lauten, die in die FHEM-Kommandozeile einzugeben ist, damit täglich z.B. zwischen 8:00 und 08:10 meine Lampe zufällig schaltet?
Was bitte meinst du mit deinem Beitrag #1?

Übrigens: {my $val=int(rand(600));;fhem("sleep $val;;set Lampe off")} in die Kommandozeile eingegeben schaltet die Lampe zufällig innerhalb von 10 Minuten. Jetzt muss sie das nur noch täglich ab einer gewünschten Uhrzeit tun.

Sorry, wenn ich nerve und immer noch "auf dem Schlauch stehe".

Grüße aus Hessen von Gundermann
FHEM auf RPi 4B | CUL 868 MHz | SIGNALduino 433 MHz | FRITZ!Dect | FS20 | Homematic | Intertechno | Sonoff | Shelly | IP-Kameras | Wettersensoren | ZigBee | ...
FHEM ist nicht Plug & Play. Man muss bereit sein hinter die Kulissen zu schauen.

rabehd

Zitat von: Otto123 am 03 Dezember 2019, 13:36:06
....
So funktioniert es:
define Lampe_morgens_AUS at *08:00:00 {my $val=int(rand(600));;fhem("sleep $val;;set Lampe off")}


Was ist damit?
Auch funktionierende Lösungen kann man hinterfragen.

Gundermann

ZitatWas ist damit?

Sorry, das hatte ich bei der Vielzahl der Infos übersehen. Gerade getestet und scheint zu funktionieren.

Danke an alle, die sich beteiligt haben, für das rege Interesse.

Grüße aus Hessen von Gundermann
FHEM auf RPi 4B | CUL 868 MHz | SIGNALduino 433 MHz | FRITZ!Dect | FS20 | Homematic | Intertechno | Sonoff | Shelly | IP-Kameras | Wettersensoren | ZigBee | ...
FHEM ist nicht Plug & Play. Man muss bereit sein hinter die Kulissen zu schauen.

Otto123

Zitat von: Gundermann am 04 Dezember 2019, 15:01:10
Was bitte meinst du mit deinem Beitrag #1?
Schau doch mal in die Kopfzeilen der Beiträge - Beispiel ;)
« Antwort #18 am: Heute um 15:01:10 »
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Zitat von: Gundermann am 04 Dezember 2019, 15:01:10
@ Otto123:

Irgendwie schon.
Naja ich habe versucht es umfangreich zu beschreiben. Lies alles in Ruhe durch, probiere alles aus (in der Kommandozeile) schau parallel immer in die Doku (FHEM commandref) und in die Perl Doku.

Das wird schon mit der Zeit :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Gundermann

Danke nochmal an alle. Jetzt habe ich mein "at", das zufällig unabhängig vom Sonnenlauf schaltet.

@ Otto123: Ich hoffe, dass ich dir nicht zu sehr auf die Nerven gegangen bin und gelobe Besserung.
@ Byte09: MSwitch könnte die "eierlegende Wollmilchsau" für mich werden. Ich werde mich damit beschäftigen.
@ Beta-User, Damian, Brice, Gisbert, rabehd: Danke für die Unterstützung.

Ich denke das Thema kann jetzt geschlossen werden.
FHEM auf RPi 4B | CUL 868 MHz | SIGNALduino 433 MHz | FRITZ!Dect | FS20 | Homematic | Intertechno | Sonoff | Shelly | IP-Kameras | Wettersensoren | ZigBee | ...
FHEM ist nicht Plug & Play. Man muss bereit sein hinter die Kulissen zu schauen.