Anyone creating or developing a smart home device that engages with the Google assistant can now access Google’s Local Home SDK, which enables local command execution without having to funnel commands via the cloud.
The Local Home SDK, now available, allows developers to create and implement smart home actions that control such devices via the Google assistant independently of its cloud infrastructure in a welcome move by the company.
Normally, when partnered devices receive and execute an action these occur via the cloud. To reduce latency the SDK implements local execution by installing a Javascript application on devices. When a user asks a smart device to complete an action, such as turn the heating on, rather than reaching for the execute request from the cloud the assistant will complete it by sending the commands directly over the local network.
Google developer Dave Smith wrote that: “We’ve also improved the scan configurations in the Actions console based on your feedback. You can now enter multiple scan configurations for a given project, enabling your local fulfillment app to handle multiple device families that may be using different discovery protocols.”
Local Home SDK Testing
Developers of smart home applications can use the Local Home SDK to quickly test code and applications by loading them into a Google Home or Nest device.
Here they can use the Google Chrome debugging console to test and then via testing software self-certificate the product.
A key advantage of using the Local Home SDK is that it provides additional smart home intents to the assistant load while also performing local discovery and identification of partnered devices. It does this by introducing two new intents ‘Identify’ and ‘Reachable_Devices’.
Google developer Dave Smith wrote: “The Local Home SDK v1.0 supports discovery of local devices over Wi-Fi using the mDNS, UDP, or UPnP protocols. Once a local path is established, apps can send commands to devices using TCP, UDP, or HTTP.”
If the device command is not executing over the local network then the system will use the cloud as backup for command execution.