Aktor mit Zufallszahlen schalten

Begonnen von veLenoSo, 12 November 2016, 15:13:37

Vorheriges Thema - Nächstes Thema

veLenoSo

Hallo zusammen,

ich versuche gerade einen Aktor mit zwei Zufallszahlen zu schalten. Er soll so lange on sein, wie die Zufallszahl1 es angibt und so lange off sein, wie die Zufallszahl2 es angibt. Das Ganze soll sich jedoch so lange mit sich ändernden Zufallszahlen wiederholen, bis ein bestimmtes Ereignis eintritt, zum Beipsiel Lampe1 wird off geschaltet. Dementsprechend soll es immer aktiv sein, wenn Lampe1  on ist.
Bisher habe ich es mit folgendem Notify versucht:

Lampe1 {
if (ReadingsVal("Lampe1","STATE",0) eq "1") {
my $zahl1 = int(rand(200) +20 );
my $zahl2 = int(rand(100) +20 );
fhem('sleep '.$zahl1.';set Aktor on;sleep '.$zahl2.';set Aktor off');
}
}


Das funktioniert so weit auch gut, allerdings weiß ich nun nicht, wie ich das zuverlässig als Schleife hinbekomme. Vllt. ist ein Notify dafür auch nicht geeignet?
Es soll sich halt immer wiederholen bis Lampe1 off geschaltet wird.

Ich danke euch!

veLenoSo


Otto123

Moin,

Du solltest das auslösende Event anpassen, damit das notify nur bei Lampe = 1 getriggert wird. Insofern ist mein Syntax aber nur geraten. Dann eine while Schleife bis die Lampe wieder aus ist.

Lampe1:1{
while (ReadingsVal("Lampe1","STATE",0) eq "0") {
my $zahl1 = int(rand(200) +20 );
my $zahl2 = int(rand(100) +20 );
fhem('sleep '.$zahl1.';set Aktor on;sleep '.$zahl2.';set Aktor off');
}
}


Ob das wirklich mit einem notify so gut geht weiß ich nicht. Das wird ja quasi getriggert und rennt dann ewig.

Vielleicht schaust mal ob es nicht mit einem DOIF besser geht und dabei alles von Event gesteuert wird und keine Endlosschleife läuft.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

igami

Nur Geduld, hier gibt es keine hotline.

DOIF hat in der commandref ein Beispiel für das wiederholte senden einer Frost Nachricht. Vielleicht kannst du das für dich umschreiben. Weiterhin kannst du die Zufallszahl dort im wait Attribut unterbringen.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

justme1968

oder schau dir RandomTimer an.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

veLenoSo

Zitat von: igami am 14 November 2016, 05:42:44
Und? Schon was umgesetzt? :P
Frech?  :P

Aber ja, ich habe Ottos Vorschlag probiert umzusetzen. Leider ohne Erfolg, FHEM wollte daraufhin nicht mehr mit mir kommunizieren  8)

Deinen Ansatz habe ich mir bislang nur in der Doku angesehen, da hatte ich bislang noch keine zündende Idee, wie das damit funktionieren könnte..

Otto123

Zitat von: veLenoSo am 14 November 2016, 07:13:13
Frech?  :P

Aber ja, ich habe Ottos Vorschlag probiert umzusetzen. Leider ohne Erfolg, FHEM wollte daraufhin nicht mehr mit mir kommunizieren  8)

Deinen Ansatz habe ich mir bislang nur in der Doku angesehen, da hatte ich bislang noch keine zündende Idee, wie das damit funktionieren könnte..
Postest Du  mal bitte den Event der Lampe1 auf den Du starten willst?
Ich kann mir allerdings auch gut vorstellen (habe das noch nie probiert) das FHEM total blockiert während die Schleife läuft.
Insofern rate ich auch eher zum DOIF.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz