Autor Thema: State "on-for-timer" bei Z-Wave nicht erkennbar?  (Gelesen 302 mal)

Offline FunkOdyssey

  • Sr. Member
  • ****
  • Beiträge: 814
State "on-for-timer" bei Z-Wave nicht erkennbar?
« am: 15 März 2017, 14:03:14 »
Kann man bei den Z-Wave-Geräten eigentlich gar nicht erkennen, ob diese per "on-for-timer" eingeschaltet wurden?

Bei meinen Homematic-Geräten verlängere ich die Einschaltzeit eines Geräts per on-for-timer auf folgende Art:

set hm_lampe:FILTER=state!=on on-for-timer 300
Ein "on-for-timer" darf nicht ausgelöst werden, wenn die Lampe bereits manuell eingeschaltet wurde. HM-Geräte beinhalten im State auch ein "on-for-timer".

Mache ich das nun bei Z-Wave so klappt das leider nicht. Hier bedeutet, dass "on-for-timer" den State auf "on" setzt. Also wird eine Verlängerung des Timers durch eine erneute Bewegung nicht durchgeführt, da ja der Status auf "on" steht.

Hat jemand einen Tipp wie ich das bei Z-Wave machen kann?

Ich wundere mich nämlich seit längerem warum meine Z-Wave-Lampen immer erst ausgehen müssen, um dann wieder eingeschaltet zu werden. :-)
FHEM@RasPi

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 16260
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #1 am: 15 März 2017, 14:59:10 »
Zitat
Kann man bei den Z-Wave-Geräten eigentlich gar nicht erkennen, ob diese per "on-for-timer" eingeschaltet wurden?
Nur wenn man nach "set on-for-timer" auch ein "setstate on-for-timer" ausfuehrt.

Offline FunkOdyssey

  • Sr. Member
  • ****
  • Beiträge: 814
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #2 am: 15 März 2017, 15:40:28 »
Nur wenn man nach "set on-for-timer" auch ein "setstate on-for-timer" ausfuehrt.

Sorry, Rudolf, aber das bringt ja nicht wirklich viel, oder?
Ich ändere ja einfach nur hart den Status ohne jedwede Countdown-Funktion.  ;)

Ich habe nun im Forum gefunden, dass ein Internal gesetzt wird:

Internals:
   Readings:
     2017-03-15 14:10:18   reportedState   on
     2017-03-15 15:04:55   state           on
   Timed_onoff:
     CMD        on-for-timer
     DURATION   240
     NEXTCMD    off
     START      1489586695.08448
     START_FMT  2017-03-15 15:04:55

Ich versuche es mal darüber. Wenn ich den Code habe, dann werde ich es hier schreiben.
Ich bin ein DOIFler und suche gerade hier nach der richtigen Syntax. :-)
FHEM@RasPi

Offline FunkOdyssey

  • Sr. Member
  • ****
  • Beiträge: 814
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #3 am: 16 März 2017, 11:41:35 »
Mit Hilfe des o.g. DOIF-Threads habe ich nun einen Workaround für die Verlängerung eines "on-for-timer"s gefunden.

Das Ergebnis auf Basis eines DOIFs sieht wie folgt aus:

Z-Wave:
(
[bmelder:motion] =~ "on" and
(
[lampe:state] eq "off" or
[lampe:state] eq "on" and $defs{'lampe'}->{TIMED_OnOff}{CMD} eq "on-for-timer"
)
)
(
set lampe on-for-timer 300
)


Bei Homematic wäre es ein Einzeiler, da man hier anhand der Readings den aktuellen Zustand filtern kann.

Homematic:
(
[bmelder:motion] =~ "on"
)
(
set lampe:FILTER=state!=on on-for-timer 300
)



Bei Z-Wave ist dies leider nicht direkt erkennbar, so dass ein devspec-Filter dann nicht funktioniert.

Wäre das nicht eine Überlegung, bei Z-Wave-Geräten das irgendwie offensichtlich erkennbarer und somit auch nutzbarer zu machen?

Das wäre Notifys und DOIFs um ein Vielfaches übersichtlicher machen.

Vielen Dank.
FHEM@RasPi

Online krikan

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4875
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #4 am: 16 März 2017, 11:44:06 »
Normalerweise sollte bei ZWave "reportedState" den aktuellen Zustand des Aktors liefern. Dann braucht man nicht solche Klimmzüge zu machen.#

Gruß, Christian

Offline FunkOdyssey

  • Sr. Member
  • ****
  • Beiträge: 814
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #5 am: 16 März 2017, 11:47:33 »
Normalerweise sollte bei ZWave "reportedState" den aktuellen Zustand des Aktors liefern. Dann braucht man nicht solche Klimmzüge zu machen.#

Gruß, Christian

Jein. Natürlich steht dort dann, dass der Aktor "on" ist. Aber woher weiß ich dann, ob der Aktor über einen on-for-timer oder manuell eingeschaltet wurde?
Würde ich bei einem "on" einen "on-for-timer" hinterherschieben, dann geht der Aktor ja wieder aus.
Ich will doch nur, dass eine begrenzte Einschaltzeit durch eine erneute Bewegung wieder verlängert wird. Aber auch nur dann, wenn die Lampe durch den Bewegungsmelder eingeschaltet wurde.

Abgesehen davon aktualisiert sich "reportedState" bei mir nicht.
« Letzte Änderung: 16 März 2017, 11:49:35 von FunkOdyssey »
FHEM@RasPi

Online krikan

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4875
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #6 am: 16 März 2017, 11:54:54 »
Zitat
Aber woher weiß ich dann, ob der Aktor über einen on-for-timer oder manuell eingeschaltet wurde?
Gar nicht; hast recht und ich habe den Thread-Anfang nicht richtig gelesen bzw. verstanden.  :-[

Offline FunkOdyssey

  • Sr. Member
  • ****
  • Beiträge: 814
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #7 am: 16 März 2017, 11:56:58 »
Schade. Ich hätte mich gerne geirrt. Mir wäre es lieber gewesen, wenn ich irgendeine viel einfachere Lösung übersehen hätte.

Ist das denn kompliziert umzusetzen? Einfach das Internal {TIMED_OnOff}{CMD} als Reading darstellen?
FHEM@RasPi

Offline Thyraz

  • Full Member
  • ***
  • Beiträge: 330
Antw:State "on
« Antwort #8 am: 16 März 2017, 12:12:36 »
Ich denke der Unterschied bei ZWave und Homematic liegt auch daran,
dass Homematic ein On-For-Timer ja wirklich intern unterstützt.

Sprich wenn die Zentrale abstürzt wird dennoch nach der Zeit abgeschaltet.
Bei ZWave gibt es das ja nicht und es handelt sich nur um ein Software-Gimmick von FHEM.

Ich würde daher im DOIF auch gar nicht on-for-timer verwenden, sondern den Zustand eben manuell im DOIF steuern.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 16260
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #9 am: 16 März 2017, 13:42:15 »
set hm_lampe:FILTER=TIMED_OnOff!=HASH.* on-for-timer 300

Offline FunkOdyssey

  • Sr. Member
  • ****
  • Beiträge: 814
Antw:State "on-for-timer" bei Z-Wave nicht erkennbar?
« Antwort #10 am: 16 März 2017, 13:47:50 »
Super, das kann ich mal ausprobieren. Über den String HASH bin ich auch gestolpert, als ich mir folgendes angeguckt hatte:
{$defs{'lampe'}->{TIMED_OnOff}}
Nur bin ich nicht auf die Idee gekommen, dies als Filter zu gebrauchen.

Danke vielmals.
FHEM@RasPi