Card Settings allow some temperatures to be K, C, F others not. Why?

I am fairly new to HA. I have built a few BME680/ESP8266 sensors and integrated them. I have also integrated a number of other devices around my house including a pair of Honewell Total Control (really??) Thermostats.

I like to have consistency in the display so I treid to put all the temperature readings in Farenheit. I can obviously do that in Settings > General > Unit Settings but, I did some of it in yaml for the esp8266s whilst I was getting all my hardware stable and with consistent readings. I wondered why the espHome devices seemed to be natively showing C whilst the themostats display F.

Clicking on a displayed entity displays a graph. This panel has a Settings cog wheel. Clicking this revealed a difference in the available options between the Honeywell thermostats and the espHome devices. I am wondering how this came about and, what I can do to have the same Settings options for espHome as the themostats have.

Below are pics showing these differences. ANy insight is gratefully received.

Thanks



Do your esphome entities have device_class: temperature set?

No, none of them do. Here is the BME680 code I am using.

i2c:
  sda: 4
  scl: 5
  scan: true
  id: bus_a

bme680_bsec:
  address: 0x77

sensor:
  # BME680
  - platform: bme680_bsec
    temperature:
      id: e_outdoor_bme680_temperature
      name: "E-Outdoor Temperature"
      #unit_of_measurement: "°F"
      unit_of_measurement: "F"  # Do not use degree " ° " symbol  
      filters:  
        - offset: -1.0  # Adjust offset Degrees      
        - calibrate_linear:
          - 0.0 -> 0.0
          - 100.0 -> 100.0
        - lambda: return x * 9.0 / 5.0 + 32.0;

When I added them to espHome I just let espHome handle the install so the esp8266 is defined as an esp01_1m even though I am using Wemos D1 Mini devices.

esphome:
  name: esphome-web-303ecb
  friendly_name: Outdoor Environment

esp8266:
  board: esp01_1m

Please can you let me have a code fragment that points me in the right direction.
btw: I have the samesituation with humidity and maybe pressure too.

Thank you.

While it probably will not make any difference in your case, I would change the board to nodemcuv2 instead of esp01_1m. While I have run into a few problems with this, it was rare, but for future reference you should probably not use esp01 with a esp8266.

sensor:
  # BME680
  - platform: bme680_bsec
    temperature:
      id: e_outdoor_bme680_temperature
      name: "E-Outdoor Temperature"
      unit_of_measurement: "°C"
      device_class: temperature
      state_class: measurement

You should then be able to select °F/C/K in Home Assistant.

Thank you. That worked perfectly. I had surmised that enetities probably had attributes but had not searched for how to assign them. Rather I had attempted to batter yaml into doing what I wanted. That worked but attribute setting on a per entity basis is far more elegant.

Thanks again.
Pete

Yes, I probably should assign the correct board type in yaml. This has been nagging me for a while. Now I have the elegant solution of entity attribute setting working, I shall got back and assign my ESP8266 board type correctly.

Thank you for the tip.
Pete

Just to close this out, I changed all my yaml files to reflect the entity attribute assignment but found that some of the Frontend Cards would not accept Unit changes.

Rebooting HA from the UI fixed this.

Done. On to the next part I do not understand.