Hauptmenü

DOIF will nicht

Begonnen von noxx, 02 Juni 2017, 16:23:47

Vorheriges Thema - Nächstes Thema

noxx

Hallo

ich habe eine DOIF die leider nicht läuft. Meine Pumpe soll zwischen 12:00 und 16:00
anspringen, wenn Aussentemperatur > 25°

Leider macht sie das nicht (ist gerade 25.3°)

Internals:
   DEF        ([12:00-16:00] and [TFA_Aussentemp:temperature > 25.0]) (set Filteranlage on) DOELSEIF (set Filteranlage off)
   NAME       Filteranlage_mittags
   NR         47
   NTFY_ORDER 50-Filteranlage_mittags
   STATE      initialized
   TYPE       DOIF
   Readings:
     2017-06-02 16:20:27   Device          TFA_Aussentemp
     2017-06-01 20:39:25   cmd             0
     2017-06-02 16:20:27   e_TFA_Aussentemp_temperature 25.3
     2017-06-01 20:39:25   state           initialized
     2017-06-02 16:00:00   timer_01_c01    03.06.2017 12:00:00
     2017-06-02 16:00:00   timer_02_c01    03.06.2017 16:00:00
   Condition:
     0          DOIF_time($hash,0,1,$wday,$hms) and ReadingValDoIf($hash,'TFA_Aussentemp','temperature > 25.0')
     1          set Filteranlage off
   Days:
   Devices:
     0           TFA_Aussentemp
     all         TFA_Aussentemp
   Do:
     0:
       0          set Filteranlage on
     1:
       0
     2:
   Helper:
     event      battery: ok,channel: 4
     globalinit 1
     last_timer 2
     sleeptimer -1
     triggerDev TFA_Aussentemp
     triggerEvents:
       battery: ok
       channel: 4
     triggerEventsState:
       battery: ok
       channel: 4
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1496484000
     1          1496498400
   Readings:
     0           TFA_Aussentemp:temperature > 25.0
     all         TFA_Aussentemp:temperature > 25.0
   Realtime:
     0          12:00:00
     1          16:00:00
   Regexp:
     0:
     1:
     All:
   State:
     State:
   Time:
     0          12:00:00
     1          16:00:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timers:
     0           0  1
   Trigger:
   Triggertime:
     1496484000:
       localtime  1496484000
       Hash:
     1496498400:
       localtime  1496498400
       Hash:
Attributes:
   room       Pool




Internals:
   CHANGED
   CODE       Hideki_30_4
   DEF        Hideki_30_4
   LASTInputDev SignalDuino1
   MSGCNT     2145
   NAME       TFA_Aussentemp
   NR         28
   STATE      T: 25.3 H: 51
   SignalDuino1_DMSG P12#7599BA4A31BECF51784E01
   SignalDuino1_MSGCNT 2145
   SignalDuino1_RAWMSG MC;LL=-1001;LH=947;SL=-516;SH=460;D=A8D9B45ADB9E0A1975F0E34;C=487;L=90;
   SignalDuino1_TIME 2017-06-02 16:22:54
   TYPE       Hideki
   lastMSG    75abcede53c251f388d203
   lastReceive 1496413374
   Readings:
     2017-06-02 16:22:54   battery         ok
     2017-06-02 16:22:54   channel         4
     2017-06-02 16:22:54   humidity        51
     2017-06-02 16:22:54   state           T: 25.3 H: 51
     2017-06-02 16:22:54   temperature     25.3
Attributes:
   event-min-interval .*:300
   event-on-change-reading .*
   fp_Schatthaus 677,1614,1,TFA_Aussentemp,
   room       Hideki



ThomasMagnum

Versuchs mal so:

([12:00-16:00] and [TFA_Aussentemp:temperature] > 25.0) (set Filteranlage on) DOELSE (set Filteranlage off)

Gruß, Thomas

noxx


noxx

