wait in Abhängigkeit eines Device-Status

Begonnen von rallye, 09 Februar 2018, 17:00:16

Vorheriges Thema - Nächstes Thema

rallye

Guten Abend ! Ich werde aus den Beispielen und der CommandRef in Bezug auf mein Problem leider nicht schlau. Ich möchte folgendes erreichen:
wenn ich in einem DOIF-Zweig einen set-Befehl an meinen HM-CC-RT-DN sende geht dieser zuerst in den CMDs_pending Status, dann in den CMDs_processing Status und danach (hoffentlich) in den CMDs_done Status. Nun möchte ich im selben Zweig einen weiteren Befehl absetzen, der aber erst wenn der HM-CC-RT-DN wieder im CMDs_done-Status ist gesetzt werden soll. Wie kann ich das mit dem wait-attribut bewerkstelligen ? 120 Sekunden kann ich "schätzen", manchmal ist das zu kurz, manchmal zu lang. Daher hätte ich es gerne über den aktuellen Status getriggert...

Habt ihr bitte gute Ideen ? Danke !
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Ellert

Im selben Zweig geht es nur über Verzögerungen oder auf den gewünschten Status triggern im Prinzip so

(Bedingung für set Ventil) (set ...)
DOELSEIF ([Ventil] eq "done" and $cmd =1) (Befehle)


rallye

Danke. Nunja, das ist schon klar, was du da schreibst. was ich allerdings meine ist bei folgendem stück Code im DOELSEIF-Zweig::
([rg_Guest] eq "home" and [HCAutomatik] eq "on")
    {Heating_Control_SetAllTemps()}

  DOELSEIF ([rg_Guest] ne "home" and [HCAutomatik] eq "on")
      (set HK_Vent.SO_Clima controlMode night)
      {Heating_Control_SetAllTemps()}

Nachdem ich den "set HK_Vent.SO_Clima controlMode night"-Befehl abgesetzt habe möchte ich den "{Heating_Control_SetAllTemps()}" "nachschießen". Allerdings erst, nachdem der erste (set)-Befehl fertig ist, also nach dem CMDs_pending - CMDs_processing zu CMDs_done geführt hat. Die Zeiten/Dauer des "pending" und "processing" sind nicht vorhersehbar, da man ja nicht weiß, wann das Ventil "aufwacht" - im Schnitt alle 3 Minuten, aber beim Absetzen des "set" weiß man ja nicht wo man im 3-Minuten-Intervall (Anfang/Mitte/Ende) man gerade ist. Daher hab ich es mit einem
attr HomeState wait 0:0,120
gelöst - und das scheint mir nicht sehr elegant ...
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Ellert

Dann könntest Du statt   {Heating_Control_SetAllTemps()} diesen Funktionsaufruf in ein at packen, dass sich alle x Sekunden selbst erneuert bis CMDs_done und dann nur den Funktionsaufruf ausführt.