[gelöst] DOIF mit Vorgaben starten

Begonnen von cwagner, 09 Juli 2017, 09:05:10

Vorheriges Thema - Nächstes Thema

cwagner

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
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Per

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.

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cwagner

Vielen Dank Euch allen für die konstruktiven Vorschläge

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Frank_Huber

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

cwagner

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
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Frank_Huber

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.