Smart Home Blanket Guide

action.devices.types.BLANKET - Interactions with smart blankets may include turning them on and off, adjusting their temperature, and/or setting various modes and toggles.

This type indicates that the device gets the Blanket icon and some related synonyms and aliases.

Device capabilities

Refer to the corresponding trait documentation for implementation details, such as attributes and states that your service should support, and how to build EXECUTE and QUERY responses.

These traits are recommended, if applicable to your device. However, you are free to mix and match from all available traits to best match your existing product functionality.

Quality requirements

  • Latency: must be less than or equal to 2500ms.
  • Reliability: must be more than or equal to 97%.

Example device: Blanket

This section contains example intent payloads representing a common "Blanket" based on the device type and traits above. If you add or remove traits in your implementation, modify your responses accordingly to reflect those changes.

Sample SYNC response

Request
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
Response
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.BLANKET",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.Modes",
          "action.devices.traits.Toggles"
        ],
        "name": {
          "name": "Blanket"
        },
        "willReportState": true,
        "attributes": {
          "availableModes": [
            {
              "name": "temp_mode",
              "name_values": [
                {
                  "name_synonym": [
                    "Temperature",
                    "Temp"
                  ],
                  "lang": "en"
                }
              ],
              "settings": [
                {
                  "setting_name": "hot_temp",
                  "setting_values": [
                    {
                      "setting_synonym": [
                        "Hot"
                      ],
                      "lang": "en"
                    }
                  ]
                },
                {
                  "setting_name": "warm_temp",
                  "setting_values": [
                    {
                      "setting_synonym": [
                        "Warm"
                      ],
                      "lang": "en"
                    }
                  ]
                }
              ]
            }
          ],
          "availableToggles": [
            {
              "name": "auto_off",
              "name_values": [
                {
                  "name_synonym": [
                    "Auto off"
                  ],
                  "lang": "en"
                }
              ]
            }
          ]
        },
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

Sample QUERY response

Request
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
Response
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "on": true,
        "currentModeSettings": {
          "temp_mode": "warm_temp"
        },
        "currentToggleSettings": {
          "auto_off": true
        }
      }
    }
  }
}

Sample EXECUTE commands

OnOff

For additional details on the command parameters, see the action.devices.traits.OnOff reference.

Request
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.OnOff",
                "params": {
                  "on": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Response
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "on": true
        }
      }
    ]
  }
}

SetModes

For additional details on the command parameters, see the action.devices.traits.Modes reference.

Request
{
  "requestId": "6894439706274654518",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.SetModes",
                "params": {
                  "updateModeSettings": {
                    "temp_mode": "hot_temp"
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Response
{
  "requestId": "6894439706274654518",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "currentModeSettings": {
            "temp_mode": "hot_temp"
          }
        }
      }
    ]
  }
}

SetToggles

For additional details on the command parameters, see the action.devices.traits.Toggles reference.

Request
{
  "requestId": "6894439706274654520",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.SetToggles",
                "params": {
                  "updateToggleSettings": {
                    "auto_off": false
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Response
{
  "requestId": "6894439706274654520",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "currentToggleSettings": {
            "auto_off": false
          }
        }
      }
    ]
  }
}

Device ERRORS

See the full list of errors and exceptions.