HMCUL und MQTT_Client_Bridge, no publish

Begonnen von hjgode, 06 August 2021, 17:41:38

Vorheriges Thema - Nächstes Thema

hjgode

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
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

frank

den thread vielleicht besser nach mqtt verschienen?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

LuckyDay

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

hjgode


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 :-(

Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

hjgode

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.
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose