FHEM > Anfängerfragen

DOIF und Wait für Lüftersteuerung und Relais

(1/6) > >>

Ruggy:
Habe eine Lüftersteuerung (Luftfeuchtigkeitsabhängig) um den Keller trockener zu bekommen. Hier betreibe ich bereits seit einiger Zeit eine Steuerung, welche unter bestimmten Voraussetzung einen Lüfter für einer bestimmte Zeit einschaltet.
Im Lüftungsrohr habe ich zusätzlich eine Klappe, welche zufällt, wenn der Lüfter ausschaltet. Leider friert die Klappe manchmal an, fällt nicht mehr automatisch zu und die Luft kann weiter zirkulieren.

Deshalt habe ich jetzt eine Klappe im Rohr, welche mit 220 Volt auf und zu fährt. Dessen Motor hat drei Anschlüsse. Einmal Neutralleiter und ein Anschluss für öffnen und einer für schließen. Die Klappe benötigt ca. 10 Sekunden bis sie geschlossen oder offen ist. Danach schaltet der Motor automatisch aus.

Steuern möchte ich dies mit einem Zweitwegeschaltmodul (mit zwei Relais) von Xiaomi Aquara. Dies habe ich in FHEM bereits angelernt.
Es wurden zwei Devices (Lüftungsrohr_schießen und Lüftungsrohr_öffnen) angelegt.
Manuell kann ich die Klappe bereits steuern indem ich z.B. Lüftungsrohr_öffnen "on" mit der Maus klicke. Weil es ein Relais ist muß aber danach wieder auf "off" klicken, weil es nicht automatisch auf "off" umschaltet.

Kann folgendes DOIF funktionieren?


--- Code: ---([deltadewpoint:state]>2.3 and
[KEL_LUFTFEUCHTIGKEIT:temperature]<=9 and
[AUS_LUFTFEUCHTIGKEIT:temperature]>[KEL_LUFTFEUCHTIGKEIT:temperature])
(set HUEDevice18 on-for-timer 10)
(set HUEDevice9 on-for-timer 700)
(set HUEDevice7 on-for-timer 10)
DOELSE
(set HUEDevice9 off)
--- Ende Code ---

Als Attribut habe ich Wait 0,10,720 gesetzt.

Das heißt Strom für Klappe auf für 10 Sek, dann Lüfter nach 10 Sekunden an für 700 Sekunden und dann nach 720 Sekunden Strom für Klappe zu für 10 Sekunden.

Hier das List von der Lüftersteuerung:


--- Code: ---Internals:
   DEF        ([deltadewpoint:state]>2.3 and
[KEL_LUFTFEUCHTIGKEIT:temperature]<=9 and
[AUS_LUFTFEUCHTIGKEIT:temperature]>[KEL_LUFTFEUCHTIGKEIT:temperature])
(set HUEDevice18 on-for-timer 10)
(set HUEDevice9 on-for-timer 700)
(set HUEDevice7 on-for-timer 10)
DOELSE
(set HUEDevice9 off)
   FUUID      6060ef63-f33f-f59f-0724-1fb6e7a4b53fc5e7
   MODEL      FHEM
   NAME       TAUPUNKT_LUEFTUNG_KALT
   NOTIFYDEV  KEL_LUFTFEUCHTIGKEIT,AUS_LUFTFEUCHTIGKEIT,global,deltadewpoint
   NR         113
   NTFY_ORDER 50-TAUPUNKT_LUEFTUNG_KALT
   STATE      cmd_2
   TYPE       DOIF
   VERSION    24429 2021-05-12 19:22:50
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1638220210.42912
           VALUE      cmd_2
   READINGS:
     2021-11-29 22:21:54   Device          deltadewpoint
     2021-11-29 22:10:10   cmd             2
     2021-11-29 22:10:10   cmd_event       KEL_LUFTFEUCHTIGKEIT
     2021-11-29 22:10:10   cmd_nr          2
     2021-11-29 22:21:53   e_AUS_LUFTFEUCHTIGKEIT_temperature -1.27
     2021-11-29 22:10:10   e_KEL_LUFTFEUCHTIGKEIT_temperature 8.89
     2021-11-29 22:21:54   e_deltadewpoint_state 8.7
     2021-11-29 22:07:39   mode            enabled
     2021-11-29 22:10:10   state           cmd_2
   Regex:
     accu:
     collect:
     cond:
       AUS_LUFTFEUCHTIGKEIT:
         0:
           temperature ^AUS_LUFTFEUCHTIGKEIT$:^temperature:
       KEL_LUFTFEUCHTIGKEIT:
         0:
           temperature ^KEL_LUFTFEUCHTIGKEIT$:^temperature:
       deltadewpoint:
         0:
           state      ^deltadewpoint$:^state:
   attr:
     cmdState:
     repeatcmd:
       7500
     wait:
       0:
         0
         10
         720
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'deltadewpoint','state')>2.3 and  ::ReadingValDoIf($hash,'KEL_LUFTFEUCHTIGKEIT','temperature')<=9 and ::ReadingValDoIf($hash,'AUS_LUFTFEUCHTIGKEIT','temperature')>::ReadingValDoIf($hash,'KEL_LUFTFEUCHTIGKEIT','temperature')
   do:
     0:
       0          set HUEDevice18 on-for-timer 10
       1          set HUEDevice9 on-for-timer 700
       2          set HUEDevice7 on-for-timer 10
     1:
       0          set HUEDevice9 off
   helper:
     DEVFILTER  ^global$|^KEL_LUFTFEUCHTIGKEIT$|^AUS_LUFTFEUCHTIGKEIT$|^deltadewpoint$
     NOTIFYDEV  global|KEL_LUFTFEUCHTIGKEIT|AUS_LUFTFEUCHTIGKEIT|deltadewpoint
     event      8.7
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   deltadewpoint
     timerevent 8.7
     triggerDev deltadewpoint
     timerevents:
       8.7
     timereventsState:
       state: 8.7
     triggerEvents:
       8.7
     triggerEventsState:
       state: 8.7
   internals:
   readings:
     all         deltadewpoint:state KEL_LUFTFEUCHTIGKEIT:temperature AUS_LUFTFEUCHTIGKEIT:temperature
   trigger:
   uiState:
   uiTable:
