ccu-historian icon indicating copy to clipboard operation
ccu-historian copied to clipboard

MQTT-Schnittstelle

Open mdzio opened this issue 7 years ago • 2 comments

Der CCU-Historian ist MQTT-Client und archiviert alle Benachrichtigungen.

Offene Punkte:

  • Content-Type: JSON?
  • JSON-Struktur?

mdzio avatar Dec 22 '16 21:12 mdzio

My 2 Cent: Wäre sinnvoll (bzw. besser gesagt: notwendig, insofern man sich extern vorgelagerte Payload-Transformationen sparen will) wenn es je subscribed Topic konfigurierbar wäre ob "raw" payload oder ob JSON und welche Property (über simple Dot-Notation oder noch besser per JSONata Expression).

In sehr heterogenen MQTT basierten System sind die Payloads leider nicht einheitlich strukturiert und die verschiedenen Publisher machen es halt alle irgendwie anders ;-)

Paar Beispiele:

# Raw String
zigbee/SensorGarten/voltage 2895
zigbee/SensorGarten/battery 41
zigbee/SensorGarten/temperature -1.17
zigbee/SensorGarten/humidity 84.28
zigbee/SensorGarten/pressure 972

# Irgendein JSON
octoPrint/temperature/tool0 {"actual": 106.94, "target": 0.0, "ts": 1614782341}
octoPrint/temperature/bed {"actual": 55.92, "target": 0.0, "ts": 1614782337}

# MQTT-Smarthome ähnlich
hm/status/Ender:0/ACTUAL_TEMPERATURE {"val":27,"ts":1615148877804,"lc":1615148877804,"hm":{"ccu":"localhost","iface":"HmIP-RF","device":"0001D7098D9F3C","deviceName":"Ender","deviceType":"HMIP-PSM","channel":"0001D7098D9F3C:0","channelName":"Ender:0","channelType":"MAINTENANCE","channelIndex":0,"datapoint":"ACTUAL_TEMPERATURE","datapointName":"HmIP-RF.0001D7098D9F3C:0.ACTUAL_TEMPERATURE","datapointType":"FLOAT","datapointMin":-3276.8,"datapointMax":3276.7,"datapointDefault":0,"datapointControl":"MAINTENANCE.ACTUAL_TEMPERATURE","valuePrevious":25,"valueStable":27,"rooms":[],"functions":[],"ts":1615148877804,"tsPrevious":1615142495530,"lc":1615148877804,"change":true,"cache":false,"uncertain":false,"stable":true}}

Weitere weit verbreitete Payload Konventionen wären auch https://homieiot.github.io/specification/ oder die im Home Assistant Umfeld (WLED, ESPHome, Tasmota, ...) üblichen Payloads.

hobbyquaker avatar Mar 07 '21 20:03 hobbyquaker

Vielen Dank für die Übersicht der Payload-Formate. Es muss tatsächlich generisch konfigurierbar sein, wie der Wert (oder auch mehrere Werte) aus der Payload extrahiert werden.

mdzio avatar Mar 09 '21 21:03 mdzio