etwas zu früh gefreut. hatte den Timer auf 17:00 Uhr erweitert, für den Test. Die Pumpe
ging an, aber leider nicht aus. Weder um 17:01 noch als die Temp unter 25° gefallen ist...
Internals:
   DEF        ([12:00-17:00] and [TFA_Aussentemp:temperature] > 25.0) (set Filteranlage on) DOELSEIF (set Filteranlage off)
   NAME       Filteranlage_mittags
   NR         46
   NTFY_ORDER 50-Filteranlage_mittags
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2017-06-02 17:17:37   Device          TFA_Aussentemp
     2017-06-02 16:40:52   cmd             1
     2017-06-02 16:40:52   cmd_event       TFA_Aussentemp
     2017-06-02 16:40:52   cmd_nr          1
     2017-06-02 17:17:37   e_TFA_Aussentemp_temperature 24.9
     2017-06-02 16:40:52   state           cmd_1
     2017-06-02 17:00:00   timer_01_c01    03.06.2017 12:00:00
     2017-06-02 17:00:00   timer_02_c01    03.06.2017 17:00:00
   Condition:
     0          DOIF_time($hash,0,1,$wday,$hms) and ReadingValDoIf($hash,'TFA_Aussentemp','temperature') > 25.0
     1          set Filteranlage off
   Days:
   Devices:
     0           TFA_Aussentemp
     all         TFA_Aussentemp
   Do:
     0:
       0          set Filteranlage on
     1:
       0
     2:
   Helper:
     event      T: 24.9 H: 49,battery: ok,channel: 4,humidity: 49
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   TFA_Aussentemp
     timerevent temperature: 25.1
     triggerDev TFA_Aussentemp
     timerevents:
       temperature: 25.1
     timereventsState:
       temperature: 25.1
     triggerEvents:
       T: 24.9 H: 49
       battery: ok
       channel: 4
       humidity: 49
     triggerEventsState:
       state: T: 24.9 H: 49
       battery: ok
       channel: 4
       humidity: 49
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1496484000
     1          1496502000
   Readings:
     0           TFA_Aussentemp:temperature
     all         TFA_Aussentemp:temperature
   Realtime:
     0          12:00:00
     1          17:00:00
   Regexp:
     0:
     1:
     All:
   State:
     State:
   Time:
     0          12:00:00
     1          17:00:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timers:
     0           0  1
   Trigger:
   Triggertime:
     1496484000:
       localtime  1496484000
       Hash:
     1496502000:
       localtime  1496502000
       Hash:
Attributes:
   room       Pool


Beta-User

Deine DEF und der Vorschlag von Thomas stimmen auch nicht überein,
DOELSEIF und DOELSE sind nicht dasselbe...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

noxx

hatte ich übersehen, danke. nun gehts auch aus  :)

Beta-User

Zitat von: noxx am 02 Juni 2017, 17:27:08
hatte ich übersehen, danke. nun gehts auch aus  :)

Kann ja mal passieren, sollte halt nicht die Regel sein ;) ...

Bitte setze den Status noch auf [Gelöst] (angepinnten Beitrag in diesem Forumsbereich zu Rate ziehen).

Kleine Anmerkung am Rande: pendelt die Temperatur um die 25°, geht die Pumpe ständig an und aus. Das mag ok sein, es gibt aber auch Wege, eine sog. Hysterese einzubauen. Ein einfaches Modul dazu wäre THRESHOLD, die Zeitangaben wären dann aber als Attribut zu setzen (disable-for-intervals oder so ähnlich).

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

noxx

Danke. Würde ein DOELSEIF auch gehen?

Gesendet von meinem GT-I9195 mit Tapatalk


KernSani

Zitat von: noxx am 02 Juni 2017, 18:39:19
Danke. Würde ein DOELSEIF auch gehen?
Eher nicht... du kannst aber auch das wait Attribut nutzen
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

noxx

ok, gemacht: wait 600

dachte das wäre ggf mit

([12:00-16:00] and [TFA_Aussentemp:temperature] > 25.0) (set Filteranlage on) DOELSEIF  ([12:00-16:00] and [TFA_Aussentemp:temperature] < 24.5) (set Filteranlage off)

gegangen

Damian

#10
Zitat von: noxx am 02 Juni 2017, 21:15:23
ok, gemacht: wait 600

dachte das wäre ggf mit

([12:00-16:00] and [TFA_Aussentemp:temperature] > 25.0) (set Filteranlage on) DOELSEIF  ([12:00-16:00] and [TFA_Aussentemp:temperature] < 24.5) (set Filteranlage off)

gegangen

ich würde die Zeit verteilen:

wait 300:300

wenn das Einschalten höhere Prio hat als da Ausschalten, dann evtl

wait 0:600

oder

([12:00-16:00] and [TFA_Aussentemp:temperature] > 25.0) (set Filteranlage on) DOELSEIF  ([12:00-16:00] and [TFA_Aussentemp:temperature] < 24.5) (set Filteranlage off) DOELSE (set Filteranlage off)


Damit sie auch nach 16:00 Uhr ausgeht, wenn temp > 25 ;)


Edit: oder eleganter

([12:00-16:00] and [TFA_Aussentemp:temperature] > 25.0) (set Filteranlage on) DOELSEIF  ([12:00-16:00] and [TFA_Aussentemp:temperature] < 24.5 or [16:00]) (set Filteranlage off)

viel Spaß beim Nachdenken
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF