FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Wasserwerk33 am 22 April 2019, 21:28:33

Titel: Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 22 April 2019, 21:28:33
Hallo Leute

Habe mir eine Lüftersteuerung gebaut. Einschaltet klappt. Ausschalten ist schlecht zu testen wegen der Uhrzeit. Und habe leider nur Abend äs dazu Zeit und dort schläft er schon.

defmod Ole_Luefter_automatik DOIF ([18:00-4:00] and [LaCrosse_0C:temperature]-[LaCrosse_23:temperature] < 2) (set Luefter_Ole on) DOELSEIF ([4:00] or [LaCrosse_23:temperature] < 18) (set Luefter_Ole off)
attr Ole_Luefter_automatik room Ole

Es soll nachts um 4 Uhr abschalten oder bei unter 18 Grad.

Danke für den Tipp schon mal.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: rabehd am 22 April 2019, 21:50:54
Warum änderst Du zum Testen nicht die Uhrzeiten und ggf. die Temperaturen?
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Ellert am 23 April 2019, 07:53:31
Mit den Zeilenumbrüchen in der Definition wird es nicht funktionieren.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: rabehd am 23 April 2019, 08:56:41
Ich hoffe mal er hat den Code ohne Zeilenumbrüche und weiß nur nicht wie man hier Code einfügt.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 23 April 2019, 09:22:32
Zum posting: https://forum.fhem.de/index.php/topic,71806.0.html
Ich würde die Bedingung in Eine packen, die einzelne Zeit 4:00 und Abfrage < 18 macht keinen Sinn.

defmod Ole_Luefter_automatik DOIF ([18:00-4:00] and [LaCrosse_0C:temperature]-[LaCrosse_23:temperature] < 2 and [LaCrosse_23:temperature] > 18) (set Luefter_Ole on) DOELSE (set Luefter_Ole off)

Gruß Otto
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: MadMax-FHEM am 23 April 2019, 09:45:48
Zitat von: Otto123 am 23 April 2019, 09:22:32
Zum posting: https://forum.fhem.de/index.php/topic,71806.0.html
Ich würde die Bedingung in Eine packen, die einzelne Zeit 4:00 und Abfrage < 18 macht keinen Sinn.

defmod Ole_Luefter_automatik DOIF ([18:00-4:00] and [LaCrosse_0C:temperature]-[LaCrosse_23:temperature] < 2 and [LaCrosse_23:temperature] > 18) (set Luefter_Ole on) DOELSE (set Luefter_Ole off)

Gruß Otto

Er frägt ja nicht UND sondern ODER ;)

Er will ja zwischen 18:00 und 04:00 wenn irgendwas mit Temp ist ODER aber um 04:00 (auf jeden Fall ausschalten) ODER wenn schon vorher? die Temp kleiner 18Grad ist...

Ob nun das DOIF so stimmt und schaltet wie gewünscht?
Nutze kein DOIF ;)

EDIT: äh nutze kein DOIF, daher lasse ich die Anmerkung mal stehen denke aber dass die Def von Otto vermutlich auch macht was gewünscht ist... Weil DOELSE ja "aus macht", wenn nichts bei DOIF passt ;) / halte zukünftig bei DOIF besser die Klappe ;)

Aber wie schon angemerkt: ausprobieren ;)
(andere Uhrzeit im DOIF zum Test oder einfach mal per setreading [kurzzeitig / weil wird ja wieder "überschrieben"] die Temp entsprechend setzen)

Gruß, Joachim
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 23 April 2019, 10:24:52
Ich denke das passt schon mit der Umkehrung (or -> and) beim Wechsel in den anderen Zweig.

Die einzige (eventuell nur philosophische) Frage ist: passt es auch mit >18 oder müsste es >= 18 (wäre die exakte Umkehrung) oder nimmt man > 17 (weil = 18 gar nicht in der Überlegung war)  ;)
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: daedalus0815 am 23 April 2019, 16:57:33

Klammern sind deine Freunde....?!


(
[?18:00-04:00] and    ### ?-> nur Bedingung, kein Trigger
    (([LaCrosse_0C:temperature]-[LaCrosse_23:temperature]) < 2) and
([LaCrosse_23:temperature] > 18)
)
(set Luefter_Ole on)
DOELSEIF
( [04:01] )
(set Luefter_Ole off)
DOELSE
(set Luefter_Ole off)

Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 23 April 2019, 17:10:40
Klammern sind in dem Fall zwar sparsam aber nicht zu wenig  ;D
https://perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity

Probiers aus - für die FHEM Kommandozeile  ;D
{4-2 > 2}
{4-1 > 2}


Und er wollte 4:00 Uhr aus haben nicht 4:01 Uhr ;)
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 24 April 2019, 22:33:06
Hallo

Und sry fürs jetzt erst melden. @otto es schaltet von dir sehr gut Danke.

Aber würde gerne noch dieses einfügen. Oder bin ich dafür auf den Holzweg oder gibt es eine einfachere/ andere Lösung.
Anwendungsbeispiel: Warmwasserzirkulation

define di_pump_circ DOIF ([05:00-22:00])(set pump on)(set pump off) DOELSE (set pump off)
attr di_pump_circ wait 0,300
attr di_pump_circ repeatcmd 3600

Zwischen 5:00 und 22:00 Uhr läuft die Zirkulationspumpe alle 60 Minuten jeweils 5 Minuten lang.


So sieht meine List aus Zeitangaben sind nur Testzwecke.

Internals:
   CFGFN     
   DEF        ([18:00-4:00] and [LaCrosse_0C:temperature]-[LaCrosse_23:temperature] < 2 and [LaCrosse_23:temperature] > 18) (set Luefter_Ole on) DOELSE (set Luefter_Ole off)
   FUUID      5cc0cb6b-f33f-faf7-7809-0fd5326691c8d4ec
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NR         21454
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      cmd_1
   TYPE       DOIF
   VERSION    18890 2019-03-13 18:56:41
   READINGS:
     2019-04-24 23:00:10   Device          LaCrosse_23
     2019-04-24 22:59:14   cmd             1
     2019-04-24 22:59:14   cmd_event       LaCrosse_0C
     2019-04-24 22:59:14   cmd_nr          1
     2019-04-24 23:00:06   e_LaCrosse_0C_temperature 16.2
     2019-04-24 23:00:10   e_LaCrosse_23_temperature 21.2
     2019-04-24 22:55:30   mode            enabled
     2019-04-24 22:59:14   state           cmd_1
     2019-04-24 22:47:39   timer_01_c01    25.04.2019 18:00:00
     2019-04-24 22:47:39   timer_02_c01    25.04.2019 04:00:00
     2019-04-24 22:59:14   wait_timer      24.04.2019 23:02:34 cmd_1 LaCrosse_0C
   Regex:
     accu:
   attr:
     cmdState:
     repeatcmd:
       200
     wait:
       0:
         O
         100
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'LaCrosse_0C','temperature')-::ReadingValDoIf($hash,'LaCrosse_23','temperature') < 2 and ::ReadingValDoIf($hash,'LaCrosse_23','temperature') > 18
   days:
   devices:
     0           LaCrosse_0C LaCrosse_23
     all         LaCrosse_0C LaCrosse_23
   do:
     0:
       0          set Luefter_Ole on
     1:
       0          set Luefter_Ole off
   helper:
     event      battery: ok,temperature: 21.2,humidity: 54
     globalinit 1
     last_timer 2
     sleepdevice LaCrosse_0C
     sleepsubtimer 0
     sleeptimer 0
     timerdev   LaCrosse_23
     timerevent battery: ok,temperature: 21.2,humidity: 54
     triggerDev LaCrosse_23
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: LaCrosse_0C
       state: cmd_1
     timerevents:
       battery: ok
       temperature: 21.2
       humidity: 54
     timereventsState:
       battery: ok
       temperature: 21.2
       humidity: 54
     triggerEvents:
       battery: ok
       temperature: 21.2
       humidity: 54
     triggerEventsState:
       battery: ok
       temperature: 21.2
       humidity: 54
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   itimer:
   localtime:
     0          1556208000
     1          1556157600
   readings:
     0           LaCrosse_0C:temperature LaCrosse_23:temperature
     all         LaCrosse_0C:temperature LaCrosse_23:temperature
   realtime:
     0          18:00:00
     1          04:00:00
   time:
     0          18:00:00
     1          4:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1556157600:
       localtime  1556157600
       hash:
     1556208000:
       localtime  1556208000
       hash:
   uiState:
   uiTable:
Attributes:
   repeatcmd  200
   room       Ole
   wait       O,100


Schaltet nur leider nicht. Er fragt ejar die Temperatursensoren ab
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Per am 25 April 2019, 13:00:56
Zitat von: Wasserwerk33 am 24 April 2019, 22:33:06Aber würde gerne noch dieses einfügen.
Mein Vorschlag: anderer Aktor = anderes DOIF. Nicht dass es ungewollte Quereffekte gibt.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 25 April 2019, 13:52:08
Hallo Wasserwerk33,

sorry aber ich verstehe Deine Gedankengänge nicht. Das list von dem DOIF ist doch das was funktioniert?
Der Code von dem DOIF Wasserzirkulation ist aus der Doku?

Du willst die Intervallschaltung von dort in dein DOIF bauen?

Gruß Otto
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 25 April 2019, 20:03:07
Hallo

Fangen wir vorne. Das ist ein Lüfter der in der Nacht (Temperaturabfall) kühle Luft in die Zimmer der Kinder leitet. Funktioniert soweit super.

Das soll passieren in der Zeit von18-4 uhr. Und das bei 2 Grad temperatur unterschied aussen zu innen. Das Zimmer aber nicht kälter als 18 Grad machen.

Und nicht die ganze Nacht laufen sozusagen Intervall mässig. Letztes Jahr hatte ich dieses einfach nur mit einem button der 7200 lief und dann ausging und dann nicht mehr an. Aber Intervall wäre schön besser.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 25 April 2019, 21:34:00
Also, falls das jetzt bedeutet, auf alle 3 Fragen von mir ist die Antwort Ja?  ;)

defmod Ole_Luefter_automatik DOIF ([18:00-4:00] and [LaCrosse_0C:temperature]-[LaCrosse_23:temperature] < 2 and [LaCrosse_23:temperature] > 18) (set Luefter_Ole on) (set Luefter_Ole off) DOELSE (set Luefter_Ole off)
attr Ole_Luefter_automatik wait 0,300
attr Ole_Luefter_automatik repeatcmd 3600
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 28 April 2019, 21:33:13
Danke Läuft super. Auch mit dem Timer. Meinte letztens immer das er die Temperatursensoren abfragt. Dieses war aber wohl nicht der fall.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 28 April 2019, 21:48:39
ich verstehe Deine Frage mit den 20 grad nicht. Klar kannst Du die 18 auf 20 grad ändern. Oder willst Du eine Hysterese?

Gru´ß Otto
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 01 Mai 2019, 21:33:38
Habe es gerade gegoogelt "Hysterese" ja genau.
Habe nun einem dummy genommen und ihn mit einem doif versehen der erst bei 20 Grad einschaltet. Geht dieses auch in einem doif? Den wäre ja nun noch eins zusätzlich.
Habe was gefunden werde es erst selber versuchen. Melde mich nochmal.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 02 Mai 2019, 09:00:18
Moin,

brauchst Du nicht all zuweit googeln, steht in der Doku ;)
https://commandref.fhem.de/commandref_DE.html#DOIF_Weitere_Anwendungsbeispiele

Gruß Otto
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 02 Juni 2019, 17:12:06
Hallo Leute.

Habe mich mal dem Problem meines Lüfters wieder angenommen bei dem heißen Tag heute.  8)

Habe nun die Hysterese eingefügt aber einen error Fehler. Liegt das an dem Das ich es andersherum aufgebaut habe und dann nicht dieses mit dem -1 Grad habe sondern 2 Grad + damit meine?

