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. Erforderliche Felder sind mit * markiert


Der Zeitraum für die reCAPTCHA-Überprüfung ist abgelaufen. Bitte laden Sie die Seite neu.

Haftungsausschluss

Die Inhalte meines Blogs dienen ausschließlich der allgemeinen Information und Unterhaltung. Sie stellen keine professionelle Beratung oder Anleitung dar und erheben keinen Anspruch auf Richtigkeit, Vollständigkeit oder Aktualität. Die Anwendung der Inhalte dieses Blogs erfolgt auf eigene Gefahr und Verantwortung des Nutzers. Ich übernehme keine Haftung für Schäden oder Verluste, die direkt oder indirekt durch die Nutzung oder Nichtnutzung der Inhalte dieses Blogs entstehen.

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. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Kategorien