[gelöst] Temperatur- Warnung per Telegram

Begonnen von SHOFHEM, 20 Mai 2023, 22:15:11

Vorheriges Thema - Nächstes Thema

SHOFHEM

Guten Abend zusammen,

ich habe das Forum nun seit Stunden durchsucht und komme einfach nicht weiter.

Ich habe meinen Solar Regler von RESOL eingebunden und er liefert folgende Werte.

List
CODE       7311
   DEF        7311
   FUUID      64650e6a-f33f-431b-1d13-fbac4cbf11e39c0f
   LASTInputDev vbus
   MSGCNT     173470
   NAME       VBUSDEV_7311
   NR         429
   STATE      Defined
   TYPE       VBUSDEV
   eventCount 8835
   vbus_MSGCNT 173470
   vbus_RAWMSG aa100011731000011149cd008c02b822c301650283017201b822b822b822b822b822000000000000000000000000840f00003b000000000000000064000000000000000029000000000001020a21
   vbus_TIME  2023-05-20 21:55:39
   READINGS:
     2023-05-20 21:55:39   01_Solarpumpe   0 %
     2023-05-20 21:55:39   02_Warmwassererwaermung 0 %
     2023-05-20 21:55:39   03_Speichererwaermung 0 %
     2023-05-20 21:55:39   04_Heizungsunterstuetzung 100 %
     2023-05-20 21:55:39   Heizung_Ruecklauf 39 °C
     2023-05-20 21:55:39   Heizung_Vorlauf 37 °C
     2023-05-20 21:55:39   T_Kollektor     20.5 °C
     2023-05-20 21:55:39   T_Sp_01_Warmwasser 65.5 °C
     2023-05-20 21:55:39   T_Sp_02_mitte   61.5 °C
     2023-05-20 21:55:39   T_Sp_03_unten   45.5 °C
Attributes:
   event-on-change-reading .*
   model      DeltaSol_M
   room       CUL_HM
   verbose    3

Das bekomme ich mit Hilfe des Event_Monitor hin

Internals:
   DEF        VBUSDEV_7311:T_Kollektor:.*.°C set telegramS message bla bla
   FUUID      6469286a-f33f-431b-3fc7-63045ec4bbc77041
   NAME       VBUSDEV_7311_notify_1
   NOTIFYDEV  VBUSDEV_7311
   NR         455
   NTFY_ORDER 50-VBUSDEV_7311_notify_1
   REGEXP     VBUSDEV_7311:T_Kollektor:.*.°C
   STATE      2023-05-20 22:08:42
   TRIGGERTIME 1684613322.89454
   TYPE       notify
   READINGS:
     2023-05-20 22:08:41   state           active
     2023-05-20 22:08:42   triggeredByDev  VBUSDEV_7311
     2023-05-20 22:08:42   triggeredByEvent T_Kollektor: 31 °C
Attributes:

Ich würde gerne eine Nachricht per TELEGRAM erhalten, wenn T_Kollektor über 85 °C steigt. Ich habe gefühlt schon 100 Versionen eines Notifys erstellt, leider ohne Erfolg. Ich schaffe es nicht, dass eine Nachricht versendet wird (für andere Benachrichtigunegn verwende ich "set telegramS message" und das klappt wunderbar. Ich scheitere auch an der Prüfung der Bedingung, dass der Wert >= 85 °C sein soll. Das Notify wird bei jeder Änderung der Temperatur getriggert.

CFGFN     
   DEF        VBUSDEV_7311:T_Kollektor:.*  { if ($EVTPART0 >= 85.5) {fhem ("set telegramS message temp")}}
   FUUID      6468e0a4-f33f-431b-44ef-9b014c42181c5e4f
   NAME       Kollektor_zu_heiss
   NOTIFYDEV  VBUSDEV_7311
   NR         71983
   NTFY_ORDER 50-VBUSDEV_7311_notify_1
   REGEXP     VBUSDEV_7311:T_Kollektor:.*
   STATE      2023-05-20 22:01:57
   TRIGGERTIME 1684612917.955
   TYPE       notify
   eventCount 36
   READINGS:
     2023-05-20 21:32:18   state           active
     2023-05-20 22:01:57   triggeredByDev  VBUSDEV_7311
     2023-05-20 22:01:57   triggeredByEvent T_Kollektor: 36 °C

Wer kann mir helfen und mich unterstützen.

Ich danke schon jetzt und wünsche einen schönen Abend




RalfRog

#1
Hallo
Diese Definition "VBUSDEV_7311:T_Kollektor:.*" triggert auf jede Änderung.
Ich denke die Zahl zum Vergleich ist $EVTPART1.

Im notify-Wiki ist ein Beispiel, dass du als Trigger adaptieren könntest:
dimmer:pct:.(100|7[6-9]|[89][0-9])
→ reagiert, wenn pct einen Wert über 75 annimmt.

Gruß Ralf
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

SHOFHEM

Guten Morgen Ralf,

vielen Dank für deine Antwort, ich hab mir den WIKI Eintrag angesehen, aber verstehe ihn nicht. Mir ist völlig unklar was all die Ziffern bedeuten! Gibt es da noch eine Stell wo das genauer erklärt wird.

Gruß Stefan

MadMax-FHEM

#3
Das ist ReEx ;)
EDIT: ganz hilfreich https://regex101.com/

Und heißt so viel wie:

entweder 100 oder 76-79 oder 80 - 99

Also eben größer als 75 (und kleiner 101).

Deine if-Abfrage sollte auch gehen.
Allerdings ist $EVTPART0 nicht wo der Wert steht...
Denke $EVTPART1 bzw. kannst du ja mal zunächt den Event ausgeben lassen: Log3(undef, 1, "hier der Inhalt $EVENT")

dann siehst du ja an welcher Stelle ($EVTPARTx) der "Vergleichswert" steht.

EDIT: ich würde auch das ".°C" bei dem notify RegEx mal weglassen (auch wenn es verm. vom Eventmonitor stammt)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

SHOFHEM

Hallo Joachim,

vielen Dank für deine Antwort. Ich habe jetzt auf $EVTPART1 umgestellt und siehe da. Es läuft.
In der Telegram Nachricht würde ich jetzt gerne noch den aktuellen Wert von T_Kollektor mit senden. VBUSDEV:7311:T_Kollektor und $EVTPART werden als Test interpretiert. Wie ist die Syntax, dass der Wert gesendet wird.

Internals:
   DEF        VBUSDEV_7311:T_Kollektor:.*  { if ($EVTPART1 >= 50.5) {fhem ("set telegramS message [VBUSDEV:7311:T_Kollektor] ")}}
   FUUID      6468e0a4-f33f-431b-44ef-9b014c42181c5e4f
   NAME       Kollektor_zu_heiss
   NOTIFYDEV  VBUSDEV_7311
   NR         454
   NTFY_ORDER 50-Kollektor_zu_heiss
   REGEXP     VBUSDEV_7311:T_Kollektor:.*
   STATE      2023-05-21 10:27:04
   TRIGGERTIME 1684657624.0785
   TYPE       notify
   eventCount 9
   READINGS:
     2023-05-21 10:05:35   state           active
     2023-05-21 10:27:04   triggeredByDev  VBUSDEV_7311
     2023-05-21 10:27:04   triggeredByEvent T_Kollektor: 51.5 °C
Attributes:
   room       CUL_HM

RalfRog

Wie Joachim geschrieben hat müsste dein zweites Notify mit $EVTPART1 gehen.

Notfalls könntest du auch das eigentliche READING per IF vergleichen.

Wenn das läuft kannst du wenn du willst den Trigger (mit der Regular Expression) einschränken.
Evtl. statt .* ein .(8[6-9]|[9][0-9]) .
Das ist meine Idee von über 85 bis 99. Bin aber kein RegEx Profi sondern nähere mich oft per Trial&Error. Es gibt eine Reihe von Webseiten um die RegEx'en auszuprobieren.
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

SHOFHEM

Hallo Ralf,

