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
Ohne ein ausführliches list vom Device kann man nur raten.
Attribut do always nicht gesetzt?
Peinliche Frage wie erzeuge ich das Listing :(
list DEVICENAME
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"}
Funktioniert Dein Lichtsensor nicht oder Dein DOIF?
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
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.
Ok - danke für deine Hilfe.
Gruß
Dieter
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
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
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.
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.
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
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