Ich habe ein Setting, das verlässlich ein bestimmtes Event auslöst, indem ein Reading gesetzt wird.
Zitat2026-09-25 17:28:43 TelegramBot TelegramBot diagramSource: 90:XXX:ID7y.plot
Könnte mir bitte mal jemand erklären, warum
defmod tb.d notify TelegramBot.*diagramSource.*90.* (etc...)zuverlässig triggert
defmod TelegramBot.Diagram DOIF ([TelegramBot:"diagramSource.*90.*"]) (etc...)aber nicht?
LG
pah
P.S.: Ja, do always ist gesetzt, auch diverse Varianten habe ich ausprobiert.
Da muss bei dir noch etwas anders im Argen sein, denn
setreading TelegramBot diagramSource 90:XXX:ID7y.plot
führt bei mir zu:
Internals:
CFGFN
FUUID 6ab6aafc-f33f-30f6-3df3-a86e2c6223a8d2b9
NAME TelegramBot
NR 11797
STATE ???
TYPE dummy
eventCount 2
READINGS:
2026-09-25 19:12:19 diagramSource 90:XXX:ID7y.plot
Attributes:
und
Internals:
CFGFN
DEF ([TelegramBot:"diagramSource.*90.*"]) ()
FUUID 6ab6aab7-f33f-30f6-3ba0-f6cdd02d98b25472
MODEL FHEM
NAME TelegramBot.Diagram
NOTIFYDEV global,TelegramBot
NR 11770
NTFY_ORDER 50-TelegramBot.Diagram
STATE cmd_1
TYPE DOIF
VERSION 0 2026-05-10 21:47:00
eventCount 3
READINGS:
2026-09-25 19:12:19 Device TelegramBot
2026-09-25 19:12:19 cmd 1
2026-09-25 19:12:19 cmd_event TelegramBot
2026-09-25 19:12:19 cmd_nr 1
2026-09-25 19:12:19 e_TelegramBot_events diagramSource: 90:XXX:ID7y.plot
2026-09-25 19:09:11 mode enabled
2026-09-25 19:12:19 state cmd_1
Regex:
Im Argen sicher nicht. Wenn ich das "setreading TelegramBot diagramSource 90:XX:YY" von der Kommandozeile aus absetze, triggert das DOIF aus dem Post unten korrekt - das ist aber nicht der gewünschte Weg.
Sondern das Reading wird bei mir per "fhem(setreading...)" gesetzt (und der Event korrekt erzeugt) aus einem Handler für den TelegramBot, dieser Handler wiederum wird durch ein notify auf Telegram Events gestartet.
Dieser Weg funktioniert, ist auch seit Jahren mit einem anderen Reading im produktiven Betrieb. Konkret: wenn ich in diesem Handler ein anderes Reading setze - nicht "diagramSource", sondern "photoSource", triggert ein DOIF mit
([TelegramBot:".*photoSource.*DoorPi"]) ganz verlässlich.
Also gute Frage: Was blockiert die Event-Feststellung in dem DOIF unten? Das Reading e_TelegramBot.Helper_events in dem genannten DOIF zeigt alle TelegramBot-Events, die ich auch im Event-Monitor sehe - _bis auf das Event mit diagramSource_.
Unter welchen Bedingungen ist genau ein Event in einer Serie, die korrekt im Event-Monitor erscheint, kein Event für DOIF?
LG
pah
Ich kann das Rätsel sogar noch erweitern.
Wenn ich das Reading diagramSource nämlich nicht in dem TelegramBot setze, sondern dazu ein Dummy TelegramBot.Helper verwende (und natürlich in dem DOIF auch auf Events von TelegramBot.Helper lausche), ist alles in Butter und wird korrekt getriggert.
Natürlich kann die Quelle im TelegramBot selbst liegen - irgendetwas sich auf die Event-Verarbeitung auswirken.
Aber warum bei "diagramSource", nicht aber bei "photoSource"?
LG
pah
Tja, da muss leider passen. Im DOIF sind FHEM-Standardmechanismen zur Event-Erkennung eingebaut, die sich seit Jahren bewährt haben. Ich gehe davon aus, dass es irgendetwas mit der Quelle TelegramBot zu tun hat. Ich weiß z. B., dass es Probleme gab, wenn es über FHEM2FHEM Events gab, zu denen es kein Device auf der DOIF-Seite gab. Das dürfte hier wohl aber nicht das Problem sein.