FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: hjgode am 06 August 2021, 17:41:38

Titel: HMCUL und MQTT_Client_Bridge, no publish
Beitrag von: hjgode am 06 August 2021, 17:41:38
Hallo

vielleicht kann mir jemand auf die Sprünge helfen.

Ich habe mir zusätzlich MQTT_Client_Bridge installiert um mit einem M5Stack Core Werte aus fhem über einen Mosquitto MQTT Server zu bekommen.

Das funktioniert auch gut mit Hideki und SD_WS Geräten (ausser retain will nicht), aber Homematic Geräte senden kein MQTT publish bei Reading Änderungen. Beobachte das Ganze mit mosqitto_sub.

fhem habe ich gerade aktualisiert.

Mein HMCUL

defmod HMCUL CUL /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400 0000
attr HMCUL hmId 123456
attr HMCUL hmProtocolEvents 1_dump
attr HMCUL icon cul_cul
attr HMCUL model nanoCUL
attr HMCUL rfmode HomeMatic
attr HMCUL room CUL_HM,Homematic
attr HMCUL verbose 0

setstate HMCUL 2018-04-12 05:18:02 ccconf freq:868.300MHz bWidth:101KHz rAmpl:33dB sens:8dB
setstate HMCUL 2021-08-06 12:26:08 cmds  A B C E e F f G h K l M m R T t U V W X x Y Z
setstate HMCUL 2021-02-02 07:08:34 fhtbuf No answer
setstate HMCUL 2021-08-06 17:09:55 state Initialized
setstate HMCUL 2021-02-02 07:08:44 uptime 0 00:00:08
setstate HMCUL 2021-02-15 05:48:14 version No answer



Und ein nicht publizierendes Homematic Thermostat.

defmod HM_633ADB_Climate CUL_HM 633ADB02
attr HM_633ADB_Climate event-min-interval 600
attr HM_633ADB_Climate event-on-change-reading measured-temp,desired-temp,controlMode
attr HM_633ADB_Climate event-on-update-reading measured-temp,desired-temp,controlMode
attr HM_633ADB_Climate model HM-TC-IT-WM-W-EU
attr HM_633ADB_Climate mqttAlias measured-temp=measured desired-temp=desired
attr HM_633ADB_Climate mqttDefaults pub:qos=1 retain=1
attr HM_633ADB_Climate mqttPublish measured|desired:topic={"base/$device/$name"}
attr HM_633ADB_Climate peerIDs 00000000
attr HM_633ADB_Climate room Bad,CUL_HM
attr HM_633ADB_Climate stateFormat ist:measured-temp Soll:desired-temp Mode:controlMode
attr HM_633ADB_Climate tempListTmpl setup/tempList.cfg:master1

setstate HM_633ADB_Climate ist:22.2 Soll:18.0 Mode:controlMode
setstate HM_633ADB_Climate 2021-08-06 17:07:26 desired-temp 18.0
setstate HM_633ADB_Climate 2021-08-06 17:07:26 humidity 74
setstate HM_633ADB_Climate 2021-08-06 17:07:26 measured-temp 22.2
setstate HM_633ADB_Climate 2021-08-06 17:07:26 state T: 22.2 desired: 18.0



Setze ich z.B. per fhem telnet den Befehl "setreading HM_633ADB_Climate measured-temp 22.0" ab, erscheint das zwar im fhem Event Monitor/Log, aber es erfolgt nix von MQTT_GENERIC_BRIDGE, wei dies zB bei einem SD_WS Sensor der Fall ist.

