Hallo,
ich möchte einen Aktor für eine gewisse Zeit einschalten. Diese Zeit habe ich in einem Dummy definiert. Allerdings stehen im Dummy Minuten und keine Sekunden. Deshalb möchte ich die Sekunden ausrechnen:
set aktor on-for-timer (dummy1*60)
Das funktioniert aber nicht.
Folgendes habe ich auch schon versucht:
set aktor on-for-timer {[dummy1]*60}
oder
{fhem "set aktor on-for-timer ".[dummy1]*60}
Aber nichts funktioniert. Was mache ich falsch? Ich würde gern on-for-timer verwenden, da - so wie ich das verstanden habe - der interne Timer von Aktor verwendet wird. Also wenn FHEM abstürzt oder die Verbindung verliert bleibt der Aktor nicht dauerthaft an. Oder ist das auch so bei on-till?
fhem ebene: {([dummy1:state]*60)}
perl ebene: {fhem "set ...". ReadingsVal('dummy1','state',1)*60}
gruss
andre
Danke, hat super funktioniert. Ich habe noch eine Frage:
Wie kann ich bei DOIF bei dem wait attribut eine Verzögerung berechnet aus dem dummy benutzen?
Also
define mydoif doif [23:00] (set Kreis1 on)(set Kreis2 on)
attr mydoif wait 0,{([dummy1:state]*60)}
Ich möchte also, dass Kreis2 verzögert eingeschaltet wird. Die Verzögerung steht im dummy1 als Minutenwert (deshalb Multiplikation mit 60).
So funktioniert es leider nicht. Kreis1 und Kreis2 schalten immer gleichzeitig an.
attr mydoif wait 0,[dummy1:state]*60
oder halt auch direkt:
attr mydoif wait 0,[dummy1]*60
da müsste die Zeit ja auch drin stehen.
Danke! Nur als Rückmeldung.
Das hat funktioniert
attr mydoif wait 0,[dummy1]*60
das erste Beispiel hatte ich selber schon versucht und hat leider nicht funktioniert.
hm, habs grad bei mir mal getestet, da funktionieren beide Varianten... Es steht ja auch das Gleiche in [dummy] und in [dummy:state]...
Aber, eine funktionierende reicht ja.
Zitat von: teichtaucher am 23 Juli 2016, 21:07:26
Danke! Nur als Rückmeldung.
Das hat funktioniert
attr mydoif wait 0,[dummy1]*60
das erste Beispiel hatte ich selber schon versucht und hat leider nicht funktioniert.
Mit aktuellen Version von DOIF funktionieren beide Varianten.
Gruß
Damian