Statusabfrage auf global DEFINED möglich?

Begonnen von kwbo, 04 November 2013, 14:08:37

Vorheriges Thema - Nächstes Thema

kwbo

ich brauche mal wieder Unterstützung.
Über einen Bewegungsmelder (FS20 PIRI) schalte ich indirekt eine Lampe für einen bestimmten Zeitraum ein.
define act_timerPIRI1b notify flur_PIRI1b  { if (Value("Flurlicht") eq "off") { fhem("set Flurlicht on ;; define Flurlicht_autooff at +00:03:00 set Flurlicht off ") }
Nun möchte ich, dass die Lampe weiter anbleibt, solange der Bewegungsmelder zwischenzeitlich neu aktiviert wird.
Dazu muß ich allerdings wissen, ob das Licht überhaupt durch den Bewegungsmelder eingeschaltet wurde oder aber bereits vorher eingeschaltet war. In beiden Fällen ist der Status der Lampe "ON".
Bei der Erzeugung des Device "Flurlicht_autooff" wird (wenn ich das richtig gelesen habe) eine globale Variale DEFINED erzeugt. Diese müsste bis zum Ablauf der definierten Zeit und dem Löschen des Devices bestehen.  Die Existenz dieser Variable würde ich gerne in einer If-Abfrage auswerten. Ist das möglich oder bin ich da völlig auf dem Holzweg?
define act_timerPIRI1b notify flur_PIRI1b  { if (Value("Flurlicht") eq "off") { fhem("set Flurlicht on ;; define Flurlicht_autooff at +00:03:00 set Flurlicht off ") } else { if (Flurlicht_autooff eq "DEFINED") { fhem("set Flurlicht on ;; define Flurlicht_autooff at +00:03:00 set Flurlicht off ") }}
Vielen Dank für jeden Hinweis.
Gruß, Werner

justme1968

du kannst mit Value("Flurlucht_autooff") jederzeit rausfinden ob es das at gibt.

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

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

kwbo

Hallo Andre,

Ich habe die Sache mal  bei der folgenden Formel  mit zwei Schaltaktoren getestet. Es schien zu funktionieren.

define act_timerPIRI1a notify flur_PIRI1a  { if (Value("SSD8") eq "off") { fhem("set SSD8 on ;; define SSD8_autooff at +00:01:30 set SSD8 off") } else { if (Value("SSD8_autooff") =~ "Next*") { fhem("set SSD3 on ;; define SSD3_autooff at +00:00:10 set SSD3 off ") }}}

Wenn ich allerdings den ursprünglichen at-Zeitintervall neu zu setzen versuche, scheint das erneute Setzen des at-Zeitintervalls den aktuellen Wert nicht zu überschreiben.
Das Licht geht nach Ablauf der ersten gesetzten Zeit aus. Das erneute Setzen wird ignoriert.

Hast du da zufällig eine Idee, wie ich die Zeitspanne verlängern kann?
Habe ich da eine Möglichkeit, den aktuellen Wert zu ändern und zurückzuschreiben? Wenn ja, wie.

Danke und Gruß, Werner

justme1968

wenn du ein bestehendes at (oder jedes andere fhem device) verändern möchtest geht das nicht mit define sondern mit modify. oder löschen und neu anlegen.

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

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

kwbo

Hallo Andre,

herzlichen Dank für den Tip. Mit modify funktioniert es jetzt wie es soll.

Gruß, Werner

bugster_de

Hi,

ich mach das bei mir immer mit delete udn dann neu define. Falls das Element, welches gelöscht werden soll nicht existiert, so gibt es halt einen Eintrag im Logfile. Geht prima.