Attributes:
   repeatcmd  7500
   room       Kellerlüftung
   wait       0,10,720
--- Ende Code ---

Danke
Grüße
Ruggy

Ruggy:
Bevor ich das obere ausprobiere, wollte ich eine "einfachere" Schaltung mal testen (HUEDevice9 ist der Lüfter).
Diese soll immer um 12:15 Uhr ausgeführt werden.

Hier fehlt mir aber jetzt das Attribut "wait"


So sieht mein DEF beim DOIF aus:

--- Code: ---([12:15])
(set HUEDevice18 on-for-timer 10)
(set HUEDevice9 on-for-timer 700)
(set HUEDevice7 on-for-timer 10)
DOELSE
(set HUEDevice9 off)
--- Ende Code ---

Funktioniert dies grundsätzlich? Stimmt die Angabe mit der Uhrzeit?

Damian:

--- Zitat von: Ruggy am 30 November 2021, 12:24:10 ---Bevor ich das obere ausprobiere, wollte ich eine "einfachere" Schaltung mal testen (HUEDevice9 ist der Lüfter).
Diese soll immer um 12:15 Uhr ausgeführt werden.

Hier fehlt mir aber jetzt das Attribut "wait"


So sieht mein DEF beim DOIF aus:

--- Code: ---([12:15])
(set HUEDevice18 on-for-timer 10)
(set HUEDevice9 on-for-timer 700)
(set HUEDevice7 on-for-timer 10)
DOELSE
(set HUEDevice9 off)
--- Ende Code ---

Funktioniert dies grundsätzlich? Stimmt die Angabe mit der Uhrzeit?

--- Ende Zitat ---

Du weißt ja: Probieren, geht über studieren. Was wie funktioniert oder nicht funktioniert, wirst du dann schon sehen. Beim Dummy kannst du ja nichts kaputt machen.

Ohne wait werden alle HUEDevices gleichzeitig gestartet.

Ruggy:
Aber ich bräuche das Wait, weil

HUEDevice18 sofort
HUEDevice9 nach 10 Sekunden
HUEDevice7 nach 700 Sekunden

eingeschaltet werden sollte.

Das wait ist aber als Attribut unter Module nicht vorhanden.
Bei oberen doif kann ich es dort finden und auswählen.

Leider ist das kein Dummy sondern der echte Lüfter und Xiaomi Zweiwegeschaltmodul für die Rohrklappe.
Deshalb wollte ich vor wissen ob es funktionieren könnte.

Damian:
Dann poste das list vom DOIF, wo du kein wait auswählen kannst.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln