RandomTimer - Variable <timeToSwitch> zufällig generieren

Begonnen von zeus, 26 Oktober 2015, 14:33:07

Vorheriges Thema - Nächstes Thema

zeus

Hallo zusammen,
wie kann ich über 99_myUtils.pm die Variable <timeToSwitch> die Dauer zufällig erzeugen (z.B. zwischen 60s - 300s) und diese ins fhem.cfg übernehmen?

define ZufallsTimerTisch     RandomTimer  20:00:00 StehlampeTisch  20:30:00 480

Danke für euren Input ;-)

Grüsse
Zeus

Dietmar63

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

zeus

Hallo Dietmar,

ich möchte in einer bestimmten Zeitspanne die Dauer zufällig setzen können, d.h. sobald die Steckdose ausschaltet einen neuen Wert für die Dauer (timetoswitch) einsetzen.
Ist das überhaupt möglich?

Danke für deine Hilfe

Gruss
zeus


Dietmar63

das ist nicht nötig.

Die Dauer von beispielsweise 480(Sekunden) wird nur mit einer Genauigkeit von +-10% eingehalten.
Welchen Zweck verfolgst du damit?

Intern wird mit hoher Wahrscheinlichkeit(80%) eingeschaltet und mit geringer Wahrschenlichkeit(20%) ausgeschaltet. Dies lässt sich  mit switchmode noch anpassen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

zeus

Keinen bestimmten Zweck, bin mit dem RandomTimer Feature (was übrigens super funktioniert!!) am experimentieren.
Ich versuche den Wert (timetoswitch 480) nicht als Fixwert sondern als variablen Wert über z.B. 99_myUtils.pm zu generieren und dann zu übernehmen.

   

Dietmar63

Du könntest mit einem modify arbeiten.
Weiterhin gäbe es noch die Möglichkeit das Attribut direkt per Perl-Ausdruck anzugeben.

Code liefere ich nachher.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63


my $timetoswitch = 45;
fhem("modify ZufallsTimerTisch     RandomTimer  20:00:00 StehlampeTisch  20:30:00 $timetoswitch")

oder

my $name = "ZufallsTimerTisch";
my $timetoswitch = 45;
$defs{$name}{TIMETOSWITCH} = $timetoswitch;

oder

{$defs{ZufallsTimerTisch}{TIMETOSWITCH} = 470}

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

zeus

Hallo Dietmar,

Super, es funktioniert ;-)

Nochmals besten Dank für deine Hilfe!