Nachricht bei Änderung eines Readings????

Begonnen von frankreed, 12 September 2021, 13:42:19

Vorheriges Thema - Nächstes Thema

frankreed

Hallo,

sorry für die Anfängerfrage, aber wie kann ich es hinkriegen, dass mir bei einer Änderung eines Readings von einem Device eine Nachricht senden lassen kann?

Hintergrund:

Den Vertretungsplan meines Sohnes lasse ich mir über das Modul "dsmobile" abholen. Funktioniert.
Die Anzeige habe ich über das Modul abstracttable https://github.com/klein0r/fhem-abstracttable realisiert, funktioniert auch.
Das Modul abstracttable habe ich so erweitert, dass mir die angezeigte Tabelle auch als reading im html-Quelltext angezeigt wird als reading "html". Funktioniert.
Ein Messengermodul signalbot habe ich auch definiert, funktioniert prima mit z.B. "set signalbot send @zzzzzz Pflanze ist zu trocken"


Problem:
Immer wenn sich der Vertretungsplan ändert, ändert sich auch das reading "html".

Und jetzt möchte ich eigentlich ins Unreine formuliert:

Immer wenn sich das reading xxx des Devices yyyy geändert hat sende mir über mein signalbot device eine Nachricht

Ich habe mich schon durch notify und doif durchgequält aber habe nicht den richtigen Durchblick.

Kann mir jemand helfen?

Danke an alle im Voraus.

Gruß frankreed

MadMax-FHEM

Eventmonitor öffnen (Filter setzen), warten bis sich das Reading ändert bzw. genauer bis der (normalerweise) zugehörige Event auftaucht, die Zeile markieren -> create/modify und notify oder DOIF etc. anlegen lassen.

https://wiki.fhem.de/wiki/Event_monitor

Den Ausführungsteil anpassen, fertig :)

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)

frankreed

Habe ich so ungefähr verstanden, aber hhhhmmmmm:
Kann sein dass sich das Reading erst in zwei Tagen ändert. Muss ich jetzt so lange warten oder kann ich das schon jetzt aus dem mir vorliegenden Reading "von Hand" zusammenbasteln?

MadMax-FHEM

Poste doch ein list des Devices und sag welches Reading, dann kann man versuchen es zu basteln.

Besser/einfacher ist halt mit dem Eventmonitor...

Ansonsten ist die Regex: Devicename:Readingname
Siehe: https://wiki.fhem.de/wiki/Notify

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)

frankreed

#4
Das ist das list des devices:

Internals:
   DEF        dsbmobile
   DEVICE     dsbmobile
   FUUID      5f6a2ae2-f33f-032e-7cac-c785db423fc3c45a
   MODULE_VERSION 0.2
   NAME       dsb_view
   NR         74
   STATE      4
   TYPE       abstracttable
   READINGS:
     2021-09-12 14:22:10   html           <table class="block wide abstract-table"><thead><tr><th>Datum</th><th>Klasse</th><th>Stunde</th><th>Fach</th><th>Art</th><th>regulär_bei</th><th>Vertretung_durch</th><th>in_Raum</th><th>Schülergruppe</th></tr></thead><tbody><tr class="even"><td>2021-09-13</td><td>(8D)</td><td>6</td><td>---</td><td>Absenz</td><td>STE</td><td>-</td><td>---</td><td>-</td></tr><tr class="odd"><td>2021-09-13</td><td>(8D)</td><td>8 - 9</td><td>---</td><td>Absenz</td><td>KUR</td><td>-</td><td>---</td><td>-</td></tr><tr class="even"><td>2021-09-14</td><td>8D</td><td>5</td><td>D</td><td>Statt-Vertretung</td><td>SHL</td><td>WEI</td><td>205</td><td>-</td></tr><tr class="odd"><td>2021-09-14</td><td>8C, 8D, 8A, 8B</td><td>6</td><td>---</td><td>Entfall</td><td>SHL</td><td>---</td><td>---</td><td>nur RRK entfällt</td></tr></tbody></table>
     2021-09-12 14:22:10   state           4
Attributes:
   icon       time_calendar
   room       Konfiguration->Websites
   table-header Datum,Klasse,Stunde,Fach,Art,regulär_bei,Vertretung_durch,in_Raum,Schülergruppe
   table-rowtemplate tt%d_sdate,tt%d_Stunde,tt%d_Fach,tt%d_Vertreter,tt%d_Text,tt%d_Art,tt%d_Raum,tt%d__Lehrer_,tt%d_Schuelergruppe
/code]




Das reading, das sich ändert bei einer Aktualisierung ist "html".

Und das die def des Messenger-Devices:


defmod fhem_signal Signalbot
attr fhem_signal authDev googleAuth
attr fhem_signal authTimeout 31536000
attr fhem_signal autoJoin yes
attr fhem_signal cmdKeyword =
attr fhem_signal icon Signal_Icon
attr fhem_signal room System->Messenger
attr fhem_signal verbose 5

setstate fhem_signal Connected
setstate fhem_signal 2021-09-12 13:22:11 lastError ok
setstate fhem_signal 2021-09-12 13:09:59 msgAttachment
setstate fhem_signal 2021-09-12 13:09:59 msgAuth 0
setstate fhem_signal 2021-09-12 13:09:59 msgGroupName
setstate fhem_signal 2021-09-12 13:09:59 msgTimestamp 12-09-2021 13:09:55
setstate fhem_signal 2021-09-12 13:09:59 prevMsgAttachment
setstate fhem_signal 2021-09-12 13:09:59 prevMsgGroupName
setstate fhem_signal 2021-09-12 13:09:59 prevMsgTimestamp 12-09-2021 13:07:52
setstate fhem_signal 2021-09-12 13:43:42 sentMsgTimestamp 12-09-2021 13:43:39



MadMax-FHEM

Naja evtl. (zuerst mal):


define nNotifyName notify dsb_view:html.* {Log3(undef, 3, "Notify hat ausgelöst, Inhalt war $EVENT")}


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)

frankreed

#6
Jetzt löst das aber auch ständig aus, wenn sich nichts geändert hat. Also das reading sich zwischen zwei Abfragen nicht geändert hat.

Wolle02

Zitat von: frankreed am 12 September 2021, 15:57:36
Jetzt löst das aber auch ständig aus, wenn sich nichts geändert hat. Also das reading sich zwischen zwei Abfragen nicht geändert hat.

Dann setz doch in dsb-view das Attribut event-on-change-reading. Dann sollte das notify eigentlich nur bei einer Änderung des readings auslösen.