# Is it possible to link the NEST thermostat to nodered using NORA?

**URL:** <https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495>\
**Category:** General\
**Created:** [7 November 2020 12:42 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495 "2020-11-07T12:42:41Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [7 November 2020 12:42 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/1 "2020-11-07T12:42:42Z")

</div>

is it possiable link the NEST thermostat to nodered using NORA?  
THX!

---

<div class="post-metadata">

**Author:** ![rgerrans](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@rgerrans](https://discourse.nodered.org/u/rgerrans)\
**Post date:** [7 November 2020 20:16 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/2 "2020-11-07T20:16:27Z")

</div>

Assuming you mean have the Nest operating in Google Home and use NORA to integrate if with Node-Red, then no. Nora creates it's own "devices" in Google Home which then can control / report status of flows in Node-Red.

---

<div class="post-metadata">

**Author:** ![mintgroen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mintgroen/32/31595_2.png) [@mintgroen](https://discourse.nodered.org/u/mintgroen)\
**Post date:** [7 November 2020 21:13 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/3 "2020-11-07T21:13:57Z")

</div>

I've created some flows which include the data from my Nest thermostats. I did not use NORA to gain access to the data, but directly access the Nest devices thru Google's Smart Device management API.

[https://developers.google.com/nest/device-access](https://developers.google.com/nest/device-access) (check the Guides in the top part of the page)

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [8 November 2020 02:12 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/4 "2020-11-08T02:12:12Z")

</div>

understood,thank u

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [8 November 2020 02:20 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/5 "2020-11-08T02:20:06Z")

</div>

is there any tutorial for this？like “how to integrate Nest thermostats with nodered using SDM api”，im a new guy here，thank you

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [8 November 2020 02:23 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/6 "2020-11-08T02:23:45Z")

</div>

then im confused，the NORA device controls nothing？

---

<div class="post-metadata">

**Author:** ![mintgroen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mintgroen/32/31595_2.png) [@mintgroen](https://discourse.nodered.org/u/mintgroen)\
**Post date:** [8 November 2020 08:04 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/7 "2020-11-08T08:04:57Z")

</div>

I'm a Node RED newbie too, just installed it 2 days ago after I learned about Node RED in my search how to access the SDM API. Why googling I came across this YouTube intro to the API:

[![](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/0/305e9974b795126d4b6c594a4bab385bea255f4d.jpeg "Nest integration in Home Assistant with Smart Device Management API | First Impressions") ](https://www.youtube.com/watch?v=4Rkzf9g1LVo)

And this post on the home assistant forum:

> **[Google-Nest Offical Device Access Console Finally Released!](https://community.home-assistant.io/t/google-nest-offical-device-access-console-finally-released/229146)**
>
> Google just announced the Google Nest Device Access program, which replaces the former Works with Nest program we were using to add Nest devices to our Home Assistant servers. Finally time to start the programming for a new integration!!

The post of mbuscher showed Node RED flows, I dove into them and got the API working. In the meantime I got very interested in Node RED, a cool piece of kit 🙂

I'll post my flows of my implementation later today when I continue work on using the Nest device info in my home.

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [8 November 2020 09:54 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/8 "2020-11-08T09:54:25Z")

</div>

thx man, its really helpful.  
can u control the google device thru SDM api,or just got data from it

---

<div class="post-metadata">

**Author:** ![mintgroen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mintgroen/32/31595_2.png) [@mintgroen](https://discourse.nodered.org/u/mintgroen)\
**Post date:** [8 November 2020 10:15 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/9 "2020-11-08T10:15:08Z")

</div>

> [@piggy](#):
>
> can u control the google device thru SDM api,or just got data from it

Did you check the Google device-access page? 😉

One thing I am missing from the API output is the actual controlling state of the thermostat. What I am looking for is, is the thermostat actually commanding the central heater to heat? At the moment I am calculating it from the actual temp minus the set temp to "guess" if the heater is on. But I have noticed that there is a slight overshoot of the room temp compared to the set temp, so my calculation may not represent the actual heating mode of the situation. I can remember that it was in the old Nest API... I'm going to give google a ring to ask for the actual heating status.

---

<div class="post-metadata">

**Author:** ![mintgroen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mintgroen/32/31595_2.png) [@mintgroen](https://discourse.nodered.org/u/mintgroen)\
**Post date:** [8 November 2020 13:24 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/10 "2020-11-08T13:24:00Z")

</div>

Here is my flow (my credentials removed). You first have to run thru the Guide to obtain the projectid, token and refresh token. The token needs to refreshed every hours so I created a refresh flow. That token is set as a enviromental variable (flow in this case) and the the 2nd flow, gets the data from the API so you can copy/paste the json objects. The 3rd flow injects/transforms that data and forwards the thermostat temp/humidity data to my MQQT brokers (Domoticz). The Catch flow is to send a telegram message to my phone, I want to be notified in case the API does not work.

 ![Screen Shot 2020-11-08 at 16.40.36](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/a/ba9e15d14e3fd4d2c2a4316317b78ca9c0a4825a.png)

```auto
[{"id":"2c0ed98a.a1c186","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"60880bbc.d12c64","type":"inject","z":"2c0ed98a.a1c186","name":"Hourly","props":[],"repeat":"3500","crontab":"","once":true,"onceDelay":0.1,"topic":"","payloadType":"str","x":100,"y":80,"wires":[["6c837807.bc5f88","488dea8f.317dd4"]]},{"id":"6c837807.bc5f88","type":"function","z":"2c0ed98a.a1c186","name":"Client details","func":"let clientId = 'clientid';\nlet clientSecret = 'clientsecret';\nlet refreshToken = 'refreshtoken';\nmsg.url = \"https://www.googleapis.com/oauth2/v4/token\";\nmsg.method = \"POST\";\nmsg.payload = {\n \"client_id\": clientId,\n \"client_secret\": clientSecret,\n \"refresh_token\": refreshToken,\n \"grant_type\": 'refresh_token'\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":270,"y":80,"wires":[["3317d87f.0643d8"]]},{"id":"3317d87f.0643d8","type":"http request","z":"2c0ed98a.a1c186","name":"","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":450,"y":80,"wires":[["db63470a.142e18"]]},{"id":"db63470a.142e18","type":"change","z":"2c0ed98a.a1c186","name":"","rules":[{"t":"set","p":"access_token","pt":"flow","to":"payload.access_token","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":660,"y":80,"wires":[["fcc03829.6ce668"]]},{"id":"fcc03829.6ce668","type":"debug","z":"2c0ed98a.a1c186","name":"Token updated","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":860,"y":80,"wires":[]},{"id":"f00903af.64d5c","type":"inject","z":"2c0ed98a.a1c186","name":"Get devices","props":[],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"str","x":110,"y":280,"wires":[["14f51631.6362ba"]]},{"id":"14f51631.6362ba","type":"function","z":"2c0ed98a.a1c186","name":"","func":"let projectId = 'ProjectID';\nmsg.url = \"https://smartdevicemanagement.googleapis.com/v1/enterprises/\" + projectId + \"/devices\"\nmsg.method = \"GET\";\nmsg.headers = {\n 'Authorization': 'Bearer ' + flow.get(\"access_token\"),\n 'Content-Type': 'application/json'\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":260,"y":280,"wires":[["930ae093.c7863","864d2e99.d9c99"]]},{"id":"59f7a033.81ca7","type":"debug","z":"2c0ed98a.a1c186","name":"Devices","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":640,"y":280,"wires":[]},{"id":"930ae093.c7863","type":"http request","z":"2c0ed98a.a1c186","name":"Devices","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":460,"y":280,"wires":[["59f7a033.81ca7"]]},{"id":"864d2e99.d9c99","type":"debug","z":"2c0ed98a.a1c186","name":"Function","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":460,"y":340,"wires":[]},{"id":"474b00a4.d23d5","type":"comment","z":"2c0ed98a.a1c186","name":"Token refresh every hour, set to flow.access_token","info":"","x":240,"y":40,"wires":[]},{"id":"ca714a17.239828","type":"comment","z":"2c0ed98a.a1c186","name":"Use access_token to GET devices JSON from Googleapi to debug","info":"","x":280,"y":240,"wires":[]},{"id":"c5c1a292.319b7","type":"change","z":"2c0ed98a.a1c186","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"access_token","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":460,"y":140,"wires":[["b32f327d.134a7"]]},{"id":"488dea8f.317dd4","type":"delay","z":"2c0ed98a.a1c186","name":"Delay 10s","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":260,"y":140,"wires":[["c5c1a292.319b7","5b8d7b99.9de9d4"]]},{"id":"b32f327d.134a7","type":"GSheet","z":"2c0ed98a.a1c186","creds":"","method":"update","action":"","sheet":"SpreadsheetID","cells":"GoogleAPI!B6","flatten":false,"name":"Gsheets update","x":640,"y":140,"wires":[["24deb9bf.d35aa6"]]},{"id":"24deb9bf.d35aa6","type":"debug","z":"2c0ed98a.a1c186","name":"Gsheets","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":840,"y":140,"wires":[]},{"id":"5b8d7b99.9de9d4","type":"change","z":"2c0ed98a.a1c186","name":"Timestamp","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"date"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":200,"wires":[["2d21cda4.da1292"]]},{"id":"a4af53b8.54ad","type":"GSheet","z":"2c0ed98a.a1c186","creds":"","method":"update","action":"","sheet":"SpreadsheetID","cells":"GoogleAPI!B7","flatten":false,"name":"Gsheets update","x":780,"y":200,"wires":[[]]},{"id":"2d21cda4.da1292","type":"function","z":"2c0ed98a.a1c186","name":"Date","func":"// Create a Date object from the payload\nvar date = new Date(msg.payload);\n// Change the payload to be a formatted Date string\nmsg.payload = date.toString();\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":610,"y":200,"wires":[["a4af53b8.54ad"]]},{"id":"c9bce080.9ab7d","type":"inject","z":"2c0ed98a.a1c186","name":"Get SDM status","props":[],"repeat":"300","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":110,"y":460,"wires":[["62ec750d.7f682c"]]},{"id":"62ec750d.7f682c","type":"function","z":"2c0ed98a.a1c186","name":"","func":"let projectId = 'projectID';\nmsg.url = \"https://smartdevicemanagement.googleapis.com/v1/enterprises/\" + projectId + \"/devices\"\nmsg.method = \"GET\";\nmsg.headers = {\n 'Authorization': 'Bearer ' + flow.get(\"access_token\"),\n 'Content-Type': 'application/json'\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":280,"y":460,"wires":[["6beb5182.0b382"]]},{"id":"6beb5182.0b382","type":"http request","z":"2c0ed98a.a1c186","name":"Devices","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":470,"y":460,"wires":[["7c202629.e96cf8","702f74f2.e07a4c","5c6bc7bb.601438","fd15e133.1394b","662b024f.561b8c","953af8c0.b2a148"]]},{"id":"702f74f2.e07a4c","type":"change","z":"2c0ed98a.a1c186","name":"","rules":[{"t":"set","p":"living.humidity","pt":"global","to":"payload.devices[0].traits[\"sdm.devices.traits.Humidity\"].ambientHumidityPercent","tot":"msg"},{"t":"set","p":"living.temperature","pt":"global","to":"payload.devices[1].traits[\"sdm.devices.traits.Temperature\"].ambientTemperatureCelsius","tot":"msg"},{"t":"set","p":"living.settemp","pt":"global","to":"payload.devices[1].traits[\"sdm.devices.traits.ThermostatTemperatureSetpoint\"].heatCelsius","tot":"msg"},{"t":"set","p":"bedroom.temperature","pt":"global","to":"payload.devices[0].traits[\"sdm.devices.traits.Temperature\"].ambientTemperatureCelsius","tot":"msg"},{"t":"set","p":"bedroom.settemp","pt":"global","to":"payload.devices[0].traits[\"sdm.devices.traits.ThermostatTemperatureSetpoint\"].heatCelsius","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":680,"y":460,"wires":[[]]},{"id":"18bda007.da537","type":"mqtt out","z":"2c0ed98a.a1c186","name":"Domoticz","topic":"domoticz/in","qos":"0","retain":"false","broker":"","x":660,"y":580,"wires":[]},{"id":"7c202629.e96cf8","type":"debug","z":"2c0ed98a.a1c186","name":"SDM Devices","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":680,"y":520,"wires":[]},{"id":"fd15e133.1394b","type":"function","z":"2c0ed98a.a1c186","name":"Nest HK set 93","func":"var SETTEMPT = msg.payload.devices[1].traits[\"sdm.devices.traits.ThermostatTemperatureSetpoint\"].heatCelsius;\nvar SETTEMP = SETTEMPT.toFixed(1)\nmsg.payload = {\"idx\":93,\"svalue\":SETTEMP};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":480,"y":620,"wires":[["5fa793fe.54241c","93326e3e.1276d"]]},{"id":"5c6bc7bb.601438","type":"function","z":"2c0ed98a.a1c186","name":"Nest HK idx 92","func":"var TEMPT = msg.payload.devices[1].traits[\"sdm.devices.traits.Temperature\"].ambientTemperatureCelsius;\nvar TEMP = TEMPT.toFixed(1)\nvar HUM = msg.payload.devices[1].traits[\"sdm.devices.traits.Humidity\"].ambientHumidityPercent;\nif (HUM < 30) {\n HUM_STAT=2;\n} else if ((HUM >= 30) & (HUM < 45)) {\n HUM_STAT=0;\n} else if ((HUM >= 45) & (HUM < 70)) {\n HUM_STAT=1;\n} else if (HUM >= 70) {\n HUM_STAT=3;\n}\nmsg.payload = {\"idx\":92,\"nvalue\":0,\"svalue\":TEMP + \";\" + HUM + \";\" + HUM_STAT};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":480,"y":580,"wires":[["18bda007.da537","d2476fa3.442cb"]]},{"id":"5fa793fe.54241c","type":"mqtt out","z":"2c0ed98a.a1c186","name":"Domoticz","topic":"domoticz/in","qos":"0","retain":"false","broker":"","x":660,"y":620,"wires":[]},{"id":"d2476fa3.442cb","type":"debug","z":"2c0ed98a.a1c186","name":"idx 92","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":580,"wires":[]},{"id":"93326e3e.1276d","type":"debug","z":"2c0ed98a.a1c186","name":"idx 93","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":620,"wires":[]},{"id":"662b024f.561b8c","type":"function","z":"2c0ed98a.a1c186","name":"Nest HK set 95","func":"var SETTEMPT = msg.payload.devices[0].traits[\"sdm.devices.traits.ThermostatTemperatureSetpoint\"].heatCelsius;\nvar SETTEMP = SETTEMPT.toFixed(1)\nmsg.payload = {\"idx\":95,\"svalue\":SETTEMP};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":480,"y":700,"wires":[["343f198f.28f636","7abe058.478cafc"]]},{"id":"953af8c0.b2a148","type":"function","z":"2c0ed98a.a1c186","name":"Nest HK idx 94","func":"var TEMPT = msg.payload.devices[0].traits[\"sdm.devices.traits.Temperature\"].ambientTemperatureCelsius;\nvar TEMP = TEMPT.toFixed(1)\nvar HUM = msg.payload.devices[0].traits[\"sdm.devices.traits.Humidity\"].ambientHumidityPercent;\nif (HUM < 30) {\n HUM_STAT=2;\n} else if ((HUM >= 30) & (HUM < 45)) {\n HUM_STAT=0;\n} else if ((HUM >= 45) & (HUM < 70)) {\n HUM_STAT=1;\n} else if (HUM >= 70) {\n HUM_STAT=3;\n}\nmsg.payload = {\"idx\":94,\"nvalue\":0,\"svalue\":TEMP + \";\" + HUM + \";\" + HUM_STAT};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":480,"y":660,"wires":[["a5045608.5ecb38","89083c30.dd6dc"]]},{"id":"343f198f.28f636","type":"mqtt out","z":"2c0ed98a.a1c186","name":"Domoticz","topic":"domoticz/in","qos":"0","retain":"false","broker":"","x":660,"y":700,"wires":[]},{"id":"a5045608.5ecb38","type":"mqtt out","z":"2c0ed98a.a1c186","name":"Domoticz","topic":"domoticz/in","qos":"0","retain":"false","broker":"","x":660,"y":660,"wires":[]},{"id":"89083c30.dd6dc","type":"debug","z":"2c0ed98a.a1c186","name":"idx 94","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":660,"wires":[]},{"id":"7abe058.478cafc","type":"debug","z":"2c0ed98a.a1c186","name":"idx 95","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":700,"wires":[]},{"id":"55438db8.6ae974","type":"comment","z":"2c0ed98a.a1c186","name":"Thermostat Living & Bedroom to MQTT every 5 min","info":"","x":220,"y":420,"wires":[]},{"id":"93101f84.5da5e","type":"catch","z":"2c0ed98a.a1c186","name":"","scope":["7c202629.e96cf8","fd15e133.1394b","5c6bc7bb.601438","662b024f.561b8c","953af8c0.b2a148"],"uncaught":false,"x":70,"y":520,"wires":[["9b643695.62fcc8"]]},{"id":"420b7109.6ef4f","type":"telegram sender","z":"2c0ed98a.a1c186","name":"Catch","bot":"","x":310,"y":520,"wires":[[]]},{"id":"9b643695.62fcc8","type":"change","z":"2c0ed98a.a1c186","name":"Chatid","rules":[{"t":"set","p":"payload.chatId","pt":"msg","to":"TelegramchatID","tot":"num"},{"t":"set","p":"payload.type","pt":"msg","to":"message","tot":"str"},{"t":"set","p":"payload.content","pt":"msg","to":"payload.error.message","tot":"str"},{"t":"set","p":"failsafe","pt":"global","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":190,"y":520,"wires":[["420b7109.6ef4f"]]}]

```

Let me know if you have any questions.

---

<div class="post-metadata">

**Author:** ![rgerrans](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@rgerrans](https://discourse.nodered.org/u/rgerrans)\
**Post date:** [8 November 2020 16:37 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/11 "2020-11-08T16:37:40Z")

</div>

> [@piggy](#):
>
> then im confused，the NORA device controls nothing

Think of Nora as a way to link to virtual devices, one in Google Home and the other in Node-Red to sync status and commands from Google Home, You then use flows within Node-Red to connect the Nora devices to physical devices.

To control physical devices in Google Home, like your Nest, you have to use other way of connecting like the API connections like @mintgroen shared.

Hope that helps

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [20 November 2020 08:36 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/12 "2020-11-20T08:36:05Z")

</div>

been busy these days。  
i m reading the document on the SDM website，seems no “current state“ data feedback

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [20 November 2020 08:49 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/13 "2020-11-20T08:49:46Z")

</div>

thx a billion！！！！！！  
follow the tutorial ，im trying to make ur flow work  
wot should i fill in the http reauest ,url blank?  
it seems u can just get the data from API,but u cant controll the thermostat thru the API

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [20 November 2020 09:21 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/14 "2020-11-20T09:21:06Z")

</div>

understood,thx!  
i saw pico563 has integart NEST thermostat using NORA

 ![20201120171035](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/c/0c7ab4e77df4a1264acc2b3e77a5356ba4e6d802.png)

---

<div class="post-metadata">

**Author:** ![mintgroen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mintgroen/32/31595_2.png) [@mintgroen](https://discourse.nodered.org/u/mintgroen)\
**Post date:** [20 November 2020 10:14 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/15 "2020-11-20T10:14:00Z")

</div>

> [@piggy](#):
>
> it seems u can just get the data from API,but u cant controll the thermostat thru the API

Yes you can (and I tried, works) see the use the API guide, execute a command:

> **[Use the API  |  Device Access  |  Google for Developers](https://developers.google.com/nest/device-access/use-the-api)**
>
> Learn how to make basic calls to the SDM API.

The URL and method is set in the function node, you should keep the method in the http node, to set by msg method.

---

<div class="post-metadata">

**Author:** ![rgerrans](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@rgerrans](https://discourse.nodered.org/u/rgerrans)\
**Post date:** [21 November 2020 19:16 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/16 "2020-11-21T19:16:39Z")

</div>

> [@piggy](#):
>
> understood,thx!  
> i saw pico563 has integart NEST thermostat using NORA

What this looks like (though should confirm with @pico563) is that this is just creating a voice control device in Google Home but all the actual status/control of the thermostat named Nest is being done in Node-Red

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [28 November 2020 11:52 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/17 "2020-11-28T11:52:24Z")

</div>

its not woking，am i do it right? thx

---

<div class="post-metadata">

**Author:** ![mintgroen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mintgroen/32/31595_2.png) [@mintgroen](https://discourse.nodered.org/u/mintgroen)\
**Post date:** [28 November 2020 14:14 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/18 "2020-11-28T14:14:01Z")

</div>

@piggy Looks ok to me. (although I think it may not be a good idea to post your credentials on the www, someone else could start controlling your thermostat ;))

What does the debug show?

---

<div class="post-metadata">

**Author:** ![piggy](https://avatars.discourse-cdn.com/v4/letter/p/f1d935/32.png) [@piggy](https://discourse.nodered.org/u/piggy)\
**Post date:** [28 November 2020 15:32 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/19 "2020-11-28T15:32:08Z")

</div>

delete the pix,good advise,thx  
its not working, says "invalid\_grant"  
 ![20201128232838](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/5/c5e9700dec0d70e9403c45175cf1087568eca19f.png)

---

<div class="post-metadata">

**Author:** ![mintgroen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mintgroen/32/31595_2.png) [@mintgroen](https://discourse.nodered.org/u/mintgroen)\
**Post date:** [28 November 2020 21:11 UTC](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495/20 "2020-11-28T21:11:39Z")

</div>

Did you link your account correctly?

> **[Authorize an Account  |  Device Access  |  Google Developers](https://developers.google.com/nest/device-access/authorize)**

[Next page](https://discourse.nodered.org/t/is-it-possible-to-link-the-nest-thermostat-to-nodered-using-nora/35495.md?page=2)
