FHEM IF-befehl

Begonnen von LotharRappsilber, 21 März 2014, 16:05:30

Vorheriges Thema - Nächstes Thema

LotharRappsilber

Hallo,

wenn ich

define Poolwasser_Temp IF ([Poolwasser:temperatur:d] >= 26 ) (set Heizungspumpe off)


eingebe, erhalte ich unbekanntes Modul IF, obwohl es in \opt\fhem\FHEM\ da ist. Warum?

Gruß
Lothar
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

papa

IF ist kein eigenes Device, sondern kann in einem Notify verwendet werden. Das ganze sollte so funktionieren:


define Poolwasser_Temp notify Poolwasser:temperature IF ([Poolwasser:temperatur:d] >= 26 ) (set Heizungspumpe off)

BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

LotharRappsilber

Hat funktioniert. Danke!!!!!!!!!!!!
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

Puschel74

Hallo Lothar,

räumst du dann hinter dir mal ein bischen auf und bearbeitest die jeweiligen ersten Beiträge und setzt dem Titel ein (Gelöst) vorne dran und schreibst bitte noch in den ersten (oder letzten) Beitrag die Lösung.
Danke  ;)

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



define Poolwasser_Temp notify Poolwasser:temperature IF ([Poolwasser:temperatur:d] >= 26 ) (set Heizungspumpe off)


Auch wenn es funktioniert und die Syntax korrekt ist, ist es keine gute Lösung zum Schalten der Heizungspumpe.

Es wird hierbei jedes Mal, wenn dein Temperatursensor eine Temperatur über 26 Grad sendet, der Befehl "set Heizungspumpe off" gesendet.

So etwas machst du besser mit:

define TH_Heizungspumpe THRESHOLD Poolwasser:temperature:0:26 Heizungspumpe

So wird nur einmal "set Heizungspumpe off" geschaltet, wenn die Temperatur die Grenze von 26 Grad überschreitet und die Pumpe geht wieder an, wenn die Temperatur 26 Grad unterschreitet. Das Einschalten der Pumpe kann man auch unterbinden, wenn gewünscht.

Genaueres zum THRESHOLD-Modul siehe hier: http://fhem.de/commandref_DE.html#THRESHOLD

Gruß

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

LotharRappsilber

Habe ich verstanden. Brauch trotzdem noch eure Hilfe. Mein Code sieht jetzt so aus


define TH_Heizungspumpe THRESHOLD Poolwasser:state:0:26 Heizungspumpe


aber woher weis er, dass die Temperatur größer 26Grad ist, wo in den Readings T: und H: übertragen wird? siehe Screenshot
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

Damian

Zitat von: LotharRappsilber am 22 März 2014, 10:56:04
Habe ich verstanden. Brauch trotzdem noch eure Hilfe. Mein Code sieht jetzt so aus


define TH_Heizungspumpe THRESHOLD Poolwasser:state:0:26 Heizungspumpe


aber woher weis er, dass die Temperatur größer 26Grad ist, wo in den Readings T: und H: übertragen wird? siehe Screenshot

Du musst meinen Vorschlag schon richtig übernehmen:

define TH_Heizungspumpe THRESHOLD Poolwasser:temperature:0:26 Heizungspumpe

Ich habe "temperature" und nicht "state" angeben, denn dort steht ja auch die Temperatur bei dir.

Gruß

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

LotharRappsilber

Hat funktioniert, Danke Demain
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL