FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Cyber1000 am 03 Dezember 2017, 20:22:49

Titel: Trockner schaltet Luftentfeuchter (Code funktioniert, bitte um ein Review)
Beitrag von: Cyber1000 am 03 Dezember 2017, 20:22:49
Hallo,

Vorab: Dieser Code tut das was ich will, es ist nur eines meiner ersten DOIFs auf fhem, deshalb wollt ich fragen, ob da vielleicht ein Profi mal drübersehn kann, vielleicht macht man das ja auch ganz anders, effizienter, whatever und ich verwende hier Konstrukte, die nie so vorgesehen waren. Hab mich im wiki/forum ein wenig eingelesen und selbst ein wenig herumgespielt, aber es gibt einfach so viele Möglichkeiten, die einen Anfänger erst mal erschlagen.

Schritte, die ich hier mache:

Danke!

([Trockner.Status] eq 'running')
(
   set Luftentfeuchter.AutoStatus on,
   set Luftentfeuchter.Steckdose on,
   set Luftentfeuchter.Shutoff.Counter 0,
   IF ([Luftenfeuchter.Feuchte.Ziel] < 0) (set Luftenfeuchter.Feuchte.Ziel [Sensor_TL_Bad:humidity])
)
DOELSEIF ([Trockner.Status] eq 'off')
(
   IF ([Sensor_TL_Bad:humidity] <= [Luftenfeuchter.Feuchte.Ziel] or ([Sensor_TL_Bad:humidity] > [Luftenfeuchter.Feuchte.Ziel] and [Luftentfeuchter.Shutoff.Counter]>=60))
   (
      set Luftentfeuchter.AutoStatus off,
      set Luftentfeuchter.Shutoff.Counter 0,
      set Luftenfeuchter.Feuchte.Ziel -1,
      set Luftentfeuchter.Steckdose off,
     (set Benachrichtigung message Luftentfeuchter fertig, bitte entleeren! | Hausautomatisierung)
   )
   ELSE
   (
      set Luftentfeuchter.Shutoff.Counter {([Luftentfeuchter.Shutoff.Counter]+1)}
   )
)


Attribute: do always
repeatcmd: 0:60
repeatsame: 0:65
wait: 0:1800
Titel: Antw:Trockner schaltet Luftentfeuchter (Code funktioniert, bitte um ein Review)
Beitrag von: Damian am 03 Dezember 2017, 22:30:25
Wenn es funktioniert, dann hast du alles richtig gemacht. Ich sehe keine groben Verstöße.

Eine elegantere Lösung wäre, statt alle paar Minuten zu pollen, die Feuchtigkeitsschwelle in einer DOIF-Bedingung abzufragen und dann sofort oder verzögert die gewünschte Aktion ausführen.
Titel: Antw:Trockner schaltet Luftentfeuchter (Code funktioniert, bitte um ein Review)
Beitrag von: Per am 04 Dezember 2017, 14:06:45
Die Feuchtigkeit würde ich nicht abfragen, sondern durch die Events melden lassen.
Dann kann man in einem separaten DOIF (separat, weil anderes DEVICE) drei Fälle unterscheiden:
zu hohe Luftfeuchte, Trockner läuft -> Entfeuchter an
viel zu hohe Luftfeuchte, Trockner aus -> Entfeuchter an
normale Luftfeute - Entfeuchter aus

Anfangs mag es noch angehen, verschiedene DEVICES über ein DOIF zu schalten, sobald aber mehrere DOIF auf ein DEVICE zugreifen, kann es zu ungeahnten Seiteneffekten kommen.
Titel: Antw:Trockner schaltet Luftentfeuchter (Code funktioniert, bitte um ein Review)
Beitrag von: Cyber1000 am 11 März 2018, 23:49:48
Danke nochmal!

Im Endeffekt habe ich das ganze noch ein wenig geradegezogen und die Feuchtigkeit wie empfohlen in die Events gezogen.
Funktioniert seit ein paar Monaten auch recht zufriedenstellend.
Gerade wieder über den Artikel gestolpert ...