I did the same thing and had the topic name in the subscriber_id section instead of the subscription name. This helped me get my thermostat finally home assistantized, thanks!
I have the exact same problem. I have two thermostats (same model) plus some cameras. badnest was doing just fine with all of them, but then a few days back HA stopped seeing one of them. I refreshed my cookie information but no luck.
I then shifted to native Nest integration, see all Nest devices including the offending thermostat in āStep 2ā and give the permissions, but HA just doesnāt see this particular thermostat. All other Nest devices show up but not this one thermostat.
Did you make any progress in fixing the issue you are having?
If you manually send calls to the API following the instructions are they returned?
https://developers.google.com/nest/device-access/use-the-api#list_structures_and_devices
I would like to understand if this is an API issue or a bug in the python library, so knowing what the API returns would help me. Thanks!
Hi I am almost there but think something is set wrong.
When using my phone to connect as external client as asked in step 28 I get a
No URL available when trying to add nest integration
I step 14 I entered http://xxx.ddns.net:8123
If trying to add nest integration locally using 192.168ā¦:8123 I get a
Canāt link to Nest Home
Contact Nest Home if the issue persists
I got a feeling my step 14 is wrong
please help me correct.
When I do should I need to re do all the steps?
In step 14 the URL should also contain auth/external/callback. Also saw some people have success removing port number off, so it would be http://xxx.ddns.net/auth/external/callback
Maarten wrote an incredible step by step guide with screenshots for every step. I think everyone will find this very helpful:
thanks for your help did the changes as mentioned
http://xxx.ddns.net/auth/external/callback
and still getting
No URL available when trying to add nest integration on my phone with wifi off so I can access using
http://xxx.ddns.net:8123 through HA companion app and tried also chrome on my phone
Did make the necessary changes to
Client-ID, Client Secret as these did change when changed URL address.
what am I doing wrong?
In homeassistant make sure you have internal and external URL configured.
in the UI go to configuration -> general -> scroll down until you see internal and external URLs. -> update to correct values.
getting closer
now after I log in with http://xxx.ddns.net:8123
when adding nest integration asks for gmail account so choose the one I set up which is the same as Nest account
And getting
Canāt link to Nest Home
Contact Nest Home if the issue persists
In HA external tried both
http://xxx.ddns.net
and
http://xxx.ddns.net:8123
rebooted after every change
my configuration file is
nest:
client_id: xxxxxx-xxxxxxxxxx.apps.googleusercontent.com
client_secret: xxxxxxxxxxxxxxx
project_id: xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
subscriber_id: projects/nest-home-xxxxxx/subscriptions/Nest
have you tried the same procedure in incognito mode?
yes same results
just checking that you are attempting this from outside your network?
If your external URL is http://xxx.ddns.net:8123
then your OAuth URI should be http://xxx.ddns.net:8123/auth/external/callback
,
Also verify you can access HA via companion app using http://xxx.ddns.net:8123
with wi-fi off.
Sounds like you might have missed page 4 where you take the nest pub/sub topic and create a subscription for it in google cloud console? That or, your accounts for google cloud and nest are different but you say they are the same?
Thank you!!! Iāve tried for several hours to set up the Nest integration without success. Then I found your helpful instructions and got it up and running in no time.
Which thermostat card are you using or have you shared it? I am using the HACS Climate thermostat card for my two Nest thermostats. It is close but I was wondering if something else was even better. Thanks
Ok thanks for the feedback. Very strange on my side. I have a fixed image that refreshes every 5 seconds, even set to auto. Can you please send me your card code to display the stream on lovelace?
Thanks.
Iād like to see this too but it looks like this new API doesnāt allow control of hot water yet.
Iām still working on things but my panet has two cards currently.
1, The native HA Climate card that Iāve been modifying with vertical and horizontal stacksā¦
type: 'custom:vertical-stack-in-card'
cards:
- type: thermostat
entity: climate.living_room
style: |
ha-card {
color: white;
box-shadow: none;
background:
{% if is_state_attr('climate.living_room', 'hvac_action', 'heating') %}
#EB6D00
{% endif %} ;
background:
{% if is_state_attr('climate.living_room', 'hvac_action', 'cooling') %}
blue
{% endif %} ;
background:
{% if is_state_attr('climate.living_room', 'hvac_action', 'off') %}
#373F48
{% endif %} ;
}
theme: iOS Dark Mode
- type: entities
entities:
- entity: sensor.living_room_humidity
name: Inside Humidity
icon: 'hass:none'
- entity: sensor.openweathermap_temperature
name: Outside Temp.
icon: 'hass:none'
style: |
ha-card {
color: white;
box-shadow: none;
background:
{% if is_state_attr('climate.living_room', 'hvac_action', 'heating') %}
#EB6D00
{% endif %} ;
background:
{% if is_state_attr('climate.living_room', 'hvac_action', 'cooling') %}
blue
{% endif %} ;
background:
{% if is_state_attr('climate.living_room', 'hvac_action', 'off') %}
#373F48
{% endif %} ;
}
- type: horizontal-stack
cards:
- type: 'custom:button-card'
style: |
ha-card {
font-size: 0.8rem
}
entity: input_select.hvac_mode
name: MODE
show_name: true
tap_action:
action: call-service
service: input_select.select_next
service_data:
entity_id: input_select.living_room_hvac_mode
color_type: icon
state:
- operator: template
value: |
[[[ return states['climate.living_room'].state === 'off' ]]]
icon: 'mdi:power'
color: white
- operator: template
value: |
[[[ return states['climate.living_room'].state === 'heat' ]]]
icon: 'mdi:fire'
color: 'rgb(239, 140, 0)'
- operator: template
value: |
[[[ return states['climate.living_room'].state === 'cool' ]]]
color: blue
icon: 'mdi:snowflake'
styles:
card:
- background-color: |
[[[
if (states['climate.living_room'].attributes.hvac_action == 'heating')
return '#EB6D00';
if (states['climate.living_room'].attributes.hvac_action == 'cooling')
return 'blue';
else return '#373F48';
]]]
- color: white
show_state: false
- type: 'custom:button-card'
style: |
ha-card {
font-size: 0.8rem
}
entity: input_select.preset_mode
name: ECO
label: ECO
tap_action:
action: call-service
service: input_select.select_next
service_data:
entity_id: input_select.living_room_preset_mode
color_type: icon
color: white
icon: 'mdi:leaf-off'
state:
- operator: template
value: >
[[[ return states['climate.living_room'].attributes.preset_mode ==
'eco' ]]]
icon: 'mdi:leaf'
color: green
show_state: false
show_name: true
styles:
card:
- background-color: |
[[[
if (states['climate.living_room'].attributes.hvac_action == 'heating')
return '#EB6D00';
if (states['climate.living_room'].attributes.hvac_action == 'cooling')
return 'blue';
else return '#373F48';
]]]
- color: white
- type: 'custom:button-card'
style: |
ha-card {
font-size: 0.8rem
}
entity: climate.living_room
name: SCHEDULE
action: url
navigation_path: 'https://home.nest.com'
color_type: card
icon: 'mdi:calendar-clock'
show_state: false
show_name: true
styles:
card:
- background-color: |
[[[
if (states['climate.living_room'].attributes.hvac_action == 'heating')
return '#EB6D00';
if (states['climate.living_room'].attributes.hvac_action == 'cooling')
return 'blue';
else return '#373F48';
]]]
- color: white
- type: 'custom:button-card'
style: |
ha-card {
font-size: 0.8rem
}
entity: climate.living_room
name: HISTORY
action: url
navigation_path: 'https://home.nest.com'
color_type: card
icon: 'mdi:progress-clock'
show_state: false
show_name: true
styles:
card:
- background-color: |
[[[ if (states['climate.living_room'].attributes.hvac_action == 'heating')
return '#EB6D00';
if (states['climate.living_room'].attributes.hvac_action == 'cooling')
return 'blue';
else return '#373F48';
]]]
- color: white
SCHEDULE and HISTORY are just URL links to Nest.
- This custom:thermostat_card. Orange and blue dials work as does temp up/down but no Mode control or Eco Leaf display as his code currently tests for off/away not none/eco. I am going to replace it into my first card when I get a moment or two!:
type: 'custom:thermostat-card'
entity: climate.living_room
chevron_size: 100
hvac:
states:
'off': 'off'
cooling: cool
heating: heat
attribute: hvac_action
away:
sensor:
sensor: sensor.living_room_eco_mode
Iāve been trying to decipher the python code but I am a beginner at python.
On the first card,
My Mode and Eco controls are using these helpers:
I created them from yaml in an effort to try to automate creating them but no success yet.
You can use the UI to create them like this (changing the naming of course):
and the input_select.living_room_preset_mode Options would be
none
and eco
and icon mdi:leafPlus two automations to trigger off of the input_selects:
alias: Living Room - HVAC Mode
description: ''
trigger:
- platform: state
entity_id: input_select.living_room_hvac_mode
condition: []
action:
- service: climate.set_hvac_mode
data:
hvac_mode: '{{ states.input_select.living_room_hvac_mode.state | lower }}'
entity_id: climate.living_room
mode: single
alias: Living Room Preset Mode
description: ''
trigger:
- platform: state
entity_id: input_select.living_room_preset_mode
condition: []
action:
- service: climate.set_preset_mode
data:
preset_mode: '{{ states.input_select.living_room_preset_mode.state | lower }}'
entity_id: climate.living_room
mode: single
Iāve integrated the custom:thermostat-card:
.Still more fixes to doā¦
Apologies, couldnāt test it out earlier. Gave it another shot today - removed integration from HA, manually removed all ābadnestā devices, removed the truant thermostat from my Google account, did a factory reset of the thermostat, added it back to my account, and then added the native integration again. And this time it worked!!
Do not know what part of the above process fixed it for me. Maybe the combination of removing from my account, factory reset and adding it back again did the trick.
Thank you for the help folks, especially Jamesā step by step guide.
Interesting, i havenāt run into that. Is this heplful?
Is this happening due to C to F conversions?