Now Alexa Can Power on Devices in Low Power Mode with the Wake-on-LAN Controller
Brian Crum Nov 06, 2018
Share:
Smart Home News
Blog_Header_Post_Img

We’re excited to introduce the Wake-on-LAN Controller, which enables customers to use Alexa to power on smart devices that have gone into a low power mode and cannot be woken up via the cloud. Now, whenever a customer wants to power on a smart device, typically a TV or other entertainment equipment, that has gone into low power mode using only voice, they can simply say, "Alexa, turn on my TV.” The associated smart home skill then uses the Wake-on-LAN Controller to send a directive to a customer’s Echo devices, resulting in a Wake-on-LAN (WoL) packet being broadcast over the customer's local area network (LAN) or WiFi. Although device makers can already use the Alexa Smart Home API to control TVs and other equipment, until today customers were often not able to power on devices in low power mode. We have now delivered an alternative that can help power on devices, without requiring device makers to make hardware changes.

Using the Wake-on-LAN Controller has three main benefits:

  1. Powers on devices in low power mode: The Wake-on-LAN Controller uses the standard Wake-on-LAN / Wake on Wireless LAN protocol to power on devices that are in a low power mode and cannot otherwise be turned on via the cloud. The customer’s Echo Devices, connected on the same network as the targeted smart device, will then transmit the WoL packets using the MAC addresses and enables Alexa to power on your WoL capable devices.
  2. Provides a consistent customer experience, with no additional customer interaction needed: The controller provides a consistent experience to customers where they can ask Alexa to turn on devices and the device can be turned on irrespective of the power state of the device. Customers who have enabled the skill associated with their TV or other entertainment device will not need to take any additional steps to enable the feature.
  3. Works with the power controller: As a device manufacturer, when an Alexa request is sent to you, you can decide whether you want to wake up the device using your cloud or you want Alexa to execute the request using the WoL protocol.
     

How to Implement the Wake-on-LAN Controller

As a device maker, if you want to use WoL to power on your devices, your devices must support WoL protocol, and you need to follow these steps:

1. Build an Alexa smart home skill: Your Alexa skill will be used to send commands that will enable you to accept Alexa commands such as Turn on TV, Volume up on TV and you can execute these requests on customer devices.

2. Add the Wake-on-LAN Controller interface to your skill: Implement the WakeOnLANController interface and PowerController interface in your skill. When Alexa send you a discovery request, in the WakeOnLANController configuration object, you provide the device’s MAC address. This helps Alexa understand that the device the customer intends to control supports Wake-on-LAN. When a customer asks “Alexa, turn on TV”, then Alexa will send you a Turn on Directive which is part of PowerController capability of the skill. As with existing Alexa.Discovery directives, the Discover.Response event containing the MAC Address configuration is sent securely through an Alexa Smart Home Lambda event source. 

Copied to clipboard
{
  "type": "AlexaInterface",
    "interface": "Alexa.WakeOnLANController",
      "version": "3",
      "properties": {},
      "configuration": {
      "MACAddresses": [
      "00.14.22.01.23.45"
   ]
}

3. Send a deferred response: Once you have identified that the device needs to be woken up by the cloud, send a deferred response to Alexa. This indicates that a message will be sent to event gateway for Wake-on-LAN Controller execution.

Copied to clipboard
{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "DeferredResponse",
      "messageId": "abc-123-def-456",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "payloadVersion": "3"
    },
    "payload": {
      "estimatedDeferralInSeconds": 7
    }
  }
}

4. Send events to the Alexa gateway: Your skill will send a wake up event to the Alexa events gateway. Alexa will then process this event and broadcast Wake-on-LAN packets, via the Echo devices in the customer’s account, using the MAC address that you provided during the discovery response for the device.

Copied to clipboard
{
  "context": {
    "properties": [ {
      "namespace": "Alexa.PowerController",
      "name": "powerState",
      "value": "OFF",
      "timeOfSample": "2017-02-03T16:20:50.52Z",
      "uncertaintyInMilliseconds": 500
    } ]
  },
  "event": {
    "header": {
      "namespace": "Alexa.WakeOnLANController",
      "name": "WakeUp",
      "payloadVersion": "3",
      "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg=="
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "access-token-from-Amazon"
      },
      "endpointId": "appliance-001"
    },
    "payload": {}
  }
}

5. Send a change report event: Monitor the status of device and send a change report event to the Alexa event gateway when the TV powers on.

VIZIO, LG, and Hisense TVs have adopted this feature and will be rolling it out to their customers in the next several months. We are looking forward to seeing your response to these new capabilities. To learn more about the Wake-on-LAN Controller, see our technical documentation.
 

Additional Resources