on-till-overnight mit zusätzlichem Zufallsparameter

Begonnen von TomLee, 12 September 2022, 22:31:42

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

irgendwann werd ich auch mal fertigen Code zu meinen Vorstellungen bereitstellen können, hoff ich.
Das mein ich wär hier jetzt auch schon, zumindest ansatzweise, möglich, ich hab aber keine Nerven dazu zurzeit und hab mich nicht weiter mit beschäftigt.

Könnt ihr euch so einen zusätzlichen Parameter vorstellen bereitzustellen ?

Eine weitere Angabe in Sekunden der in dem Bereich timedet zufällig +/- verändert wird.

Gruß

Thomas

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TomLee

Was ist/sind das/die Gegenargument(e) ?

HTML Code in comment hast du bspw. auch überlebt.

rudolfkoenig

#3
ZitatHTML Code in comment hast du bspw. auch überlebt.
Aber womoeglich nur mit unerwuenschten Nebenwirkungen :)

Folgendes generiert zufaellige Zeiten zwischen 5:00 und 7:00:
set lampe on-till-overnight {my$x=5*60+rand(120);;sprintf("%02d:%02d",$x/60,$x%60)}

TomLee

#4
Danke für das Beispiel, vorallem das korregierte (mit dem Verständnis zum Zugriff auf den data-Hash hängts bei mir nämlich immer noch und ich hab schon gerätselt wie ich das dann mit mehreren Devices umsetzen soll).

Ich werds so umsetzen:

defmod at_Deko_sunrise at *{sunrise("HORIZON=-15")} {\
my $x = rand(60);;\
$x = sprintf("%02d:%02d",$x/60,$x%60);;\
my @dev = ('MQTT2_WLED_G1','MQTT2_WLED_G2','MQTT2_WLED_FR','MQTT2_WLED_TV','MQTT2_zigbee_rgbw_bulb_flur_privat','MQTT2_Mi_Wecklicht','MQTT2_Tasmota_Bulb1' );;\
my $pc = substr(Color::pahColor(0,15,30,ReadingsVal('HF_Aussensensor_Vorderhaus','temperature','0'),2,0),0,6);;\
return fhem("set $dev[0]|$dev[2]|$dev[3]|$dev[4]|$dev[5]|$dev[6]:FILTER=state!=on on-till-overnight $x;;set $dev[0]|$dev[2]|$dev[3]|$dev[4]|$dev[5]|$dev[6] rgb $pc;;");;\
}
attr at_Deko_sunrise room Deko

setstate at_Deko_sunrise Next: 05:29:35
setstate at_Deko_sunrise 2022-09-13 11:53:25 state Next: 05:29:35


Zur Kontrolle hab ich ein execNow ausgeführt und die ats werden mMn. korrekt erstellt (irgendwo zw. 0 und 1 Uhr soll geschaltet werden).

Danke

edit:

wer sich fragt das da doch was nicht stimmt, es gibt noch ein notify welches die Farbe bei Temperaturänderung anpasst:

defmod not_Deko notify HF_Aussensensor_Vorderhaus:temperature:.* {\
my @dev = ('MQTT2_WLED_G1','MQTT2_WLED_G2','MQTT2_WLED_FR','MQTT2_WLED_TV','MQTT2_zigbee_rgbw_bulb_flur_privat','MQTT2_Mi_Wecklicht','MQTT2_Tasmota_Bulb1');;\
my $pc = substr(Color::pahColor(0,15,30,ReadingsVal('HF_Aussensensor_Vorderhaus','temperature','0'),2,0),0,6);;\
fhem("set $dev[0]|$dev[2]|$dev[3]|$dev[4]|$dev[5]|$dev[6]:FILTER=state=on rgb $pc;;");;\
}
attr not_Deko room Deko

setstate not_Deko 2022-09-13 12:13:09
setstate not_Deko 2022-09-12 13:18:47 state active
setstate not_Deko 2022-09-13 12:13:09 triggeredByDev HF_Aussensensor_Vorderhaus
setstate not_Deko 2022-09-13 12:13:09 triggeredByEvent temperature: 22.75


Tipps wie mans besser umsetzt schlag ich nicht aus.