...
2021.08.06 17:23:57 5 : MQTT_GENERIC_BRIDGE:DEBUG:> [mqttGenericBridge] publish: mqttGenericBridge/SD_WS07_TH_3/temperature => 22.9 (qos: 1, retain: 1
2021-08-06 17:23:57 MQTT_GENERIC_BRIDGE mqttGenericBridge transmission-state: outgoing publish sent
2021-08-06 17:23:57 MQTT_GENERIC_BRIDGE mqttGenericBridge outgoing-count: 311
2021-08-06 17:23:57 SD_WS07 SD_WS07_TH_3 temperature: 22.9
2021-08-06 17:23:57 MQTT_DEVICE display1 transmission-state: incoming publish received
2021-08-06 17:23:57 Global global ATTR display1 subscribeReading_ display1/text3
2021-08-06 17:23:57 EC3000 EC3000_1B67 consumption: 14375.339
2021-08-06 17:23:57 EC3000 EC3000_1B67 power: 0.2
2021-08-06 17:23:57 EC3000 EC3000_1B67 powerMax: 0.3
2021-08-06 17:23:57 EC3000 EC3000_1B67 on
2021-08-06 17:23:57 Hideki Hideki_30_1 package_number: 1
2021-08-06 17:23:58 Hideki Hideki_30_1 package_number: 3
2021.08.06 17:24:04 5 : MQTT_GENERIC_BRIDGE:DEBUG:> [mqttGenericBridge] publish: mqttGenericBridge/Hideki_30_2/temperature => 20.2 (qos: 1, retain: 1
2021.08.06 17:24:04 5 : MQTT_GENERIC_BRIDGE:DEBUG:> [mqttGenericBridge] publish: mqttGenericBridge/Hideki_30_2/humidity => 67 (qos: 1, retain: 1
...


In mosquitto_sub sieht man dann:

Client mosqsub|43545-LenovoX24 received PUBLISH (d0, q0, r0, m0, 'mqttGenericBridge/SD_WS07_TH_3/temperature', ... (4 bytes))
mqttGenericBridge/SD_WS07_TH_3/temperature 22.2
Client mosqsub|43545-LenovoX24 received PUBLISH (d0, q0, r0, m0, 'mqttGenericBridge/Hideki_30_1/temperature', ... (4 bytes))
mqttGenericBridge/Hideki_30_1/temperature 20.7
Client mosqsub|43545-LenovoX24 received PUBLISH (d0, q0, r0, m0, 'mqttGenericBridge/Hideki_30_1/humidity', ... (2 bytes))
mqttGenericBridge/Hideki_30_1/humidity 59


SD_WS07_TH2 ist wie folgt:

defmod SD_WS07_TH_3 SD_WS07 SD_WS07_TH_3
attr SD_WS07_TH_3 userattr max-deviation-hum:1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50 max-deviation-temp:1,2,3,4,5,6,7,8,9,10,15,20,25,30,35,40,45,50 offset-hum:slider,-50,1.0,50 offset-temp:slider,-25,1.0,25
attr SD_WS07_TH_3 alias WohnTH
attr SD_WS07_TH_3 event-min-interval .*:300
attr SD_WS07_TH_3 event-on-change-reading .*
attr SD_WS07_TH_3 mqttDefaults pub:qos=1 retain=1
attr SD_WS07_TH_3 mqttPublish temperature:topic={"$base/$device/$name"}
attr SD_WS07_TH_3 room SD_WS07,Wohnzimmer
attr SD_WS07_TH_3 verbose 0

setstate SD_WS07_TH_3 T: 22.2 H: 69
setstate SD_WS07_TH_3 2021-06-21 06:27:28 battery low
setstate SD_WS07_TH_3 2021-08-06 17:30:30 batteryState low
setstate SD_WS07_TH_3 2021-08-06 17:30:30 channel 3
setstate SD_WS07_TH_3 2021-08-06 17:30:30 dewpoint 16.2
setstate SD_WS07_TH_3 2021-08-06 17:30:30 humidity 69
setstate SD_WS07_TH_3 2016-10-02 17:25:01 lastBatChange Sun Oct  2 17:25:01 2016
setstate SD_WS07_TH_3 2021-08-06 17:30:30 state T: 22.2 H: 69
setstate SD_WS07_TH_3 2021-08-06 17:30:30 temperature 22.2



Was mach ich falsch?
Oder muss ich noch eine Krücke mit at definieren, die mir die Readings liest und nach MQTT publiziert?

VG

Josef
Titel: Antw:HMCUL und MQTT_Client_Bridge, no publish
Beitrag von: frank am 06 August 2021, 22:18:30
den thread vielleicht besser nach mqtt verschienen?
Titel: Antw:HMCUL und MQTT_Client_Bridge, no publish
Beitrag von: LuckyDay am 07 August 2021, 00:29:56
attr HM_633ADB_Climate mqttPublish measured|desired:topic={"base/$device/$name"}


ich denke, du solltest die Readings auch so eintragen wie sie im Device heißen

measured-temp
desired-temp
Titel: Antw:HMCUL und MQTT_Client_Bridge, no publish
Beitrag von: hjgode am 07 August 2021, 06:23:53

attr HM_633ADB_Climate mqttAlias measured-temp=measured desired-temp=desired


Ich hatte es erst mit den Original Readings Namen ohne mqttAlias, ging auch nicht :-(

Titel: Antw:HMCUL und MQTT_Client_Bridge, no publish
Beitrag von: hjgode am 07 August 2021, 06:25:37
Zitat von: frank am 06 August 2021, 22:18:30
den thread vielleicht besser nach mqtt verschienen?

MQTT funktioniert ja, nur eben nicht so richtig mit CULHM Geräten.