DOIF bei erreichen von mehreren Temperaturen

Begonnen von Larusso, 21 November 2018, 15:51:26

Vorheriges Thema - Nächstes Thema

Larusso

Hallo zusammen,

ich stehe ein bisschen auf dem Schlauch. Ich habe einen Temp-Fühler in meiner Gartensauna, über TTS wird mir mitgeteilt wann die Sauna eine bestimmte Temperatur erreicht hat und ich weis wann ich Saunieren kann, dies funktioniert mit einem DOIF auch prima (ja ich weis ein notify hätte es auch getan). Nun habe ich aber mehrere DOIF angelegt damit mir mein TTS Modul bei bestimmten Temperaturen eine Info gibt. Um das ganze ein bisschen aufgeräumter zu gestallten würde ich gerne alle DOIF´s in einen packen und hier stehe ich irgendwie auf dem Schlauch. Anbei die def wie ich sie mir zusammengestellt habe.

([ESPEasy_Sauna_Klima:Temperature] = 60) (set MyTTS volume 90, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius)
DOELSEIF([ESPEasy_Sauna_Klima:Temperature] = 70) (set MyTTS volume 90, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius)
DOELSEIF([ESPEasy_Sauna_Klima:Temperature] = 80) (set MyTTS volume 90, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius)
DOELSEIF([ESPEasy_Sauna_Klima:Temperature] = 90) (set MyTTS volume 90, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius)


Wenn ich DOELSEIF richtig verstehe prüft er damit jedes einzelne DOELSEIF,
das heist ....
wenn 60Grad erreicht sage es
"oder"
wenn 70Grad erreicht sage es
"oder"
wenn 80Grad erreicht sage es
"oder"
wenn 90Grad erreicht sage es

muss die Definition noch irgendwie abgeschlossen werden, oder sollte das genau das erfüllen was ich benötige? Ich möchte beim erreichen jeder Temperatur eine Ausgabe haben, nicht nur wenn 70 erreicht ist, sonder auch wenn sie als Bsp. wieder auf 60 fällt.
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Frank_Huber

zum einen solltest Du >= nehmen sonst muss es GENAU 60 / 70 ... sein

Dann in den DOELSEIF Pfaden einen Bereich >60 bis <=70 u.s.w.
sonst bleibt das DOIF ewig in cmd1 weil es ja immer über 60 ist.

Larusso

danke für die schnelle Antwort Frank_Huber

wie würde dann die syntax für den Befehl bis aussehen?
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Frank_Huber

Hier ein Beispiel:
defmod Asche_ETA DOIF ([ETA_Kessel_4_Asche:Kessel_4_Asche] > 600 and [ETA_Kessel_4_Asche:Kessel_4_Asche] <= 699) (set PushOver msg 'Demnächst Aschebox leeren. Inhalt von [ETA_Kessel_4_Asche:Kessel_4_Asche] Kg Pellets!')\
DOELSEIF ([ETA_Kessel_4_Asche:Kessel_4_Asche] > 700 and [ETA_Kessel_4_Asche:Kessel_4_Asche] <= 799) (set PushOver msg 'Demnächst Aschebox leeren. Inhalt von [ETA_Kessel_4_Asche:Kessel_4_Asche] Kg Pellets!')\
DOELSEIF ([ETA_Kessel_4_Asche:Kessel_4_Asche] > 800 and [ETA_Kessel_4_Asche:Kessel_4_Asche] <= 899) (set PushOver msg 'Demnächst Aschebox leeren. Inhalt von [ETA_Kessel_4_Asche:Kessel_4_Asche] Kg Pellets!')\
DOELSEIF ([ETA_Kessel_4_Asche:Kessel_4_Asche] > 900 and [ETA_Kessel_4_Asche:Kessel_4_Asche] <= 949) (set PushOver msg 'Aschebox leeren! Inhalt von [ETA_Kessel_4_Asche:Kessel_4_Asche] Kg Pellets!')\
DOELSEIF ([ETA_Kessel_4_Asche:Kessel_4_Asche] > 950) (set PushOver msg 'Dringend Aschebox leeren. Inhalt von [ETA_Kessel_4_Asche:Kessel_4_Asche] Kg Pellets!')\
DOELSEIF ([ETA_Kessel_4_Asche:Kessel_4_Asche] == 0) (set PushOver msg 'Aschebox leer.')
attr Asche_ETA DbLogExclude .*
attr Asche_ETA group Benachrichtigung
attr Asche_ETA room Kommunikation
attr Asche_ETA verbose 0

