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
}
]
}
@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