No announcement yet.

Ensuring your devices work with Alexa and Google Home

This topic is closed.
This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ensuring your devices work with Alexa and Google Home

    [UPDATE 1/21/18] Support for the Alexa API Version 3 is now available. There are also some updates to Google Home support.

    There are some changes developers need to be aware of in order to support the version 3 Alexa API:

    In order to use all of these feautures, some will require the user to update to HomeSeer version or later.

    1) If you your plugin supports lighting devices, make sure you set the ControlUse properties on your value pairs are described below. Amazon will only discover devices that have these properties set.

    2) If you your plugin supports a door lock, set the ControlUse for Door_Lock and Door_Unlock on your device that controls the lock. Note that as of this post, Amazon only supports door locking. But they may enable unlocking in the future. Note that Google Home supports both Locking and Unlocking.

    3) There is a new property in the device properties called "IsLight". This property tells Amazon that the device is a light. If the new groups feature is used, a user can now say "turn on the lights". This will turn on all the lights assigned to the Echo unit in the room that heard the command. Amazon assumes that a device is a light if the device has a value pair with the ControlUse property set to _Dim. It is possible for a user to a light that only has On and Off. The IsLight property allows the user to specify that the device is actually a light and it should be included in the lighting group. Normally plugin authors do not need to set this property, but you can set it if needed. The property is bit &h2000 on the "misc" property on the device.

    4) Both Google Home and Alexa support executing events. To enable an event for voice, there is a new Voice Command property on events that needs to be set by the user. To run this event, the user can say "Alexa, turn on the "event voice command". For Google Home, the user will says "Ok Google, active "event voice command".

    5) Devices have a new property that the user can set named "Voice Command". This command overrides the device name and will be used for the voice command to control the device. This feature works for both Alexa and Google Home. Developers can set this property if needed.

    6) Google Home now supports both thermostats and door locks. Door locks can be locked and unlocked.


    HomeSeer supports both Amazon Alexa and Google Home as well as IFTTT. To make sure your devices work OK with these voice interfaces there are few things to know.

    These services discover your devices in order to understand the capabilities of each device. They assume that each device in the HomeSeer system is a single device. HomeSeer represents devices as multiple devices. In order to do this properly there are some special properties that need to be set on your devices.

    For Lighting devices, make sure to assign the ControlUse property on your control pairs that control the device. For example, if the device is an ON/OFF device, assign the ControlUse property for the ON button to _On and the Off button _Off. See below for the ControlUse values as of this post. These values are defined in the Enums class in the HomeSeerAPI.dll file.

    For thermostats, HS returns only the ROOT device to Amazon and Google. The name of this device is used for the voice command or the "VoiceCommand" property if this is set in the device properties. When a command is given, HS will search the child devices and look for the devices with the proper ControlUse set. There are ControlUse properties for the set points, mode, and fan. Note that the _ThermModeXXX values are to be set on the various mode values for the mode device.

    Public Enum ePairControlUse
        Not_Specified = 0
        _On = 1
        _Off = 2
        _Dim = 3
        _On_Alternate = 4
        _Play = 5               ' media control devices
        _Pause = 6
        _Stop = 7
        _Forward = 8
        _Rewind = 9
        _Repeat = 10
        _Shuffle = 11
        _HeatSetPoint = 12
        _CoolSetPoint = 13
        _ThermModeOff = 14
        _ThermModeHeat = 15
        _ThermModeCool = 16
        _ThermModeAuto = 17
        _DoorLock = 18
        _DoorUnLock = 19
        _ThermFanAuto = 20
        _ThermFanOn = 21
        _ColorControl = 22
    End Enum
    Last edited by rjh; January 21st, 2018, 10:58 AM.
    website | buy now | support | youtube