Closed jiberan closed 1 year ago
Yes, it is working for me. It depends on the naming convention you have used in HA for the particular sensor.
My example Settings - Scripts - Add Script (Single) Call Service - MQTT Publish
Topic: homeassistant/sensor/air-quality-monitor0-co2/monitor1/config
Payload:
{ "name": "CO2 Climate monitor 1", "device_class": "carbon_dioxide", "state_topic": "node/air-quality-monitor:0/co2-meter/-/concentration", "unique_id": "air-quality-monitor0-co2", "unit_of_measurement": "ppm" }
Retain: checked
Repeat for all your monitors in your sensor
You must match state_topic EXACTLY as defined in your HA; unique_id must be unique.
Full dump of my script for Clime XL sensor:
sequence:
- service: mqtt.publish
data:
topic: homeassistant/sensor/air-quality-monitor0-co2/monitor1/config
payload: " { \"name\": \"CO2 Climate monitor 1\", \"device_class\": \"carbon_dioxide\", \"state_topic\": \"node/air-quality-monitor:0/co2-meter/-/concentration\", \"unique_id\": \"air-quality-monitor0-co2\", \"unit_of_measurement\": \"ppm\" }"
retain: true
- service: mqtt.publish
data:
topic: homeassistant/sensor/air-quality-monitor0-temperature/monitor1/config
payload: " { \"name\": \"Temperature Climate monitor 1\", \"device_class\": \"temperature\", \"state_topic\": \"node/air-quality-monitor:0/thermometer/0:1/temperature\", \"unique_id\": \"air-quality-monitor0-temperature\", \"unit_of_measurement\": \"°C\" }"
retain: true
- service: mqtt.publish
data:
topic: homeassistant/sensor/air-quality-monitor0-humidity/monitor1/config
payload: " { \"name\": \"Humidity Climate monitor 1\", \"device_class\": \"humidity\", \"state_topic\": \"node/air-quality-monitor:0/hygrometer/0:4/relative-humidity\", \"unique_id\": \"air-quality-monitor0-humidity\", \"unit_of_measurement\": \"%\" }"
retain: true
- service: mqtt.publish
data:
topic: homeassistant/sensor/air-quality-monitor0-pressure/monitor1/config
payload: " { \"name\": \"Air pressure Climate monitor 1\", \"device_class\": \"pressure\", \"state_topic\": \"node/air-quality-monitor:0/barometer/0:0/pressure\", \"unique_id\": \"air-quality-monitor0-air-pressure\", \"unit_of_measurement\": \"Pa\" }"
retain: true
- service: mqtt.publish
data:
topic: homeassistant/sensor/air-quality-monitor0-tvoc/monitor1/config
payload: " { \"name\": \"TVOC Climate monitor 1\", \"device_class\": \"volatile_organic_compounds\", \"state_topic\": \"node/air-quality-monitor:0/voc-lp-sensor/0:0/tvoc\", \"unique_id\": \"air-quality-monitor0-tvoc\", \"unit_of_measurement\": \"ppb\" }"
retain: true
- service: mqtt.publish
data:
topic: homeassistant/sensor/air-quality-monitor0-voltage/monitor1/config
payload: " { \"name\": \"Battery voltage monitor 1\", \"device_class\": \"voltage\", \"state_topic\": \"node/air-quality-monitor:0/battery/-/voltage\", \"unique_id\": \"air-quality-monitor0-voltage\", \"unit_of_measurement\": \"V\" }"
retain: true
mode: single
icon: mdi:monitor-small
And for Clime sensor:
sequence:
- service: mqtt.publish
data:
payload: >-
{"name": "Altitude monitor 2", "device_class": "altitude",
"state_topic":
"node/climate-monitor:0/barometer/0:0/altitude","unique_id":
"climate-monitor-2-altitude", "unit_of_measurement": "m"}
topic: homeassistant/sensor/climate-monitor-altitude/monitor2/config
- service: mqtt.publish
data:
payload: >-
{"name": "Pressure monitor 2", "device_class": "pressure",
"state_topic": "node/climate-monitor:0/barometer/0:0/pressure",
"unique_id": "climate-monitor-2-pressure", "unit_of_measurement":
"Pa"}
topic: homeassistant/sensor/climate-monitor-pressure/monitor2/config
- service: mqtt.publish
data:
payload: >-
{"name": "Illuminance monitor 2", "device_class": "illuminance",
"state_topic": "node/climate-monitor:0/lux-meter/0:0/illuminance",
"unique_id": "climate-monitor-2-illuminance", "unit_of_measurement":
"lx"}
topic: homeassistant/sensor/climate-monitor-illuminance/monitor2/config
- service: mqtt.publish
data:
payload: >-
{"name": "Relative humidity monitor 2", "device_class":"humidity",
"state_topic":
"node/climate-monitor:0/hygrometer/0:4/relative-humidity", "unique_id":
"climate-monitor-2-humidity", "unit_of_measurement": "%"}
topic: homeassistant/sensor/climate-monitor-relative-humidity/monitor2/config
- service: mqtt.publish
data:
payload: >-
{"name": "Temerature monitor 2", "device_class":"temperature",
"state_topic": "node/climate-monitor:0/thermometer/0:0/temperature",
"unique_id": "climate-monitor-2-temperature", "unit_of_measurement":
"°C"}
topic: homeassistant/sensor/climate-monitor-temperature/monitor2/config
mode: single
icon: mdi:home-thermometer-outline
At first, I was thinking that this add-on will send a discovery message on its own based on hardwario nodes.
Now, it makes sense :-) Thank you.
That's not possible, unfortunately, because we cannot download paired sensor topic names from the USB receiver. I asked for that support from the vendor.
Hi, did you manage to get MQTT Discovery working?
Thanks