You could try querying the nest sdm api using the walkthrough in the device access console (involves some curl commands) and seeing if it is returned. If not, then worth a discussion with Google. If so, then we can see what home assistant isn’t supporting right.
The same thing just happened to me. I had everything working fine for weeks, then this week one of my E thermostats just disappeared from HA.
The hardware itself and the Nest app are working fine. My other two thermostats (another E and a Gen 3) are showing up fine in HA. Nothing in the debug-level logs to indicate a problem. Cameras working fine.
I will try the suggestion to hit the SDM API directly to see if Google is returning it correctly, but please update here if you figure anything out.
I only ever hear reports about this for thermostats for what it’s worth.
This happened to me and I restarted the thermostat device itself and it came back, which is common. (Notably OP said they rebooted the device and it didn’t help them but it may help you to try).
Good luck and report back what you find out.
I think I know what’s going on. I restarted ha, and ha core logs | grep nest
doesnt return anything. Is there a specific version I have to be on?
I do see it listed here: https://homeassitant.local:8123/config/info. Any place else I can check if I have this integration and why it doesn’t show as loaded? The version I’m on : 2021.1.1
Is the integration listed here? https://homeassistant.local:8123/config/integrations
HA version is good.
configuration.yaml
looks ok but you’ve masked your nest entries so I can’t tell if they look right or not.
Have a look at my config…
logger:
default: info
# default: critical
logs:
AIOGitHubAPI: debug
# bellows.zigbee.application: info
# bellows.ezsp: info
# custom_components.alexa_media: debug
# custom_components.homeseer: debug
# custom_components.entity_controller: info
# custom_components.entity_controller.fireplace_light_coontrol: debug
# custom_components.hacs: debug
google.cloud.pubsub_v1: debug
google.cloud.pubsub_v1.subscriber._protocol.leaser: debug
google_nest_sdm: debug
google_nest_sdm.device: debug
google_nest_sdm.device_manager: debug
google_nest_sdm.google_nest_subscriber: debug
google_nest_sdm.event: debug
google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager: debug
hacs: debug
homeassistant.components.nest: debug
homeassistant.components.nest.sensor_sdm: debug
# homeassistant.components.zha: debug
homeassistant.core: debug
# pyhs3: debug
queueman: debug
# zigpy: info
# zigpy_cc: info
# zigpy_deconz.zigbee.application: info
# zigpy_deconz.api: info
# zigpy_xbee.zigbee.application: info
# zigpy_xbee.api: info
# zigpy_zigate: info
# zhaquirks: info
magic_areas: !include magic_areas.yaml
media_player:
# Use the Python ADB implementation
- platform: androidtv
name: Bedroom TV
host: 192.168.1.91
mqtt:
discovery: true
discovery_prefix: homeassistant
nest: !include nest.yaml
client_id: !secret nest_client_id
client_secret: !secret nest_client_secret
project_id: !secret nest_project_id
subscriber_id: !secret nest_subscriber_id
nest_client_id: 305307960111-e1cnd1a19hfsn1p6oha2f7umdd58kfi3.apps.googleusercontent.com
nest_client_secret: #########-##############
nest_project_id: ebff85b2-5277-45ea-b794-6e6e76109995
nest_subscriber_id: projects/home-assistant-295423/subscriptions/nest
Thanks! Here’s my config yaml section:
nest:
client_id: 921246909068-7jnv821lbqhs8d8l09qafvc2agjiab9e.apps.googleusercontent.com
client_secret: XXXXXXXXX
project_id: 2659c84b-7915-45e6-8983-414aec04e110
subscriber_id: projects/nest-home-project-2/subscriptions/nesthome2
I did some further debugging. if I remove this section entirely, I see the logs which says Loaded nest from homeassistant.components.nest
but the moment I add this section, that line of log disappears. So it has to be something with my configuration.yaml itself.
I’ve never used ha core logs
until now. It appears to be a partial list of only the most recent entries. I ran ha core logs | more
here and I only see those within the last minute or so (only three pages). I’ve always used https://homeassistant.local:8123/config/logs and the button LOAD FULL HOME ASSISTANT LOG then use the browser’s find
(usually ctrl+F) copy/paste the into Notepad, Excel or what have you.
Ah, I was logged into the instance actually, so was looking at /config/home-assistant.log which is what the web interface is also showing. The behavior I’m seeing is this:
If I remove the nest: section from the YAML file, and do a restart of my HA instance, then I see the following entry:
2021-01-15 19:12:29 INFO (SyncWorker_5) [homeassistant.loader] Loaded nest from homeassistant.components.nest
Full logs: https://pastebin.com/ZaedsuRy
When I add the section back to the configuration.yaml and restart HA, I no longer see the above line.
Logs: https://pastebin.com/mR6a4pEN
In the above logs if you search for “nest” it seems it finds it in the YAML, but it doesn’t say anything about loading the integration itself from homeassistant.components.nest. I’m really out out clues at this point.
I am also putting breakpoints in the consent flow screen from Google OAuth, and it does seem the callback URI is correct. But I’m surprised to see absolutely no logs related to nest on the HA side. So I think somethings definitely wrong in the setup on HA side.
EDIT:
I think I have it figured out. I still dont have a solution yet however. I tried setting up the same flow for Spotify (since it uses OAuth), and ran into the same issue. i.e the integration opens a new tab, I grant access and the tab closes. Nothing happens after that. Spotify, however, allows me to use local IP as redirect URI, so I set it to 10.0.0.5:8123/auth/external/callback and retried the steps but this time from local ip. And it worked! I can see logs and spotify integration setup.
I think nest is facing the same issue. However, google doesn’t allow me to use a private IP for redirect URI. Will try to debug further, if everything fails, I can setup some random TLD as redirect URI and hack local DNS to point to 10.0.0.5 instead.
2021-01-17 23:40:56 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/webhook/255e3e91deece1a2421743471092bb3e1d8055027fe26e5999cf943a3066ef55 to <ip> (auth: False)
2021-01-17 23:41:03 DEBUG (MainThread) [homeassistant.components.http.view] Serving /auth/external/callback to <ip> (auth: False)
2021-01-17 23:41:04 DEBUG (MainThread) [homeassistant.components.http.auth] Authenticated <ip> for /api/config/config_entries/flow/4b5d5ab11f1644f28b4fed4d7e4fa0f9 using bearer token
2021-01-17 23:41:04 DEBUG (MainThread) [homeassistant.components.http.view] Serving /api/config/config_entries/flow/4b5d5ab11f1644f28b4fed4d7e4fa0f9 to <ip> (auth: True)
This is the logs I am seeing when the OAuth callback is executed, but I don’t see anything after this. Does anyone see anything wrong with this?
@joesilva101 I’m facing the exact same issue! The browser tab closes, I see teh same logs but nothing after that. Can you please share some more information about your setup?
I haven’t forwarded 443. I use internal_ip:8123 and external_ip:8123 as well. External_ip is duckdns. What was the root cause for your issue?
hi there,
the solution for me was a complete reset of my modem and router. after that all worked okay. clear your browser cache after every failure and start the process.
With all the trials and testing, I also realized that if the DNS URL had the www the call back will treat it as a sub-domain and will not work, so check yours as well. it has to be https://myaddressHA.duckdns.org type of format…
I got it to work finally.
For anyone who stumbles upon this in the future. My setup was HA on vm on a Linux host. Vm has static ip which I had configured. I also had setup duckdns and forwarded port 8123.
I had almost given up and decided to give ha cloud a try. That didn’t work either and in their troubleshooting guide it mentions that you have to disable ipv6 in the HA vm.
‘nmcli con modify HassOS default ipv6.method disable’
Rebooted my vm and the integration work flow succeeded. I didn’t need HA cloud for it. Just that the HA cloud troubleshooting guide was helpful
Thanks everyone for all your pointers.
I run full IPv6 in my network, and it works. Might be if your ISP and/or local network does not support IPv6.
Thanks to the useful steps here I got this up and running yesterday but have a small issue that I cant seem to resolve. I use the temperature as a sensor in the card for the room the thermostat is in but it displays as five decimals:
Is there a way to limit the display to one or two decimals or edit the entity to do this?
Thanks
living_room_temperature:
friendly_name: Living Room Temperature
value_template: >
{{ state_attr('climate.living_room','current_temperature')|float|round(1,"half") }}
Thanks for the reply but I’m not sure where to put this, I tried a new card pasting this code and editing for my entity but didnt work, could someone point me in the right direction please
Sorry for not being specific!
configuration.yaml
or in the sensor: !include filename.yaml
if you’ve broken out your configuration into multiple files…
sensor:
- platform: template
sensors:
living_room_temperature:
friendly_name: Living Room Temperature
value_template: >
{{ state_attr('climate.living_room','current_temperature')|float|round(1,"half") }}
round(1,“half”) rounds to the nearest 0.0 or 0.5.
For the round() filter options, see Home Assistant - Templating about 2/3’s of the way down the document…
don’t worry about being specific, I’m the one who’s lacking knowledge here.
- platform: template
sensors:
play_room_room_temperature:
friendly_name: Play Room Temperature
value_template: >
{{ state_attr('sensor.downstairs_nest_thermostat_temperature','current_temperature')|float|round(1,"half") }}
Added this to my .yaml and amended for my entity, if I’m understanding right this makes a new sensor with the limited decimals that I can display? That’s what it seems to have done as I now have a new sensor called “Play Room Temperature” but when adding that to lovelace I get a displayed temperature of 0.0.
I assume I’ve done something stupid but I seem close, any ideas?
I think you should use climate.xxxxx as the source sensor, because that has the current_temperature attribute (state_attr - refers to an attribute of an entity). If your sensor entity has the right value in the wrong format you can do the same thing, then you’d use states not state_attr.
Have a look here:
What’s your primary temperature device? Is it climate.downstairs_nest_thermostat?
That’s the device I would template from as its attribute current_temperature
is already 1 decimal place…no need for rounding.
- platform: template
sensors:
play_room_temperature:
friendly_name: Play Room Temperature
value_template: >
{{ state_attr('climate.downstairs_nest_thermostat','current_temperature') }}
If you want to template from the Nest-created temperature sensor then you would use…
- platform: template
sensors:
play_room_temperature:
friendly_name: Play Room Temperature
value_template: >
{{ states('sensor.[whatever its name is]')|float|round(1) }}
since the state of that sensor contains the temperature with 5 decimals and there are no attributes for it.