DOIF gibt Cmd1, aber das angesprochene Dummy schaltet nicht

Begonnen von maci, 06 November 2017, 11:15:42

Vorheriges Thema - Nächstes Thema

maci

Hallo,

Eine meiner DOIF Definitionen gibt Cmd1 aus (also ist Bedingung erfüllt).
Doch das Angesprochene Divice schaltet nicht.
Das Device ist RPI_GPIO als Ausgang definiert.

Hier das List meines DOIF:
Internals:
   CFGFN      FHEM/systemmonitor.cfg
   DEF        ([sysmon:cpu_temp] > 46) (set Raspberry_Ventilator on) DOELSEIF ([sysmon:cpu_temp] < 35) (set Raspberry_Ventilator off)
   NAME       RaspberryVent
   NR         213
   NTFY_ORDER 50-RaspberryVent
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2017-11-06 11:03:35   Device          sysmon
     2017-10-31 05:40:21   cmd             1
     2017-10-31 05:40:21   cmd_event       sysmon
     2017-10-31 05:40:21   cmd_nr          1
     2017-11-06 11:03:35   e_sysmon_cpu_temp 45.62
     2017-10-31 05:40:21   state           cmd_1
   condition:
     0          ReadingValDoIf($hash,'sysmon','cpu_temp') > 46
     1          ReadingValDoIf($hash,'sysmon','cpu_temp') < 35
   devices:
     0           sysmon
     1           sysmon
     all         sysmon
   do:
     0:
       0          set Raspberry_Ventilator on
     1:
       0          set Raspberry_Ventilator off
     2:
   helper:
     event      stat_cpu_percent: 3.66 0.00 0.48 95.77 0.08 0.00 0.02,cpu_temp_avg: 44.9,cpu_temp: 45.62,loadavg: 0.24 0.32 0.21,eth0_diff: RX: 0.04 MB, TX: 0.10 MB, Total: 0.14 MB,ram: Total: 923.35 MB, Used: 292.05 MB, 31.63 %, Free: 631.30 MB
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   sysmon
     timerevent cpu_freq: 600
     triggerDev sysmon
     timerevents:
       cpu_freq: 600
     timereventsState:
       cpu_freq: 600
     triggerEvents:
       stat_cpu_percent: 3.66 0.00 0.48 95.77 0.08 0.00 0.02
       cpu_temp_avg: 44.9
       cpu_temp: 45.62
       loadavg: 0.24 0.32 0.21
       eth0_diff: RX: 0.04 MB, TX: 0.10 MB, Total: 0.14 MB
       ram: Total: 923.35 MB, Used: 292.05 MB, 31.63 %, Free: 631.30 MB
     triggerEventsState:
       stat_cpu_percent: 3.66 0.00 0.48 95.77 0.08 0.00 0.02
       cpu_temp_avg: 44.9
       cpu_temp: 45.62
       loadavg: 0.24 0.32 0.21
       eth0_diff: RX: 0.04 MB, TX: 0.10 MB, Total: 0.14 MB
       ram: Total: 923.35 MB, Used: 292.05 MB, 31.63 %, Free: 631.30 MB
   internals:
   itimer:
   readings:
     0           sysmon:cpu_temp
     1           sysmon:cpu_temp
     all         sysmon:cpu_temp
   regexp:
     0:
     1:
     all:
   state:
     STATE:
   trigger:
Attributes:
   group      Ventilator_Raspberry
   room       9.03_System
   sortby     5


Und das List des RPI_GPIO
Internals:
   CFGFN      FHEM/systemmonitor.cfg
   DEF        12
   GPIO_Basedir /sys/class/gpio
   NAME       Raspberry_Ventilator
   NR         205
   RPI_pin    12
   STATE      off
   TYPE       RPI_GPIO
   WiringPi_gpio /usr/bin/gpio
   READINGS:
     2017-11-06 11:05:04   Pinlevel        low
     2017-11-05 19:15:57   state           off
   fhem:
     interfaces switch
