Autor Thema: gelöst - Shelly Flood, E-Mail Benachrichtigung  (Gelesen 286 mal)

Offline fh555

  • Full Member
  • ***
  • Beiträge: 110
gelöst - Shelly Flood, E-Mail Benachrichtigung
« am: 23 Februar 2021, 00:07:26 »
Hi,
ich verzweifel bald, sitze jetzt schon Stunden vor den Problem und langsam sehe ich den Wald vor lauter Bäumen nicht mehr.

Theoretisch ganz einfach. Ich möchte eine E-Mail Benachrichtigung auslösen, wenn der Shelly Flood "Wasser" detektiert.
Ich habe es mit notify und DOIF versucht aber mit beiden bekomme ich es nicht hin.

Hier mein Versuch mit "notify"
MQTT2_shellyflood_C8A89B {if(ReadingsVal("MQTT2_shellyflood_C8A89B","flood","") eq "true") ({DebianMail('FHEM-Wasserschaden-Alarm','ACHTUNG - Keller steht unter Wasser!')})
Fehler: Alarm_Flood DOIF: Perlblck: no right bracket:

oder mit DOIF
([MQTT2_shellyflood_C8A89B:flood] == "true") ({DebianMail('FHEM-Wasserschaden-Alarm','ACHTUNG - Keller steht unter Wasser!');;})
Fehler: condition c01: Bareword "true" not allowed while "strict subs" in use, line 1.

Sowie zahlreiche weitere Versuche. Ich habe die Commandoref und Wiki und durchforstet aber leider erfolglos :-(

Die Anbindung habe ich mit MQTT2 gemacht, wie ihr sehen könnt.

Habe es jetzt endlich hinbekommen :-)
« Letzte Änderung: 24 Februar 2021, 22:15:18 von fh555 »

Offline elektrikpe2

  • Full Member
  • ***
  • Beiträge: 113
Antw:gelöst - Shelly Flood, E-Mail Benachrichtigung
« Antwort #1 am: 24 Februar 2021, 09:48:16 »
Hallo, ich stehe vor dem gleichen Problem. Kannst Du uns Deine Lösung zeigen? Danke. LG Peter

Offline fh555

  • Full Member
  • ***
  • Beiträge: 110
Antw:gelöst - Shelly Flood, E-Mail Benachrichtigung
« Antwort #2 am: 24 Februar 2021, 20:44:42 »
Hi elektrikpe2,
ich habe ein neues Device Notify "Alarm_Flood_notify" angelegt und in der DEF folgendes deklariert:

MQTT2_shellyflood_C8A89B:flood:.* {if( ReadingsVal( "MQTT2_shellyflood_C8A89B","flood","" ) == "true") {DebianMail('FHEM-Wasserschaden-Alarm','ACHTUNG - Keller steht unter Wasser!');;}}
Die Benachrichtigung funktioniert, aber leider hatte ich die Nacht ein Problem.

Ich bekam eine E-Mail, dass mein Keller unter Wasser steht, was aber nicht sein kann, da der Shelly Flood bei mir noch auf den Schreibtisch steht.
Es war halt zu spät gewesen als ich die Lösung hatte und wollte nicht mehr in den Keller gehen.

Ich muß jetzt ersteinmal die Logs des Shelly überprüfen, ob es eine Fehlfunktion von Shelly ist oder ein Problem in meiner Auswertung.

Wenn ich eine Sirene als Alarmgeber angeschlossen hätte, wären wir alle Nachts kurz nach 3:00 Uhr in den Betten gestanden.

P.S.: Habe gerade mal das LOG angeschaut, Der Shelly hat seinen Stus gesendet, da die Temperatur um 1° gefallen war, kann er ja auch, ist ja so eingestellt, aber er übermittelt den Status Flood: false

2021-02-24_03:29:14 MQTT2_shellyflood_C8A89B flood: false

Also stimmt noch was nicht mit der Auswertung meines notify's

------
So, nun endlich doch gelöst :-)
------

MQTT2_shellyflood_C8A89B:flood:.* {if(ReadingsVal("MQTT2_shellyflood_C8A89B","flood","") eq "true") {DebianMail('FHEM-Wasserschaden-Alarm','ACHTUNG - Keller steht unter Wasser!');;}}
Bei einer Statusmeldung zwecks Temperaturänderung geht keine E-Mail raus und bei Wasserkontakt wird eine versendet :-)
« Letzte Änderung: 24 Februar 2021, 22:17:23 von fh555 »

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13721
  • "Developer"?!? Meistens doch eher "User"
Antw:gelöst - Shelly Flood, E-Mail Benachrichtigung
« Antwort #3 am: 25 Februar 2021, 07:56:06 »
1. Wenn du Text vergleichen willst, ist "==" ungeeignet (=> "eq" &Co)
2. Wenn du nur reagieren willst, wenn "true" paßt, solltest du den TRIGGER (=> vorne, vermutlich: MQTT2_shellyflood_C8A89B:flood:.true) anpassen, dann kannst du dir das if hinten sparen...

(Grundsätzlich: In Events denken, nicht in Zuständen).
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, Twilight,  AttrTemplate => {mqtt2, mysensors, zwave}
Zustimmung Zustimmung x 1 Liste anzeigen

Offline fh555

  • Full Member
  • ***
  • Beiträge: 110
Antw:gelöst - Shelly Flood, E-Mail Benachrichtigung
« Antwort #4 am: 26 Februar 2021, 00:02:22 »
Hi Beta-User,
danke für deinen Beitrag  :)

Ich habe den Code jetzt, wie von Dir vorgeschlagen, geändert und einen Testlauf (Wasser und Temperaturänderung) gemacht.
MQTT2_shellyflood_C8A89B:flood:.true {DebianMail('FHEM-Wasserschaden-Alarm','ACHTUNG - Keller steht unter Wasser!');;}
Das Ergebnis ist das selbe, wie mit meinen Code. Nur dass deiner minimalistischer ist, was die Sache natürlich ungemein vereinfacht.

Vielen Dank dafür.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Wernieman

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7163
Antw:gelöst - Shelly Flood, E-Mail Benachrichtigung
« Antwort #5 am: 26 Februar 2021, 10:13:21 »
Und vor allem filter FHEM schon vor ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html