Hi,
ich versuche über MQTT ein gerät anzubinden, habe dazu MQTT_GENERIC_BRIDGE definiert.
Das publishen von Readings funktioniert wunderbar, aber ich bekomme es auch mit der Doku (https://wiki.fhem.de/wiki/MQTT_GENERIC_BRIDGE) das subscriben nicht hin. Ich mächte via MQTT das Gerät schalten.
define mqtt MQTT2_CLIENT 192.168.10.10:1883
attr mqtt clientOrder MQTT_GENERIC_BRIDGE MQTT2_DEVICE
attr mqtt room 99_Devices
attr mqtt subscriptions setByTheProgram
# BUF
# CFGFN
# Clients :MQTT_GENERIC_BRIDGE:MQTT2_DEVICE:
# ClientsKeepOrder 1
# DEF 192.168.10.10:1883
# DeviceName 192.168.10.10:1883
# FD 9
# FUUID 657c6ff0-f33f-cbbd-e4b2-365251f12b9f5a2c
# NAME mqtt
# NR 302
# PARTIAL
# STATE opened
# TYPE MQTT2_CLIENT
# WBCallback
# clientId mqtt2
# eventCount 27
# lastMsgTime 1702656643.37439
# nextOpenDelay 5
# MatchList:
# 1:MQTT_GENERIC_BRIDGE ^.
# 2:MQTT2_DEVICE ^.
# READINGS:
# 2023-12-15 16:48:47 state opened
#
setstate mqtt opened
setstate mqtt 2023-12-15 16:48:47 state opened
define mqttGenericBridge MQTT_GENERIC_BRIDGE
attr mqttGenericBridge IODev mqtt
attr mqttGenericBridge debug 1
attr mqttGenericBridge globalDefaults sub:base=TulpeMD/Home/set pub:base=TulpeMD/Home
attr mqttGenericBridge room 99_Devices
attr mqttGenericBridge stateFormat dev: device-count in: incoming-count out: outgoing-count
attr mqttGenericBridge verbose 4
# CFGFN
# FUUID 657c6a6b-f33f-cbbd-214d-a19a461740db19c1
# IODev mqtt
# NAME mqttGenericBridge
# NR 213
# NTFY_ORDER 70-mqttGenericBridge
# STATE dev: 11 in: 0 out: 24
# TYPE MQTT_GENERIC_BRIDGE
# devspec .*
# eventCount 58
# prefix mqtt
# READINGS:
# 2023-12-15 16:56:01 IODev mqtt
# 2023-12-15 16:33:15 attrTemplateVersion 20211208_MGB_M2D
# 2023-12-15 16:48:44 device-count 11
# 2023-12-15 16:02:03 incoming-count 0
# 2023-12-15 17:10:36 outgoing-count 24
# 2023-12-15 17:10:36 transmission-state outgoing publish sent
# 2023-12-15 16:02:03 updated-reading-count 0
# 2023-12-15 16:02:03 updated-set-count 0
# devices:
# :global:
# :alias:
# :defaults:
# pub:base TulpeMD/Home
# sub:base TulpeMD/Home/set
# :publish:
# Fenster_KG_Bad:
# :alias:
# :publish:
# status:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# Fenster_KG_GZ:
# :alias:
# :publish:
# status:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# Fenster_KG_Garage_L:
# :alias:
# :publish:
# status:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# Fenster_KG_Garage_R:
# :alias:
# :publish:
# status:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# Fenster_KG_HZ:
# :alias:
# :publish:
# status:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# Fenster_KG_NZ:
# :alias:
# :publish:
# status:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# Fenster_KG_Oel:
# :alias:
# :publish:
# status:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# Fenster_KG_WK:
# :alias:
# :publish:
# status:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# LED_AA_Garage:
# :publish:
# :subscribe:
# HASH(0x1a4c528)
# T_GT_Terrasse:
# :alias:
# :publish:
# humidity:
# last 1702656636.55823
# mode R
# topic {"$base/$device/$name"}
# temperature:
# last 1702656636.56532
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# Wasserzaehler:
# :alias:
# :publish:
# PortA:
# mode R
# topic {"$base/$device/$name"}
# PortA_rate:
# mode R
# topic {"$base/$device/$name"}
# :subscribe:
# globalDeviceExcludes:
# globalReadingExcludes:
# globalTypeExcludes:
# pub:
# FHEMWEB *
# Global *
# MQTT transmission-state
# MQTT_BRIDGE transmission-state
# MQTT_DEVICE transmission-state
# MQTT_GENERIC_BRIDGE *
# telnet *
# sub:
# FHEMWEB *
# Global *
# MQTT transmission-state
# MQTT_BRIDGE transmission-state
# MQTT_DEVICE transmission-state
# MQTT_GENERIC_BRIDGE *
# telnet *
# message_ids:
# subscribe:
# TulpeMD/Home/LED_AA_Garage/+
# subscribeExpr:
# ^TulpeMD\/Home\/LED_AA_Garage\/([^/]+)$
# subscribeQos:
# TulpeMD/Home/LED_AA_Garage/+ 0
#
setstate mqttGenericBridge dev: 11 in: 0 out: 24
setstate mqttGenericBridge 2023-12-15 16:56:01 IODev mqtt
setstate mqttGenericBridge 2023-12-15 16:33:15 attrTemplateVersion 20211208_MGB_M2D
setstate mqttGenericBridge 2023-12-15 16:48:44 device-count 11
setstate mqttGenericBridge 2023-12-15 16:02:03 incoming-count 0
setstate mqttGenericBridge 2023-12-15 17:10:36 outgoing-count 24
setstate mqttGenericBridge 2023-12-15 17:10:36 transmission-state outgoing publish sent
setstate mqttGenericBridge 2023-12-15 16:02:03 updated-reading-count 0
setstate mqttGenericBridge 2023-12-15 16:02:03 updated-set-count 0
define LED_AA_Garage OWSWITCH DS2408 045413000000
attr LED_AA_Garage IODev 1wireBus
attr LED_AA_Garage group StatusAnzeige Außen
attr LED_AA_Garage model DS2408
attr LED_AA_Garage mqttSubscribe gpio:stopic={"TulpeMD/Home/$device/$name"}
attr LED_AA_Garage room Alarmanlage
attr LED_AA_Garage stateFormat {(ReadingsVal($name,"A","") eq "ON")?"Grün":(ReadingsVal($name,"D","") eq "ON")?"Gelb":(ReadingsVal($name,"G","") eq "ON")?"Rot":"Aus"}
# DEF DS2408 045413000000
# ERRCOUNT 0
# FUUID 5d22282b-f33f-1fff-395b-0051dc3ed8d33489
# INTERVAL 300
# IODev 1wireBus
# NAME LED_AA_Garage
# NOTIFYDEV global
# NR 170
# NTFY_ORDER 50-LED_AA_Garage
# OW_FAMILY 29
# OW_ID 045413000000
# PRESENT 1
# ROM_ID 29.045413000000.c5
# STATE Rot
# TYPE OWSWITCH
# eventCount 22
# READINGS:
# 2023-12-15 17:10:33 A OFF
# 2023-12-15 17:10:33 B OFF
# 2023-12-15 17:10:33 C OFF
# 2023-12-15 17:10:33 D OFF
# 2023-12-15 17:10:33 E OFF
# 2023-12-15 17:10:33 F OFF
# 2023-12-15 17:10:33 G ON
# 2023-12-15 17:10:33 H OFF
# 2023-12-15 15:50:13 IODev 1wireBus
# 2023-12-15 17:10:33 gpio 191
# 2023-12-15 17:10:33 state A: OFF B: OFF C: OFF D: OFF E: OFF F: OFF G: ON H: OFF
# owg_val:
# 1
# 1
# 1
# 1
# 1
# 1
# 0
# 1
# owg_vax:
# 1
# 1
# 1
# 1
# 1
# 1
# 0
# 1
#
setstate LED_AA_Garage Rot
setstate LED_AA_Garage 2023-12-15 17:10:33 A OFF
setstate LED_AA_Garage 2023-12-15 17:10:33 B OFF
setstate LED_AA_Garage 2023-12-15 17:10:33 C OFF
setstate LED_AA_Garage 2023-12-15 17:10:33 D OFF
setstate LED_AA_Garage 2023-12-15 17:10:33 E OFF
setstate LED_AA_Garage 2023-12-15 17:10:33 F OFF
setstate LED_AA_Garage 2023-12-15 17:10:33 G ON
setstate LED_AA_Garage 2023-12-15 17:10:33 H OFF
setstate LED_AA_Garage 2023-12-15 15:50:13 IODev 1wireBus
setstate LED_AA_Garage 2023-12-15 17:10:33 gpio 191
setstate LED_AA_Garage 2023-12-15 17:10:33 state A: OFF B: OFF C: OFF D: OFF E: OFF F: OFF G: ON H: OFF
Wenn ich nun mittels MQTT.fx folgendes absetze kommt nix an, die GENERIC_BRIDGE zeigt keinen Eingang, auch im Log mit Verbose 4 ist nichts zu sehen.
TulpeMD/Home/LED_AA_Garage/set 1
TulpeMD/Home/set/LED_AA_Garage 1
Am MQTT Server kommt es an, mit Verbose 5 an der GENERIC_BRIDGE sieht man das es mit den vielen anderen durchrauscht.
Jemand eine zündende Idee wo mein Problem liegt?
attr LED_AA_Garage mqttSubscribe gpio:stopic={"TulpeMD/Home/$device/$name"}
Lass doch erstmal die Variablen weg und schreibe das topic, auf das Du reagieren möchtest, vollständig da hin.
Und schau Dir auf dem MQTT Server mal die aktiven subscriptions an, ob da Dein device überhaupt dabei ist.
Andere Alternative: an der MGB gibt es ein "get ... devinfo". Da sieht man (u.A. auch) im Klartext, welche subscriptions effektiv aus den Variablen gebastelt werden.
die devinfo hatte ich mir auch schon angesehen, gebracht hat es aber nix :(
LED_AA_Garage
publish:
subscribe:
gpio <= TulpeMD/Home/LED_AA_Garage/+ (mode: S)
Es ist wie betateilchen schon geschrieben hat: Du verwirrst dich mit den Variablen und hast jedenfalls nicht geschrieben, dass du was an den Topic gesendet hast, der sich aus devinfo ergibt:
TulpeMD/Home/LED_AA_Garage/gpio 1
puh, jetzt kommt was an. Es lag daran das ich nach dem anpassen der GENERICBRidge das ganze FHEM nochmal neustarten musste....
mosquitto_pub -h 192.168.10.10 -i fhem-test -t TulpeMD/Home/set/LED_AA_Garage/gpio -m 191
2023.12.15 18:30:50 1: MQTT_GENERIC_BRIDGE: [mqttGenericBridge] setUpdate: error in set command: gpio init interval output
ist zwar ein Fehler, aber zumindest kommt es an ;)
damit kann ich erstmal weiter forschen