MQTT_BRIDGE und Attribut 'publish-topic-base'

Begonnen von SommerSonnenWende, 30 Juni 2015, 16:13:12

Vorheriges Thema - Nächstes Thema

SommerSonnenWende

Hallo,

möglicherweise nur ein Verständnisproblem mit dem Attribut 'publish-topic-base fhem' bei Verwendung der MQTT_BRIDGE:


define mqtt_wz_thermostat MQTT_BRIDGE wz_Thermostat
attr mqtt_wz_thermostat IODev mqtt
attr mqtt_wz_thermostat publish-topic-base fhem


Durch ein 'auto-reading' wurden dann u.a. die Attribute:


...
   publishReading_RSSI /wz_Thermostat/RSSI
   publishReading_TimeInformationHour /wz_Thermostat/TimeInformationHour
   publishReading_battery /wz_Thermostat/battery
   publishReading_desiredTemperature /wz_Thermostat/desiredTemperature
...


angelegt. Diese werden auch zum MQTT-Broker übertragen:


fhem@fhem:~$ mosquitto_sub -v -h 127.0.0.1 -t '#'

/wz_Thermostat/mode auto
/wz_Thermostat/battery ok
/wz_Thermostat/desiredTemperature 15.0
/wz_Thermostat/temperature 23.3


Aufgrund des definierten publish-topic-base fhem hätte ich aber folgende Hierarchie


fhem/wz_Thermostat/desiredTemperature 15.0
fhem/wz_Thermostat/temperature 23.3


erwartet.

Wie setze ich meine Erwartung um?

Danke & Gruss,
SommerSonnenWende

RoRo

Es ist zwar schon ein wenig her, aber bei mir funktioniert es wie von Dir erwartet.
Ich definiere erst eine mqtt-Bridge:
define mqtt_Buderus MQTT_BRIDGE Buderus
Dann sage ich, dass vor alle Werte "buderus/" vorgehängt werden soll (man beachte den Slash am Ende!):
attr mqtt_Buderus publish-topic-base buderus/
Und zum Schluss generiere ich die publishReadings:
get mqtt_Buderus readings
save

Ergebnis sind dann Einträge wie folgende:
attr mqtt_Buderus publishReading_ActiveSwitchProgram buderus/ActiveSwitchProgram
attr mqtt_Buderus publishReading_BurnerModulationSetpoint buderus/BurnerModulationSetpoint
attr mqtt_Buderus publishReading_CHPower buderus/CHPower
attr mqtt_Buderus publishReading_CHPumpModulation buderus/CHPumpModulation
attr mqtt_Buderus publishReading_CaloricValue buderus/CaloricValue
...

Wichtig ist natürlich, dass man vorher manuell definierte publishReading-Einträge vorher löscht, bestehende werden nämlich nicht ersetzt, sondern nur durch fehlende ergänzt.

Ich hoffe, dass hilft Dir auch über ein Jahr nach der Frage noch oder jemand anderes, der wie ich bisher wie der Ochs vorm Berg steht und es nicht schafft, all die vielen publishReadings automatisch zu generieren, findet die Antwort ein wenig schneller.

Gruß
Roland