NestSDM


A plugin for PG3/PG3x that interfaces with the Google Nest SDM API to allow IoX to access and control Nest thermostats, doorbells, and cameras. For support and feedback on the plugin, please use the UD Forums here.

NOTE:THIS PLUGIN REQUIRES AT LEAST IoX FIRMWARE v5.8.3 and its associated platform updates (PG3x, UDx, Python 3.11, etc.). In some cases, users have had to go to IoX 5.8.4.

Instructions for use:

  1. Before getting started, make sure your Nest devices are setup under your account in Google Home.
  2. From the Polyglot V3 Dashboard, install the NestSDM Standard Edition plugin from the Plugins Store.
  3. Optionally, you can add/modify the following parameters under Configuration in the Dashboard for the plugin:

    Advanced Configuration:

    Custom Configuration Parameters:

    Be sure to restart the plugin after making any changes to the configuration parameters.
  4. Once the plugin has started (give a minute), click the "Authenticate" button in the Polyglot V3 Dashboard for the plugin to authorize access to your Google Nest devices by the plugin. You will be redirected to the Google Authentication page to log in and authorize access to your devices to the UD Nest SDM Plugin project. Be sure yo use the same user ID (email address) you used to setup your devices in your Google Home account. After successful authentication, you will be redirected back to the plugin in PG3x.
  5. After authenticating, click the "Discover" button in the Polyglot V3 Dashboard for the plugin to initially populate nodes in IoX for your Nest Structures, Thermostat, Doorbell, and Camera devices. If you add additional Nest devices to your Google Home profile, or if you want to restore devices previously deleted from IoX, you can come back to the PG3x Dashboard and perform discovery again in order to regenerate the node list.

Notes for latest version (v1.0.7):

  1. When starting or restarting the plugin, it waits until the first shortpoll event after Authentication and Discovery to poll the Google Nest service and initially update all the state values. This is implemented this way to reduce the number of API calls and prevent hitting rate limits. However, this means that, after a restart (or authentication and/or discovery), it may take up to 60 seconds before the device states are reflected correctly. Also, if a state change event is received before the initial states are set, the state values may go pear shaped, since the node doesn't have a current state vector. It should all settle in after the first shortpoll event.
  2. If you are updating to v1.0.7 from v1.0.6, you need to delete your nodes and rediscover for the first (primary) Structure node to start tracking the plugin status.
  3. There is currently around a 2 second delay after sending a command from IoX before the corresponding state changes are received from the Google Nest service and updated in the Admin Console, so if you are making adjustments in the AC, please be patient and allow a few seconds for the state to settle down after each command before trying again or moving to another command.
  4. When using the "Fan On" command with or without a runtime, there is a delay of 5 to 6 seconds before the state change is reflected and this progression often exhibits some weird, out-of-sequence state change behavior. I believe this is some type of bug in the Google Nest service.
  5. This version is built to run against the UD Nest SDM Plugin project, but you may still use your personal Device Access project in your Google Developer sandbox if you wish. To use your personal Device Access project add/modify the following required Custom Configuration Parameters under Configuration:


    Once the Custom Configuration Parameters are set for an alternate Device Access project, the user must re-authenticate with the Goolge oAuth service from the PG3 Dashboard before re-discovering devices using the Discover button. If you wish to switch from your personal Device Access project back to the UD Nest SDM Plugin project, the plugin must be uninstalled and reinstalled. Detailed instructions for setting up a compatible Device Access projet in your Google Developer sandbox can be found here.

Version history:

1.0.7 - Fixes (2024-08-20)

1.0.6 - Production (2024-08-14)

v0.2.5 - Ready for UD Device Access Project (2024-08-07)

v0.1.4 - Multiple fixes (2024-04-26)

v0.1.3 - Beta Testing Version (2024-04-05)

0.0.2 - Testing Release (2024-03-19)

0.0.1 - Initial Release (2024-02-15)