FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Alveole am 20 Oktober 2015, 12:21:20

Titel: [gelöst] Warnung bei Grenzwertunterschreitung
Beitrag von: Alveole am 20 Oktober 2015, 12:21:20
Hallo,
ich habe mir mit Hilfe des Forums hier ein notify gebastelt, das mich per Pushover immer benachrichtigt, wenn mein Heizungsdruck unter einen Grenze fällt.
Funktioniert auch soweit super!
Nur: Mein EIB-Aktor meldet den Druck im 30min Takt. Nun stellt das notify aller 30min fest, das der Druck unter die Grenze gefallen ist und senden eine Pushnachricht. Da kommt schon was zusammen.
Nun meine Frage:
   Wie kann man erreichen, das es nur einmal beim überschreiten der Grenze Warnt und dann nicht mehr. Erst wenn der Druck die Grenze wieder überschritten hat und danach wieder darunter fällt erneut.
oder ist gar das notify der falsche Ansatz?

mein Code bis jetzt:
Heiz_druck {\
my $heizdruck = ReadingsVal("Heiz_druck","state","");;\
if ($heizdruck < 1.1)\
  {fhem "set pushmsg msg 'Heizung' 'Wasserdruck zu niedrig. Druck: $heizdruck bar'";;}\
}


Danke!
Titel: Antw:Warnung bei Grenzwertunterschreitung
Beitrag von: marvin78 am 20 Oktober 2015, 12:34:51
Eine Lösung wäre, einen Flag in einem Reading zwischen zu speichern und abzufragen (setreading).
Titel: Antw:Warnung bei Grenzwertunterschreitung
Beitrag von: igami am 20 Oktober 2015, 12:37:23
Oder als Alternative DOIF verwenden, dass führt einen Befehl nur einmal aus, auch wenn die Bedingung mehrmals hinter einander wahr wird.

Grüße
igami
Titel: Antw:Warnung bei Grenzwertunterschreitung
Beitrag von: Hollo am 20 Oktober 2015, 12:39:32
Hört sich für mich Richtung watchdog an.  :)
Titel: Antw:Warnung bei Grenzwertunterschreitung
Beitrag von: marvin78 am 20 Oktober 2015, 12:42:49
Es gibt hier viele Möglichkeiten. Die Qual der Wahl.
Titel: Antw:Warnung bei Grenzwertunterschreitung
Beitrag von: Brice am 20 Oktober 2015, 13:45:33
E-Mail_per_notify_nach_Zeitablauf_erneut_senden (http://www.fhemwiki.de/wiki/E-Mail_per_notify_nach_Zeitablauf_erneut_senden) läuft bei mir zur Unterdrückung der geschwätzigen S300TH und funktioniert auch für Pushnachrichten.

Und dann dein Notify ändern. Meine Definition (Meldung frühestens nach 6 Stunden):
Gefrierschrank_Temp:temperature.* {
if ( (ReadingsVal("Gefrierschrank_Temp","temperature",0) > -15.0) && (time > $main::NewMailtime)) {
fhem ("set PushNachricht_Z message  'Temperatur-Alarm Gefrierschrank' 'ACHTUNG - die Gefrierschranktemperatur ist auf %EVTPART1 Grad gestiegen!");
$main::NewMailtime = time + 21600;
  }
}
Titel: Antw:Warnung bei Grenzwertunterschreitung
Beitrag von: Alveole am 20 Oktober 2015, 21:39:21
Danke für Eure Hinweise.

Habs im Endeffekt so realisiert:

define alarm_heiz_druck DOIF ([Heiz_druck]<1.1) (set pushmsg msg 'Heizung' 'Wasserdruck zu niedrig. Druck: [Heiz_druck] bar')
attr alarm_heiz_druck cmdpause 10800
attr alarm_heiz_druck do always
attr alarm_heiz_druck repeatsame 0
Titel: Antw:Warnung bei Grenzwertunterschreitung
Beitrag von: Damian am 20 Oktober 2015, 21:56:03
Zitat von: Alveole am 20 Oktober 2015, 21:39:21
Danke für Eure Hinweise.

Habs im Endeffekt so realisiert:

define alarm_heiz_druck DOIF ([Heiz_druck]<1.1) (set pushmsg msg 'Heizung' 'Wasserdruck zu niedrig. Druck: [Heiz_druck] bar')
attr alarm_heiz_druck cmdpause 10800
attr alarm_heiz_druck do always
attr alarm_heiz_druck repeatsame 0


attr alarm_heiz_druck repeatsame 0

macht so hier keinen Sinn.

Ich habe verstanden, dass du nur einmal eine Meldung beim Unterschreiten haben willst. Dann würde das schon reichen:

define alarm_heiz_druck DOIF ([Heiz_druck]<1.1) (set pushmsg msg 'Heizung' 'Wasserdruck zu niedrig. Druck: [Heiz_druck] bar')

ohne weitere Attribute.

Gruß

Damian