FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: BOFH am 01 Juni 2019, 10:48:41

Titel: [gelöst] MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: BOFH am 01 Juni 2019, 10:48:41
Hallo,

ich fang mit MQTT2_DEVICE gerade rest an und hab mir auch die Praxisbeispiele angeguckt, daraus entstanden ist folgendes Gerät

defmod MQTT_luefter_4 MQTT2_DEVICE
attr MQTT_luefter_4 IODev MQTT2_FHEM_Server
attr MQTT_luefter_4 alias Lüfter 4
attr MQTT_luefter_4 devStateIcon 0:vent_ventilation_level_0@red:10 1.:vent_ventilation_level_1@green:20 2.:vent_ventilation_level_2@green:30 3.:vent_ventilation_level_2@green:40 4.:vent_ventilation_level_2@orange:50 5.:vent_ventilation_level_2@orange:60 6.:vent_ventilation_level_2@red:70 7.:vent_ventilation_level_3@red:80 8.:vent_ventilation_level_3@red:90  9.:vent_ventilation_level_3@red:100 100:vent_ventilation_level_3@red:10 .*:hourglass
attr MQTT_luefter_4 genericDeviceType Fanv2
attr MQTT_luefter_4 group Lüftungsanlage
attr MQTT_luefter_4 homebridgeMapping clear\
On=state,cmdOff=0,cmdOn=20\
CurrentFanState=CurrentFanState,cmd=CurrentFanState\
RotationSpeed=RotationSpeed,minValue=0,maxValue=100,minStep=10,cmd=,delay=1\
RotationDirection=RotationDirection,cmd=RotationDirection\
TargetFanState=TargetFanState,values=off:AUTO;;;;on:MANUAL,cmd=TargetFanState
attr MQTT_luefter_4 icon vent_ventilation
attr MQTT_luefter_4 readingList /Smarthome/Haus/SEVI160/Luefter4.* { json2nameValue($EVENT) }
attr MQTT_luefter_4 room TEST->Lueftungsanlage
attr MQTT_luefter_4 setList RotationSpeed:slider,0,10,100 /Smarthome/Haus/SEVI160/Luefter4 {"$EVTPART0":"$EVTPART1"}\
CurrentFanState:0,1,2 /Smarthome/Haus/SEVI160/Luefter4 {"$EVTPART0":"$EVTPART1"}\
TargetFanState:0,1 /Smarthome/Haus/SEVI160/Luefter4 {"$EVTPART0":"$EVTPART1"}\
RotationDirection:0,1 /Smarthome/Haus/SEVI160/Luefter4 {"$EVTPART0":"$EVTPART1"}\
Winter_rotation:rein,raus /Smarthome/Haus/SEVI160/Luefter4 {"$EVTPART0":"$EVTPART1"}\
Stosslueften:on,off /Smarthome/Haus/SEVI160/Luefter4 {"$EVTPART0":"$EVTPART1"}
attr MQTT_luefter_4 siriName MQTTArbeitszimmer
attr MQTT_luefter_4 webCmd RotationSpeed


sende ich jetzt via MQTT FX { "RotationDirection" : 1 } auf /Smarthome/Haus/SEVI160/Luefter4 erscheint im Log
5: PUBLISH: 0=(0) /Smarthome/Haus/SEVI160/Luefter4{ "RotationDirection" : 0 }
4: MQTT2_FHEM_Server_192.168.1.18_51152 MQTT_FX_Client PUBLISH /Smarthome/Haus/SEVI160/Luefter4:{ "RotationDirection" : 0 }
5: MQTT2_FHEM_Server: dispatch autocreate=simple\000MQTT_FX_Client\000/Smarthome/Haus/SEVI160/Luefter4\000{ "RotationDirection" : 0 }


Und der das Reading wird gesetzt.

Mach ich jetzt ein set mit dem MQTT2_DEVICE erscheint im Log
5: MQTT2_FHEM_Server: PUBLISH /Smarthome/Haus/SEVI160/Luefter4 {"RotationDirection":"1"}
das Reading bleibt aber unverändert stattdessen habe ich im 
state RotationDirection
stehen.

