DEWPOINT Lüften oder nicht empfehlung

Begonnen von Dennis, 29 September 2012, 14:35:50

Vorheriges Thema - Nächstes Thema

Dennis

                                                 

Hallo,

es gibt ja schon einige Threads zur Verwendung von Dewpoint zwecks
Kellerentfeuchtung/Lüftung , ich möchte folgende Variante realisieren:

Ich habe ein dummy PR_Lueften angelegt, dieser kann die States JA NEIN EGAL
annehmen
(JA= "Schnell das Fenster auf bzw auflassen", NEIN= "Schnell das Fenster zu
bzw nicht öffnen", EGAL="Fenster auf oder zu")
Anbei noch 3 Icons die ich gebastelt habe um auf dem Floorplan eine
Darstellung zu ermöglichen (vielleicht kann die ja noch jemand anderes
gebrauchen)

Derzeit setze ich das JA und NEIN so:
define PR_dew_fan dewpoint fan Innentempsensor Aussentempsensor -5 2 #bei
Temp < -5 nicht Lüften, TempDiff min. 2°C
define PR_dew_fan_on notify Innentempsensor.*fan:.*on set PR_Lueften JA
define PR_dew_fan_off notify Innentempsensor.*fan:.*off set PR_Lueften NEIN

Ich würde jetzt auch gerne noch das EGAL implementieren bin aber ratlos
wie...
EGAL soll z.B. gesetzt werden wenn die Aussentemp < -5 ist oder wenn die
Luftfeuchte innen unter einem bestimmten % Wert ist (z.B. 55 %) und
PR_Lueften nicht
auf NEIN steht (will die Luftfeuchte ja nicht anheben :-)) dabei soll
natürlich sichergestellt sein das der Wert von EGAL auch wieder auf JA bzw
NEIN gesetzt wird wenn sich die Werte geändert haben.

Kann mir da jemand Hilfestellung geben ? Vielleicht ist das Ergebnis ja
auch was fürs Wiki ?

Gruß Dennis



--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dennis

                                                 