Larusso

super habe ich mal so übernommen.

([ESPEasy_Sauna_Klima:Temperature] > 60 and [ESPEasy_Sauna_Klima:Temperature] <= 69) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit)
DOELSEIF([ESPEasy_Sauna_Klima:Temperature] > 70 and [ESPEasy_Sauna_Klima:Temperature] <= 79) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit)
DOELSEIF([ESPEasy_Sauna_Klima:Temperature] > 80 and [ESPEasy_Sauna_Klima:Temperature] <= 89) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit)
DOELSEIF([ESPEasy_Sauna_Klima:Temperature] > 90 and [ESPEasy_Sauna_Klima:Temperature] <= 99) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit)


Eine Frage zum Verständnis habe ich aber noch. Wie verhält sich das DOIF nun, wenn mal angenommen die Temperatur über Stunden im gleichen Bereich bei 61 Grad liegt? Ich habe keine weiteren Attribute gesetzt, dann sollte auch nur einmal die TTS Ausgabe erfolgen, richtig?
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Frank_Huber

Ja, nur einmal.
Wenn Du es mehrfach möchtest kannst Du es über Atribute machen.

Larusso

Perfekt und vielen lieben dank für die schnelle Hilfe, habe in dem Zug mal einen ganzen Schwung DOIF Definitionen zusammen fassen können. Thema ganz klar gelöst. Daumen hoch ;D
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Per

Da DOIF der Reihe abgearbeitet wird, kannst du, bei entsprechender Sortierung, eine Grenze weglassen.
x > 60 und x < 69, damit sind die schon mal raus.
x > 70 könnte dann wegbleiben, wenn man die < 60 vorab wegfiltert.
ABER: nachdem du am Anfang nur auf die 10er Werte geprüft hast, hast du diese jetzt ganz ignoriert.
Mein Vorschlag:
DOIF ([Temp] >= 90) (say)
DOELSEIF ([Temp] >= 80) (say)
DOELSEIF ([Temp] >= 70) (say)
DOELSEIF ([Temp] >= 60) (say)


Im Ausführungsteil kannst du mit $DEVICE und $EVENT arbeiten.
Ganz tricky wäre ein
attr xxx DOIF_Readings doing:(set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [$EVEND] Grad Celsius bei [$DEVICE:Humidity] Prozent Luftfeuchtigkeit)
mit ([$SELF:doing]) im Ausführungsteil (wobei ich gerade nicht prüfen kann, ob in den DOIF_Readings $DEVICE und $EVENT funktionieren, zur Not kann man ja auf [ESPEasy_Sauna_Klima:Temperature] und [ESPEasy_Sauna_Klima:Humidity] zurückgehen).

@Damian: gehen die ? für Abfragen auch bei den DOIF_Readings?

Frank_Huber

Danke Per,

Die Abfragen hinten anzufangen ist eine gute Idee.
geht dann aber auch nur solange nur die ansteigende Richtung interessant ist.
Werd ich bei mir mal so umbauen und auch den Fehler mit den 0er Werten korriguieren.

Per

Zitat von: Frank_Huber am 22 November 2018, 13:08:55
geht dann aber auch nur solange nur die ansteigende Richtung interessant ist.
Nö, geht auch beim Abkühlen. BTW: ich würde noch eine Abfrage einstellen, ob die Heizung überhaupt an ist. Sonst labert es dich nach der Sauna weiter voll und der Erholungseffekt ist dahin ;)