danke für deine Hilfe. Das Notify schaut aktuell so aus. Ich möchte mit jetzt den WERT von T_Kollektor senden lassen. Das Ergebnis siehst du im anhängend Bild.
Da passt entweder der Ausdruck, oder die Syntax noch nicht

Internals:
   DEF        VBUSDEV_7311:T_Kollektor:.*  { if ($EVTPART1 >= 50.5) {fhem ("set telegramS message ($EVTPART1) temp")}}
   FUUID      6468e0a4-f33f-431b-44ef-9b014c42181c5e4f
   NAME       Kollektor_zu_heiss
   NOTIFYDEV  VBUSDEV_7311
   NR         454
   NTFY_ORDER 50-Kollektor_zu_heiss
   REGEXP     VBUSDEV_7311:T_Kollektor:.*
   STATE      2023-05-21 11:00:32
   TRIGGERTIME 1684659632.04361
   TYPE       notify
   eventCount 12
   READINGS:
     2023-05-21 10:35:14   state           active
     2023-05-21 11:00:32   triggeredByDev  VBUSDEV_7311
     2023-05-21 11:00:32   triggeredByEvent T_Kollektor: 57.5 °C
Attributes:
   room       CUL_HM

Danke und schönen Sonntag

Stefan

MadMax-FHEM

#7
Warum die Klammern um $EVTPART1 ?

Also warum nicht einfach: fhem ("set telegramS message $EVTPART1 temp")
Wenn du Klammern willst, dann verm. "ecapen"?

Also evtl.: fhem ("set telegramS message \($EVTPART1\) temp")
Wobei ich jetzt nicht weiß, was bei der "sen-message" Funktion vom Telegram-Modul "escaped" werden muss und wenn wie...

EDIT: wobei ich grad bei mir geschaut habe und ich kann einfach Klammern beim Senden von Nachrichten verwenden. Welche "Codierung" hast du "eingestellt"? Gibt ja da viele Einstellungen beim Bot? und auch beim Modul?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

SHOFHEM

Hallo Joachim,

zu deiner Info fhem ("set telegramS message $EVTPART1 temp") ergibt folgende Ausgabe "EVTPART1 temp". Wird also nur als Text interpretiert

("set telegramS message \(EVTPART1) temp")

Ergebnis siehe Bild im Anhang. Ich hoffe, dass ich da noch was zu diesem Thema finde

Gruß Stefan


MadMax-FHEM

#9
\(EVTPART1) <- ist ja auch Quatsch und habe ich SO NICHT gepostet!

Wenn "escapen", dann beide Klammern und wenn du eine Variable willst, dann $EVTPART1

Wobei, wie geschrieben: bei mir gehen auch Klammern ohne "escapen"...

Evtl. mal (wobei es auch anders gehen müsste?!):

{ if ($EVTPART1 >= 50.5) {my $value = $EVTPART1; fhem ("set telegramS message $value temp");}}

Oder gleich alles zusammenbauen:
{ if ($EVTPART1 >= 50.5) {my $Message = $EVTPART1 . " temp"; fhem ("set telegramS message $Message");}}

Eingabe per Klick auf DEF beim notify.
Ansonsten u.U. Strichpunkte doppeln...

Aber wie geschrieben, eigentlich sollte es schon zu Beginn gepasst haben.

Hast du mal ganz ohne Klammern probiert?

Hatte ich aber ja alles schon mal geschrieben...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

SHOFHEM

Hallo Joachim,

jetzt macht das notify was es soll. :)  :)  :)  Ich danke die wirklich ganz herzlich für deine Geduld. ;D


Habe noch das EVTPART1 durch EVENT ersetzt, dann kommt das °C gleich mit

{ if ($EVTPART1 >= 15.0) {my $Message = $EVENT . " Das Solarmodul ist zu heiss"; fhem ("set telegramS message $Message");}}

Telegram meldet mir T_Kollektor: XX °C Das Solarmodul ist zu heiss

Vielen Dank und schönen Abend

Stefan

MadMax-FHEM

Gerne.

Packst du noch ein [gelöst] vorne an den ersten Post dran :)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)