Zufall in OpenHab herstellen

Wieso braucht man eigentlich den Zufall, wenn man sein Heim solide automatisieren möchte? Dafür gibt es einige Gründe, z.B. die Anwesenheitssimulation. Also schauen wir uns an wie es geht, für natürliche Zahlen und Fälle.

Zufällige natürliche Zahlen

Natürliche Zahlen sind der Schlüssel zu allen weiteren zufälligen Aktionen. Deswegen starten wir mit natürlichen Zahlen:

var Number rand1_bis_10 = 1 + (Math::random * 9.99).intValue;
var Number rand4_bis_7 = 4 + (Math::random * 3.99).intValue;

„Math::random“ ist der Zugriff auf die Methode „random“ der Java „Math“ Bibliothek. Sie ist standardmäßig in OpenHab eingebunden und muss deswegen nicht importiert werden.
In Java: „new Math().random()“.

„Math::random“ liefert als Ergebnis eine Zahl zwischen 0 und 1, also zB. 0.45879…
Die Funktion „.intValue“ entfernt die Kommastellen (keine Rundung!) und macht somit daraus eine ganze Zahl.

4 + (0.45879 * 3.99) = ‭5,8305721‬ -> intValue = 5

Zufällige Fälle

Anhand dieser zufälligen Zahlen, lassen sich einzelne Aktionen ableiten. Ich verwende hierfür „switch und case“, weil es einfach eleganter ist.

var Number rand4_bis_7 = 4 + (Math::random * 3.99).intValue;

switch rand4_bis_7 {
    case 4  : { variable = "Wert 1"; }
    case 5  : { variable = "Wert 2"; }
    case 6  : { variable = "Wert 3"; }
    case 7  : { variable = "Wert 4"; }
    default : { variable = "Wert 5"; }
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.