Hallo,
ich versuche gerade meine Raffstores zu automatisieren, allerdings ist offenbar noch irgenwo ein Fehler drin, da die Raffstores hochfahren, obwohl die Bedingungen dafür gar nicht eingetreten sind:
define Raffstoreautomatik dummy
attr Raffstoreautomatik devStateIcon on:fts_shutter_automatic off:fts_shutter_manual
attr Raffstoreautomatik group 1: Automatisierung Raffstore
attr Raffstoreautomatik room System
attr Raffstoreautomatik setList on off
define Auto_Raff_WZ DOIF ( \
( ( [Raffstoreautomatik] eq "on" ) and ( [WS1_ISRAINING] eq "yes" ) )\
or\
( ( [Raffstoreautomatik] eq "on" ) and ( [WS1_WINDSPEED] gt 17 ) )\
) \
(define RaffstoreWZAutom_rauf at +00:00:06 set FSB14_1_1 opens )
attr Auto_Raff_WZ group 1: Automatisierung Raffstore
attr Auto_Raff_WZ room System
Hier die aktuellen Readings:
Device WS1_WINDSPEED 2016-02-05 13:35:31
cmd_event WS1_ISRAINING 2016-02-05 13:35:03
cmd_nr 1 2016-02-05 13:35:03
e_WS1_ISRAINING_STATE no 2016-02-05 13:35:10
e_WS1_WINDSPEED_STATE 3.8 m/s 2016-02-05 13:35:31
state cmd_1 2016-02-05 13:35:03
Hier noch ein Ausschnitt aus dem Eventlog:
Zitat
016-02-05 13:45:16 dummy SaunatemperaturAussen 20.0
2016-02-05 13:45:16 dummy SaunatemperaturAussen 20.0
2016-02-05 13:45:16 CUL_HM Saunatemperatur_T1 T: 20.0
2016-02-05 13:45:16 CUL_HM Saunatemperatur_T1 temperature: 20.0
2016-02-05 13:45:16 CUL_HM Saunatemperatur_T1_T2 T: 3.7
2016-02-05 13:45:16 CUL_HM Saunatemperatur_T1_T2 temperature: 3.7
2016-02-05 13:45:16 dummy SaunatemperaturInnen 16.3
2016-02-05 13:45:16 dummy SaunatemperaturInnen 16.3
2016-02-05 13:45:16 CUL_HM Saunatemperatur_T2 T: 16.3
2016-02-05 13:45:16 CUL_HM Saunatemperatur_T2 temperature: 16.3
2016-02-05 13:45:16 CUL_HM Saunatemperatur_T2_T1 T: -3.7
2016-02-05 13:45:16 CUL_HM Saunatemperatur_T2_T1 temperature: -3.7
2016-02-05 13:45:17 readingsProxy WS1_SUN_EAST 46471
2016-02-05 13:45:17 readingsProxy WS1_SUN_SOUTH 70000
2016-02-05 13:45:17 readingsProxy WS1_SUN_WEST 40588
2016-02-05 13:45:17 EnOcean E_WS1 sunWest: 40588
2016-02-05 13:45:17 EnOcean E_WS1 sunSouth: 70000
2016-02-05 13:45:17 EnOcean E_WS1 sunEast: 46471
2016-02-05 13:45:20 HMLAN HMLAN0 loadLvl: low
2016-02-05 13:45:27 at RaffstoreKuecheAutom_rauf Next: 13:45:33
2016-02-05 13:45:27 readingsProxy WS1_BRIGHTNESS 999
2016-02-05 13:45:28 at RaffstoreWZAutom_rauf Next: 13:45:34
2016-02-05 13:45:28 DOIF Auto_Raff_WZ cmd_nr: 1
2016-02-05 13:45:28 DOIF Auto_Raff_WZ cmd_event: WS1_ISRAINING
2016-02-05 13:45:28 DOIF Auto_Raff_WZ cmd_1
2016-02-05 13:45:28 readingsProxy WS1_ISRAINING no
2016-02-05 13:45:28 readingsProxy WS1_SUN_EAST 46471
2016-02-05 13:45:28 readingsProxy WS1_SUN_EAST 46471
2016-02-05 13:45:28 readingsProxy WS1_SUN_SOUTH 70000
2016-02-05 13:45:28 readingsProxy WS1_SUN_SOUTH 70000
2016-02-05 13:45:28 readingsProxy WS1_SUN_WEST 40588
2016-02-05 13:45:28 readingsProxy WS1_SUN_WEST 40588
2016-02-05 13:45:28 readingsProxy WS1_TEMPERATURE 5.6
2016-02-05 13:45:28 readingsProxy WS1_TEMPERATURE 5.6
2016-02-05 13:45:28 Global global DEFINED RaffstoreKuecheAutom_rauf
2016-02-05 13:45:28 Global global DEFINED RaffstoreWZAutom_rauf
2016-02-05 13:45:28 DOIF Auto_Raff_Kueche cmd_nr: 1
2016-02-05 13:45:28 DOIF Auto_Raff_Kueche cmd_event: WS1_WINDSPEED
2016-02-05 13:45:28 DOIF Auto_Raff_Kueche cmd_1
2016-02-05 13:45:28 readingsProxy WS1_WINDSPEED 3.8
2016-02-05 13:45:28 readingsProxy WS1_WINDSPEED 3.8
2016-02-05 13:45:28 readingsProxy WS1_WINDSPEED 3.8
2016-02-05 13:45:28 readingsProxy WS1_WINDSPEED 3.8
2016-02-05 13:45:28 readingsProxy WS1_WINDSPEED 3.8
2016-02-05 13:45:28 EnOcean E_WS1 windSpeed: 3.8
2016-02-05 13:45:28 EnOcean E_WS1 T: 5.6 B: 999 W: 3.8 IR: no
2016-02-05 13:45:33 EnOcean FSB14_1_2 anglePos: 0
2016-02-05 13:45:33 EnOcean FSB14_1_2 position: 0
2016-02-05 13:45:34 EnOcean FSB14_1_2 endPosition: open
2016-02-05 13:45:34 EnOcean FSB14_1_2 open
2016-02-05 13:45:34 readingsProxy WS1_BRIGHTNESS 999
2016-02-05 13:45:34 readingsProxy WS1_ISRAINING no
2016-02-05 13:45:34 readingsProxy WS1_SUN_EAST 46471
2016-02-05 13:45:34 readingsProxy WS1_SUN_SOUTH 70000
2016-02-05 13:45:34 readingsProxy WS1_SUN_WEST 40588
2016-02-05 13:45:34 readingsProxy WS1_TEMPERATURE 5.6
2016-02-05 13:45:34 readingsProxy WS1_WINDSPEED 3.8
2016-02-05 13:45:34 Global global DELETED RaffstoreKuecheAutom_rauf
2016-02-05 13:45:34 EnOcean FSB14_1_1 anglePos: 0
2016-02-05 13:45:34 EnOcean FSB14_1_1 position: 0
2016-02-05 13:45:34 EnOcean FSB14_1_1 endPosition: open
2016-02-05 13:45:34 EnOcean FSB14_1_1 open
2016-02-05 13:45:34 readingsProxy WS1_BRIGHTNESS 999
2016-02-05 13:45:34 readingsProxy WS1_ISRAINING no
2016-02-05 13:45:34 readingsProxy WS1_SUN_EAST 46471
2016-02-05 13:45:34 readingsProxy WS1_SUN_SOUTH 70000
2016-02-05 13:45:34 readingsProxy WS1_SUN_WEST 40588
2016-02-05 13:45:34 readingsProxy WS1_TEMPERATURE 5.6
2016-02-05 13:45:34 readingsProxy WS1_WINDSPEED 3.8
2016-02-05 13:45:34 Global global DELETED RaffstoreWZAutom_rauf
2016-02-05 13:45:38 readingsProxy WS1_WINDSPEED 5.8
2016-02-05 13:45:38 EnOcean E_WS1 windSpeed: 5.8
2016-02-05 13:45:38 EnOcean E_WS1 T: 5.6 B: 999 W: 5.8 IR: no
2016-02-05 13:45:45 HMLAN HMLAN0 loadLvl: low
2016-02-05 13:45:57 readingsProxy WS1_WINDSPEED 8.0
2016-02-05 13:45:57 EnOcean E_WS1 windSpeed: 8.0
2016-02-05 13:45:57 EnOcean E_WS1 T: 5.6 B: 999 W: 8.0 IR: no
2016-02-05 13:45:59 readingsProxy WS1_TEMPERATURE 6.6
2016-02-05 13:45:59 EnOcean E_WS1 temperature: 6.6
2016-02-05 13:45:59 EnOcean E_WS1 T: 6.6 B: 999 W: 8.0 IR: no
VG F.
[WS1_WINDSPEED] gt 17
ist true, weil "8.0 gt 17" (oder auch 3.8 ) und gt ein lexikograpischer Vergleich ist. Du brauchst hier den numerischen Vergleich mit ">".
NB: Du bist sehr vorsichtig mit den Klammern und das ist auch gut so und empfohlen. Tatsächlich bräuchte Deine Bedingung keine einzige Klammer ;-)
Gruss,
turo
Als ich > verwende habe, kam immer ein Fehler im Log, da die Einheit mitgesendet wird:
2016.02.05 13:58:13 1: PERL WARNING: Argument "5.8 m/s" isn't numeric in numeric gt (>) at (eval 6429) line 1.
In irgendeinem anderen Post hatte ich gelesen, dass man in dem Fall gt / lt / ... verwenden kann?!
Falls nicht, wie löse ich das am geschicktesten?
Zitat[WS1_WINDSPEED:d] > 17
http://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen
Um 10s bei der Antwort geschlagen :( - aber ich hätte auch nicht genau gewusst, ob es nicht [WS1_WINDSPEED::d] hätte heißen müssen.
Aber mit "gt" und "lt" wird das nur in Ausnahmefällen was (wenn die lexikographische Ordnung gleich der numerischen ist) - findest Du den Post noch?
Gruss,
turo
Eigentlich so: [WS1_WINDSPEED:state:d] > 17
Danke Euch beiden mit :state:d scheint es jetzt zu funktionieren. Zumindest bleibt das Teil momentan noch unten :)
VG
F.