Skip to content

Instantly share code, notes, and snippets.

@profcturner
Last active July 12, 2025 06:11
Show Gist options
  • Select an option

  • Save profcturner/755f645a6d6c6f41442fdbba554ecb46 to your computer and use it in GitHub Desktop.

Select an option

Save profcturner/755f645a6d6c6f41442fdbba554ecb46 to your computer and use it in GitHub Desktop.
With huge thanks to rafal83/CumulusMX_HomeAssistant.json, here is an English translation of his MQTT file to broker Ecowitt, from Cumulus MX to Homeassistant.
{
"topics": [
{
"topic": "homeassistant/sensor/cumulusmx_exterior_temperature/config",
"data": "{\"name\": \"Exterior Temperature\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.exterior_temperature }}\", \"device_class\": \"temperature\", \"unique_id\": \"cumulusmx_exterior_temperature\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_exterior_humidity/config",
"data": "{\"name\": \"Exterior Humidity\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"%\", \"value_template\": \"{{ value_json.exterior_humidity }}\", \"device_class\": \"humidity\", \"unique_id\": \"cumulusmx_exterior_humidity\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_interior_temperature/config",
"data": "{\"name\": \"Interior Temperature\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.interior_temperature }}\", \"device_class\": \"temperature\", \"unique_id\": \"cumulusmx_interior_temperature\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_interior_humidity/config",
"data": "{\"name\": \"Interior Humidity\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"%\", \"value_template\": \"{{ value_json.interior_humidity }}\", \"device_class\": \"humidity\", \"unique_id\": \"cumulusmx_interior_humidity\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_dew_point/config",
"data": "{\"name\": \"Dew Point\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.dew_point }}\", \"device_class\": \"temperature\", \"unique_id\": \"cumulusmx_dew_point\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_feels_like/config",
"data": "{\"name\": \"Feels Like\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.feels_like }}\", \"device_class\": \"temperature\", \"unique_id\": \"cumulusmx_feels_like\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_temperature_trend/config",
"data": "{\"name\": \"Temperature Trend\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.temperature_trend }}\", \"unique_id\": \"cumulusmx_temperature_trend\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_relative_pressure/config",
"data": "{\"name\": \"Relative Pressure\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"hPa\", \"value_template\": \"{{ value_json.relative_pressure }}\", \"device_class\": \"pressure\", \"unique_id\": \"cumulusmx_relative_pressure\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_pressure_trend/config",
"data": "{\"name\": \"Pressure Trend\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.pressure_trend }}\", \"unique_id\": \"cumulusmx_pressure_trend\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_pressure_change_rate/config",
"data": "{\"name\": \"Rate of Pressure Change\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"hPa/h\", \"value_template\": \"{{ value_json.pressure_change_rate }}\", \"unique_id\": \"cumulusmx_pressure_change_rate\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_wind_speed/config",
"data": "{\"name\": \"Wind Speed\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"km/h\", \"value_template\": \"{{ value_json.wind_speed }}\", \"device_class\": \"wind_speed\", \"unique_id\": \"cumulusmx_wind_speed\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_wind_guest_speed/config",
"data": "{\"name\": \"Wind Gust Speed\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"km/h\", \"value_template\": \"{{ value_json.wind_guest_speed }}\", \"unique_id\": \"cumulusmx_wind_guest_speed\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_wind_speed_degrees/config",
"data": "{\"name\": \"Wind Speed (degrees)\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°\", \"value_template\": \"{{ value_json.wind_speed_degrees }}\", \"unique_id\": \"cumulusmx_wind_speed_degrees\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_current_wind_direction/config",
"data": "{\"name\": \"Current Wind Direction\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.current_wind_direction }}\", \"unique_id\": \"cumulusmx_current_wind_direction\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_wind_direction_trend/config",
"data": "{\"name\": \"Wind Direction Trend\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.wind_direction_trend }}\", \"unique_id\": \"cumulusmx_wind_direction_trend\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_solar_radiation/config",
"data": "{\"name\": \"Solar Radiation\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"W/m²\", \"value_template\": \"{{ value_json.solar_radiation }}\", \"unique_id\": \"cumulusmx_solar_radiation\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_luminosity/config",
"data": "{\"name\": \"Luminosity\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"lux\", \"value_template\": \"{{ value_json.luminosity }}\", \"device_class\": \"illuminance\", \"unique_id\": \"cumulusmx_luminosity\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_uv_index/config",
"data": "{\"name\": \"UV Index\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"UV Index\", \"value_template\": \"{{ value_json.uv_index }}\", \"unique_id\": \"cumulusmx_uv_index\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_weather_forecast/config",
"data": "{\"name\": \"Weather Forecast\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.weather_forecast }}\", \"unique_id\": \"cumulusmx_weather_forecast\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_max_daily_temperature/config",
"data": "{\"name\": \"Maximum Daily Temperature\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.max_daily_temperature }}\", \"device_class\": \"temperature\", \"unique_id\": \"cumulusmx_max_daily_temperature\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_min_daily_temperature/config",
"data": "{\"name\": \"Minimum Daily Temperature\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.min_daily_temperature }}\", \"device_class\": \"temperature\", \"unique_id\": \"cumulusmx_min_daily_temperature\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_max_daily_feelslike/config",
"data": "{\"name\": \"Maximum Daily Feelslike\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.max_daily_feelslike }}\", \"device_class\": \"temperature\", \"unique_id\": \"cumulusmx_max_daily_feelslike\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_min_daily_feelslike/config",
"data": "{\"name\": \"Minimum Daily Feelslike\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"°C\", \"value_template\": \"{{ value_json.min_daily_feelslike }}\", \"device_class\": \"temperature\", \"unique_id\": \"cumulusmx_min_daily_feelslike\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_daily_dominant_wind_direction/config",
"data": "{\"name\": \"Daily Dominant Wind Direction\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.daily_dominant_wind_direction }}\", \"unique_id\": \"cumulusmx_daily_dominant_wind_direction\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_daily_max_wind_speed/config",
"data": "{\"name\": \"Daily Maximum Wind Speed\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"km/h\", \"value_template\": \"{{ value_json.daily_max_wind_speed }}\", \"device_class\": \"wind_speed\", \"unique_id\": \"cumulusmx_daily_max_wind_speed\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_daily_max_wind_gust/config",
"data": "{\"name\": \"Daily Maximum Wind Gust\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"km/h\", \"value_template\": \"{{ value_json.daily_max_wind_gust }}\", \"device_class\": \"wind_speed\", \"unique_id\": \"cumulusmx_daily_max_wind_gust\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_hours_of_sunshine/config",
"data": "{\"name\": \"Hours of Sunshine\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"h\", \"value_template\": \"{{ value_json.hours_of_sunshine }}\", \"unique_id\": \"cumulusmx_hours_of_sunshine\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_sunrise/config",
"data": "{\"name\": \"Sunrise\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.sunrise }}\", \"unique_id\": \"cumulusmx_sunrise\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_sunset/config",
"data": "{\"name\": \"Sunset\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.sunset }}\", \"unique_id\": \"cumulusmx_sunset\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_days_without_rain/config",
"data": "{\"name\": \"Days Without Rain\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.days_without_rain }}\", \"unique_id\": \"cumulusmx_days_without_rain\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_consecutive_days_rain/config",
"data": "{\"name\": \"Consecutive Days of Rain\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.consecutive_days_rain }}\", \"unique_id\": \"cumulusmx_consecutive_days_rain\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_version/config",
"data": "{\"name\": \"Cumulus Version\", \"state_topic\": \"CumulusMX/state\", \"value_template\": \"{{ value_json.version }}\", \"unique_id\": \"cumulusmx_version\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_rainfall/config",
"data": "{\"name\": \"Rainfall\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"mm\", \"value_template\": \"{{ value_json.rainfall }}\", \"device_class\": \"precipitation\", \"unique_id\": \"cumulusmx_rainfall\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "homeassistant/sensor/cumulusmx_average_rainfall/config",
"data": "{\"name\": \"Average Rainfall\", \"state_topic\": \"CumulusMX/state\", \"unit_of_measurement\": \"mm/h\", \"value_template\": \"{{ value_json.average_rainfall }}\", \"device_class\": \"precipitation\", \"unique_id\": \"cumulusmx_average_rainfall\", \"device\": {\"identifiers\": [\"cumulusmx_station\"], \"name\": \"CumulusMX Station\", \"model\": \"CumulusMX\", \"manufacturer\": \"Cumulus\"}}",
"retain": true
},
{
"topic": "CumulusMX/state",
"data": "{\"exterior_temperature\": \"<#temp rc=y>\", \"exterior_humidity\": \"<#hum>\", \"interior_temperature\": \"<#intemp rc=y>\", \"interior_humidity\": \"<#inhum>\", \"dew_point\": \"<#dew rc=y>\", \"feels_like\": \"<#feelslike rc=y>\", \"temperature_trend\": \"<#temptrend rc=y>\", \"relative_pressure\": \"<#press rc=y>\", \"pressure_trend\": \"<#presstrend>\", \"pressure_change_rate\": \"<#presstrendval rc=y>\", \"wind_speed\": \"<#wlatest rc=y>\", \"wind_guest_speed\": \"<#wgust rc=y>\", \"wind_speed_degrees\": \"<#bearing>\", \"current_wind_direction\": \"<#currentwdir>\", \"wind_direction_trend\": \"<#wdir>\", \"solar_radiation\": \"<#SolarRad rc=y>\", \"luminosity\": \"<#Light rc=y>\", \"uv_index\": \"<#UV rc=y>\", \"weather_forecast\": \"<#forecast>\", \"max_daily_temperature\": \"<#tempTH rc=y>\", \"min_daily_temperature\": \"<#tempTL rc=y>\", \"max_daily_feelslike\": \"<#feelslikeTH rc=y>\", \"min_daily_feelslike\": \"<#feelslikeTL rc=y>\", \"daily_dominant_wind_direction\": \"<#domwinddir>\", \"daily_max_wind_speed\": \"<#windTM rc=y>\", \"daily_max_wind_gust\": \"<#wgustTM rc=y>\",\"hours_of_sunshine\": \"<#SunshineHours rc=y>\",\"sunrise\": \"<#sunrise>\", \"sunset\": \"<#sunset>\", \"days_without_rain\": \"<#ConsecutiveDryDays>\", \"consecutive_days_rain\": \"<#ConsecutiveRainDays>\", \"rainfall\": \"<#rfall>\", \"average_rainfall\": \"<#rrate>\", \"version\": \"<#NewBuildNumber>\"}",
"retain": false
}
]
}
@dazimmermann
Copy link

dazimmermann commented Jun 7, 2025

I just used this because I didn't want the French version. How is the actual data getting into this? When I subscribe, I see all the topics updating, but no actual values like the temperature.

EDIT: Nevermind. I see the references the CumulusMX and it's values coming in on that separate publication. Nevertheless, my HA isn't autodiscovering any of this.

@profcturner
Copy link
Author

@dazimmermann oh, that's interesting. When I finished putting the file in my configuration I went back to Home Assistant to try and tweak any necessary MQTT configuration and found the sensors already reported.

I put a few more details on my blog if it's at all helpful. https://www.piglets.org/blog/2025/06/06/what-links-an-ecowitt-weather-station-cumulus-mx-and-home-assistant-mqtt/

But it sounds like you are up and running now?

@dazimmermann
Copy link

Yeah, I figured it out. It turns out that I had to remove and reinstall the MQTT app, then restart HA. Thanks for translating that. BTW, I think there is one entity left in there in French. I think it was a trend of some kind. I ran across it but there are some more parameters I want out of CumulusMX like rain rate, hourly and 24 hour rain I'll be adding to your format file, so I'll fix it then.

It's the dry season here, so I won't have to worry about it too soon.

@profcturner
Copy link
Author

Ah, you are right! I had temperature_trend translated as the sensor name, but not the description. Fixed, I hope. Well spotted.

@dazimmermann
Copy link

dazimmermann commented Jul 12, 2025

Just leaving a note here.

I've posted my complete CumulusMX template file [on the other (French) post about this.] (https://gist.github.com/rafal83/9595d4e6634e748c9fb83bc84419a758?permalink_comment_id=5673290#gistcomment-5673290)

It has about a dozen more sensors, I've renamed many of them to match CumulusMX tags and documentation, and I've rearranged the json to put the discovery records and state data into alphabetical order.

I may redo this once more so the IDs don't have such verbose CumulusMX stuff in front of each one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment