FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: tplus am 18 September 2022, 12:53:16

Titel: MQTT Client in DOIF - Syntax?
Beitrag von: tplus am 18 September 2022, 12:53:16
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...




Titel: Antw:MQTT Client in DOIF - Syntax?
Beitrag von: Damian am 18 September 2022, 13:56:13
Das Leerzeichen ist zu viel, es muss heißen:

([MQTT2_M5Paper.buttonone:"off"])
Titel: Antw:MQTT Client in DOIF - Syntax?
Beitrag von: tplus am 18 September 2022, 14:03:22
Danke, das DOIF reagiert tatsächlich bei


([MQTT2_M5Paper:"off"])


aber eben nicht mit dem Topic zusammen. Und es gibt ja noch mehr buttons...
Titel: Antw:MQTT Client in DOIF - Syntax?
Beitrag von: betateilchen am 18 September 2022, 14:55:31
Vermutlich werde ich in diesem Leben nicht mehr begreifen, warum man solche simplen Dinge nicht einfach in einem notify erledigt.

Titel: Antw:MQTT Client in DOIF - Syntax?
Beitrag von: tplus am 18 September 2022, 15:10:10
Es handelt sich ja nur um einen Test, hinterher wird die Sache komplizierter.

Aber wie wäre denn der Syntax für das notify?
Titel: Antw:MQTT Client in DOIF - Syntax?
Beitrag von: betateilchen am 18 September 2022, 15:41:04
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