Two ESPHome changes merged over the weekend deal with climate devices that do not work in Celsius. The first, by Johan Henkens (jhenkens), reviewed by bdraco and merged on 25 October 2026, adds a unit_of_measurement option to the template climate and the template water heater and fixes how visual temperatures are converted on platforms that report in Fahrenheit. The second, by KD5RYN, merged on 26 October, lets Gree air conditioners show the setpoint in Fahrenheit on their own panel. Both should ship in ESPHome 2026.11.

Units for template entities

Until now a template climate or water heater was always Celsius. The new option accepts °C (the default), °F or K:

water_heater:
  - platform: template
    name: Boiler
    unit_of_measurement: °F
    current_temperature: !lambda "return id(tank_temperature).state;"
    target_temperature: !lambda "return 120.0f;"
    visual:
      min_temperature: 100
      max_temperature: 140
      target_temperature_step: 1

A value written with a unit, such as 30°C, is converted into the entity's unit, and a value without a unit is taken as that unit. A sensor that feeds a template climate must report in the same unit, which config validation now checks. Kelvin is rejected together with MQTT, because Home Assistant's MQTT climate discovery only knows C and F.

A fix that can change existing configs

The bigger part of the change is a bug fix. On platforms that work in Fahrenheit, a visual limit written with a unit was converted to Celsius and then used as a Fahrenheit number: max_temperature: 30°C reached the device as 30 °F. Now it becomes 86 °F. This affects friedrich and islandaire, which always report in °F, and mitsubishi_cn105 with use_fahrenheit: true on its hub. Values written without a unit behave as before.

One more detail: visual.temperature_step: 1°F used to be stored as 1.0 because the unit was ignored. On a Celsius entity it is now 0.556. If you wrote steps with units, check the result after updating.

Gree panel in Fahrenheit

The new use_fahrenheit: true for the gree platform makes the indoor unit display Fahrenheit, so the panel no longer shows 22 while Home Assistant shows 72. The author tested it on a Blueridge mini-split with a YX1FF remote and an ESP8285, comparing the frames with those from the stock remote. Its documentation is still open.

If all your devices work in Celsius, the one thing worth checking after the update is a temperature_step written with a unit.