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"; }
}

Categories:

Tags:

Noch keine Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.


The reCAPTCHA verification period has expired. Please reload the page.

Kategorien
Produktplatzierungen

In diesem Beitrag befinden sich Produktplatzierungen. Dabei handelt es sich um Produkte, welche ich aus eigener Motivation heraus gekauft und selbstverständlich bezahlt habe. Für die Platzierung in meinen Beiträgen erhalte ich keinerlei Gegenleistung von Seiten des Herstellers.
Die verlinkten Produkte sind zum überwiegenden Teil provisioniert, d.h. ich erhalte beim Verkauf eine kleine Provision.