RandomTimer timetoSwitch mit Zufallszahl generieren

Begonnen von romakrau, 14 März 2020, 20:13:04

Vorheriges Thema - Nächstes Thema

romakrau

Halo zusammen,
ich möchte gerne die Einschaltdauer des RandomTimer mit einer zufälligen Dauer vorgeben.
Die Zeit zwischen den Einschaltintervallen kann ich mit wait steuern.
Hat jemand mal ein Beispiel für mich. Oder muss ich es alternativ mit on-for-Timer rand( kleiner als Einschaltdauer) umschiffen? Damit hätte ich dann auch gleich das Wait abgehandelt.
Gruß
Roman

amenomade

Ich verstehe nicht, was Du machen möchtest.

Willst Du, dass <timespec_start> und <timespec_stop> jeden Tag zufällig sind? Dann nutze irgendwelche Perlfunktion.  Aber ich verstehe den Sinn nicht. Der RandomTimer schaltet sowieso zufällig zwischen start und stop.

RandomTimer hat kein wait Attribut.

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

romakrau

Ich glaube jetzt habe ich den RandomTimer verstanden. Dachte man könnte die On/Off Zeit per rand() setzen. Ist aber nicht. Werde das mit on-for-timer lösen. Es sollten diversen Devices zufällig geschaltet werden. Werde mir mal ein Timing-Diagramm malen. Wenn ich die zufälligen Zeiten geschickt kombiniere kommt vielleicht was vernünftiges bei raus. Danke für die Antwort.

Beta-User

Hmm, Danke erst mal für die Frage.

Ich fand es schon immer nicht sooo logisch, dass nicht auch die Schaltzeiten ggf. variieren können und werde mir das mal bei Gelegenheit ansehen, ob man da nicht auch noch eine optionale Zufälligkeit einbauen könnte.

Was heute schon gehen sollte: einfach kürzere Zyklen wählen und dafür dann die Wahrscheinlichkeiten für's Ein- und Ausschalten verringern.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

amenomade

Zitat von: Beta-User am 15 März 2020, 10:23:26
Ich fand es schon immer nicht sooo logisch, dass nicht auch die Schaltzeiten ggf. variieren können und werde mir das mal bei Gelegenheit ansehen, ob man da nicht auch noch eine optionale Zufälligkeit einbauen könnte.

Die Frage verstehe ich immer noch nicht. RandomTimer schaltet zufällig zwischen start und stop.
Wenn ich den von 18 Uhr bis 6 Uhr in Betrieb nehme, dann schaltet er, abhängig vom Wahrscheinlichkeit Attribut z.B. um 18:10 an, um 19Uhr aus, dann um 19:50 Uhr an, 21:55 aus, usw...

Was muss noch zufälliger werden?
Wenn ich den ganzen Tag zufällig schalten möchte, dann mache ich start=00:00 Uhr, stop= 23:59 Uhr.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Beta-User

Was nicht zufällig ist, ist die Zeit zwischen zwei eventuellen Schaltzeiten. In deinem Beispiel wären es immer 5 Minuten.

Mein Gedanke: Aus
define <name> RandomTimer  <timespec_start> <device> <timespec_stop> <timeToSwitch> würde
define <name> RandomTimer  <timespec_start> <device> <timespec_stop> <timeToSwitch> [<variation>] Als <variation> könnte dann ein Prozentwert eingegeben werden, um den die timeToSwitch ggf. zufällig variieren kann:
variation angegeben mit 50 ergäbe dann bei 300 irgendwas zwischen 300 und 450...?

(Ich bin der aktuelle Maintainer und halte das mit überschaubarem Aufwand für machbar...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

amenomade

Zitat von: Beta-User am 15 März 2020, 11:32:22
Was nicht zufällig ist, ist die Zeit zwischen zwei eventuellen Schaltzeiten. In deinem Beispiel wären es immer 5 Minuten.
Naja.... Das heisst, das Modul fragt sich jede 5. Minute, soll ich oder soll ich nicht schalten? Das ist aber doch immer noch zufällig oder? Vielleicht schaltet er, vielleicht schaltet er aber nicht...
Wenn ich es jede 2. Minute möchte, dann setze ich timeToSwitch auf 2 Minute... und mache die Wahrscheinlichkeit in switchmode kleiner.

Aber gut... als Maintainer, machst Du es wie Du möchtest ;) So lange es meine jetzige Definition nicht beeinflusst..
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Beta-User

Zitat von: amenomade am 15 März 2020, 12:11:58
Naja.... Das heisst, das Modul fragt sich jede 5. Minute, soll ich oder soll ich nicht schalten? Das ist aber doch immer noch zufällig oder? Vielleicht schaltet er, vielleicht schaltet er aber nicht...
Alles korrekt, und im Prinzip ist das auch kein Problem, weil man die Zeitscheiben ja kleiner schneiden kann. Das beeinflußt aber die Mindestzeit, die z.B. eine Lampe angeschaltet ist.

ZitatAber gut... als Maintainer, machst Du es wie Du möchtest ;) So lange es meine jetzige Definition nicht beeinflusst..
Das war der Gedanke hinter dem Vorschlag, ein weiteres optionales Argument einzuführen (aber nach etwas Nachdenken ggf. eher als Sekundenangabe). So hätte man "Rückwärtskompabilität", eine vernünftige "garantierte" Mindesteinschaltzeit und eine gewisse zusätzliche Variabilität bei den (eventuellen) Schaltzeitpunkten - führt vielleicht dazu, dass der eine oder andere dann ggf. die Wahrscheinlichkeiten für's Ausschalten hochsetzt - ähnliches Ergebnis, aber weniger Timer und wirklich zufällige Zeitpunkte...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Beta-User

So, ein Blick in den Code beseitigt manche Unklarheit: auch der Umschaltzeitpunkt ist nicht fix, sondern schwankt um +/-5% um den Sollwert.
Sollte daher eigentlich gar kein Problem sein...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Beta-User

Da ich das interessant fand und auch den ersten möglichen Einschaltzeitpunkt "verzufallen" wollte, gibt's hier eine Testversion: https://forum.fhem.de/index.php/topic,14010.msg1032133.html#msg1032133

Rückmeldung bitte möglichst in dem verlinkten Thread.

Grüße, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors