In meiner Steuerung für eine kontrollierte Lüftung sind die ersten Messwerte zur Raumluftqualität nach einem Stillstand bzw. Neustart unsinnig und bringen meine einfache Regelung auf einen falschen Trip. Ideal wäre, wenn ich DOIF mit einem festen Vorgabewert starten könnte, der eine erste Aktion ausführt z.B. cmd1, und erst der nächste Trigger (nach 10 Minuten über Zeitsteuerung gelöst) wird dann zur Grundlage der weiteren Aktionen gemacht.
Initialize würde sich dafür m.E. anbieten. Bisher kenne ich dort nur initialized als Parameter.
Christian
Zitat von: cwagner am 09 Juli 2017, 09:05:10
In meiner Steuerung für eine kontrollierte Lüftung sind die ersten Messwerte zur Raumluftqualität nach einem Stillstand bzw. Neustart unsinnig und bringen meine einfache Regelung auf einen falschen Trip. Ideal wäre, wenn ich DOIF mit einem festen Vorgabewert starten könnte, der eine erste Aktion ausführt z.B. cmd1, und erst der nächste Trigger (nach 10 Minuten über Zeitsteuerung gelöst) wird dann zur Grundlage der weiteren Aktionen gemacht.
Initialize würde sich dafür m.E. anbieten. Bisher kenne ich dort nur initialized als Parameter.
Christian
Das Attribut initialize ist nicht auf "initialized" beschränkt, du kannst dort beliebige Angaben als Status des Moduls machen, z. B. cmd_1, on, off usw.. Intern wird allerdings cmd_nr immer auf 0 gesetzt, damit der nächste Trigger zum Einsatz kommt.
Auch wenn es verpönt ist, du kannst in die Config ein set doifname xyz setzen, welches bei jedem Start ausgeführt wird. Geht auch mit at.
Zitat von: Per am 09 Juli 2017, 11:01:48
Auch wenn es verpönt ist, du kannst in die Config ein set doifname xyz setzen, welches bei jedem Start ausgeführt wird. Geht auch mit at.
oder in dein DOIF einen Zweig mit der Abfrage
(["global:^INITIALIZED$"])
einbauen.
Vielen Dank Euch allen für die konstruktiven Vorschläge
Christian
Moin,
Ich bringe mal noch einen anderen Gedanken rein,
Warum sind denn die Werte unsinnig?
Beim Neustart sollten die readings aus dem statefile wieder geladen werden.
Die Frage ist daher: Warum hast Du falsche Werte?
/Frank
Zitat von: Frank_Huber am 10 Juli 2017, 09:51:19
Beim Neustart sollten die readings aus dem statefile wieder geladen werden.
Die Frage ist daher: Warum hast Du falsche Werte?
@Frank: im Prinzip hast Du Recht: Doch liefert der verbaute Luftqualitätssensor in den ersten Minuten nach dem Neustart während der Aufheiz- und Kalibrierphase falsche werte mit dem Ergebnis, dass meine Regelung im Vergleich zu den vorherigen Werten (aus dem Statefile) eine drastische Veränderung der Luftqualität feststellt und entsprechend gegenregelt.
In den aufgezeigten Lösungsansätzen gibt es aber auch einen Ansatz, eben die Regelung für eine Wideranlaufphase auszusetzen (Damians Hinweis auf ^INITIALIZED$"). Diese Option hatte ich zunächst gar nicht gesehen.
Christian
Zitat von: cwagner am 10 Juli 2017, 17:44:25
@Frank: im Prinzip hast Du Recht: Doch liefert der verbaute Luftqualitätssensor in den ersten Minuten nach dem Neustart während der Aufheiz- und Kalibrierphase falsche werte mit dem Ergebnis, dass meine Regelung im Vergleich zu den vorherigen Werten (aus dem Statefile) eine drastische Veränderung der Luftqualität feststellt und entsprechend gegenregelt.
In den aufgezeigten Lösungsansätzen gibt es aber auch einen Ansatz, eben die Regelung für eine Wideranlaufphase auszusetzen (Damians Hinweis auf ^INITIALIZED$"). Diese Option hatte ich zunächst gar nicht gesehen.
Ah, der Sensor startet durch, dachte das nur FHEM durchstartet.
Klar, so macht das dann Sinn.