MQTT Thermostat is not showing on Google assistant

I have a climate device that is configured with MQTT. https://www.home-assistant.io/components/climate.mqtt/

This component is not converted to to a google thermostat device.

Any suggestions?

works perfectly fine for me. do you expose the climate domain in the google assistant configuration?

exposed_domains:
  - climate
2 Likes

Same problem for me, the climate mqtt thermostat doesn’t work with Google assistant. It doesn’t get synchronized to Google assistant.

To be clear yes I have the - climate in the exposed domains, and a test generic thermostat does work but not the platform mqtt one.

i’ve noticed some strange behaviors with google assistant in the last weeks that were not hass.io related. you may be facing similar problems.

nevertheless you could try my config if you want to. maybe it works then.

just alter the topics beginning with things/ to fit yours. the void/ ones are just there for the sake of completeness.

climates.yaml:

- platform: mqtt
  name: living_room_hvac
  qos: 1
  retain: false
  initial: 21
  availability_topic: 'things/device_slug/events/availability'
  current_temperature_topic: 'things/device_slug/properties/temperature'
  temperature_command_topic: 'void/device_slug/properties/temperature/target/set'
  mode_command_topic: "void/device_slug/properties/mode/set"
  modes:
    - "auto"
    - "off"
    - "cool"
    - "heat"

customize.yaml:

climate.living_room_hvac:
  friendly_name: Thermostat

google_assistant.yaml:

project_id: !secret ga_project_id
api_key: !secret ga_api_key
exposed_domains:
  - climate
entity_config:
  climate.living_room_hvac:
    room: Living Room
1 Like

Thanks for sharing your config!

I see the thermostat in Google Home now :slight_smile: but still can’t change the temperature with Google but in HA I can still change it. The thermostat in Google Home is in the app now but there is no possibility to change the temperature. The plus and minus don’t react and when I give a spoken command I get the message that the setpoint is not available for the thermostat.

This is my current config I have no mode command because it is just a central heating.

configuration:

- platform: mqtt
  name: verwarming
  temperature_command_topic: 'home/thermostat/3008/target'
  temperature_state_topic: 'home/thermostat/3008/state'
  current_temperature_topic: "home/sensor/10909/tmp"
  unit_of_measurement: 'ÂșC'
  qos: 1
  retain: false
  project_id: xxxx
  api_key: xxxx
  exposed_domains:
    - switch
    - climate
  entity_config:
      climate.verwarming:
            room: Huiskamer
    climate.verwarming:
      target_temp_step: 0.5
      friendly_name: Thermostaat

i’m able to adjust the thermostat in google home. did you try it with using mode_command_topic and modes (off and heat should be enough)? it doesn’t matter if the command topic points to nowhere. just give it a try and see if you are able to issue the command then.

btw: your entries below entity_config are not properly indented (way too much spaces).

1 Like

Yes it is working now, although only for speaken commands but that’s perfect!

The problem was the missing mode_command_topic

Many thanks!

Tried all suggestions here but nothing is working for me. :frowning_face:
I running HA 0.81.6 on a raspberry pi 3 (manuelly installled so no Hass.io)

I’am running 0.81.0 and also no Hass.io mine current working configuration is:

- platform: mqtt
  name: verwarming
  temperature_command_topic: 'home/thermostat/3008/target'
  temperature_state_topic: 'home/thermostat/3008/state'
  current_temperature_topic: "home/sensor/10909/tmp"
  mode_state_topic: "domoticz/out/device/3002"
  mode_command_topic: "home/switch/3002/status"
  modes:
    - "off"
    - "on"
  unit_of_measurement: 'ÂșC'
  qos: 1
  retain: false

But it is not always working sometimes I get the answer: Thermostat is not available
and I have a thermostat in the home app but can’t use the dial in it but that’s not a problem for me, spoken commands work!

EDIT: now I upgraded to version 0.82 and it stil works

Problem solved:grinning:
I only had supported mode auto, but changing this to modes : “heat” and “off” it appeared in google home

Ok nice!

Do you have a dial to set the temperature in the Home app for the thermostat? And if yes can you share your configuration.yaml of the generic thermostat?

Yes i see the dial, but i don’t use a generic thermostat. (Topic is about MQTT Thermostat)

I can confirm that the home thermostat -> mqtt climate doesn’t work correctly anymore. I needs “off” and “heat” but my mqtt hvac only heats or idles. But if I use my own mode “idle” it doesn’t work anymore. So now I use “off” instead to make the google home voice commands work, but now the dial doesn’t work anymore, it’s deactivated when the mode is “off”. But without it the google home controls don’t work.

You are right, i didn’t noticed it yet, when i looked at it was properably heating, but when it is not heating, you are not able to change setpoints.

I did a bit of research. It seems that the modes supported by Google home are more geared towards heating + cooling systems, also they do not support custom modes or other modes supported by HASS and not G HOME. So heating is has nothing to do with the heating output stage being on or off. Most american/ non European AC units have auto/ heat / cool /(heatcool) / off switch. Google home does not support viewing the state of the switch to a valve or heating unit. It just show the mode your system is in (AC or Heat etc.). So instead of ‘Idle’ or ‘off’ I use cool now (although by atmosphere, it is sort of true :wink: ). I wonder if heatcool would be more appropriate, but I still have to test this.

edit: in retrospect I think that if your system only supports heating and only has an off mode by winding it to a lower temperature than ambient, leave it on HEAT mode indefinitely

More info:

excerpt:

vailableThermostatModes Comma-separated list of modes supported by this specific device. Currently supports specific known modes from the following list; more and custom ones will be added as needed. These modes all have local expansion aliases ( off == “standby”, etc).

  • off Heating/Cooling activity disabled.
  • heat If the device supports heating.
  • cool If the device supports cooling.
  • on If off, on restores the previous mode of the device.
  • heatcool If the device supports maintaining heating/cooling to target a range.
  • auto If the device supports an “automatic” mode where the temperature is set based on a schedule, learned behavior, AI, or some other related mechanism.
  • fan-only If the device supports a mode where only the fan is on (not fan and another mode like cool .)
  • purifier If the device supports a purifying mode.
  • eco If the device supports an “eco” (that is, energy-saving) mode.
  • dry If the device supports a dry mode
    thermostatTemperatureUnit C or F . The unit the device is set to by default. The device “speaks” using its display unit.
1 Like