Attributes:
   direction  output
   group      Ventilator_Raspberry
   room       9.03_System
   sortby     2


Eigenartig ist, dass es immer funktioniert hat, aber seit ein paar Tagen nicht mehr.

Ich finde den Fehler nicht.
Händisch schalten kann ich, das läuft der Ventilator.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Frank_Huber

Hi,

der steht seit dem 31.10 auf cmd1
von daher ist für den DOIF das device noch an.

evtl die Hysterese enger stellen. Wenn er die 35 Grad nicht erreicht schaltet er sonst nie selbst über cmd2 ab.

maci

#2
Danke,

Habe das DOIF per set mal cmd2 gesetzt.

mal sehen was passiert.

Heisst das, man sollte Schalter die per DOIF bedient werden nie per Hand schalten?
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Frank_Huber

kannst du schon.
musst dann nur bedenkebn dass ohne "do always" der DOIF dann steckenbleiben kann bis die jeweils andere Bedingung wahr wird.

maci

Das ist ein guter Tipp.

Jedenfalls hat das DOIF in der Zwischenzeit wieder geschaltet. :)

Habe das Attribut zwischenzeitlich gesetzt!
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Damian

Zitat von: maci am 06 November 2017, 13:33:02
Das ist ein guter Tipp.

Jedenfalls hat das DOIF in der Zwischenzeit wieder geschaltet. :)

Habe das Attribut zwischenzeitlich gesetzt!

Bei zyklisch sendenden Sensoren (hier: sysmon:cpu_temp) sollte do always nicht gesetzt werden, sonst wird ständig der selbe DOIF-Zweig ausgeführt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

würde aber in diesem Fall evtl sogar nützlich sein.
Der Lüfter wird immer wieder angeschaltet, auch wenn er mal versehentlich von hand ausgeschaltet wird.
würde dann eher mit cmdpause die Häufigkeit limitieren. oder?

Aber prinizipell hast Du da natürlich Recht. :-)

maci

Zitat von: Frank_Huber am 06 November 2017, 14:05:44
würde aber in diesem Fall evtl sogar nützlich sein.
Der Lüfter wird immer wieder angeschaltet, auch wenn er mal versehentlich von hand ausgeschaltet wird.
würde dann eher mit cmdpause die Häufigkeit limitieren. oder?

Aber prinizipell hast Du da natürlich Recht. :-)

Klingt einleuchtend.

Habe ein cmdpause von 3600 gesetzt (= 60 min)

Ansonsten hätte ich mir überlegt, dass ich andere DOIFs ein cmd2 per at um Mitternacht setze. Vorausgesetzt es passt zum Ablauf.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Damian

Zitat von: maci am 06 November 2017, 14:18:53
Klingt einleuchtend.

Habe ein cmdpause von 3600 gesetzt (= 60 min)

Ansonsten hätte ich mir überlegt, dass ich andere DOIFs ein cmd2 per at um Mitternacht setze. Vorausgesetzt es passt zum Ablauf.

cmdpause ist eine Notlösung, denn damit verpasst man ggf. wichtige Events, die zum Schalten führen würden - im schlimmsten Falle hier eine ganze Stunde! lang.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

maci

Zitat von: Damian am 06 November 2017, 14:24:15
cmdpause ist eine Notlösung, denn damit verpasst man ggf. wichtige Events, die zum Schalten führen würden - im schlimmsten Falle hier eine ganze Stunde! lang.

Ich hier passt das cmdpause, denn schlimmstenfalls schaltet der Ventilator des Raspberry nicht ein bzw aus.
So heiß wird der Raspberry nicht, dass er nicht ohne Kühlventilator sein könnte.
Es ist einfach eine Sicherheitsmaßnahme.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

Per

Mach doch einfach einen dritten Zweig mit einer noch höheren Temp auf, welcher auch nur den Lüfter einschaltet. Und vllt. noch eine Meldung absetzt.