Lüftersteuerung in der Abstellkammer

Begonnen von Hirvi, 11 Juni 2013, 20:49:43

Vorheriges Thema - Nächstes Thema

Hirvi

Hallo aus Kassel,

Seit September 2012 läuft auch auf meiner FB ein FHEM und sorgt dafür das hier im Haus die Rollläden zur passenden Zeit Auf und Zu gefahren werden. Das und noch einiges mehr habe ich mit viel lesen hier und im Wiki auch gut hinbekommen. Jetzt habe ich ein Problem bei dem ich doch nochmal Konkrete Hilfe benötige.

In der Abstellkammer soll ein Lüfter bei erreichen einer Bestimmten Luftfeuchtigkeit eingeschaltet werden und bei unterschreiten dieser wieder ausgeschaltet werden. Das klappt auch nur habe ich in den Log-Dateien gesehen das der "On" bzw "Off"-Befehl ständig wiederholt wird.

Hier mal der Code aus meiner fhem.cfg

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 74) { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 74) { fhem ("set KAMM_Lueftung off")}}

Meine Idee war jetzt in einer Variable zuspeichern ob der Befehl schon gesendet wurde oder nicht --- ich Kriegs aber nicht hin.

Das hier habe ich mir aus den Foren Beiträgen zusammengebastelt. Eine Fehlermeldung giebt es nicht, aber geschaltet wird jetzt auch nicht mehr.

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 74 && Value("KAMM_Lueftung") eq "off") { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 74 && Value("KAMM_Lueftung") eq "on") { fhem ("set KAMM_Lueftung off")}}

Hat jemand eine Idee oder einen Tipp für mich.

Vielen Dank
     Udo
Raspberry PI Modell B, CUL, FHT, CUL_WS, HMLAN, INSTAR Cam's

Puschel74

Hallo,

ich würd mal so tippen:


define Lueftung_Kammer notify S300TH_Kammer { \
my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
if ($hum_kammer > 74) { fhem ("set KAMM_Lueftung on") if (Value("KAMM_Lueftung") ne "on")}\
if ($hum_kammer < 74) { fhem ("set KAMM_Lueftung off") if (Value("KAMM_Lueftung") ne "off")}}


Ungetest aber einen Versuch ist es Wert.

Grüße

P.S.: Wenn du öfter/mehr Hilfe benötigst/erwartest leg dir doch bitte eine Signatur mit deiner Hardware zu ;-)
Es erübrigen sich dann einige Nachfragen.
Danke

Edith:
Grad gesehen - dein Code müsste auch klappen.
Du hast evtl. nur einen "Klammerfehler"

define Lueftung_Kammer notify S300TH_Kammer { \
my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
if ($hum_kammer > 74) && (Value("KAMM_Lueftung") eq "off")) { fhem ("set KAMM_Lueftung on")}\
if ($hum_kammer < 74) && (Value("KAMM_Lueftung") eq "on")) { fhem ("set KAMM_Lueftung off")}}


Edith2: Sollte es Fehlermeldungen geben wären die evtl. hilfreich ;-) (Das evtl. war ironisch, Fehlermeldung zum Code sind IMMER hilfreich)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

ein möglicher weg der gegen versehentliches dauer an schützt ist mit on-for-timer zu arbeiten wenn dein aktor das direkt unterstützt (fs20,homematic). d.h. z.b. alle viertel oder halbe stunde ein on-for-timer 1800 zu senden wenn die luftfeuchtigkeit über deinem grenzwert liegt. wenn sie darunter liegt musst du nichts mehr machen.

vielleicht für eine lüftungssteuerung nicht unbedingt nötig aber bei z.b. einer bewässerungssteuerung unabdingbar.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Hirvi

Hallo Puschel74,

habe deine erste Idee probiert - Funktioniert auch soweit. Sendet aber auch ständig Befehlswiederholungen.

Die Idee mit dem Klammerfehler habe ich auch ausprobiert.

Geschaltet wird nix - dafür folgender Logeintrag.

2013.06.12 05:51:56 3: Lueftung_Kammer return value: syntax error at (eval 342) line 1, near ")) "
Global symbol "$hum_kammer" requires explicit package name at (eval 342) line 1.
syntax error at (eval 342) line 1, near ")) "

Ich sehe auch das ich mehr Klammern schließe als öffne. Aber welches ")" ist jetzt zuviel.

Bin Verwirrt.

Udo - jetzt auch mit Signatur :-)
Raspberry PI Modell B, CUL, FHT, CUL_WS, HMLAN, INSTAR Cam's

Puschel74

Hallo,

dann post mal deinen Code nochmal.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Hirvi

Hallo,

so sieht das jetzt bei mir aus -

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 74) && Value("KAMM_Lueftung") eq "off")) { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 74) && Value("KAMM_Lueftung") eq "on")) { fhem ("set KAMM_Lueftung off")}}


die Klammern vor dem "eq" weglassen habe ich gerade erfolglos probiert.

Udo
Raspberry PI Modell B, CUL, FHT, CUL_WS, HMLAN, INSTAR Cam's

justme1968

das ')' hinter den beiden 74 ist zu viel bzw. ein '(' nach jedem if zu wenig.

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if( ($hum_kammer > 74) && Value("KAMM_Lueftung") eq "off")) { fhem ("set KAMM_Lueftung on")}\
  if( ($hum_kammer < 74) && Value("KAMM_Lueftung") eq "on")) { fhem ("set KAMM_Lueftung off")}}


gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

Hallo,

Tipp: Notepad++ zeigt dir an welche Klammern zusammen gehören ;-)

Versuch mal das:

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if (($hum_kammer > 74) && (Value("KAMM_Lueftung") eq "off")) { fhem ("set KAMM_Lueftung on")}\
  if (($hum_kammer < 74) && (Value("KAMM_Lueftung") eq "on")) { fhem ("set KAMM_Lueftung off")}}


Grüße

P.S.: Ich weiß es ist sicher die eine oder andere Klammer zu viel aber so wie in Mathe --- ich setz lieber eine Klammer zuviel als zuwenig ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

du muss ich auch mein posting fertig editieren lassen. sonst bleiben die fehler doch drin ... :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

Zitat von: justme1968 schrieb am Mi, 12 Juni 2013 16:59du muss ich auch mein posting fertig editieren lassen. sonst bleiben die fehler doch drin ... :)

Du hattest 2 Sekunden Zeit ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Ralph

Was passiert eigentlich, wenn der Wert genau = 74 ist ?
:-)

Du müsstest die sogenannte Hysterese irgendwie ausblenden können
oder die Schwellen weiter auseinanderlegen,
z. B. < 60 , > 90 oder ähnlich.
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

justme1968

auch das kann man mit dem on-for-timer elegant erschlagen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

Hallo,

ZitatWas passiert eigentlich, wenn der Wert genau = 74 ist ?

Das kommt drauf an von wo wie uns an die 74 annähern ;-)

Von "oben runter" wird der Lüfter noch laufen und umgekehrt ist er noch aus.

Aber das

Zitatoder die Schwellen weiter auseinanderlegen,

ist ein guter Einwand wobei ich mir aber fast sicher bin das die Luftfeuchte nie um 74 pendeln wird und der Lüfter dann ständig ein und aus geschalten werden würde.

Es sei den der Raum ist relativ klein und der Lüfter bringt die Feuchte schnell genug weg.
Diese müsste dann aber genau so schnell wieder irgendwo her kommen.

Ich würde aber auch vorschlagen eine Hystere ein zu bauen (<70 und >75 oder so).
Kommt halt drauf an welche Feuchte in dem Raum vorherrscht und wie weit der Lüfter diese drücken kann.
Da muss aber Udo damit "spielen".

Grüße

Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Hirvi

... egal was ich mit den Klammern auch Probiere - FHEM bleibt Stumm wie ein Fisch.
Heisst keinerlei Befehlswiederholungen und auch keine Fehlermeldungen oder LOG_Einträge.

Mit meinen Perl Kentnissen stehe ich noch ziemlich am Anfang, Auch mein "PERL für DUMMIES" hilft mir nicht weiter. Das letzte mal ernsthaft Programmiert habe ich als der Commodore C64 noch der letzte Schrei war. Ihr seht ich bin auch schon etwas älter ;-)

Brauche ich evtl. einen ganz anderen Ansatz?

So etwas wie eine Schleif die nur dann durchlaufen wird wenn der grezwert für die Luftfeuchtigkeit über oder unterschritten wird. Ich dachte ja meine konstruktion macht genau das - aber evtl. habe ich da ja irgendwo einen Denkfehler.

Udo
Raspberry PI Modell B, CUL, FHT, CUL_WS, HMLAN, INSTAR Cam's

Puschel74

Hallo,

post nochmal deinen Code bitte.

Grüße

Edith:
Wobei - was soll FHEM den machen?
Wenn der Lüfter aus ist und nicht eingeschaltet werden soll bekommst du auch keinen Logeintrag.
Wenn es keine Fehlermeldungen gibt scheint der Code ja zu stimmen und genau das zu machen was du wolltest.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Hirvi

Hallo,

der letzte geteste Code.

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 74 && (Value("KAMM_Lueftung") eq "off")) { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 74 && (Value("KAMM_Lueftung") eq "on")) { fhem ("set KAMM_Lueftung off")}}


Keine Fehlermeldungen aber auch bei überschreiten oder unterschreiten der Schwellwerte wird keine Aktion ausgelösst.

Folgendes soll passieren:

Luftfeuchtigkeit über 74 -> Lüfter soll anlaufen
Luftfeuchtigkeit unter 74 -> Lüfter soll wieder aus gehen
Bei genau 74 würde jetzt nicht passieren. (Die Schwellwerte würde ich wenn es läuft auch  noch weiter auseinander setzen.

Hiemir Funktionier das auch genau so wie es soll.

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 74) { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 74) { fhem ("set KAMM_Lueftung off")}}


FHEM ist hiermit halt nur Geschwätzig wie ein Waschweib.

Beispiel aus dem LOG.

2013-06-12_15:50:47 KAMM_Lueftung An
2013-06-12_15:53:44 KAMM_Lueftung An
2013-06-12_15:53:44 KAMM_Lueftung An
2013-06-12_15:53:44 KAMM_Lueftung An
2013-06-12_15:59:38 KAMM_Lueftung An
2013-06-12_15:59:38 KAMM_Lueftung An
2013-06-12_15:59:38 KAMM_Lueftung An
2013-06-12_16:02:35 KAMM_Lueftung An
2013-06-12_16:02:35 KAMM_Lueftung An
2013-06-12_16:02:35 KAMM_Lueftung An
2013-06-12_16:05:32 KAMM_Lueftung An
2013-06-12_16:05:32 KAMM_Lueftung An
2013-06-12_16:05:32 KAMM_Lueftung An
2013-06-12_16:08:29 KAMM_Lueftung An
2013-06-12_16:08:29 KAMM_Lueftung An
2013-06-12_16:08:29 KAMM_Lueftung An
2013-06-12_16:11:26 KAMM_Lueftung An
2013-06-12_16:11:26 KAMM_Lueftung An
2013-06-12_16:11:26 KAMM_Lueftung An
2013-06-12_16:14:23 KAMM_Lueftung An
2013-06-12_16:14:23 KAMM_Lueftung An
2013-06-12_16:14:23 KAMM_Lueftung An


Das geht ja doch auch auf die Funklast. Zumal ich ähnliches auch noch für den Lüfter im Keller und im Badezimmer Plane.

Udo
Raspberry PI Modell B, CUL, FHT, CUL_WS, HMLAN, INSTAR Cam's

justme1968

wenn im log 'A'n steht und nicht 'on' hast du es vermutlich umgemappt. dann musst du in deinem if natürlich auch mit 'An' und nicht mit 'on' vergleichen.

ansonsten gibt mal {Value("KAMM_Lueftung")} per telnet oder in fhem web ein und schau was wirklich zurueck kommt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Puschel74

Hallo,

fürs Badezimmer habe ich es, sicher etwas umständlich, so gelöst:

define Vent_Bad_Auto notify OG_Badezimmer:humidity.* {
  my $hum=(ReadingsVal("OG_Badezimmer","humidity",99));
  my $hum_alt=(Value("OG_Bad_hum"));
  my $hum_last=(Value("OG_Bad_hum_last"));
  if (($hum-$hum_last) > 0) {
    if (($hum-$hum_alt) > 4) {
      fhem("set OG_Badezimmer_Ventilator on-for-timer 1920");
      fhem("define OG_Zimmer_Vent_on at +00:00:15 set OG_Zimmer_Ventilator on-for-timer 1920");
      fhem("set OG_Bad_hum ".$hum);
    }
  }
  if (($hum-$hum_last) < 0) {
    fhem("set OG_Bad_hum ".$hum);
  }
  fhem("set OG_Bad_hum_last ".$hum);
}


