-
-
Save kmdm/29f740e5f36036fb23daba8f2109c359 to your computer and use it in GitHub Desktop.
# Assumes you have a topic structure like: heatpump/<room> and heatpump/<room>/set | |
# E.g. heatpump/bedroom, heatpump/bedroom/set, heatpump/office, heatpump/office/set | |
# | |
# Configure the MQTT HVAC climate platforms (Example for master bedroom, office and nursery. Change to suit.): | |
climate: | |
- <<: &mitsu_platform | |
platform: mqtt | |
modes: | |
- "off" | |
- heat | |
- dry | |
- cool | |
- fan_only | |
- auto | |
fan_modes: | |
- AUTO | |
- QUIET | |
- "1" | |
- "2" | |
- "3" | |
- "4" | |
swing_modes: | |
- AUTO | |
- "1" | |
- "2" | |
- "3" | |
- "4" | |
- "5" | |
- SWING | |
current_temperature_template: "{{ value_json.roomTemperature }}" | |
temperature_state_template: "{{ value_json.temperature }}" | |
swing_mode_state_template: "{{ value_json.vane }}" | |
fan_mode_state_template: "{{ value_json.fan }}" | |
mode_state_template: > | |
{% if value_json.power == "OFF" %} | |
off | |
{% elif value_json.mode == "FAN" %} | |
fan_only | |
{% else %} | |
{{ value_json.mode|lower }} | |
{% endif %} | |
- <<: *mitsu_platform | |
name: "Office A/C" | |
current_temperature_topic: "heatpump/office/status" | |
temperature_command_topic: "heatpump/office/_set/temperature" | |
temperature_state_topic: "heatpump/office" | |
swing_mode_command_topic: "heatpump/office/_set/vane" | |
swing_mode_state_topic: "heatpump/office" | |
fan_mode_command_topic: "heatpump/office/_set/fan" | |
fan_mode_state_topic: "heatpump/office" | |
mode_command_topic: "heatpump/office/_set/mode" | |
mode_state_topic: "heatpump/office" | |
- <<: *mitsu_platform | |
name: "Master A/C" | |
current_temperature_topic: "heatpump/master/status" | |
temperature_command_topic: "heatpump/master/_set/temperature" | |
temperature_state_topic: "heatpump/master" | |
swing_mode_command_topic: "heatpump/master/_set/vane" | |
swing_mode_state_topic: "heatpump/master" | |
fan_mode_command_topic: "heatpump/master/_set/fan" | |
fan_mode_state_topic: "heatpump/master" | |
mode_command_topic: "heatpump/master/_set/mode" | |
mode_state_topic: "heatpump/master" | |
- <<: *mitsu_platform | |
name: "Nursery A/C" | |
current_temperature_topic: "heatpump/nursery/status" | |
temperature_command_topic: "heatpump/nursery/_set/temperature" | |
temperature_state_topic: "heatpump/nursery" | |
swing_mode_command_topic: "heatpump/nursery/_set/vane" | |
swing_mode_state_topic: "heatpump/nursery" | |
fan_mode_command_topic: "heatpump/nursery/_set/fan" | |
fan_mode_state_topic: "heatpump/nursery" | |
mode_command_topic: "heatpump/nursery/_set/mode" | |
mode_state_topic: "heatpump/nursery" | |
# MQTT HVAC uses individual command topics but HeatPump does not | |
# so use an automation to push the commands to the HP (only one automation needed due to wildcards): | |
alias: 'Redirect all MQTT HVAC set commands to the heatpumps' | |
trigger: | |
- platform: mqtt | |
topic: heatpump/+/_set/+ | |
action: | |
- service: mqtt.publish | |
data_template: | |
topic: '{{ "heatpump/" + trigger.topic.split("/")[1] + "/set" }}' | |
payload: > | |
{% if trigger.topic.split("/")[-1] == "mode" %} | |
{% if trigger.payload|upper == "OFF" %} | |
{"power":"OFF"} | |
{% elif trigger.payload == "fan_only" %} | |
{"power":"ON","mode":"FAN"} | |
{% else %} | |
{{ "{\"power\":\"ON\",\"mode\":"|safe + trigger.payload|upper|tojson + "}" }} | |
{% endif %} | |
{% else %} | |
{{ "{" + trigger.topic.split("/")[-1]|tojson + ":" + trigger.payload|tojson + "}" }} | |
{% endif %} |
I have the same issue as above - did you find a solution @fernmac2 ?
Hi! This seems to be working, but there's just one issue: the data coming in is in Celsius, but I'd like to display it in Fahrenheit. Currently, Hassio is showing the Celsius temperature but the units are wrong (shows °F). Any ideas?
Hi! This seems to be working, but there's just one issue: the data coming in is in Celsius, but I'd like to display it in Fahrenheit. Currently, Hassio is showing the Celsius temperature but the units are wrong (shows °F). Any ideas?
Assume this will be because your HA system is set to Imperial, but the sensor value returned is just a raw number without the context of a unit of measurement. Can you try converting the value returned in the json from C to F in the value template?
e.g.
{{((value_json.roomTemperature * 9 / 5)+ 32)|round(1)}}
{{((value_json.temperature * 9 / 5)+ 32)|round(1)}}
@ajobbins, This worked, but I lost the slider:
Thanks for this. I've got it going again which is great. Haven't had it working since compatibility broke last year sometime. Seems to be a lot of lag that wasn't there with the custom component. Not sure where that's coming from, but not a big issue. I also made some slight modifications to remove the "room" part of the topic so I didn't have to update my sketch.
@ajobbins, This worked, but I lost the slider:
I know this was a while back, but I'd say that you might need to adjust the "max_temp" config option in the MQTT HVAC integration. The default seems to be 35 which you can check in the developers -> states section.
Am i mistaken in that current HASS versions don’t allow wildcards in MQTT triggers anymore? For a single AC, it’s feasible to add triggers for the precise individual heatpump/<device>/_set/<parameter>
topics, but for larger deployments this will likely be too arduous. Does anyone have a nicer idea for a fix?
I no longer have these units due to moving but if that's the case it sounds more like a regression and I'd open a bug report.
Unless you see an issue/change that says this was intentionally removed/changed.
If I was to set this up now, I would probably use one of the following which both support the MQTT climate integration natively:
https://github.com/unixko/MitsuCon
https://github.com/geoffdavis/esphome-mitsubishiheatpump
I finally got it working without the component, using your code (thank you so much).
I only have an issue: the on command does not work, although if I click the hot or cold, the a/c goes to on. All other buttons work fine and I can turn it off, any suggestion?