[gelöst] DOIF mit Zufallszahl zur Auswahl einer nummerierten Lichtscene

Begonnen von Sirel, 22 Juni 2015, 12:46:27

Vorheriges Thema - Nächstes Thema

Sirel

Hallo zusammen,
ich habe mir mehrere Lichtscenen erstellt, welche nummeriert sind. Lichtscene abends_1, abends_2 usw.
Wie muss der entsprechende "set-Befehl" bei DOIF aussehen, damit die Nummer 1 bis n per Zufall generiert wird um per entsprechenden set-Befehl geschalet zu werden?
Ich habe schon einiges probiert, aber ich setzt die {} für diese Berechnung immer falsch. Ohne den Zufallsgenerator funktioniert es einwandfrei (set LS scene abends_4).

Vielen Dank für eure Hilfe vorab,

Max

igami

Hallo Max,

du kannst dir in Perl einen String zusammen setzen lassen der dann von FHEM ausgefürt wird.

({fhem("set LS scene abends_".(int(rand(3))+1))})

Wobei int(rnd(3)) eine Zufallszahl von 0-2 erzeugt, da du schreibst, dass es bei dir mit 1 anfängt muss noch 1 addiert werden, somit ergibt der code einen Zufall für abends 1-3.

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Damian

Zitat von: igami am 22 Juni 2015, 13:09:39
Hallo Max,

du kannst dir in Perl einen String zusammen setzen lassen der dann von FHEM ausgefürt wird.

({fhem("set LS scene abends_".(int(rand(3))+1))})

Wobei int(rnd(3)) eine Zufallszahl von 0-2 erzeugt, da du schreibst, dass es bei dir mit 1 anfängt muss noch 1 addiert werden, somit ergibt der code einen Zufall für abends 1-3.

Grüße

(set LS scene abends_{(int(rand(3))+1)})
igami

geht auch direkt ohne Umweg über fhem("...

...(set LS scene abends_{(int(rand(3))+1)})

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Sirel

Hallo Igami,
Hallo Damian,

besten Dank für eure schnelle Hilfe. Jetzt funktioniert alles wie es sein soll! Die Varianten die ich probiert habe, haben mir etliche Einträge im Modul LightScene beschert.  :o

Nochmals Danke und Gruß,
Max