Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..
Moderator: Co-Administratoren
-
- Beiträge: 46
- Registriert: 27.08.2013, 21:09
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 1 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
Hallo Eugen, danke für die prompt Rückmeldung! Meinen ersten Fehler habe ich schon gefunden, wenn das Program dass die Variablen auswertet manuell ausgeführt wird, wird die "Wenn" Bedingung ignoriert -> Immer eingeschaltet.
Da muss man erst mal drauf kommen. Das Programme sich anders verhalten je nachdem ob manuell oder automatisch aufgerufen, halte ich für ein "interessantes" Konzept aber das ist ja anderweitig hier schon diskutiert worden
Habe ich deine Antwort richtig verstanden dass die Zahlen nur dann wirklich zufällig sind wenn das Script auch ständig (alle 3-5 Minuten) läuft? Zumindest nähern sich meine Werte langsam dem erwarteten Bereich an. Random_tp ist seit einiger Zeit positiv und momentan auf 0.53
Dass es da nicht einfacheres gibt? Eine Random Funktion hat doch jeder 30 Jahre alte C-Compiler mit an Bord, könnte man da nicht einfach was aus den O/S Bibliotheken aufrufen? Aber wahrscheinlich hast Du Dir das schon genau angeschaut bevor Du dir die Arbeit mit dem aufwendigen Script gemacht hast
Danke nochmal für deine Hilfe!
Gruss
Thomas
Da muss man erst mal drauf kommen. Das Programme sich anders verhalten je nachdem ob manuell oder automatisch aufgerufen, halte ich für ein "interessantes" Konzept aber das ist ja anderweitig hier schon diskutiert worden
Habe ich deine Antwort richtig verstanden dass die Zahlen nur dann wirklich zufällig sind wenn das Script auch ständig (alle 3-5 Minuten) läuft? Zumindest nähern sich meine Werte langsam dem erwarteten Bereich an. Random_tp ist seit einiger Zeit positiv und momentan auf 0.53
Dass es da nicht einfacheres gibt? Eine Random Funktion hat doch jeder 30 Jahre alte C-Compiler mit an Bord, könnte man da nicht einfach was aus den O/S Bibliotheken aufrufen? Aber wahrscheinlich hast Du Dir das schon genau angeschaut bevor Du dir die Arbeit mit dem aufwendigen Script gemacht hast
Danke nochmal für deine Hilfe!
Gruss
Thomas
RaspberryMatic
- funkleuchtturm
- Beiträge: 2370
- Registriert: 13.06.2011, 16:42
- Hat sich bedankt: 23 Mal
- Danksagung erhalten: 358 Mal
- Kontaktdaten:
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
Wie ich vorne erläutert habe erzeugt das Programm mit jedem Lauf , also hier alle 3 bis 4 Minuten, eine neue Zufallszahl. In der Zeitdarstellung der Zufallswerte entsteht ein Rauschen mit dem Mittelwert 0,5. Nimmst Du als Schaltschwelle für Deine Lampe diesen Wert, dann ist sie für 50% der Gesamtzeit eingeschaltet. Größere Schwellwerte verkleinern die prozentuale Einschaltzeit und umgekehrt.tz04 hat geschrieben:Habe ich deine Antwort richtig verstanden dass die Zahlen nur dann wirklich zufällig sind wenn das Script auch ständig (alle 3-5 Minuten) läuft?
Was erwartest Du denn ???tz04 hat geschrieben:Zumindest nähern sich meine Werte langsam dem erwarteten Bereich an. Random_tp ist seit einiger Zeit positiv und momentan auf 0.53
Das Verfahren funktioniert als Zufallsschalter nur so.tz04 hat geschrieben:Habe ich deine Antwort richtig verstanden dass die Zahlen nur dann wirklich zufällig sind wenn das Script auch ständig (alle 3-5 Minuten) läuft?
Schreib das mal an ELV , EQ3 oder ...tz04 hat geschrieben: Dass es da nicht einfacheres gibt? Eine Random Funktion hat doch jeder 30 Jahre alte C-Compiler mit an Bord, könnte man da nicht einfach was aus den O/S Bibliotheken aufrufen? Aber wahrscheinlich hast Du Dir das schon genau angeschaut bevor Du dir die Arbeit mit dem aufwendigen Script gemacht hast
Viele Gruesse
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker
-
- Beiträge: 46
- Registriert: 27.08.2013, 21:09
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 1 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
Ich war halt überrascht dass das Script zuerst negative Werte ausgespuckt hat nachdem Du am Anfang geschrieben hast dass das Ergebniss immer zwischen 0 und 1 sein sollte.funkleuchtturm hat geschrieben:Was erwartest Du denn ???tz04 hat geschrieben:Zumindest nähern sich meine Werte langsam dem erwarteten Bereich an. Random_tp ist seit einiger Zeit positiv und momentan auf 0.53
Aber jetzt passt alles! Nochmal Vielen Dank
Gruss
Thomas
RaspberryMatic
-
- Beiträge: 167
- Registriert: 24.10.2013, 11:33
- Danksagung erhalten: 1 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
Hallo zusammen,
ich probiere seit gestern mal das Script von funkleuchturm aus. Wenn ich das Script von Seite 1 nehme, geht das Licht zur eingestellten Startzeit des zweiten Programms an und bleibt dann an bis die Endzeit erreicht ist. Wenn ich das Skript teste, bekomme ich auch keine Ergebnisse angezeigt.
Wenn ich eines der Skripte nehme die etwas weiter unten stehen, dann funktioniert es soweit. Das Licht schaltet unregelmäßig für unregelmäßige Zeiten. Aber die prozentuale Anzahl stimmt nicht. Wenn ich random_tp auf 0,5 stelle, dann sollte das Licht ja laut Aussage 50% der eingestellten Zeit leuchten.
Ich hatte testweise mal eine Zeit von einer und zwei Stunden eingestellt, aktivieren des Scripts alle 2 Minuten. Bei einer Stunde brannte das Licht ca 45 Minuten und bei dem 2 Stunden Test brannte es nur 30 Minuten.
Dafür aber immer schön unregelmäßig.
Da muss doch irgendwo noch ein Fehler stecken...
Grüße
Thomas
ich probiere seit gestern mal das Script von funkleuchturm aus. Wenn ich das Script von Seite 1 nehme, geht das Licht zur eingestellten Startzeit des zweiten Programms an und bleibt dann an bis die Endzeit erreicht ist. Wenn ich das Skript teste, bekomme ich auch keine Ergebnisse angezeigt.
Wenn ich eines der Skripte nehme die etwas weiter unten stehen, dann funktioniert es soweit. Das Licht schaltet unregelmäßig für unregelmäßige Zeiten. Aber die prozentuale Anzahl stimmt nicht. Wenn ich random_tp auf 0,5 stelle, dann sollte das Licht ja laut Aussage 50% der eingestellten Zeit leuchten.
Ich hatte testweise mal eine Zeit von einer und zwei Stunden eingestellt, aktivieren des Scripts alle 2 Minuten. Bei einer Stunde brannte das Licht ca 45 Minuten und bei dem 2 Stunden Test brannte es nur 30 Minuten.
Dafür aber immer schön unregelmäßig.
Da muss doch irgendwo noch ein Fehler stecken...
Grüße
Thomas
-
- Beiträge: 12945
- Registriert: 16.01.2009, 18:48
- Wohnort: Steingaden
- Hat sich bedankt: 1623 Mal
- Danksagung erhalten: 222 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
wieso ?
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
-
- Beiträge: 167
- Registriert: 24.10.2013, 11:33
- Danksagung erhalten: 1 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
Weil mir das erste Skript gar kein Ergebnis anzeigt und mit dem anderen Skript bekomme ich nicht die bei random_tp eingestellten 50% hin...
-
- Beiträge: 12945
- Registriert: 16.01.2009, 18:48
- Wohnort: Steingaden
- Hat sich bedankt: 1623 Mal
- Danksagung erhalten: 222 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
denke das das mit 0,5 auch nicht geht - > ich habe da 0.5 gelesen, ansonsten wie immer : programme / skripte einstellen
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
-
- Beiträge: 167
- Registriert: 24.10.2013, 11:33
- Danksagung erhalten: 1 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
Argh, natürlich ist 0.5 eingestellt. Ein Komma ist ist ja auch gar nicht machbar.
Aber gut, das erste Programm sieht so aus: Das darin enthaltene Skript ist das:
Die Systemvariablen sind die:
Das zweite Programm ist das:
Das Skript ist wie erwähnt copy/paste von Funkleuchtturm.
In dem Fall jetzt ist das Licht um 19:02 angegangen und bleibt bis zum Ende an.
Da ist leider nix mit Zufall.
Aber gut, das erste Programm sieht so aus: Das darin enthaltene Skript ist das:
Code: Alles auswählen
!Version 2014.06.02 ; Verfasser :Eugen Stall
!zwei Systemvariablen "random_zahl" und "random_tp" als Zahl mit Wertebereich -2.0 bis 2.0 anlegen
!Skript speichert Zufallszahl zwischen 0.0 und 1.0 ungefiltert auf "random_zahl und gemittelt auf "random_tp"
!##############################################
real zahl = 65536.0 * dom.GetObject("random_zahl").State();
zahl = zahl.ToInteger();
if ((zahl <1) || (zahl > 65535)) {zahl= 3757;} !um saubere Startposition sicherzustellen
integer zahl_alt = zahl;
!##############################################
string dualzahl = "";
integer xor ;
integer x;
!hier wird ein 16bit-Schieberegister mit XOR-Rückkopplungen simuliert
if (zahl > 32767) {dualzahl = dualzahl + "1"; zahl = zahl - 32768; x = 1;} else {dualzahl = dualzahl + "0"; x = 0;}
xor = x;
if (zahl > 16383) {dualzahl = dualzahl + "1"; zahl = zahl - 16384;} else {dualzahl = dualzahl + "0";}
if (zahl > 8191) {dualzahl = dualzahl + "1"; zahl = zahl - 8192; x = 1;} else {dualzahl = dualzahl + "0"; x = 0;}
if ((xor + x) ==1) {xor = 1;} else {xor = 0;}
if (zahl > 4095) {dualzahl = dualzahl + "1"; zahl = zahl - 4096; x = 1;} else {dualzahl = dualzahl + "0"; x = 0;}
if ((xor + x) ==1) {xor = 1;} else {xor = 0;}
if (zahl > 2047) {dualzahl = dualzahl + "1"; zahl = zahl - 2048 ;} else {dualzahl = dualzahl + "0";}
if (zahl > 1023) {dualzahl = dualzahl + "1"; zahl = zahl - 1024 ; x = 1;} else {dualzahl = dualzahl + "0"; x = 0;}
if ((xor + x) ==1) {xor = 1;} else {xor = 0;}
!niedrigstes neues bit einschieben
zahl = zahl_alt * 2;
if (zahl > 65535) {zahl = zahl - 65536;}
zahl = zahl + xor;
!auf 1 normieren und auf Systemvariable random_zahl speichern ############
zahl = 0.0000152590219* zahl; !zahl / 65536
dom.GetObject("random_zahl").State(zahl);
!Mittelwertbildung : der Faktor 0.2 bestimmt die Mittelungsstärke. ###########
!Je kleiner, desto "ruhiger" das Rauschsignal ########################
real tp_random = dom.GetObject("random_tp").State();
tp_random = tp_random + (0.2 * (zahl - tp_random));
dom.GetObject("random_tp").State(tp_random);
tp_random = dom.GetObject("random_tp").State();
!####################################################
Das zweite Programm ist das:
Das Skript ist wie erwähnt copy/paste von Funkleuchtturm.
In dem Fall jetzt ist das Licht um 19:02 angegangen und bleibt bis zum Ende an.
Da ist leider nix mit Zufall.
-
- Beiträge: 167
- Registriert: 24.10.2013, 11:33
- Danksagung erhalten: 1 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
OK, scheint nun zu klappen.....fragt mich bitte nicht warum....
-
- Beiträge: 12945
- Registriert: 16.01.2009, 18:48
- Wohnort: Steingaden
- Hat sich bedankt: 1623 Mal
- Danksagung erhalten: 222 Mal
Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lamp
na dann, viel spass damit
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso !!!
wer schreibfehler findet darf sie behalten.