Hauptmenü

[gelöst] DOIF < > Problem

Begonnen von moerte, 08 Januar 2020, 19:20:22

Vorheriges Thema - Nächstes Thema

moerte

hallo meine lieben -
könnte evtl mal einer über mein DOIF schauen?
es schaltet egtl super, nur hab ich 2x die Bedingung ">" und er schaltet immer nur die erste.
In meinen Fall: >15 schaltet dymmy auf Programmstart
wenn der Wert aber >50 ist sollte er den dummy auf "läuft" stellen, das macht es aber leider nicht.
Was hab ich hier falsch??

list:

Internals:
   DEF        ([WaschmaschineWatt:state] > 15) (set WaschmaschineBetrieb Programmstart)
DOELSEIF ([WaschmaschineWatt:state] < 0.1) (set WaschmaschineBetrieb Aus)
DOELSEIF ([WaschmaschineWatt:state] > 50) (set WaschmaschineBetrieb läuft)
DOELSEIF ([WaschmaschineWatt:state] < 4) (set WaschmaschineBetrieb Programmende)
   FUUID      5e13a852-f33f-599c-352e-0353c582da3aa49c
   MODEL      FHEM
   NAME       WaschmaschineBetriebCheck
   NOTIFYDEV  WaschmaschineWatt,global
   NR         515
   NTFY_ORDER 50-WaschmaschineBetriebCheck
   STATE      cmd_1
   TYPE       DOIF
   VERSION    20672 2019-12-06 21:05:57
   READINGS:
     2020-01-08 19:14:53   Device          WaschmaschineWatt
     2020-01-08 18:39:08   cmd             1
     2020-01-08 18:39:08   cmd_event       WaschmaschineWatt
     2020-01-08 18:39:08   cmd_nr          1
     2020-01-08 19:14:53   e_WaschmaschineWatt_state 319
     2020-01-08 18:39:07   mode            enabled
     2020-01-08 18:39:08   state           cmd_1
   Regex:
     accu:
     cond:
       WaschmaschineWatt:
         0:
           state      ^WaschmaschineWatt$:^state:
         1:
           state      ^WaschmaschineWatt$:^state:
         2:
           state      ^WaschmaschineWatt$:^state:
         3:
           state      ^WaschmaschineWatt$:^state:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'WaschmaschineWatt','state') > 15
     1          ::ReadingValDoIf($hash,'WaschmaschineWatt','state') < 0.1
     2          ::ReadingValDoIf($hash,'WaschmaschineWatt','state') > 50
     3          ::ReadingValDoIf($hash,'WaschmaschineWatt','state') < 4
   do:
     0:
       0          set WaschmaschineBetrieb Programmstart
     1:
       0          set WaschmaschineBetrieb Aus
     2:
       0          set WaschmaschineBetrieb läuft
     3:
       0          set WaschmaschineBetrieb Programmende
     4:
   helper:
     DEVFILTER  ^global$|^WaschmaschineWatt$
     NOTIFYDEV  global|WaschmaschineWatt
     event      319
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   WaschmaschineWatt
     timerevent 319
     triggerDev WaschmaschineWatt
     timerevents:
       319
     timereventsState:
       state: 319
     triggerEvents:
       319
     triggerEventsState:
       state: 319
   internals:
   readings:
     all         WaschmaschineWatt:state
   trigger:
   uiState:
   uiTable:
Attributes:
   event-on-change-reading state
   room       Keller


hier mal noch dein list vom dummy:

Internals:
   CHANGED   
   FUUID      5e13a412-f33f-599c-c893-130461ca5bf1a24c
   NAME       WaschmaschineBetrieb
   NR         514
   STATE      Programmstart
   TYPE       dummy
   READINGS:
     2020-01-08 18:39:08   state           on
Attributes:
   devStateIcon Programmstart:scene_washing_machine@green Programmende:scene_washing_machine@orange läuft:scene_washing_machine@yellow Aus:scene_washing_machine@red
   event-on-change-reading state
   eventMap   on:Programmstart off:Aus dimup:läuft dimdown:Programmende
   room       Keller
   setList    state:on,off,dimup,dimdown
   webCmd     Programmstart:Aus:läuft:Programmende


LG

sash.sc

Einfach mal die Reihenfolge der Abfrage ändern. Angefangen mit der 50 und dann kleiner werden. 50 ist ja auch größer wie 15. Daher wird sich nix ändern. Oder du musst Bereiche vorgeben. Also größer 15 und kleiner 50. Z. B.

Gruß Sascha

Gesendet von meinem MI 9 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

moerte

Zitat von: sash.sc am 08 Januar 2020, 19:24:44
Einfach mal die Reihenfolge der Abfrage ändern. Angefangen mit der 50 und dann kleiner werden.

Danke - das war es. oh man  :o