doif bei Unterschreitung eines bestimmten LUX Wertes

Begonnen von Dieter68, 18 Juli 2018, 22:10:46

Vorheriges Thema - Nächstes Thema

Dieter68

Hallo,

ich versuche per DoIf bei einer Unterschreitung einer bestimmten Beleuchtungsstärke eine LED zu schalten - leider klappt das nicht.

Ich habe einen Sensor wie im Anhang angelegt.

Dann habe ich folgendes DoIF angelegt:

defmod Teichbeleuchtung DOIF ([ESPEasy_Gartensteuerung_Lichtsensor:Lux] < 6) (set ESPEasy_Rollade_1.OG_WZ_Fenster_LED1 on )
attr Teichbeleuchtung room 1.OG Wohnzimmer

setstate Teichbeleuchtung initialized
setstate Teichbeleuchtung 2018-07-18 22:08:30 Device ESPEasy_Gartensteuerung_Lichtsensor
setstate Teichbeleuchtung 2018-07-18 21:51:41 cmd 0
setstate Teichbeleuchtung 2018-07-18 21:51:41 mode enabled
setstate Teichbeleuchtung 2018-07-18 21:51:41 state initialized



Leider funktioniert das so einfach nicht.

Könnt Ihr mir sagen was ich hier falsch mache?

Danke und Gruß
Dieter68


CoolTux

Ohne ein ausführliches list vom Device kann man nur raten.
Attribut do always nicht gesetzt?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Dieter68


CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Dieter68

Danke ....

Hier mal vom Lichtsensor:

Internals:
   DEF        192.168.1.126 80 ESP_Bridge Gartensteuerung_Lichtsensor
   ESP_BUILD  20000
   ESP_BUILD_GIT v2.0.0-dev12
   ESP_BUILD_NOTES  - Mega
   ESP_Bridge_MSGCNT 164
   ESP_Bridge_TIME 2018-07-18 22:21:31
   ESP_NODE_TYPE_ID 17: ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   26
   ESP_VERSION 2
   HOST       192.168.1.126
   IDENT      Gartensteuerung_Lichtsensor
   INTERVAL   300
   IODev      ESP_Bridge
   LASTInputDev ESP_Bridge
   MSGCNT     164
   NAME       ESPEasy_Gartensteuerung_Lichtsensor
   NOTIFYDEV  global
   NR         192
   NTFY_ORDER 50-ESPEasy_Gartensteuerung_Lichtsensor
   PORT       80
   STATE      Lux: 0.00
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.39
   READINGS:
     2018-07-18 22:21:31   Lichtstaerke    0.00 Lux
     2018-07-18 22:21:31   Lux             0.00
     2018-07-18 22:20:04   presence        present
     2018-07-18 22:21:31   state           Lux: 0.00
   helper:
     fpc        1531635434
     pm:
       Encode     1
       JSON       1
     received:
       Lux        1531945291
Attributes:
   IODev      ESP_Bridge
   Interval   300
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       Garten
   setState   3
   userReadings Lichtstaerke  {ReadingsVal("ESPEasy_Gartensteuerung_Lichtsensor","Lux",0)." Lux"}

CoolTux

Funktioniert Dein Lichtsensor nicht oder Dein DOIF?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Dieter68

Der Lichtsensor liefert Daten - der hat kein Problem.

Das DoIf will nicht und somit wird die LED nicht auf on geschaltet.

Hier mal das DoIf:

Internals:
   CFGFN     
   DEF        ([ESPEasy_Gartensteuerung_Lichtsensor:Lux] < 6) (set ESPEasy_Rollade_1.OG_WZ_Fenster_LED1 on )
   MODEL      FHEM
   NAME       Teichbeleuchtung
   NR         454505
   NTFY_ORDER 50-Teichbeleuchtung
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-07-18 22:24:31   Device          ESPEasy_Gartensteuerung_Lichtsensor
     2018-07-18 21:51:41   cmd             0
     2018-07-18 21:51:41   mode            enabled
     2018-07-18 21:51:41   state           initialized
   Regex:
   condition:
     0          ReadingValDoIf($hash,'ESPEasy_Gartensteuerung_Lichtsensor','Lux') < 6
   devices:
     0           ESPEasy_Gartensteuerung_Lichtsensor
     all         ESPEasy_Gartensteuerung_Lichtsensor
   do:
     0:
       0          set ESPEasy_Rollade_1.OG_WZ_Fenster_LED1 on
     1:
   helper:
     event      Lux: 0.00,Lichtstaerke: 0.00 Lux,Lux: 0.00,Lichtstaerke: 0.00 Lux
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev ESPEasy_Gartensteuerung_Lichtsensor
     triggerEvents:
       Lux: 0.00
       Lichtstaerke: 0.00 Lux
       Lux: 0.00
       Lichtstaerke: 0.00 Lux
     triggerEventsState:
       state: Lux: 0.00
       Lichtstaerke: 0.00 Lux
       state: Lux: 0.00
       Lichtstaerke: 0.00 Lux
   internals:
   itimer:
   readings:
     0           ESPEasy_Gartensteuerung_Lichtsensor:Lux
     all         ESPEasy_Gartensteuerung_Lichtsensor:Lux
   trigger:
   uiState:
   uiTable:
Attributes:
   room       1.OG Wohnzimmer

CoolTux

Sehe da jetzt gerade nichts falsches dran. Verschieben das Mal besser ins DOIF Forum, dann lesen das auch die besser Wissenden.

Ganz unten ganz links sollte der Knopf zum verschieben sein.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Dieter68


swsmily

Ich denke das Problem könnte der Punkt in den Lux-Werten sein. Probiere mal [ESPEasy_Gartensteuerung_Lichtsensor:Lux:d0] vielleicht hilft das.
Siehe Commandref:
https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen



Dieter68

Hallo,

danke für den Hinweis - werde ich gleich morgen mal probieren da der Sensor jetzt leider nur noch 0.00 ausgibt weil es eben dunkel ist  ;D


Jetzt werde ich erst einmal die Referenz durchlesen.

Aber danke schon mal....

Gruß
Dieter

swsmily

Ich hab bei mir selbst eine "Helligkeitsabhängige"-Steuerung. Was mir gerade da noch aufgefallen ist, ich hab die Zahl (jedoch gemeldet von Fibaro-Motion-Eye) zusätzlich in " " gepackt:
([Bewegungsmelder_Kueche:luminance:d] <= "170")

vielleicht sind schon die fehlenden Anführungszeichen das Problem.

Da Momentan der Lux-Wert unter 6 ist, kannst du doch testen mit set Teichbeleuchtung checkall.
Wenn die Bedingung dann wahr wird, sollte dein ESPEasy_Rollade_1.OG_WZ_Fenster_LED1 auf on schalten und das DOIF auch CMD_1 gehen.

Damian

#12
DOIF arbeitet eventgesteuert, so wie es aussieht, generiert das Reading lux kein Event (siehe erster Screenshot).

Mit Setzen des Attributes:

attr Teichbeleuchtung checkReadingEvent 0

reagiert DOIF auf alle Events des angegebenen Devices.

Das sollte in diesem Fall helfen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Dieter68

Hallo Damian,

ich denke mal das wird es gewesen sein - ich teste gerade noch.

Danke schon mal für die Hilfe.

Melde mich wieder.

Gruß
Dieter68

Dieter68

Hallo,

so es funktioniert jetzt ohne Probleme..... :)

Internals:
   CFGFN     
   DEF        ([ESPEasy_Gartensteuerung_Lichtsensor:Lux:] < 6000) (set LEDTest on )
   MODEL      FHEM
   NAME       Teichbeleuchtung
   NR         84503
   NTFY_ORDER 50-Teichbeleuchtung
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-07-19 17:22:47   Device          ESPEasy_Gartensteuerung_Lichtsensor
     2018-07-19 17:22:41   cmd             1
     2018-07-19 17:22:41   cmd_event       ESPEasy_Gartensteuerung_Lichtsensor
     2018-07-19 17:22:41   cmd_nr          1
     2018-07-19 17:22:47   e_ESPEasy_Gartensteuerung_Lichtsensor_Lux 5571.25
     2018-07-19 17:22:02   mode            enabled
     2018-07-19 17:22:41   state           cmd_1
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ReadingValDoIf($hash,'ESPEasy_Gartensteuerung_Lichtsensor','Lux') < 6000
   devices:
     0           ESPEasy_Gartensteuerung_Lichtsensor
     all         ESPEasy_Gartensteuerung_Lichtsensor
   do:
     0:
       0          set LEDTest on
     1:
   helper:
     event      Lux: 5571.25,Lichtstaerke: 5571.25 Lux
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   ESPEasy_Gartensteuerung_Lichtsensor
     timerevent Lux: 5571.25,Lichtstaerke: 5571.25 Lux
     triggerDev ESPEasy_Gartensteuerung_Lichtsensor
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: ESPEasy_Gartensteuerung_Lichtsensor
       state: cmd_1
     timerevents:
       Lux: 5571.25
       Lichtstaerke: 5571.25 Lux
     timereventsState:
       state: Lux: 5571.25
       Lichtstaerke: 5571.25 Lux
     triggerEvents:
       Lux: 5571.25
       Lichtstaerke: 5571.25 Lux
     triggerEventsState:
       state: Lux: 5571.25
       Lichtstaerke: 5571.25 Lux
   internals:
   itimer:
   readings:
     0           ESPEasy_Gartensteuerung_Lichtsensor:Lux
     all         ESPEasy_Gartensteuerung_Lichtsensor:Lux
   trigger:
   uiState:
   uiTable:
Attributes:
   checkReadingEvent 0
   room       Testraum



Danke Euch für Eure Bemühungen

Gruß
Dieter68