Ich habe 2 MQTT2_CLIENT
und aktuell werden die Publish auf dem falschen M2C gesendet
(Fhemupdate heute)
zwei Beispiele wo ich es nachstellen kann
Internals:
DEVICETOPIC testIAD_Lampe
FUUID 5d742317-f33f-8631-a177-7199f2c4d1c79759
IODev mqttclient1
LASTInputDev mqttclient_localhost
MSGCNT 5
NAME testIAD_Lampe
NR 27
STATE set_off
TYPE MQTT2_DEVICE
mqttclient_localhost_MSGCNT 5
mqttclient_localhost_TIME 2021-05-23 14:29:12
.attraggr:
.attrminint:
READINGS:
2021-05-23 14:26:58 IODev mqttclient1
2021-05-23 14:29:12 POWER1 on
2021-05-23 14:31:50 state set_off
Attributes:
IODev mqttclient_localhost
readingList stat/WZ_C_T_P/POWER1:.* POWER1
room test
setList off:noArg cmnd/WZ_C_T_P/POWER1 0
on:noArg cmnd/WZ_C_T_P/POWER1 1
setStateList on off
stateFormat POWER1
Internals:
DEVICETOPIC WZ_C_T_P
FUUID 5d51da74-f33f-8631-ef79-154909bef91419bd
IODev mqttclient1
LASTInputDev mqttclient_localhost
MSGCNT 13
NAME WZ_C_T_P
NR 17
STATE Online
P: 1016 CO2: 543 VOC: 21
TYPE MQTT2_DEVICE
mqttclient_localhost_MSGCNT 13
mqttclient_localhost_TIME 2021-05-23 14:30:42
.attraggr:
.attrminint:
.userReadings:
HASH(0xa7f900)
READINGS:
2021-05-23 14:30:42 BMP180_Pressure 997.1
2021-05-23 14:30:42 BMP180_Temperature 32.2
2021-05-23 14:30:42 CCS811_TVOC 21
2021-05-23 14:30:42 CCS811_eCO2 543
2021-05-23 14:30:42 Channel_1 4
2021-05-23 14:30:42 Channel_2 0
2021-05-23 14:30:42 Channel_3 0
2021-05-23 14:30:42 Color 0C0000
2021-05-23 14:30:42 Dimmer 5
2021-05-23 14:30:42 Fade off
2021-05-22 17:50:29 FallbackTopic cmnd/DVES_80349D_fb/
2021-05-22 17:50:29 GroupTopic sonoffs
2021-05-23 14:30:42 HSBColor 0,100,5
2021-05-22 17:50:29 Hostname WZ_C_T_P-5277
2021-05-23 14:26:57 IODev mqttclient1
2021-05-22 17:50:29 IPAddress 192.168.2.116
2021-05-23 14:26:59 LWT Online
2021-05-23 14:30:42 LedTable off
2021-05-23 14:30:42 LoadAvg 392
2021-05-22 17:50:29 Module Generic
2021-05-22 18:55:11 POWER
2021-05-23 14:30:42 POWER1 on
2021-05-23 14:30:42 PressureUnit hPa
2021-05-22 17:50:29 RestartReason Software/System restart
2021-05-23 14:30:42 Scheme 0
2021-05-23 14:30:42 Sleep 0
2021-05-23 14:30:42 SleepMode Dynamic
2021-05-23 14:30:42 Speed 1
2021-05-23 14:30:42 TempUnit C
2021-05-23 14:30:42 Time 2021-05-23T13:30:42
2021-05-23 14:30:42 Uptime 0T20:40:33
2021-05-23 14:30:42 Vcc 3.480
2021-05-22 17:50:29 Version 6.5.0(sonoff)
2021-05-22 17:50:29 WebServerMode Admin
2021-05-23 14:30:42 Width 1
2021-05-23 14:30:42 Wifi_AP 1
2021-05-23 14:30:42 Wifi_BSSId 98:9B:CB:16:B1:F7
2021-05-23 14:30:42 Wifi_Channel 3
2021-05-23 14:30:42 Wifi_Downtime 0T00:00:48
2021-05-23 14:30:42 Wifi_LinkCount 3
2021-05-23 14:30:42 Wifi_RSSI 18
2021-05-23 14:30:42 Wifi_SSId FRITZBox2
2021-05-23 14:30:42 rel_hpa 1016
2021-05-23 14:35:45 state off
Attributes:
IODev mqttclient_localhost
devStateIcon devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot
readingList tele/WZ_C_T_P/LWT:.* LWT
cmnd/WZ_C_T_P/POWER:.* POWER
tele/WZ_C_T_P/INFO1:.* { json2nameValue($EVENT) }
tele/WZ_C_T_P/INFO2:.* { json2nameValue($EVENT) }
tele/WZ_C_T_P/INFO3:.* { json2nameValue($EVENT) }
stat/WZ_C_T_P/RESULT:.* { json2nameValue($EVENT) }
stat/WZ_C_T_P/POWER:.* POWER
tele/WZ_C_T_P/STATE:.* { json2nameValue($EVENT) }
tele/WZ_C_T_P/SENSOR:.* { json2nameValue($EVENT) }
tele/WZ_C_T_P/UPTIME:.* { json2nameValue($EVENT) }
stat/WZ_C_T_P/POWER1:.* POWER1
room test
setList off:noArg cmnd/WZ_C_T_P/POWER1 0
on:noArg cmnd/WZ_C_T_P/POWER1 1
toggle:noArg cmnd/WZ_C_T_P/POWER1 2
Color:colorpicker,RGB cmnd/WZ_C_T_P/COLOR
Dimmer:colorpicker,BRI,0,5,100 cmnd/WZ_C_T_P/DIMMER
stateFormat LWT
P: rel_hpa CO2: CCS811_eCO2 VOC: CCS811_TVOC
userReadings rel_hpa:BMP180_Pressure:.* {sprintf("%.0f", ReadingsNum("WZ_C_T_P","BMP180_Pressure",900)+18.5 )}
webCmd :
Ausschnitt verbose 5
2021.05.23 14:44:24.340 4: WEB_192.168.2.41_57697 POST /fhem?cmd.testIAD_Lampe=set%20testIAD_Lampe%20on&XHR=1&fwcsrf=csrf_293415238302972&fw_id=180; BUFLEN:0
2021.05.23 14:44:24.340 5: Cmd: >set testIAD_Lampe on<
2021.05.23 14:44:24.341 3: MQTT2_DEVICE set testIAD_Lampe on
2021.05.23 14:44:24.342 5: Starting notify loop for testIAD_Lampe, 1 event(s), first is set_on
2021.05.23 14:44:24.346 5: mqttPublishList: not on any display, ignoring notify
2021.05.23 14:44:24.346 5: rg_dead: not on any display, ignoring notify
2021.05.23 14:44:24.349 5: End notify loop for testIAD_Lampe
2021.05.23 14:44:24.350 4: WEB: /fhem?cmd.testIAD_Lampe=set%20testIAD_Lampe%20on&XHR=1&fwcsrf=csrf_293415238302972&fw_id=180 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate
2021.05.23 14:44:24.351 5: GET /fhem?fwcsrf=csrf_293415238302972&cmd=%7B%20int(time*1000)%20%7D&XHR=1 HTTP/1.1
Host: 192.168.2.118:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.118:8083/fhem?room=test
2021.05.23 14:44:24.352 4: WEB_192.168.2.41_57699 GET /fhem?fwcsrf=csrf_293415238302972&cmd=%7B%20int(time*1000)%20%7D&XHR=1; BUFLEN:0
2021.05.23 14:44:24.353 5: Cmd: >{ int(time*1000) }<
2021.05.23 14:44:24.354 4: WEB: /fhem?fwcsrf=csrf_293415238302972&cmd=%7B%20int(time*1000)%20%7D&XHR=1 / RL:34 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate
2021.05.23 14:44:24.357 5: mqttclient1: dispatch autocreate=no\000hc1885\000cmnd/WZ_C_T_P/POWER1\0001
2021.05.23 14:44:24.569 5: GET /fhem?fwcsrf=csrf_293415238302972&cmd=%7B%20int(time*1000)%20%7D&XHR=1 HTTP/1.1
Host: 192.168.2.118:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.118:8083/fhem?room=test
Wie überzeuge das MQTT2_DEVICE wieder auf dem richtigen Client zu senden? dauerhaft
in meiner fhem.cfg steht erst der mqttclient1 danach der mqttclient_localhost - historisch gewachsen,
sollte doch nichts ausmachen.
Anmerkung
ebenso nach Stromausfall, lade ich kein Statefile, weil a alt und b unbrauchbar.
Mit der heutigen fhem.pl
funktioniert das senden wieder, das Reading IODev wid nachwievor der falsche M2Client angezeigt.
Internals:
DEVICETOPIC testIAD_Lampe
FUUID 5d742317-f33f-8631-a177-7199f2c4d1c79759
IODev mqttclient_localhost
LASTInputDev mqttclient_localhost
MSGCNT 8
NAME testIAD_Lampe
NR 27
STATE on
TYPE MQTT2_DEVICE
mqttclient_localhost_MSGCNT 8
mqttclient_localhost_TIME 2021-05-24 12:13:26
.attraggr:
.attrminint:
READINGS:
2021-05-24 12:12:04 IODev mqttclient1
2021-05-24 12:13:26 POWER1 on
2021-05-24 12:13:26 state set_on
Attributes:
IODev mqttclient_localhost
readingList stat/WZ_C_T_P/POWER1:.* POWER1
room test
setList off:noArg cmnd/WZ_C_T_P/POWER1 0
on:noArg cmnd/WZ_C_T_P/POWER1 1
setStateList on off
stateFormat POWER1
nach attr IODev neu setzen
ist das Reading richtig
2021-05-24 12:21:34 IODev mqttclient_localhost
nach shutdown restart (mit aktuellem statfile) wieder falsch
2021-05-24 12:23:37 IODev mqttclient1
Ich frag mich nur, wie Du das hinkriegst: ich kann z.Zt. nur mit Tricks ein IODev Reading erzeugen, was vom IODev Attribut abweicht, und nach save+shutdown restart ist selbst das wieder weg: im Reading steht der Wert des Attributes drin.
Kannst Du mir bitte helfen das Problem nachzustellen?
define mqttclient1 MQTT2_CLIENT localhost:1885
setuuid mqttclient1 5d51d91c-f33f-8631-ce33-b84641f16533c63e
attr mqttclient1 autocreate no
attr mqttclient1 clientId hc1885
attr mqttclient1 event-on-update-reading state
attr mqttclient1 keepaliveTimeout 60
attr mqttclient1 room System->MQTT2
define testIAD_Lampe MQTT2_DEVICE
setuuid testIAD_Lampe 5d742317-f33f-8631-a177-7199f2c4d1c79759
attr testIAD_Lampe IODev mqttclient_localhost
attr testIAD_Lampe readingList stat/WZ_C_T_P/POWER1:.* POWER1\
attr testIAD_Lampe room test
attr testIAD_Lampe setList off:noArg cmnd/WZ_C_T_P/POWER1 0\
on:noArg cmnd/WZ_C_T_P/POWER1 1
attr testIAD_Lampe setStateList on off
attr testIAD_Lampe stateFormat POWER1
define mqttclient_localhost MQTT2_CLIENT localhost:1883
setuuid mqttclient_localhost 5d8f71a5-f33f-8631-edc8-b54c7657f0a1a12d
attr mqttclient_localhost autocreate no
attr mqttclient_localhost clientId localhost
attr mqttclient_localhost event-on-update-reading state
attr mqttclient_localhost keepaliveTimeout 10
attr mqttclient_localhost room System->MQTT2
So ist die Reinfolge in der fhem.cfg
un auch der "Fehler" bei mir nachstellbar.
Testweise hatte ich den -> define mqttclient_localhost verschoben nach oben vor den ganzen MQTT2_DEVICE s , dann tut das so wie du das wolltest.
bei nachsehen waren nur die Devices betroffen, die vor dem define mqttclient_localhost definiert sind.
Bitte nach einem FHEM update erneut testen. In einer der zahlreichen Themas mit gleichen Inhalt habe ich was zum Nachstellen bekommen.
die fhem.pl 24501 sieht gut aus :)