FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: lumpi2508 am 03 November 2014, 21:54:43

Titel: Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: lumpi2508 am 03 November 2014, 21:54:43
Hallo.
Ich möchte bei Anstieg der Luftfeuchtigkeit (z.B. >4%) bei zwei aufeinanderfolgenden Messungen eine Aktion ausführen.
Ich benutze bereits das Attribut 'event on change'. Wie sieht denn dann mein notify aus?
Vielen Dank.
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: fidel am 04 November 2014, 00:06:17
Wenn ich das so lese stellt sich mir, nachdem du es im 2. Thread sogar zu Frage geschafft hast, erstmal die Frage nach der Zeit...
Ansonsten wird dich erstmal ein wenig Eigeninitiative am ehesten weiter bringen...

Versuche es erstmal mit einem fixwert. Luftfeuchte größer 60 Prozent. Darauf kannst du dann weiter aufbauen.
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: fiedel am 04 November 2014, 07:02:20
Guck dir mal das Modul Threshold (http://fhem.de/commandref.html#THRESHOLD) an! Damit geht es relativ einfach.

Gruß

Frank
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: Puschel74 am 04 November 2014, 08:14:54
Hallo,

am einfachsten wäre es den dritten angepinnten Beitrag zu lesen.
Damit sollte sich schonmal eine Liste der benötigten Infos zusammenfinden lassen.
Sonst würde ich sagen:

ZitatWie sieht denn dann mein notify aus?
Mit deinen Infos recht einfach.
define n_Feuchte notify <Device:reading> <und_hier_der_code>
Aber das sollte sich eigentlich auch aus der commandref so erschliessen daher wunder ich mich grad über die Frage.

Grüße
P.S.: Ich vermute den zweiten Beitrag ohne Frage und mitten im Text abgesendet kann man löschen?
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: lumpi2508 am 04 November 2014, 09:12:34
Hallo zusammen,
vielen Dank für die Antworten.
Mir geht es nur darum, dass ich eine Funktion (ein Badlüfter soll nach einem relativen Anstieg der Luftfeuchtigkeit um x% für eine definierte Dauer laufen) ausführen möchte, wenn der neue Wert um x% größer als der alte Wert ist.
Wenn ich nun das
Zitatdefine n_Feuchte notify <Device:reading> <und_hier_der_code>
einfüge, würde nun durch das von mir zugewiesene Attribut (event on change) gewährleistet, dass immer nur bei Wertänderungen das n_Feuchte ausgeführt wird, oder verstehe ich das falsch?
Das mit der Funktion (Neu-/Altwert, Einschalten für eine bestimmte Zeit usw.) ist für mich klar, es geht nur um das Triggerereignis.

Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: fidel am 04 November 2014, 09:27:23
Zitat von: Bastelbude am 04 November 2014, 09:12:34
Wenn ich nun das
einfüge, würde nun durch das von mir zugewiesene Attribut (event on change) gewährleistet, dass immer nur bei Wertänderungen das n_Feuchte ausgeführt wird, oder verstehe ich das falsch?

Ja, das ist richtig...
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: Puschel74 am 04 November 2014, 09:43:29
Hallo,

Zitates geht nur um das Triggerereignis.
Dann würd ich auf die Luftfeuchte deines Sensors triggern lassen.
event-on-change hast du eh schon gesetzt somit wird das notify nur getriggert wenn sich die Feuchte ändert.
Im Code machst du dann den Rest.

Sowas hab ich übringes auch um nach dem Duschen (oder in der Wanne liegen) den Badezimmerlüfter einzuschalten.
Ich prüfe aber im Code auf einen Anstieg der Feuchte zum vorherigen Wert und lass den Lüfter nur laufen wenn eine bestimmte Differenz überschritten ist.
Und dann läuft der Lüfter auch nur 30 Minuten.

Das lässt sich zwar auch mit Threshold erledigen aber mir ist die Variante mit if (leider) noch lieber (und geläufiger).

Grüße
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: fiedel am 04 November 2014, 11:13:10
Zitat von: Puschel74 am 04 November 2014, 09:43:29
... mir ist die Variante mit if (leider) noch lieber (und geläufiger).

Mir geht das genau so. ;o) Hab Threshold noch nie verwendet, habe es aber vor, da es einiges an Code einspart.

Gruß

Frank
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: Damian am 04 November 2014, 11:25:35
Zitat von: Puschel74 am 04 November 2014, 09:43:29
Das lässt sich zwar auch mit Threshold erledigen aber mir ist die Variante mit if (leider) noch lieber (und geläufiger).

Das Modul THRESHOLD unterstützt die Differenz zweier aufeinander folgender Readings nicht.

Um es sauber zu programmieren, sollte man die zeitliche Komponente nicht außer acht lassen.

Es kann kritischer sein, dass ein Wert um 1 % ansteigt, als wenn er um 10 % ansteigt, nämlich dann, wenn er 1 % pro Sekunde ansteigt und 10 % innerhalb einer Minute.

Die Abfrage müsst dann heißen: Wertdifferenz/Zeitdifferenz > x

Gruß

Damian
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: lumpi2508 am 04 November 2014, 12:05:09
Super, vielen Dank, jetzt weiss ich Bescheid.
Viele Grüße
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: roedert am 08 November 2014, 08:38:10
event-on-change reduziert die Datenlast zwar ein wenig, nützt aber aufgrund der Ungenauigkeit der Feuchtigkeitssensoren wenig .... der Wert ändert sich eigentlich ständig, wenn auch nur 1 Stelle hinterm Komma.

Ich habe jetzt eine für mich prima funktionierende Lösung gefunden:
- die Feuchtigkeit wird in einem DBlog protokolliert, dies ist würg die Ermittlung de Durchschnittswert erforderlich (FileLog sollte aber auch gehen)
- ein zusätzliches Userreading enthält den Durchschnittswert der Feuchtigkeit der letzten 40 Minuten
- bei jedem empfangenen Wert wird geprüft:
Wenn der aktuelle Wert > 3% über dem Durchschnittswert liegt oder ein Maximalwert (in einem Dummy gespeichert) überschritten ist und der Lüfter noch nicht läuft, wird dieser für maximal 2 Stunden eingeschaltet
Wenn der aktuelle Wert < 0,5% über dem Durchschnittswert liegt oder der Minimalwert (in einem Dummy gespeichert) unterschritten ist und der Lüfter noch läuft, wird dieser ausgeschaltet 

Funktioniert bis jetzt eigentlich perfekt, kann man schön sehr wenn man entsprechende Plots mit Lüfterlaufzeit, Durchschnittswert und Luftfeuchtigkeit erstellt.

Bei Interesse kann ich mal den nötigen Code für raussuchen.
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: Puschel74 am 08 November 2014, 08:50:37
Hallo,

Zitatin einem Dummy gespeichert
Hatte ich auch bis ich über die wunderschöne Möglichkeit mit setreading gestolpert bin.
Damit lassen sich bequem zusätzlich Readings in bereits existierenden Geräten unterbringen und auch wieder mit ReadingsVal auslesen.
Hat mir auf einen Schlag jede Menge unnötiger Dummys beschert die ich wieder löschen konnte.

Grüße
Titel: Antw:Aktion bei Anstieg der Luftfeuchtigkeit
Beitrag von: roedert am 08 November 2014, 10:01:56
Zitat von: Puschel74 am 08 November 2014, 08:50:37
dummy....setreading

Ja, ich weiß  ;)
Ging mir genauso und hab ich an vielen Stellen auch schon irgendwann mal abgeändert .... aber beim Lüfter ist es noch als "Altlast" dabei.