Anwesenheitssimulation mit Funksteckdose...

Begonnen von Sascha.K, 05 Juni 2018, 20:33:56

Vorheriges Thema - Nächstes Thema

Sascha.K

Hallo,

ich versuche gerade eine Anwesenheitssimulation auf die Beine zu stellen. Eine Funk-Steckdose soll zu einer bestimmten zufälligen UIhrzeit eingeschaltet und später zufällig wieder ausgeschaltet werden.

Wenn ich folgendes Script ausführen lasse wird die Steckdose einmal um 19:00 Uhr und zur zufällig generierten Uhrzeit eingeschaltet:


define WZ_Vitrine_Zufall_an_WT at *19:00:00 set WZ_Vitrine on
define WZ_Vitrine_Zufall_an_WE at *19:00:00 set WZ_Vitrine on

define WZ_Vitrine_Zufall_an_temp at *00:10:00 {\
if (!$we) {\
   my $Zufallszahl = int(rand(40) +11 );;\
   my $Uhr = $WZ1.":".$Zufallszahl.":".$Zufallszahl;;\
   fhem("modify WZ_Vitrine_Zufall_an_WT *".$Uhr);; \
}else{\
   my $Zufallszahl = int(rand(40) +11 );;\
   my $Uhr = $WZ2.":".$Zufallszahl.":".$Zufallszahl;;\
fhem("modify WZ_Vitrine_Zufall_an_WE *".$Uhr);; \
}\
}




Mit folgendem Skript kommt die bekannte Fehlermeldung "already defined....":


define WZ_Vitrine_Zufall_an_temp at *00:30:00 {\
if (!$we) {\
  my $Zufallszahl = int(rand(10) +11 );;\
  my $Uhr = "18:".$Zufallszahl.":".$Zufallszahl;;\
fhem("define WZ_Vitrine_Zufall_an_WT at *".$Uhr." { fhem('set WZ_Vitrine on') }");;\
}else{\
  my $Zufallszahl = int(rand(10) +11 );;\
  my $Uhr = "18:".$Zufallszahl.":".$Zufallszahl;;\
fhem("define WZ_Vitrine_Zufall_an_WE at *".$Uhr." { fhem('set WZ_Vitrine on') }");;\
}\
}


Wie kann ich eines der Skripte so umschreiben, dass die Steckdose nur einmal am Tag zur zufällig generierten Uhrzeit eingeschaltet wird ..?

Vielen Dank im voraus ...


rischbiter123

Moin Sascha,

versuch mal defmod statt define, dann wird das bestehende at nur geändert und nicht neu angelegt (bzw. versucht).

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

nils_

momentan machen deine at's (außer bei der benennung) keine unterscheidung, ob WT (Werktag) oder WE (Wochenende) ist
efine WZ_Vitrine_Zufall_an_WT at *19:00:00 set WZ_Vitrine on
define WZ_Vitrine_Zufall_an_WE at *19:00:00 set WZ_Vitrine on



ist vielleicht https://fhem.de/commandref.html#RandomTimer was für dich?
viele Wege in FHEM es gibt!

Byte09

Hi,

MSWITCH hat diese Funktion vollständig integriert . Bei Bedarf mal im Forum suchen .

Kurz da Handy.

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Wuppi68

oder ein AT mit dem Befehl set lampe on-for-timer random Sekunden
FHEM unter Proxmox als VM

Bapt. Reverend Magersuppe

Das geht mit dem RandomTimer ganz ordentlich passabel durchzuführen:

So mach ich das bei mir:

define ZufallsTimerKlo RandomTimer *{sunset_abs()} WCLicht *{sunset_abs(3*3600)} 80
attr ZufallsTimerKlo switchmode 800/200


Da geht das Licht im Lokus an und aus, das schreckt die Langfinger ab!
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

Byte09

Zitat von: Bapt. Reverend Magersuppe am 06 Juni 2018, 15:44:49
Das geht mit dem RandomTimer ganz ordentlich passabel durchzuführen:

So mach ich das bei mir:

define ZufallsTimerKlo RandomTimer *{sunset_abs()} WCLicht *{sunset_abs(3*3600)} 80
attr ZufallsTimerKlo switchmode 800/200


Da geht das Licht im Lokus an und aus, das schreckt die Langfinger ab!
Ja , ist ganz ordentlich , wenn du 1 oder 2 Lampen hast . Ich schalte damit 10+ Lampen ,  und da bräuchte ich für jede Lampe ein Device , ist mir persönlich zu unübersichtlich.

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Sascha.K

Hallo,


Danke für die vielen Vorschläge....

Der Vorschlag von rischbiter123 mit DEFMOD funktioniert super...  werde mir auf euer anraten trotzdem den RandomTimer mal anschauen...


Mfg