Zufallszahl generieren - Anwesenheitssimulation

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Zufallszahl generieren - Anwesenheitssimulation

Beitrag von alchy » 17.11.2017, 10:22

Code: Alles auswählen

!Zufallszahlen zwischen 0 und limit und speichern in Sysvar
integer limit = 10;
string sysvar = "Name deiner Speichervariable";
!Finger weg
if ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.RAND") && ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(sysvar)) ) { 
(dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.RAND").State(limit); 
dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvar).State((dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.RAND").Value());
WriteLine((dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.RAND").Value());}else{WriteLine("Datenpunkt falsch oder Systemvariable nicht vorhanden");
}
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: Zufallszahl generieren - Anwesenheitssimulation

Beitrag von JRiemann » 17.11.2017, 10:41

Ich nutze die Zufallszahlen schon ewig in folgender Form:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:9.RAND").State(10);
integer tmpA = dom.GetObject("CUxD.CUX2801001:9.RAND").State().ToInteger();
dom.GetObject("Deine Variable").State(tmpA);
WriteLine(tmpA);
Es wird eine Zufallszahl zwischen 0 und 10 erzeugt und in "Deine Variable" geschrieben.
Viele Grüße!
Jörg

Benutzeravatar
jmaus
Beiträge: 9846
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: Zufallszahl generieren - Anwesenheitssimulation

Beitrag von jmaus » 17.11.2017, 10:47

Wer neuere Firmware Versionen einsetzt (>= 2.29.18) und mindestens die standard oder community Version der Skriptumgebung (ReGaHss) einsetzt braucht dazu kein CUxD mehr und kann das Ganze auch einfach so lösen:

Code: Alles auswählen

integer tmpA = system.Random(0, 10);
dom.GetObject("Deine Variable").State(tmpA);
WriteLine(tmpA);
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“