Larusso

#10
aber was genau ändert sich bei der DOELSEIF Ausgabe wenn ich die Eingrenzung von bis wegnehme? Interessant wäre auch noch Auszuschliesen das die Temperatur beim Abkühlen erneut das doif auslöst.

Am schönsten wäre es wenn ich die DOIF Definition von der syntax so hin bekommen könnte das mir die Temperaturen nur einmalig beim erreichen von 60,70,80 und 90°C angesagt werden und dann erst wider wenn die Temperatur einmal unter eine festgelegte Gradzahl "als Bsp.: 30°C" fällt von vorne beginnt. Das würde genau das verhindern was du Per gemeint hast......nach dem Saunieren fällt die Temperatur unter 80 und mein RPi labert mich voll obwohl ich fertig bin.

jemand eine Idee wie ich das noch einbinden kann?


hab das ganze jetzt erst mal so übernommen:

([ESPEasy_Sauna_Klima:Temperature] >= 90) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit)
DOELSEIF ([ESPEasy_Sauna_Klima:Temperature] >= 80) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit)
DOELSEIF ([ESPEasy_Sauna_Klima:Temperature] >= 70) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit)
DOELSEIF ([ESPEasy_Sauna_Klima:Temperature] >= 60) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit)


ich muss den Beitrag noch mal auf nicht gelösst setzen. Bei der Syntax die ich in diesem Beitrag gepostet habe löst mein DOIF ständig aus, das sollte gerade nicht passieren, aus dem Grund habe ich das ">" rausgenommen was zu einem Syntax Fehler führte. Lag an dem perl im DOIF ich musste zwei "==" setzen. Des weiteren ist das kleine Problem bei Temperaturabfall auch noch nicht abgestellt. Der RPI erzählt mir nämlich auch nach dem ich die Sauna aus habe und sie abkühlt das die Temperaturen erreicht sind.......vielleicht weis da auch noch jemand abhilfe, danke schon mal an alle für die schnelle Unterstützung zu dem Thema  ;)
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Per

([$SELF:Temperature] >= 90 ) (say ...,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 80) (say ...,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 70) (say ...,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 60) (say ...,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] < 40) (setreading $SELF max say [$EVENT])
attr xxx DOIF_Readings Temperarure:([ESPEasy_Sauna_Klima:Temperature] > [$SELF:max] ? [ESPEasy_Sauna_Klima:Temperature] : 40)

Bisschen tricky, spart aber viel Schreibarbeit.


Da du kein List gepostet hast: verwendest du attr do always?

Larusso

Hallo Per,

kannst du dir mal den Fehler anschauen. Er gibt mir in Zeile 5 diesen Fehler aus:
condition c05: Argument "" isn't numeric in numeric lt (<)

hier die List vom Device was ich angelegt habe:

Internals:
   CFGFN     
   DEF        ([$SELF:Temperature] >= 90 ) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 80) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 70) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 60) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] < 40) (setreading $SELF max say [$EVENT])
   MODEL      FHEM
   NAME       Sauna_Temperatur_TTS_test
   NR         2235
   NTFY_ORDER 50-Sauna_Temperatur_TTS_test
   STATE      cmd_5
   TYPE       DOIF
   .attraggr:
   .attrminint:
   DOIF_Readings:
     Temperarure (::ReadingValDoIf($hash,'ESPEasy_Sauna_Klima','Temperature') > ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','max') ? ::ReadingValDoIf($hash,'ESPEasy_Sauna_Klima','Temperature') : 40)
   READINGS:
     2018-11-26 13:16:00   Device          Sauna_Temperatur_TTS_test
     2018-11-26 13:08:47   Temperarure     6
     2018-11-26 13:15:59   cmd             5
     2018-11-26 13:15:59   cmd_event       Sauna_Temperatur_TTS_test
     2018-11-26 13:15:59   cmd_nr          5
     2018-11-26 13:15:59   max             say
     2018-11-26 13:15:58   mode            enabled
     2018-11-26 13:15:59   state           cmd_5
     2018-11-26 13:15:59   warning         condition c05: Argument "" isn't numeric in numeric lt (<)

   Regex:
     DOIF_Readings:
       ESPEasy_Sauna_Klima:
         Temperarure:
           Temperature ^ESPEasy_Sauna_Klima$:^Temperature:
       Sauna_Temperatur_TTS_test:
         Temperarure:
           max        ^Sauna_Temperatur_TTS_test$:^max:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') >= 90
     1          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') >= 80
     2          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') >= 70
     3          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') >= 60
     4          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') < 40
   devices:
     0           Sauna_Temperatur_TTS_test
     1           Sauna_Temperatur_TTS_test
     2           Sauna_Temperatur_TTS_test
     3           Sauna_Temperatur_TTS_test
     4           Sauna_Temperatur_TTS_test
     all         Sauna_Temperatur_TTS_test
   do:
     0:
       0          set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     1:
       0          set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     2:
       0          set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     3:
       0          set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     4:
       0          setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     5:
   helper:
     event      cmd_nr: 5,cmd: 5,cmd_event: Sauna_Temperatur_TTS_test,cmd_5
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev Sauna_Temperatur_TTS_test
     DOIF_eventas:
       cmd_nr: 5
       cmd: 5
       cmd_event: Sauna_Temperatur_TTS_test
       state: cmd_5
     triggerEvents:
       cmd_nr: 5
       cmd: 5
       cmd_event: Sauna_Temperatur_TTS_test
       cmd_5
       Device: Sauna_Temperatur_TTS_test
     triggerEventsState:
       cmd_nr: 5
       cmd: 5
       cmd_event: Sauna_Temperatur_TTS_test
       state: cmd_5
   internals:
   itimer:
   readings:
     0           Sauna_Temperatur_TTS_test:Temperature
     1           Sauna_Temperatur_TTS_test:Temperature
     2           Sauna_Temperatur_TTS_test:Temperature
     3           Sauna_Temperatur_TTS_test:Temperature
     4           Sauna_Temperatur_TTS_test:Temperature
     all         Sauna_Temperatur_TTS_test:Temperature
   trigger:
   uiState:
   uiTable:
Attributes:
   DOIF_Readings Temperarure:([ESPEasy_Sauna_Klima:Temperature] > [$SELF:max] ? [ESPEasy_Sauna_Klima:Temperature] : 40)
   alias      tts Sauna Temperatur Test
   do         always



und ja ich habe auch bei dem anderen Device attr do always an.
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,

Per

do always brauchst du nicht.
Und am Anfang ist max noch nicht gesetzt.

DOELSEIF ([$SELF:Temperature] < 40) (setreading $SELF max say [$EVENT])
ist falsch, muss
DOELSEIF ([$SELF:Temperature] < 40) (setreading $SELF max [$EVENT])
heissen. Copy & paste  >:(

Larusso

wo muss ich max setzen? Im DOIF_readings oder in der def?


def:
([$SELF:Temperature] >= 90 ) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 80) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 70) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 60) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] < 40) (setreading $SELF max [$EVENT])


list:
Internals:
   CFGFN     
   DEF        ([$SELF:Temperature] >= 90 ) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 80) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 70) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] >= 60) (set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading $SELF max say [$EVENT])
