FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: HanslWurst am 15 Oktober 2023, 21:30:43

Titel: MQTT2_Device Reading aktualiseren nach set
Beitrag von: HanslWurst am 15 Oktober 2023, 21:30:43
Guten Abend zusammen,

ich versuche gerade, eine Verbindung zwischen meinem FHEM und IoBroker per MQTT einzurichten und habe dazu folgendes MQTT2_Device angelegt:

define Fiat500e MQTT2_DEVICE Fiat500e
attr Fiat500e icon car
attr Fiat500e readingList fiat/0/XXXXXXXXXXXXXXX/remote/DEEPREFRESH:.* DEEPREFRESH\
fiat/0/XXXXXXXXXXXXXXX/remote/ROPRECOND:.* ROPRECOND\
fiat/0/XXXXXXXXXXXXXXX/remote/VF:.* VF\
fiat/0/XXXXXXXXXXXXXXX/status/evInfo/battery/stateOfCharge:.* stateOfCharge\
fiat/0/XXXXXXXXXXXXXXX/status/evInfo/battery/chargingStatus:.* chargingStatus
attr Fiat500e room MQTT2_DEVICE
attr Fiat500e setList deeprefresh:false,true fiat/0/XXXXXXXXXXXXXXX/remote/DEEPREFRESH $EVTPART1\
precond_on:noArg fiat/0/XXXXXXXXXXXXXXX/remote/ROPRECOND true\
precond_off:noArg fiat/0/XXXXXXXXXXXXXXX/remote/ROPRECOND false
attr Fiat500e stateFormat SOC: stateOfCharge%

setstate Fiat500e SOC: 97%
setstate Fiat500e 2023-10-15 20:36:51 DEEPREFRESH false
setstate Fiat500e 2023-10-15 20:30:29 IODev MQTT_Server
setstate Fiat500e 2023-10-15 20:06:19 ROPRECOND false
setstate Fiat500e 2023-10-15 20:05:10 VF false
setstate Fiat500e 2023-10-15 20:13:31 chargingStatus NOT_CHARGING
setstate Fiat500e 2023-10-15 21:05:00 state deeprefresh
setstate Fiat500e 2023-10-15 20:13:31 stateOfCharge 97

Es werden alle Readings einwandfrei aktualisiert, wenn sich diese in IoBroker ändern, bzw. ich kann auch alle Kommandos aus der setList einwandfrei an IoBroker übergeben.
Das Problem dabei ist allerdings noch, dass beim Senden eines Befehls das dazugehörige Reading nicht aktualisiert wird.
Das Topic in der setList ist in dem Fall das selbe wie in dem dazugehörigen Reading, was nicht "aktualisert" wird.

Gibt es dazu eine Lösung, damit das Reading nach dem publishen wieder zurückgelesen und aktualisiert wird?
Als MQTT Server wird ein MQTT2_SERVER im FHEM verwendet.

Viele Grüße,

Christian
Titel: Aw: MQTT2_Device Reading aktualiseren nach set
Beitrag von: rudolfkoenig am 16 Oktober 2023, 09:41:40
ZitatDas Problem dabei ist allerdings noch, dass beim Senden eines Befehls das dazugehörige Reading nicht aktualisiert wird.
So eine Verbindung gibt es fuer MQTT2_DEVICE Instanzen nicht.

Beim set wird das state Readig gesetzt, auf <Wert>.
Wenn das Attribut setStateList gesetzt ist, dann wird state erst auf set_<Wert> gesetzt, was nach Empfangsbestaetigung auf <Wert> gesetzt wird, das muss aber mit readingList auch konfiguriert werden.

Das hier gewuenschte Verhalten kann mit notify/userReading/DOIF realisiert werden, besser waere es, wenn die Empfangsseite den Empfang entsprechend bestaetigt.