Fehlt mir noch irgendwo was?
Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: DasQ am 01 Juni 2019, 11:58:12
spontan fällt mir da deine formatierung auf. man beachte die leerstellen zwischen den befehlen.

Zitat von: BOFH am 01 Juni 2019, 10:48:41


5: PUBLISH: 0=(0) /Smarthome/Haus/SEVI160/Luefter4{ "RotationDirection" : 0 }


5: MQTT2_FHEM_Server: PUBLISH /Smarthome/Haus/SEVI160/Luefter4 {"RotationDirection":"1"}

mal bitte abchecken und dann den status beobachen, das müsste noch ne feedback sache sein.
wasn des fürn aktor? und hast mal ein list?
Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: Beta-User am 01 Juni 2019, 12:25:31
Das mit der fehlenden Rückmeldung vom Aktor ist ggf. eine Baustelle (faktisch geschalten wird, oder?), aber auch beim Versenden kann man festlegen, ob was in die Readings oder im state geschrieben wird. Für diese 2. Baustelle gibt es das Attribut setStateList (das aber in den Readings ein "set_" davor macht, damit man sieht, wo die Info herkommt (von FHEM oder der Rückmeldung des Aktors); kann sein, dass du das im devStateIcon wieder berücksichtigen müßtest).

Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: BOFH am 01 Juni 2019, 16:38:53
Zitat von: DasQ am 01 Juni 2019, 11:58:12
spontan fällt mir da deine formatierung auf. man beachte die leerstellen zwischen den befehlen.

mal bitte abchecken und dann den status beobachen, das müsste noch ne feedback sache sein.
wasn des fürn aktor? und hast mal ein list?
da ich attr MQTT_luefter_4 readingList /Smarthome/Haus/SEVI160/Luefter4.* { json2nameValue($EVENT) } den so nutze denke ich, wäre es egal? wenn ich via mqtt fx ein .../Luefter4 blub bla   im topic nutze  funzt das auch ohne Probleme.

Der Topic  MIT leerzeichen wird vom MQTT2_Device erstellt, da kann ich dann ja ohnehin nichts abändern?

Aktor ? Ähm keiner - habe das MQTT2_DEVICE das die Infos bekommt und publishen soll - Quasie nur ein Speicherort für die Infos.
Via Python-mqqt client empfang ich dann die Daten und setzt das weiter um



Funktioniert dann eher nicht, wie Beta-User schreibt, mangels setStateListe. Das muss ich mir mal angucken.


Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: DasQ am 01 Juni 2019, 16:42:45
Also ich bezog mich auf den Syntax im mqttfx ... der Client macht/will ja wieder json draus und da sind Leerzeichen an der falschen Stelle fatal.
Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: BOFH am 01 Juni 2019, 16:51:07
Das Problem ist ja doch, dass das MQTT2_DEVICE sein eigenen published Verkehr nicht empfängt?
Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: rudolfkoenig am 01 Juni 2019, 16:58:33
Ich wuerde das als "gewuenschtes Verhalten" und nicht als "Problem" beschreiben.
Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: BOFH am 01 Juni 2019, 17:47:00
Problem ist auch immer so negativ. Wie bekomm ich das Feature dann wegoptimiert?
Was muss der client ( der python subscribte ja das Topic ) antworten, damit das mqtt2_device das reading dann aktualisiert ?
Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: rudolfkoenig am 01 Juni 2019, 17:50:18
Etwas, was mit readingsList zum gewuenschten Reading konvertiert wird.
Titel: Antw:MQTT2_DEVICE Readings von Fhem published werden nicht gesetzt
Beitrag von: BOFH am 02 Juni 2019, 21:42:55
Sollte mal jemand es ähnliche aufbauen wollen wie ich, was wohl atypisch ist ( mit dem MQTT_DEVICE geht es nämlich einfach so ).
Ich hab es nun so "gelöst"

attr MQTT2_FHEM_Server rePublish 1

im commandref zum MQTT2_Server stand die "Lösung"