Auf einem größeren Temperaturanstieg reagieren

Begonnen von RalfKruppa, 06 Februar 2014, 16:01:14

Vorheriges Thema - Nächstes Thema

RalfKruppa

Hallo,

ich bin recht neu im Thema FHEM.

Ich möchte meine Zirkulationspumpe so umbauen das sie nur auf Anforderung ihre Arbeit aufnimmt.
Ich habe dazu zwei Temperatur sensoren die alle 10 Sekunden ihre Werte an FHEM schicken

define vorlauf_temp dummy

Über ein Shell-Script werden von einem Raspberry Pi alle 10 Sekunden die aktuellen Temperaturen gesendet

echo "set vorlauf_tem $temp" | netcat localhost 7072

Die Daten werden in ein Logfile geschrieben

define FileLog_vorlauf_temp FileLog ./log/vorlauf_temp-%Y.log vorlauf_temp

so da stehen dann auch alle Werte schön drin.

Wenn nun die Temperatur um mehr als 2° gestiegen ist zum vorherigen Meßwert dann soll der Befehl set gpio_17 on gesendet werden.

Kann mir jemand helfen ?

Gruß Ralf

roedert

#1
Du machst ein Notify auf deinen vorlauf_temp ... dies wird aufgerufen jedesmal wenn dieser einen Wert bekommt. Ausserdem legst du einen 2. Dummy an vorlauf_temp_alt, im Notify kannst du den aktuellen Wert mit dem altenWert vergleichen und setzt danach den alten Wert auf den aktuellen Wert:

define vorlauf_temp_alt dummy
define vorlauf_temp_nfy notify vorlauf_temp:.* {
  if (Value("vorlauf_temp")-Value("vorlauf_temp_alt") > 2) { ...mach irgendwas....};
  fhem "set vorlauf_temp_alt " . Value("vorlauf_temp");
}


Gleiches Prinzip habe ich bei einer Lüftersteuerung über die Luftfeuchtigkeit .... ich habe sogar 3 alte Werte um weiter in die Vergangenheit schauen zu können:

  fhem "set alterWert3 " . Value("alterWert2");
  fhem "set alterWert2 " . Value("alterWert1");
  fhem "set alterWert1 " . Value("aktuellerWert");

justme1968

du solltest dir mal THRESHOLD anschauen. es gibt sogar beispiele für genau deinen anwendung. das schalten einer zirkulationspumpe bei temperaturdifferenz.

kein grund werte in Dummys zu kopieren und selber notifys zu schreiben.

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

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

roedert

Hast du da gerade mal einen Link zu? Konnte über die Suche nichts finden.

Ich werte ja nicht die Differenz zweier verschiedener Sensoren aus (woe ich es in einem Beispiel gefunden habe), sondern nur eines Sensors zu seinem alten Wert ... also muss ich doch diesen alten Wert irgendwo zwischenspeichern?

Groby

einfach über den link commandref und dann nach THRESHOLD suchen...

justme1968

in der commandref zu THRESHOLD steht direkt ein beispiel zur zirkulationspumpe.

die änderung des sensorwertest kannst du dir z.b. mit einem userReading direkt im sensor merken und THRESHOLD darauf los lassen.

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

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

roedert

ok, soweit verstanden .... mit einem userReading kann ich ja sogar die Differenz zum letzten Wert abspeichern.
Aber lässt sich so auch irgendwie die Differenz mit drittletzten Wert ermitteln ... so wie ich es mit meinen 3 Dummies gemacht habe?

Da habe ich jetzt noch keinen Lösungsansatz für.

RalfKruppa

Hallo und Danke für die vielen anregungen.
Ich habe es jetzt folgendermaßen gelöst:

define pumpe_an notify vorlauf_temp { if (Value('vorlauf_temp') gt OldValue('vorlauf_temp')+2) { fhem "set gpio_17 on" } }