Internals:
   DEF        ([23:00-4:00] and [LaCrosse_0C:temperature]-[LaCrosse_23:temperature] < 2 and [LaCrosse_23:temperature] > ([$SELF:desired] 2)) (set Luefter_Ole on) (set Luefter_Ole off) DOELSEIF([LaCrosse_0C:temperature] < ([$SELF:desired])) (set Luefter_Ole off)
   FUUID      5cc0cb6b-f33f-faf7-7809-0fd5326691c8d4ec
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NR         94
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      initialized
   TYPE       DOIF
   VERSION    18890 2019-03-13 18:56:41
   READINGS:
     2019-06-02 17:05:46   Device          LaCrosse_0C
     2019-06-02 17:04:12   cmd             0
     2019-06-02 17:05:46   e_LaCrosse_0C_temperature 33.8
     2019-06-02 17:05:45   e_LaCrosse_23_temperature 22.9
     2019-06-02 17:05:46   error           condition c01: syntax error, 2"

     2019-06-02 17:04:12   mode            enabled
     2019-06-02 17:04:12   state           initialized
     2019-06-02 17:04:12   timer_01_c01    02.06.2019 23:00:00
     2019-06-02 17:04:12   timer_02_c01    03.06.2019 04:00:00
     2019-06-02 17:05:46   warning         condition c01: (Missing operator before 2?)

   Regex:
     accu:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
       7200
     wait:
       0:
         0
         3600
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'LaCrosse_0C','temperature')-::ReadingValDoIf($hash,'LaCrosse_23','temperature') < 2 and ::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') 2)
     1          ::ReadingValDoIf($hash,'LaCrosse_0C','temperature') < (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired'))
   days:
   devices:
     0           LaCrosse_0C LaCrosse_23 Ole_Luefter_automatik
     1           LaCrosse_0C Ole_Luefter_automatik
     all         LaCrosse_0C LaCrosse_23 Ole_Luefter_automatik
   do:
     0:
       0          set Luefter_Ole on
       1          set Luefter_Ole off
     1:
       0          set Luefter_Ole off
     2:
   helper:
     event      battery: ok,temperature: 33.8,humidity: 29
     globalinit 1
     last_timer 2
     sleeptimer -1
     triggerDev LaCrosse_0C
     triggerEvents:
       battery: ok
       temperature: 33.8
       humidity: 29
     triggerEventsState:
       battery: ok
       temperature: 33.8
       humidity: 29
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   itimer:
   localtime:
     0          1559509200
     1          1559527200
   readings:
     0           LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
     1           LaCrosse_0C:temperature Ole_Luefter_automatik:desired
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   realtime:
     0          23:00:00
     1          04:00:00
   time:
     0          23:00:00
     1          4:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1559509200:
       localtime  1559509200
       hash:
     1559527200:
       localtime  1559527200
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   repeatcmd  7200
   room       Ole
   setList    18
   wait       0,3600
   webCmd     desired


Danke für eure Hilfe

Nachtrag Fehler gefunden war in meiner setList
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Per am 03 Juni 2019, 12:56:29
Zitat von: Wasserwerk33 am 02 Juni 2019, 17:12:06
... > ([$SELF:desired] 2)) ...
Copy-Fehler?

Falls LaCrosse_23:temperature auch negative Temperaturen annehmen kann, solltest du ihm ein Leerzeichen nach dem Minus spendieren!
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 03 Juni 2019, 14:51:00
@ Per so? > ([$SELF:desired] - 2))

Ich habe ejar das Problem es schalter auch wenn das Zimmer 23 Grad hat und Aussentemperatur bei 25 Grad liegt. Bei 24.9 geht er nicht an. Wo ist den mein Fehler?
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Per am 03 Juni 2019, 15:27:31
Zitat von: Wasserwerk33 am 03 Juni 2019, 14:51:00so?
Weiss ich nicht, aber irgend ein Zeichen sollte dazwischen. Sonst wird es mit hoher Wahrscheinlichkeit ein Syntaxfehler.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 03 Juni 2019, 15:37:15
Okay ja habe eins dazwischen. Schaltet nun auch.

Nur nicht den Lüfter. Das doif wird geschaltet.  Und wenn ich cmd2 schälte spring er auch sofort um nur wiegesagt der Lüfter wird nicht angeschaltet. Drücke ich dem on Button wird der Lüfter angeschaltet. Mmhh

([LaCrosse_0C:temperature]-[LaCrosse_23:temperature] < 2 and [LaCrosse_23:temperature] > ([$SELF:desired] +2)) (set Luefter_Ole on) (set Luefter_Ole off) DOELSE([LaCrosse_0C:temperature] < ([$SELF:desired])) (set Luefter_Ole off)

Wo ist der Fehler?
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 03 Juni 2019, 22:49:40
Hi,

Du solltest besser ein list vom DOIF posten.

Gruß Otto
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 03 Juni 2019, 23:00:13
Sry ja kein Problem. Habe es den Abend weiter probiert aber es klappt nicht habe es schon mitsandten Temperaturen versucht. Das wo ich nun hintergekommen bin ist das wenn ich die desired von 18 auf 21 hochstelle, stellt sich der Lüfter aus. Aber wieso springt er vor der 2 Grad Temperatur Unterschied von Schlafzimmer zu Außentemperatur an.

Internals:
   DEF        ([LaCrosse_0C:temperature]-[LaCrosse_23:temperature] < 2 and ([LaCrosse_23:temperature] > [Ole_Luefter_automatik:desired] +2)) (set Luefter_Ole on) DOELSEIF ([LaCrosse_0C:temperature]-[LaCrosse_23:temperature] > 0.1 or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired])) (set Luefter_Ole off)
   FUUID      5cc0cb6b-f33f-faf7-7809-0fd5326691c8d4ec
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NR         94
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      on
   TYPE       DOIF
   VERSION    18890 2019-03-13 18:56:41
   READINGS:
     2019-06-03 22:56:24   Device          LaCrosse_23
     2019-06-03 22:53:15   cmd             1
     2019-06-03 22:53:15   cmd_event       LaCrosse_0C
     2019-06-03 22:53:15   cmd_nr          1
     2019-06-03 22:52:58   desired         19
     2019-06-03 22:56:23   e_LaCrosse_0C_temperature 20.9
     2019-06-03 22:56:24   e_LaCrosse_23_temperature 22.8
     2019-06-03 22:53:10   mode            enabled
     2019-06-03 22:53:15   state           on
   Regex:
     accu:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'LaCrosse_0C','temperature')-::ReadingValDoIf($hash,'LaCrosse_23','temperature') < 2 and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > ::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') +2)
     1          ::ReadingValDoIf($hash,'LaCrosse_0C','temperature')-::ReadingValDoIf($hash,'LaCrosse_23','temperature') > 0.1 or (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') < ::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired'))
   devices:
     0           LaCrosse_0C LaCrosse_23 Ole_Luefter_automatik
     1           LaCrosse_0C LaCrosse_23 Ole_Luefter_automatik
     all         LaCrosse_0C LaCrosse_23 Ole_Luefter_automatik
   do:
     0:
       0          set Luefter_Ole on
     1:
       0          set Luefter_Ole off
     2:
   helper:
     event      battery: ok,temperature: 22.8,humidity: 63
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   LaCrosse_23
     timerevent battery: ok,temperature: 22.8,humidity: 63
     triggerDev LaCrosse_23
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: LaCrosse_0C
       state: on
     timerevents:
       battery: ok
       temperature: 22.8
       humidity: 63
     timereventsState:
       battery: ok
       temperature: 22.8
       humidity: 63
     triggerEvents:
       battery: ok
       temperature: 22.8
       humidity: 63
     triggerEventsState:
       battery: ok
       temperature: 22.8
       humidity: 63
   internals:
   itimer:
   readings:
     0           LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
     1           LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   trigger:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   room       Ole
   setList    desired:17,18,19,20,21
   verbose    5
   webCmd     desired
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Per am 04 Juni 2019, 12:31:10
Zitat von: Wasserwerk33 am 03 Juni 2019, 23:00:13Aber wieso springt er vor der 2 Grad Temperatur Unterschied von Schlafzimmer zu Außentemperatur an.
Nimm DOIF_Readings zur Fehlersuche!
Und <Enter> zur Formatierung:
(([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < 2 and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2)))
(set Luefter_Ole on)
DOELSEIF ((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.1) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)

Sinnvoll ist auch, sich für eine Schreibweise (a-b > c) oder (a + c > b) zu entscheiden, macht das Überprüfen im Kopf leichter und bringt manchmal sogar Vorteile beim Zusammenfassen:
([$SELF:LC_0C23] < 2 and [$SELF:LC_23de] > 2)
(set Luefter_Ole on)
DOELSEIF ([$SELF:LC_0C23] > 0.1 or [$SELF:LC_23de] < 0)
(set Luefter_Ole off)

attr Ole_Luefter_automatik DOIF_Readings LC_0C23:([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]),LC_23de:([LaCrosse_23:temperature] - [Ole_Luefter_automatik:desired])


Außerdem solltest du die Richtungen der Vergleiche prüfen: < 2 und > 0.1 ergibt einen gemeinsamen Bereich von 1.9. Ist das gewollt?
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 04 Juni 2019, 17:08:33
Hi Per

Lacrosse 0C = Aussenthermeter
Lacrosse 23 = Kinderzimmer

Denke ich habe dann in dem Unterem eine Falsche Schreibweise wollte nämlich das sich der Lüfter ausschaltet wenn er über die Kinderzimmertemperatur geht und nicht die Wärme Luft reinkommt. Deswegen hatte ich dort > 0.1 gestellt und das obere soll heißen wenn ich das Richtig gemacht habe, das ich eine Temperatur von 18 Grad einstelle und bei 20 Grad soll der Lüfter dann anspringen aber erst wenn die Außentemperatur unter die Temperatur vom kinderzimmer fällt.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Per am 05 Juni 2019, 12:06:09
Zitat von: Wasserwerk33 am 04 Juni 2019, 17:08:33eine Falsche Schreibweise
Was durch die neue "Sortierung" schneller auffällt und leichter zu überwachen ist.
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 06 Juni 2019, 12:26:48
Hi Per

Danke es läuft. So wie es soll. Zumindestens zur Zeit. Ist ja auch warm in den Zimmern. Mal schauen ob es auch klappt wenn wir der eingestellten Temperatur kommen

Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 10 Juni 2019, 22:52:01
Hi

Also sobald ich an die 18+2 Grad komme wo er eigentlich anschalten soll springt er immer an uns aus.
20.0 aus
20.1 wieder an.
Er kühlt garnicht bis 18 Grad runter.  Hat jemand eine Idee wo das Problem liegt?

Internals:
   DEF        (([22:00-18:00]) and ([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < - 0.5
and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2)))
(set Luefter_Ole on)
DOELSEIF ((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.5) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)
   FUUID      5cc0cb6b-f33f-faf7-7809-0fd5326691c8d4ec
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NR         93
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      disabled
   TYPE       DOIF
   VERSION    18890 2019-03-13 18:56:41
   READINGS:
     2019-06-09 05:23:47   Device          LaCrosse_23
     2019-06-04 18:20:38   LC_0C23         -3.9
     2019-06-04 18:20:38   LC_23de         5.5
     2019-06-10 22:45:32   cmd             1
     2019-06-10 22:45:32   cmd_event       Ole_Luefter_automatik
     2019-06-10 22:45:32   cmd_nr          1
     2019-06-09 05:05:26   desired         18
     2019-06-09 05:23:41   e_LaCrosse_0C_temperature 11
     2019-06-09 05:23:47   e_LaCrosse_23_temperature 20
     2019-06-09 05:04:43   e_Ole_Luefter_automatik_desired 18
     2019-06-10 22:45:44   last_cmd        on
     2019-06-10 22:45:44   mode            disabled
     2019-06-10 22:45:44   state           disabled
     2019-06-10 18:00:00   timer_01_c01    10.06.2019 22:00:00
     2019-06-10 18:00:00   timer_02_c01    11.06.2019 18:00:00
     2019-06-10 22:45:10   wait_timer      no timer
   Regex:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
     wait:
     waitdel:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms)) and (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) < - 0.5  and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') + 2))
     1          ((::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) > 0.5) or (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') < ::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired'))
   days:
   devices:
     0           LaCrosse_0C LaCrosse_23 Ole_Luefter_automatik
     1           LaCrosse_0C LaCrosse_23 Ole_Luefter_automatik
     all         LaCrosse_0C LaCrosse_23 Ole_Luefter_automatik
   do:
     0:
       0          set Luefter_Ole on
     1:
       0          set Luefter_Ole off
     2:
   helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: Ole_Luefter_automatik
       state: on
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   itimer:
   localtime:
     0          1560196800
     1          1560268800
   perlblock:
   readings:
     0           LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
     1           LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   realtime:
     0          22:00:00
     1          18:00:00
   time:
     0          22:00:00
     1          18:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1560268800:
       localtime  1560268800
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   room       Ole
   setList    desired:17,18,19,20,21
   webCmd     desired

Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Otto123 am 11 Juni 2019, 08:51:48
Moin,

das hier ist Deine Bedingung für Einschalten mit Hysterese + 2
([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2))
und das hier müsste Deine Bedingung für Ausschalten ohne Hysterese sein:
([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
Allerdings steht da der falsche Temp Fühler drin?

Gruß Otto
Titel: Antw:Schaltet das doif so nun aus?
Beitrag von: Wasserwerk33 am 25 Juni 2019, 13:04:28
An alle.
Super Danke für die Hilfe.
System läuft super.

Schönes weiter schwitzen Büsche ich euch  ;)