Hab nochmal rumprobiert komme jedoch ohne Hilfe nicht weiter :-(

Ich wollte erstmal einfach anfangen und egal ob "Fan ON" oder "Fan OFF" den
PR_Lueften auf "EGAL" setzen wenn die Luftfeuchte unter 60% ist (Nur ein
Wert zum testen)

Mein Lösungsansatz wäre:
define PR_dew_fan_else notify {IF (TFATS34C_5d_14.*fan:.*o* &&
.ReadingsVal("TFATS34C_5d_14","humidity","ERROR") <= 60) {fhem "set
PR_Lueften EGAL"}}

Jedoch weiss ich nicht ob das überhaupt mit notify so geht, ob da
Syntaxfehler drin sind und wie ich das debuggen kann...Ich kann die cfg
ohne Fehler speichern und sehe nur das nichts
passiert :-/

Falls jemand ne Idee hat.... :-)

Dennis

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Sorry, Dennis. Da kann ich nicht weiterhelfen. Ich kann zwar Module
schreiben, habe aber solche Inline-Perl-Programme noch nie realsiert.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dennis

                                                 

Hi,

ich habe mich von den notify verabschiedet und es nun mit at probiert:
define PR_dew_fan_check at +*00:01:00 {
if (ReadingsVal("TFATS34C_5d_14","fan","off") eq "on" #Lüfter an
{
if (ReadingsVal("TFATS34C_5d_14","humidity",100) >= 58) #Überschreitung
Grenzwert der Luftfeuchte im Raum
{
if (ReadingsVal("PR_Lueften","state","NEIN") ne "JA") {fhem("set PR_Lueften
JA")}
}
else #Luftfeuchte im Raum ist bereits niedrig, Lüften optional
{
if (ReadingsVal("PR_Lueften","state","NEIN") ne "EGAL") {fhem("set
PR_Lueften EGAL")}
}
         }
else #Lüfter aus
{
if (ReadingsVal("PR_Lueften","state","JA") ne "NEIN") {fhem("set PR_Lueften
NEIN")}
}
}

Leider rührt sich auch da nichts, ich habe auch schon alles in einer zeile
ohne kommentare in die cfg geschrieben ohne Ergebnis...
Das kann doch nicht so schwer sein, was mache ich denn falsch ???

Gruß Dennis

Am Samstag, 29. September 2012 23:22:15 UTC+2 schrieb Willi:
>
> Sorry, Dennis. Da kann ich nicht weiterhelfen. Ich kann zwar Module
> schreiben, habe aber solche Inline-Perl-Programme noch nie realsiert.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ich glaube der Willi meint das anders :-)

Ich bin ja auch noch ganz am Anfang, und es hat mich oft
durcheinandergebracht, was als notif, was als at und was sonstwie zu
definieren.

Der Übersichtlichkeit halber bin ich dazu über gegangen, in ein notify oder
at nur das allernotwendigste rein zu schreiben, um dann eine eigene
Funktion aufzurufen, die ich mir in der MyUtils angelegt habe. Das finde
ich persönlich für mich einfach "sicherer", bis ich mehr Kniffe und Tricks
beherrsche.

Wie gesagt: nur  meine eigene Meinung.

VG
Ralf

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dennis

                                                 

Hi Ralf,

ich habe nun den Fehler gefunden...Eine abschliessende Runde Klammer vor
dem ersten Kommentar war es !
Das mit der eigenen Funktion ist ein guter Tipp, das werde ich beim
nächsten mal machen. Mir fällt erst jetzt auf das
ich da ja gar nichts übergeben muss sondern innerhalb der Funktion auf alle
Readings etc. zugreifen kann.

Immerhin funktioniert es nun wie gewollt, hat zwar Stunden gedauert aber
immerhin bin ich jetzt ein Stück schlauer :-)

Schöne Grüße ...

Dennis

Am Sonntag, 30. September 2012 15:29:00 UTC+2 schrieb dou...@m1n1.de:
>
>
>
> Ich glaube der Willi meint das anders :-)
>
> Ich bin ja auch noch ganz am Anfang, und es hat mich oft
> durcheinandergebracht, was als notif, was als at und was sonstwie zu
> definieren.
>
> Der Übersichtlichkeit halber bin ich dazu über gegangen, in ein notify
> oder at nur das allernotwendigste rein zu schreiben, um dann eine eigene
> Funktion aufzurufen, die ich mir in der MyUtils angelegt habe. Das finde
> ich persönlich für mich einfach "sicherer", bis ich mehr Kniffe und Tricks
> beherrsche.
>
> Wie gesagt: nur  meine eigene Meinung.
>
> VG
> Ralf
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Am Sonntag, 30. September 2012 15:29:00 UTC+2 schrieb dou...@m1n1.de:
>
>
>
> Ich glaube der Willi meint das anders :-)
>
> Ich bin ja auch noch ganz am Anfang, und es hat mich oft
> durcheinandergebracht, was als notif, was als at und was sonstwie zu
> definieren.
>
> Der Übersichtlichkeit halber bin ich dazu über gegangen, in ein notify
> oder at nur das allernotwendigste rein zu schreiben, um dann eine eigene
> Funktion aufzurufen, die ich mir in der MyUtils angelegt habe. Das finde
> ich persönlich für mich einfach "sicherer", bis ich mehr Kniffe und Tricks
> beherrsche.
>

Richtig. Ich mag persönlich diese Inline-Perl-Programme auch nicht und
schreibe das auch entsprechend in MyUtils. Da bekommt man dann
entsprechende Fehlermeldungen mit Angabe der Zeilennummer.
Das Testen wird m.E. viel einfacher.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dennis

                                                 

*grumpf* In der Tat...Nur wissen muss man das erstmal, gibt es noch mehr
Tipps ? :-)

Ich habe es jetzt auch in ein Sub ausgelagert, ist ja auch viel flexibler:


sub Lueften($$)
{
#*******************************************************************************
# Purpose: Ermitteln ob gelüftet werden soll oder nicht
# Author : Dennis G.
# Date   : 30.09.2012
# Changes: ---
# Remarks:
# $_[0] = Innensensor mit Reading "Fan"
# $_[1] = dummy device welches zur Anzeige verwendet wird
#**************************** Begin of Code
*************************************
if (ReadingsVal($_[0],"fan","off") eq "on")
{
if (ReadingsVal($_[0] ,"humidity",100) >= 55) #Grenzwert 55% ggf. noch als
Parameter übergeben ?
{
if (ReadingsVal($_[1],"state","NEIN") ne "JA") {fhem("set $_[1] JA")}
}
else
{
if (ReadingsVal($_[1],"state","NEIN") ne "EGAL") {fhem("set $_[1] EGAL")}
}
}
else
{
if (ReadingsVal($_[1],"state","JA") ne "NEIN") {fhem("set $_[1] NEIN")}
}
#**************************** End of Code
***************************************

Am Sonntag, 30. September 2012 19:09:57 UTC+2 schrieb Willi:
>
>
> Richtig. Ich mag persönlich diese Inline-Perl-Programme auch nicht und
> schreibe das auch entsprechend in MyUtils. Da bekommt man dann
> entsprechende Fehlermeldungen mit Angabe der Zeilennummer.
> Das Testen wird m.E. viel einfacher.
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

ChrisW

                                                     

Hallo,
eine coole Idee. Jedoch brauche ich nur die Info auf dem Floorplan und eine
E-Mail wenn gelüftet werden muss.
Für mich als Anfänger ist dieser code aber schwer zu verstehen.

Am Montag, 1. Oktober 2012 08:49:13 UTC+2 schrieb Rudolf Koenig:
>
> > Der Uebersichtlichkeit halber bin ich dazu ueber gegangen, in ein notify
> oder
> > at nur das allernotwendigste rein zu schreiben, um dann eine eigene
> > Funktion aufzurufen, die ich mir in der MyUtils angelegt habe. Das finde
> > ich persoenlich fuer mich einfach "sicherer", bis ich mehr Kniffe und
> Tricks
> > beherrsche.
>
> Das ist auch der eindeutig bessere Weg fuer etwas laengeren Code, insb.
> fuer
> fhem-Anfaenger:
> - kein @@ %% ;; und \ notwendig
> - Zeilenangabe etwaiger Fehler von dem Perl Interpreter.
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Raspberry PI3 mit allem möglichen.

Dennis

                                                 

Hallo Chris,

so sieht es z.B. auf dem Floorplan aus:

<https://lh5.googleusercontent.com/-n6L_-ESvFLU/UIuGkUKIeYI/AAAAAAAAAe8/6sB9uhbD03c/s1600/screenshot.52.png>

Schritt für Schritt Anleitung:
- Temperatur/Feuchtemesswerte müssen für den Raum und Aussen vorhanden sein
- Taupunktberechnung muss aktiv sein (DEWPOINT)
- die drei Bilder aus dem ersten Beitrag (oder eigene...) in den Ordner
   .../fhem/www/images/default ablegen
- falls noch nicht vorhanden eine Datei 99_myUtils.pm in dem Ordner
  .../fhem/FHEM anlegen bzw. bearbeiten, Inhalt:

package main;
use strict;
use warnings;


sub onTimer($)
#*******************************************************************************
# Purpose: Hilfsfunktion um Timerereignisse zu steuern
# Author : Dennis Gnoyke
# Date   : 30.09.2012
# Changes: ---
# Remarks:
# $_[0] = eine Zahl
#
#**************************** Begin of Code
*************************************
{
if ($_[0] eq 1)
{
#Lueften(,,)
Lueften("AR_Temperatur","AR_Lueften","55");
                        #Platz für weitere Räume ...
}
elsif ($_[0] eq 2)
{
#irgendetwas anderes
}

#**************************** End of Code
***************************************
}

sub Lueften($$$)
{
#*******************************************************************************
# Purpose: Ermitteln ob gelüftet werden soll oder nicht
# Author : Dennis Gnoyke
# Date   : 30.09.2012
# Changes: ---
# Remarks:
# $_[0] = Innensensor mit Reading "Fan"
# $_[1] = dummy device
# $_[2] = Grenzwert Luftfeuchte
#**************************** Begin of Code
*************************************
if (ReadingsVal($_[0],"fan","off") eq "on")
{
if (ReadingsVal($_[0] ,"humidity",100) >= $_[2])
{
if (ReadingsVal($_[1],"state","NEIN") ne "JA") {fhem("set $_[1] JA")}
}
else
{
if (ReadingsVal($_[1],"state","NEIN") ne "EGAL") {fhem("set $_[1] EGAL")}
}
}
else
{
if (ReadingsVal($_[1],"state","JA") ne "NEIN") {fhem("set $_[1] NEIN")}
}
#**************************** End of Code
***************************************
}


- fhem neustarten "shutdown restart"

- In der Config eintragen :
define dew_fan_check at +*00:05:00 {onTimer(1)}

(muss nur einmal angelegt werden, wenn weitere Räume hinzukommen diese in
der
99_myUtils.pm in "onTimer" nachtragen)

- Beispiel für einen Raum (für jeden weiteren ein neuer Eintrag nötig):
# ************* Lüften oder nicht *************
define AR_Lueften dummy
attr AR_Lueften setList JA NEIN EGAL

define 0_AR_dew_fan dewpoint fan AR_Temperatur Aussentemperatur -50 2 #- 50
damit FAN:off nicht auftritt, 2 = min. Taupunktdifferenz innen/aussen für
Lüftungsempfehlung
define 0_AR_dew_fan_off notify AR_Temperatur.*fan:.*off set AR_Lueften NEIN


Eine E-Mail kannst du mittels Notify versenden, ungefähr so:
define meineMailNotify notify  AR_Lueften:JA {meineMailfunktion}

Gruß Dennis


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

ChrisW

                                                     

Vielen Dank. Kannst du mir deine Mail geben ? Hab da noch paar kleinere
spezielle fragen :)
Danke

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Raspberry PI3 mit allem möglichen.

rudolfkoenig

                                                   

> Der Uebersichtlichkeit halber bin ich dazu ueber gegangen, in ein notify oder
> at nur das allernotwendigste rein zu schreiben, um dann eine eigene
> Funktion aufzurufen, die ich mir in der MyUtils angelegt habe. Das finde
> ich persoenlich fuer mich einfach "sicherer", bis ich mehr Kniffe und Tricks
> beherrsche.

Das ist auch der eindeutig bessere Weg fuer etwas laengeren Code, insb. fuer
fhem-Anfaenger:
- kein @@ %% ;; und \ notwendig
- Zeilenangabe etwaiger Fehler von dem Perl Interpreter.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com