DOELSEIF ([$SELF:Temperature] < 40) (setreading $SELF max [$EVENT])
   MODEL      FHEM
   NAME       Sauna_Temperatur_TTS_test
   NR         2235
   NTFY_ORDER 50-Sauna_Temperatur_TTS_test
   STATE      cmd_5
   TYPE       DOIF
   .attraggr:
   .attrminint:
   DOIF_Readings:
     Temperarure (::ReadingValDoIf($hash,'ESPEasy_Sauna_Klima','Temperature') > ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','max') ? ::ReadingValDoIf($hash,'ESPEasy_Sauna_Klima','Temperature') : 40)
   READINGS:
     2018-11-26 15:49:52   Device          Sauna_Temperatur_TTS_test
     2018-11-26 14:53:52   Temperarure     6
     2018-11-26 15:49:52   cmd             5
     2018-11-26 15:49:52   cmd_event       Sauna_Temperatur_TTS_test
     2018-11-26 15:49:52   cmd_nr          5
     2018-11-26 15:49:52   error           setreading Sauna_Temperatur_TTS_test max : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.

     2018-11-26 13:15:59   max             say
     2018-11-26 15:49:51   mode            enabled
     2018-11-26 15:49:52   state           cmd_5
     2018-11-26 15:49:52   warning         condition c05: Argument "" isn't numeric in numeric lt (<)

   Regex:
     DOIF_Readings:
       ESPEasy_Sauna_Klima:
         Temperarure:
           Temperature ^ESPEasy_Sauna_Klima$:^Temperature:
       Sauna_Temperatur_TTS_test:
         Temperarure:
           max        ^Sauna_Temperatur_TTS_test$:^max:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') >= 90
     1          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') >= 80
     2          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') >= 70
     3          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') >= 60
     4          ::ReadingValDoIf($hash,'Sauna_Temperatur_TTS_test','Temperature') < 40
   devices:
     0           Sauna_Temperatur_TTS_test
     1           Sauna_Temperatur_TTS_test
     2           Sauna_Temperatur_TTS_test
     3           Sauna_Temperatur_TTS_test
     4           Sauna_Temperatur_TTS_test
     all         Sauna_Temperatur_TTS_test
   do:
     0:
       0          set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     1:
       0          set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     2:
       0          set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     3:
       0          set MyTTS volume 60, set MyTTS tts die Temperatur in der Sauna beträgt aktuell [ESPEasy_Sauna_Klima:Temperature] Grad Celsius bei [ESPEasy_Sauna_Klima:Humidity] Prozent Luftfeuchtigkeit,setreading Sauna_Temperatur_TTS_test max say [$EVENT]
     4:
       0          setreading Sauna_Temperatur_TTS_test max [$EVENT]
     5:
   helper:
     event      cmd_nr: 5,cmd: 5,cmd_event: Sauna_Temperatur_TTS_test,error: setreading Sauna_Temperatur_TTS_test max : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
,cmd_5
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev Sauna_Temperatur_TTS_test
     DOIF_eventas:
       cmd_nr: 5
       cmd: 5
       cmd_event: Sauna_Temperatur_TTS_test
       error: setreading Sauna_Temperatur_TTS_test max : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.

       state: cmd_5
     triggerEvents:
       cmd_nr: 5
       cmd: 5
       cmd_event: Sauna_Temperatur_TTS_test
       error: setreading Sauna_Temperatur_TTS_test max : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.

       cmd_5
       Device: Sauna_Temperatur_TTS_test
     triggerEventsState:
       cmd_nr: 5
       cmd: 5
       cmd_event: Sauna_Temperatur_TTS_test
       error: setreading Sauna_Temperatur_TTS_test max : Usage: setreading <name> <reading> <value>
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.

       state: cmd_5
   internals:
   itimer:
   readings:
     0           Sauna_Temperatur_TTS_test:Temperature
     1           Sauna_Temperatur_TTS_test:Temperature
     2           Sauna_Temperatur_TTS_test:Temperature
     3           Sauna_Temperatur_TTS_test:Temperature
     4           Sauna_Temperatur_TTS_test:Temperature
     all         Sauna_Temperatur_TTS_test:Temperature
   trigger:
   uiState:
   uiTable:
Attributes:
   DOIF_Readings Temperarure:([ESPEasy_Sauna_Klima:Temperature] > [$SELF:max] ? [ESPEasy_Sauna_Klima:Temperature] : 40)
   alias      tts Sauna Temperatur Test
nanoCul434MHz, nanoCul868MHz, HueBridge, shellyRolladenaktoren, Nuki, Homematic, RPI3, Homebridge, Sonoffbridge, Xiaomi Saugrobotter,