FHEM - Hausautomations-Systeme > MAX

Neue Beta Test Runde für alle MAX Module

<< < (25/25)

Wzut:
Das mit dem keepAuto klingt zwar komisch, ist aber richtig !
Irgendwann ist beim Code aufräumen ein else mit entsprechenden Klammern untergegangen, dadurch wird der controlmode von 3 (boost) wieder auf 0 (auto) gesetzt wenn gleichzeitig keepAuto = 1 ist.

scooty:

--- Zitat von: Wzut am 01 März 2022, 11:05:53 ---Das mit dem keepAuto klingt zwar komisch, ist aber richtig !
--- Ende Zitat ---
Hallo Wzut,

danke für die Info.
Habe es aber nicht so ganz verstanden.
Ist es "richtig", weil es aktuell im Code so hinterlegt ist und korrekt so ausgeführt wird?
Aber eigentlich ist durch das Code-Aufräumen nun dieses Verhalten so?

In diesem Fall, wirst Du es auf den Stand "boost funktioniert bei keepAuto=1" ändern?
Danke für eine kurze Rückmeldung.

Viele Grüße,
Andreas

thomasgloor:
Ich wollte mit einem DOIF den Status von mehreren Ventilen auslesen. Also:

--- Code: ---define MaxSetStatusDummy DOIF ([+:05])(set MAX_TV_Eingang getStatus, set MAX_TV_Kueche getStatus, ...)
attr MaxSetStatusDummy do always
--- Ende Code ---

Das sendet an alle Ventile ein getStatus, gibt aber vermutlich ein Chaos im Äter, wenn alle Ventile gleichzeitig brüllen. Die Werte kommen nur von einzelnen Ventilen an.

DOIF kennt das "Wait" zwischen Kommandos. Dieses funktioniert aber nur bein eventgesteuerten DOIFs, nicht bei zeitgesteuerten.

Mein Umweg:
Ich habe einen Dummy definiert:

--- Code: ---define MaxGetStatusEventTimer dummy
attr MaxGetStatusEventTimer event-on-change-reading state
attr MaxGetStatusEventTimer setList 0 1

--- Ende Code ---

Ein erstes DOIF setzt periodisch den Status des Dummy:

--- Code: ---define MaxSetStatusDummy DOIF ([+:10])(set MaxGetStatusEventTimer 1)
attr MaxSetStatusDummy do always
--- Ende Code ---

Dies generiert ein Event, welche in einem zweiten Dummy verarbeitet wird. Zwischen den Kommandos wird hier 15s gewartet:


--- Code: ---define MaxGetStatus DOIF ([MaxGetStatusEventTimer]) (set MAX_TV_Eingang getStatus) ... (set MAX_TV_Estrich getStatus)(set MaxGetStatusEventTimer 0)
attr MaxGetStatus do always
attr MaxGetStatus wait 0,15,15,15,...,15
--- Ende Code ---

Zuletzt wird der Dummy auf 0 zurückgesetzt.

Ein gebastel, aber es Funktioniert!

VIELEN DANK an wzut für das Modul!

Wzut:

--- Zitat von: thomasgloor am 04 März 2022, 13:38:56 ---Ein gebastel, aber es Funktioniert!

--- Ende Zitat ---
Ich verwende DOIF aus Prinzip nicht, hätte ich dieses "Problem" lösen müssen hätte ich eine LightScene definiert und den Abfrageabstand mit dem Attribut async_delay festgelegt.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln