Hauptmenü

Einfache Regelfrage

Begonnen von thsm, 17 Februar 2015, 21:52:51

Vorheriges Thema - Nächstes Thema

thsm

Hi zusammen,

nachdem ich nun alle Devices in FHEM migriert habe, stehe ich vor einer kleinen Verständnisfrage.
Wäre nett wenn mir hier jemand auf die Sprünge helfen könnte
Ausgangslage :
Zum einen habe ich mit dem WifiLight Modul ein LW12 LED Stripe eingebunden
Desweiteren ist ein PIR-1000 Bewegungsmelder vorhanden.

Die Lampe ist definiert und lässt sich aus Fhem heraus mit ON / OFF schalten.
Der Bewegungsmelder taucht mit Meldungen im Log auf und zwar  wie folgt :

2015.02.17 21:37:28 3: K.Dimmer on->off
2015.02.17 21:38:12 3: K.Dimmer off->on

Nun wollte ich per Regel bei K.DImmer off>on den LED Stripe schalten, eigentlich trival :)

Versucht habe ich es mit der Regel :
define K.Licht_Dim notify K.Dimmer:off->on:.* set K.Licht on-for-timer 5

So dachte ich erfolgt das Ergebnis, dass LED für 5 Sekunden eingeschaltet wird.
Es passiert aber leider nichts und im Log sehe ich neu weitere Dimmer Ereignisse.
Wo steckt mein Missverständnis ? :)

Ich danke euch vorab

Gruß
Thorsten


jojoja

Hallo Thorsten,

ich glaube on-for-timer ist vor allem FS20 und HomeMatic vorenthalten.
Zuerst würde ich probieren, ob der notify auslöst

define K.Licht_Dim notify K.Dimmer:off->on:.* set K.Licht on

und wenn das funktioniert dann die Anweisung mit einem sleep erweitern:

define K.Licht_Dim notify K.Dimmer:off->on:.* set K.Licht on;sleep 5;set K.Licht off

bei den ; musst du möglicherweise probieren, bin mir da nie sicher wie die zu setzen sind...
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

forum-merlin

Hi,

nagel mich bitte nicht fest, aber ich würde mir den notify nochmal genau anschauen...
http://fhem.de/commandref.html#notify

Der sieht für mich etwas komisch aus.
Meine habe ich ungefähr so definiert:


define ntfy_K.Licht_dim notify K.Dimmer:on { fhem ("set K.Licht on-for-timer 5")}


K.Dimmer ist hier der Aktor, der den Status on hat, wen man ihn einschaltet, und demnach soll darauf dann ein set <Aktor> on-for-timer passieren.

Die Pfeile hier -> und keine Ahnung was noch so, finde ich hier verwirrend.


TANTE EDIT:
Ach ja, und vll ist auch DOIF etwas für Dich
http://fhem.de/commandref.html#DOIF



Gruß

der merlin
FHEM 5.8 auf RasPi3; CULv3-868; RFXtrx433; HM-Sec-SC-2; HM-CFG-LAN; HM-LC-Bl1-FM; HM-CC-RT-DN; HM-ES-PMSw1-Pl; HM-LC-Sw4-DR; Hunter Ventile; 8ch Relais; ENIGMA2; ONKYO_AVR; SONOS; Harmony; telegram; HM-PB-6-WM55; GPIO; HM-Sen-MDIR-O; HM-SEC-SD; HM-LC-Dim1L-Pl-3;

thsm

Hi Du,

vielen Dank für eure Antworten.
@ jojoja leider haben beide Ansätze in dem Fall auch keinen Erfolg gehabt. Wobei eins wohl doch ein richtiger Hinweise ist weil
@ forum-merlin mit Deiner Anweisung schaltet das Licht :)) aber der on-for-timer wird nicht umgesetzt und mit einer Fehlermeldung im Log quittiert.
Ersetze ich das on-for-timer, mit nur on, schaltet es.
Mit den Pfeilen habe ich aus dem Log rauskopiert, da ich dachte dass ist das auslösende Ereignis. Es muss aber tatsächlich nur on sein.

Kann es dann sein wie jojoja sagte, dass on-for-timer den genannten Devices vorbehalten ist ?

Gruß
Thorsten
Gruß
Thorsten

krikan

Zitat von: thsm am 17 Februar 2015, 23:05:17
Kann es dann sein wie jojoja sagte, dass on-for-timer den genannten Devices vorbehalten ist ?
Nein, alle Module/Devices die setExtensions unterstützen oder es direkt eingebaut haben, können on-for-timer. Mit readingsProxy bekommt man aber für jedes Devices on-for-timer eingebaut: http://www.fhemwiki.de/wiki/ReadingsProxy#setExtensions_f.C3.BCr_Ger.C3.A4te_implementieren

thsm

#5
Hi nochmals,

ich habe es mit dem DOIF gelöst bekommen
Das Kommando schaut dann im Moment so aus :

define K.Licht_dim DOIF ([K.Dimmer:state] eq "on")({fhem "set K.Licht on"})DOELSEIF ([K.Dimmer:state] eq "off") ({fhem "set K.Licht off"})

Dem Dimmer habsch gesagt er soll einmal die Minute senden, somit erreiche ich nebenbei, dass das Licht 1 Minute anbleibt :)

Ich danke euch für die Hilfe

@ krikan mit den readingsProxy kann man wohl einiges anstellen, den werde ich mir auch nochmal genauer anschauen :)

Gruß
Thorsten

Edit : hab das DOIF oben in der Zeile vergessen, falls es mal wer braucht

Wuppi68

warum macht Ihr so komplizierte Definitionen?
define ntfy_K.Licht_dim notify K.Dimmer:on { fhem ("set K.Licht on-for-timer 5")}

ich würde es so machen:

define ntfy_K.Licht_dim notify K.Dimmer:on set K.Licht on-for-timer 5

dann braucht Perl nicht aus FHEM Perl aufrufen und dann in Perl wieder einen FHEM Befehl absetzen :-)
FHEM unter Proxmox als VM

thsm

Zitat von: Wuppi68 am 18 Februar 2015, 09:26:54
warum macht Ihr so komplizierte Definitionen?
define ntfy_K.Licht_dim notify K.Dimmer:on { fhem ("set K.Licht on-for-timer 5")}

ich würde es so machen:

define ntfy_K.Licht_dim notify K.Dimmer:on set K.Licht on-for-timer 5

dann braucht Perl nicht aus FHEM Perl aufrufen und dann in Perl wieder einen FHEM Befehl absetzen :-)

Hallo Wuppi68,

danke Dir für den Hinweis, ich wusste es nicht besser und habe mir den Befehl zusammengeschrieben auf Basis einiger Beispiele.
Wie von Dir beschrieben, ist es natürlich eleganter und sinniger, werde ich so umsetzen :)

Gruß
Thorsten