Hallo, sorry für die Anfängerfrage:
Auf einem M5Paper läuft ein Python-Programm welches im Topic "m5paper/buttonone" "on" oder "off" posted. Das Reading in FHEM sieht dann so aus:
2022-09-18 12:47:27 MQTT2_DEVICE MQTT2_M5Paper buttonone: on
Mein DOIF sieht so aus:
Internals:
CFGFN
DEF ([MQTT2_M5Paper.buttonone: "off"]) (set testdummy off) DOELSE ([MQTT2_M5Paper.buttonone: "on"]) (set testdummy on)
FUUID 6326e872-f33f-96e9-d2cb-2057e2a6ca0c2bb2
MODEL FHEM
NAME testmq
NOTIFYDEV MQTT2_M5Paper.buttonone,global
NR 553
NTFY_ORDER 50-testmq
STATE initialized
TYPE DOIF
VERSION 26182 2022-06-29 18:57:26
eventCount 15
READINGS:
2022-09-18 12:44:34 cmd 0
2022-09-18 12:44:34 mode enabled
2022-09-18 12:44:34 state initialized
Regex:
accu:
collect:
cond:
MQTT2_M5Paper.buttonone:
0:
"off" ^MQTT2_M5Paper.buttonone$:^ "off":
condition:
0 ::ReadingValDoIf($hash,'MQTT2_M5Paper.buttonone',' "off"')
do:
0:
0 set testdummy off
1:
0 [MQTT2_M5Paper.buttonone: "on"]
1 set testdummy on
helper:
NOTIFYDEV MQTT2_M5Paper.buttonone,global
globalinit 1
last_timer 0
sleeptimer -1
readings:
all MQTT2_M5Paper.buttonone: "off"
uiState:
uiTable:
Attributes:
Leider reagiert es nicht.
Die Definition des Devices:
Internals:
CFGFN
CID M5Paper
DEF M5Paper
FUUID 6325f30f-f33f-96e9-7c57-10f51df5c03bf5f0
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.1.156_61670
MQTT2_FHEM_Server_MSGCNT 61
MQTT2_FHEM_Server_TIME 2022-09-18 12:47:27
MSGCNT 61
NAME MQTT2_M5Paper
NR 469
STATE ???
TYPE MQTT2_DEVICE
eventCount 63
READINGS:
2022-09-17 18:17:19 IODev MQTT2_FHEM_Server
2022-09-18 12:47:27 buttonone on
Attributes:
devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON
readingList M5Paper:m5paper/buttonone:.* buttonone
room MQTT2_DEVICE
Wie kann ich mit DOIF den testdummy schalten?
Besten Dank für Tipps...
Das Leerzeichen ist zu viel, es muss heißen:
([MQTT2_M5Paper.buttonone:"off"])
Danke, das DOIF reagiert tatsächlich bei
([MQTT2_M5Paper:"off"])
aber eben nicht mit dem Topic zusammen. Und es gibt ja noch mehr buttons...
Vermutlich werde ich in diesem Leben nicht mehr begreifen, warum man solche simplen Dinge nicht einfach in einem notify erledigt.
Es handelt sich ja nur um einen Test, hinterher wird die Sache komplizierter.
Aber wie wäre denn der Syntax für das notify?
Zitat von: tplus am 18 September 2022, 15:10:10
Es handelt sich ja nur um einen Test, hinterher wird die Sache komplizierter.
Na und? Du glaubst wohl, mit einem notify kann man keine komplizierten Sachen umsetzen? Dann glaubst Du wohl auch, dass ein Zitronenfalter Zitronen faltet?
defmod testnotify notify MQTT2_M5Paper:buttonone.*(on|off) set testdummy $EVTPART1