alexa_media_player
alexa_media_player copied to clipboard
Amazon Thermostat reports incorrect temperature
I am able to see echo temperature entities correctly. In the process of updating the integration to do this via checking the box to include devices connected via echo, I also got entity temperatures for the amazon thermostats. This was unexpected but good, the issue is that the temperature is reported incorrectly. I have five of these thermostats and they all do the same. All the echos, I have four report temperature correctly.
Is your feature request related to a problem? Please describe. This is not a request to report a problem but if possible to enhance the integration to report the correct temperature for the amazon thermostats.
Describe alternatives you've considered I have multiple temperature sensors zigbee, echo, etc.
If you are able to do this also consider exposing the humidity reading on the amazon thermostat, if possible.
Thanks very much
I have observed this as well. It looks like it is converting the temperature from Celcius to Fahrenheit even though it is already in Fahrenheit.
I have the same problem. i got aqara thermostat and alexa covert my Celcius temperature in Fahrenheit . I dont know why. With old thermostat worked all well.
Thanks, looks like we'll need a PR to address this use case. It can't be tied to a locale setting or I think HA may have changed the default temperature scale.
Hello, Thanks for an answer. Do you need something from me ? Protocols or something else ? Thanks
From: Alan Tse @.> Sent: Sunday, April 9, 2023 10:43:58 AM To: custom-components/alexa_media_player @.> Cc: AlexEr89 @.>; Comment @.> Subject: Re: [custom-components/alexa_media_player] Amazon Thermostat reports incorrect temperature (Issue #1890)
Thanks, looks like we'll need a PR to address this use case. It can't be tied to a locale setting or I think HA may have changed the default temperature scale.
— Reply to this email directly, view it on GitHubhttps://github.com/custom-components/alexa_media_player/issues/1890#issuecomment-1501077517, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYDICPMFOPVBZ7TY4YZ5CI3XAJZE5ANCNFSM6AAAAAAWF4CJPI. You are receiving this because you commented.Message ID: @.***>
This bug report has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed automatically.
This issue is still present. Any fix please?
This bug report has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed automatically.
The integration still reports the incorrect temperature for Amazon thermostats. It reports kelvin when Fahrenheit is checked.
This bug report has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed automatically.
Issue is still present
This bug report has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed automatically.
The issue has received no activity for 60 days and will be closed in a week.
This bug report has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed automatically.
The issue has received no activity for 60 days and will be closed in a week.
I just wanted to chime in and say that this is happening to me as well. I'm in the US, and as such all of my Alexa devices and Amazon Thermostat are all set to use Fahrenheit. However, the Thermostat Temperature being reported through the Alexa Media Player shows as C, even though the temperature number is clearly in Fahrenheit.
In addition to showing a Fahrenheit temperature as Celsius, I have also noticed that the temperature from my Amazon Thermostat is being rounded down to the nearest whole number, despite setting the temperature's display precision to use decimal places. In my above screenshot, you can see the temperature is shown as 64.0, but the temperature of the Echo in the same room is 64.8. No matter what temperature it is in my home, the thermostat temperature always shows .0 for the decimal precision, i.e., the actual temperature could be anywhere between 64.1 and 64.9, and the thermostat temperature will always show as 0 decimal precision (64.0) in Home Assistant. This makes it difficult to create precise automations based on the thermostat temperature.
This bug report has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed automatically.
The issue has received no activity for 60 days and will be closed in a week.
This issue has not been fixed yet - please do not close it.
This bug report has been labelled as help wanted since there has been no activity in the last 3 weeks. It will not be closed automatically.
The issue has received no activity for 60 days and will be closed in a week.
This issue has not been fixed yet, please do not close it.
@inger147 Are you able to change the unit of measurement from C
to F
by clicking on the sensor and editing settings?
If you do that does it then display 147.2 F
??
If it then displays a C to F converted value, I am initially thinking that Amazon is providing incorrect/different device settings info for that sensor from other sensors. It appears the the integration is simply setting up all temperature sensors based on info Amazon provides to the query and to somehow override for this device type likely won't be a trivial task. Unfortunately, I only have Echo's to test and play around with the code with. An HA debug log entry for that sensor being retrieved from Amazon as well as one for a sensor that's correct might help me see if something could somehow be coded to compensate.
async def create_temperature_sensors(account_dict, temperature_entities):
"""Create temperature sensors."""
devices = []
coordinator = account_dict["coordinator"]
for temp in temperature_entities:
_LOGGER.debug(
"Creating entity %s for a temperature sensor with name %s",
temp["id"],
temp["name"],
)
serial = temp["device_serial"]
device_info = lookup_device_info(account_dict, serial)
sensor = TemperatureSensor(coordinator, temp["id"], temp["name"], device_info)
account_dict["entities"]["sensor"].setdefault(serial, {})
account_dict["entities"]["sensor"][serial]["Temperature"] = sensor
devices.append(sensor)
return devices
The temperature sensor in home assistant "Alexa Media Player" has been unavailable for several days.
@inger147 Are you able to change the unit of measurement from
C
toF
by clicking on the sensor and editing settings? If you do that does it then display147.2 F
??
It is 77 degrees F this morning in my house; the Amazon thermostat temperature shows 77 C in Home Assistant. When I changed it to F in the settings, it showed 170.6 F until I changed it back. (My automations were not happy with that value - I started getting notifications that my house was on fire :))
The temperature sensor in home assistant "Alexa Media Player" has been unavailable for several days.
I noticed this too - to fix this I went to Settings/Integrations/Alexa Media Player/Configure, and check the box for "Include devices connected via Echo". I think one of the recent updates to Alexa Media Player caused this setting to become unchecked by default.
Unfortunately, I only have Echo's to test and play around with the code with.
I got my Amazon Thermostat essentially for free, because after I bought mine and installed it, I was able to get a rebate back from my gas/electric company that fully covered the cost I paid for it. YMMV, as I'm not sure if all utility companies offer this, but it might be worth looking into if you don't already have a smart thermostat.
I strongly suspect this is an Amazon related issue and I'm struggling to see how the integration is going to second guess what Amazon is telling it. If the native unit of measurement is in C (like my Nest thermostat is) but it can display that native measurement converted internally to F and it does not disclose that fact clearly to a connecting integration then we are SOL. All of this is compounded by the host device's native UOM vs displayed UOM. The integration can only assume that the connected device internal UOM matches the host device's internal UOM. If you are confused by now, you should be, I know I am! If the host device is reporting a value with internal UOM in C then the integration can only assume the connected device is as well.
I can rewrite the code segment above to log more debug info a little later like this but I don't know if it'll shed any light or not:
async def create_temperature_sensors(account_dict, temperature_entities):
"""Create temperature sensors."""
devices = []
coordinator = account_dict["coordinator"]
for temp in temperature_entities:
serial = temp["device_serial"]
device_info = lookup_device_info(account_dict, serial)
_LOGGER.debug(
"Serial %s - Creating entity %s for temperature sensor %s; device_info: %s",
serial,
temp["id"],
temp["name"],
device_info
)
sensor = TemperatureSensor(coordinator, temp["id"], temp["name"], device_info)
account_dict["entities"]["sensor"].setdefault(serial, {})
account_dict["entities"]["sensor"][serial]["Temperature"] = sensor
devices.append(sensor)
return devices
It is 77 degrees F this morning in my house; the Amazon thermostat temperature shows 77 C in Home Assistant. When I changed it to F in the settings, it showed 170.6 F until I changed it back. (My automations were not happy with that value - I started getting notifications that my house was on fire :))
Can you try changing the Echo device from F to C and advise what the connected thermostat then shows? Change Temperature Unit on Your Echo Dot with clock ..