Zufallszahl in Variable schreiben

Begonnen von Dia81, 10 September 2019, 20:41:04

Vorheriges Thema - Nächstes Thema

Dia81

Ich schon wieder ;)

ich nutze mittlerweile erfolgreich die Funktion meine HUE Lampen per Zufallszahl zu schalten:

define AussenHUE_WD WeekdayTimer hueBridge1_HUEDevice3 012345678|{sunset_abs(-3600)}|xx {fhem("set $NAME hue {(int(rand(55100))+4900)}")}

Den Farbbereich bis 4900 hab ich wegen zu "pornorot" ausgeklammert.

Jetzt habe ich mitlerweile 2 HUE Lampen mit dieser Lichteinstellung die natürlich unterschiedliche Zufallszahlen generieren.

Meine Idee wäre eine SUB zu bauen die den Befehl (int(rand(55100))+4900)}") enthält und z.B. per AT jeden Tag, sagen wir mittags um 12 ausgeführt wird und den Ausgabewert in $Wert speichert. Ich stelle mir dann vor die DEF lediglich in define AussenHUE_WD WeekdayTimer hueBridge1_HUEDevice3 012345678|{sunset_abs(-3600)}|xx {fhem("set $NAME hue $Wert abzuändern.

Vielleicht kann mir hier jemand sagen ob die Idee klappt, da ich mangels genauer Kenntnisse nicht genau weiss wie ich das zusammenfrickel, wo ich mich dann anschließend drum kümmern könnte. Die Lampn sollten dann nämlich alle den selben Zufallswert haben.

Meine rudimären Kenntnisse würden mich auf so eine Reise schicken, aber das ist wahrscheinlich völlif falsch :>



sub Zufallszahl($)
{
my $Zufallszahl = (int(rand(55100))+4900);
}


Vielleicht gäbes es auch die Möglichkeit den Auscchlussbereich (hier 4900) direkt als Variable einzubauen, Marke Ausführung von Zufallszahl 4900 führt zu der 4Zufallszahl mit oben beschriebener Berechnung



Danke euch

Dia81

Okay die SUB habe ich jetzt so hinbekommen:

sub Zufallszahl($)
{
my ($Ausgenommen) = @_;
my $Zufallszahl = int(rand(65000-$Ausgenommen))+$Ausgenommen;
return $Zufallszahl;
}


Der Farbwert geht bis 65000, will ich die ersten 60000 ausklammern führt {Zufallszahl(60000)} zu einer Zahl von 60000 - 65000.
Jetzt muss ich nur noch rausfinden ob ich die Variable einfach in die Defintion einbringe und wie ich das tägliche "AT" gestalte.