Ich habe im selben Abluftrohr dahinter noch einen Ventilator den ich nach 15 Sekunden dazu schalte in der Hoffnung den Durchsatz damit etwas erhöhen zu können - da kann ich mich aber auch täuschen.
Ich benutze dazu 2 Dummys und einen S300TH.
Warum 2 Dummys?
Der Ventilator soll nur einschalten wenn die Feuchte gegenüber der zuletzt gespeicherten Feuchte um 4% höher liegt.
Das Problem war aber das ab und zu mal die Feuchte auch steigt ohne das jemand duscht - Hände waschen oder Putzaktionen meiner Frau.
Mit
if (($hum-$hum_last) > 0) {
prüfe ich ob der Unterschied positiv ist und danach mit
if (($hum-$hum_alt) > 4) {
ob der Unterschied grösser 4% ist - daher die 2 Dummys.
Mit
if (($hum-$hum_last) < 0) {
    fhem("set OG_Bad_hum ".$hum);

wird bei negativer Luffeuchte (also jetzt weniger als vorher) der "Alt-Wert" auf den aktuellen gesetzt und mit
fhem("set OG_Bad_hum_last ".$hum);
wird der letzte Wert auf den aktuellen gesetzt.

Soviel erstmal zu meiner Abluftsteuerung im Bad.

Nun zu dir :-)

Das
define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 74 && (Value("KAMM_Lueftung") eq "off")) { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 74 && (Value("KAMM_Lueftung") eq "on")) { fhem ("set KAMM_Lueftung off")}}

macht genau das was es soll - oder besser gesagt macht genau das wie es programmiert wurde.
Es prüft auf on und off - du sendest aber An und Aus ;-)

Poste doch bitte mal den STATE des Lüfters.
Achtung! Nicht state sondern STATE da Value STATE abfragt.

Grüße

Edith: Nun war andre schneller ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

justme1968

hat aber nicht ein so schön liebevoll erklärtes beispiel :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Hirvi

Ja ich habe umgemappt, ja ich habe nicht daran gedacht,  und wenn ich jetzt mit An und Aus vergleiche läuft alles so wie es soll.

Hier nocheinmal der Funktionierende Code.

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 75 && (Value("KAMM_Lueftung") eq "Aus")) { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 70 && (Value("KAMM_Lueftung") eq "An")) { fhem ("set KAMM_Lueftung off")}}


Vielen Dank an Puschel74 und justme1968 für so viel tolle und schnelle Hilfe (und fürs Tomaten von den Augen nehmen)

Grüße Udo.
Raspberry PI Modell B, CUL, FHT, CUL_WS, HMLAN, INSTAR Cam's

Puschel74

Hallo,

schön wenn es jetzt klappt.

Zitat(und fürs Tomaten von den Augen nehmen)

Was denkst du wieviel Tomaten ich vor Augen hatte als ich mit FHEM angefangen habe (und immer noch habe ;-) )^^

Danke an Zrrronggg! und Rudi nochmal (und alle anderen) für ihre Geduld mit mir ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Damian

sowas geht auch einfacher:

define Lueftung_Kammer THRESHOLD S300TH_Kammer:humidity:5:75 KAMM_Lueftung|set @ on|set @ off|1

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Puschel74

Hallo,

nun nur noch @ gegen $EVENT tauschen und es passt wieder ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Damian

Zitat von: Puschel74 schrieb am Mi, 12 Juni 2013 22:42Hallo,

nun nur noch @ gegen $EVENT tauschen und es passt wieder ;-)

Grüße

$EVENT gilt für notifys, für THRESHOLD gilt immer noch @ - $EVENT würde nicht funktionieren

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Carsten

Einwurf vom Beckenrand: Ich weiß nicht, was für einen Schalter du verwendest, aber ich würde empfehlen negativ zu prüfen.

Soll heißen "schalte an, wenn nicht an", statt "schalte an, wenn aus".

Wenn dein Schalter aus irgendeinem Grund mal weder an noch aus ist, hast du sonst happy hold, so wie ich eine kalte Bude hatte, nachdem meine Therme irgendwann mal auf "Missing Ack" stand. :)

Tuppertasse

Zitat von: Hirvi schrieb am Mi, 12 Juni 2013 20:14Hallo,

der letzte geteste Code.

define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 74 && (Value("KAMM_Lueftung") eq "off")) { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 74 && (Value("KAMM_Lueftung") eq "on")) { fhem ("set KAMM_Lueftung off")}}


Hallo auch,
ich lese schon lange Zeit mit und habe mich nun auch angemeldet um nun auch eine Frage zu stellen - Konstellation lautet
Ein herkömmlicher Lüfter für die Garage gekoppelt mit einem CUL_HM und einem Taster; funktioniert auch super soweit. Hinzu kommen noch zwei Feuchte-Temp.-Messer des Typs HM-WDS10-TH-O.
Frage, kann ich nun obigen Code verwenden bzw. genauso verwenden ?
Lueftung_Kammer, S300TH_Kammer, hum_kammer, KAMM_Lueftung müsste oder sollte ich snnvollerweise auf Garagenaktion anpassen oder?

Tuppertasse

So hallo nochmal :o)

ich komme nochmal auf meine Frage zurück und poste mal meinen Code; ich hab eine paar dummy Variablen eingeführt um zu sehen was passiert; allerdings passiert gar nichts, d.h. die variablen werden gar nicht aktualisiert und somit gehe ich davon aus, daß irgendwo ein fehler liegt; vielleicht hat ja jemand eine idee ???

define Log_Hum_Garage dummy
define Log_Hum_Aussen dummy
define Log_Delta_Hum dummy
define Log_Autoswitch_On dummy
define Log_Autoswitch_Off dummy
define Log_Switch_ManualControl dummy
define Log_Switch_AutoControl dummy

define Lueftung_Garage notify Temp_Feuchte_Garage:humidity.* {\
my $hum_Garage=(ReadingsVal("Temp_Feuchte_Garage","humidity",99));;\
my $hum_Aussen = (ReadingsVal("Temp_Feuchte_Aussen","humidity",99));;\
my $debug3 = (ReadingsVal("Switch_ManualControl","state",""));;\
my $debug4 = (ReadingsVal("Switch_AutoControl","state",""));;\
my $deltaH = $hum_Aussen - $hum_Garage;;\
  {fhem ("set Log_Hum_Garage $hum_Garage")}\  
  {fhem ("set Log_Hum_Aussen $hum_Aussen")}\  
  {fhem ("set Log_Delta_Hum $deltaH")}\
  if(ReadingsVal("Switch_ManualControl","state","") eq "off" && ReadingsVal("Switch_AutoControl","state","") eq "on"){\
    if (ReadingsVal("Ventilator_Switch","state","") eq "off")){\
      if($deltaH < 5 && $hum_Garage > 60){\
        {fhem ("set Log_Autoswitch_On eingeschaltet")}\
        {fhem ("set Ventilator_Switch on")}\
      }\
    }\
    if (ReadingsVal("Ventilator_Switch","state","") eq "on")){\
      if($deltaH > 5 || $hum_Garage < 100){\
        {fhem ("set Log_Autoswitch_Off ausgeschaltet")}\
        {fhem ("set Ventilator_Switch off")}\
      }\
    }\
  }\
}

ChrisW

kurze frage hab das ganze für Temperatur umgebaut
Aber wozu das 40 da oben ?
define Lueftung_Kammer notify S300TH_Kammer { \
  my $hum_kammer = (ReadingsVal("S300TH_Kammer","humidity",40));;\
  if ($hum_kammer > 75 && (Value("KAMM_Lueftung") eq "Aus")) { fhem ("set KAMM_Lueftung on")}\
  if ($hum_kammer < 70 && (Value("KAMM_Lueftung") eq "An")) { fhem ("set KAMM_Lueftung off")}}


Unten wir doch 75 AN unter 70 Aus aber wozu das 40 hinter humidity ??
Raspberry PI3 mit allem möglichen.

nils_

und wieder so ein alter Thread der aus der Versenkung geholt wird......

ein blick in die commandref: ( https://fhem.de/commandref_DE.html#perl )
ZitatReadingsVal(<devicename>,<reading>,<defaultvalue>)
Gibt den Inhalt der "readings" zurück (den Inhalt der in dem "Readings"-Abschnitt von "list device" angezeigt wird)
viele Wege in FHEM es gibt!

ChrisW

Danke aber das war das "kürzeste" script was ich gefunden habe. Vergleichbares ist mind. 10 Zeilen lang. Was it den daran so schlimm auch wenn es älter ist? Soll ich was neues extra für meien frage aufmachen?
Raspberry PI3 mit allem möglichen.