on-for-timer mit Berechnung aus Dummy

Begonnen von teichtaucher, 21 Juli 2016, 23:10:48

Vorheriges Thema - Nächstes Thema

teichtaucher

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?

justme1968

fhem ebene: {([dummy1:state]*60)}

perl ebene: {fhem "set ...". ReadingsVal('dummy1','state',1)*60}

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

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

teichtaucher

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.

automatisierer

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.

teichtaucher

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.

automatisierer

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.

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF