Guía de lavado para casa inteligente

action.devices.types.WASHER: Las lavadoras pueden tener funciones de inicio y detención independientemente de estar encendidas o apagadas (algunas lavadoras tienen botones de encendido independientes y otras no). Algunas se pueden pausar y reanudar durante el lavado. Las lavadoras también tienen varios modos, y cada uno tiene sus propios parámetros de configuración relacionados. Son específicos de la lavadora y se interpretan de manera generalizada.

Este tipo indica que el dispositivo tiene el ícono de la lavadora y algunas funciones relacionadas sinónimos y alias.

Si deseas ver un ejemplo de cómo controlar una lavadora con la casa inteligente de Google, consulta el codelab de lavadoras para el hogar inteligente.

Funciones del dispositivo

Consulta la documentación de la característica correspondiente para detalles de implementación, como los atributos y los estados que tu servicio debe admitir, y cómo compilar respuestas EXECUTE y QUERY.

Características requeridas

Estas características y comandos son obligatorios, si corresponde a tu dispositivo. Si tu dispositivo no admite estos rasgos, ingresa el código de error de functionNotSupported en una respuesta QUERY o EXECUTE. Consulta Consulta Errores y excepciones para obtener más información.

Se recomiendan estas características, si corresponde a tu dispositivo. Sin embargo, puedes mezclar y combinar todas las características disponibles para que se adapten mejor a tu la funcionalidad del producto.

Requisitos de calidad

  • Latencia: Debe ser menor o igual que 3,000 ms.
  • Confiabilidad: Debe ser mayor o igual que 97%.

Dispositivo de ejemplo: lavadora simple

Esta sección contiene cargas útiles de intents de ejemplo que representan una "Lavadora" común según el tipo de dispositivo y las características antes mencionadas. Si agregas o quitas características en tu implementación, modificar tus respuestas en consecuencia para reflejar esos cambios.

Ejemplo de respuesta de SYNC

Solicitar
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
.
.
Respuesta
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.WASHER",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.RunCycle",
          "action.devices.traits.StartStop",
          "action.devices.traits.Modes"
        ],
        "name": {
          "name": "Simple washer"
        },
        "willReportState": true,
        "attributes": {
          "availableModes": [
            {
              "name": "load_key",
              "name_values": [
                {
                  "name_synonym": [
                    "Load",
                    "Size",
                    "Load size"
                  ],
                  "lang": "en"
                }
              ],
              "settings": [
                {
                  "setting_name": "small_key",
                  "setting_values": [
                    {
                      "setting_synonym": [
                        "Small",
                        "Half"
                      ],
                      "lang": "en"
                    }
                  ]
                },
                {
                  "setting_name": "large_key",
                  "setting_values": [
                    {
                      "setting_synonym": [
                        "Large",
                        "Full"
                      ],
                      "lang": "en"
                    }
                  ]
                }
              ],
              "ordered": true
            }
          ],
          "pausable": true
        },
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

Ejemplo de respuesta de QUERY

Solicitar
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
.
.
Respuesta
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "on": true,
        "isRunning": true,
        "isPaused": false,
        "currentRunCycle": [
          {
            "currentCycle": "rinse",
            "nextCycle": "spin",
            "lang": "en"
          }
        ],
        "currentTotalRemainingTime": 600,
        "currentCycleRemainingTime": 300,
        "currentModeSettings": {
          "load_key": "small_key"
        }
      }
    }
  }
}

Ejemplos de comandos EXECUTE

OnOff

Para obtener detalles adicionales sobre los parámetros del comando, consulta la action.devices.traits.OnOff referencia.

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

StartStop

Para obtener detalles adicionales sobre los parámetros del comando, consulta la action.devices.traits.StartStop referencia.

Solicitar
{
  "requestId": "6894439706274654518",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.StartStop",
                "params": {
                  "start": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
.
.
Respuesta
{
  "requestId": "6894439706274654518",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "isRunning": true,
          "isPaused": false
        }
      }
    ]
  }
}

SetModes

Para obtener detalles adicionales sobre los parámetros del comando, consulta la action.devices.traits.Modes referencia.

Solicitar
{
  "requestId": "6894439706274654522",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.SetModes",
                "params": {
                  "updateModeSettings": {
                    "load_key": "large_key"
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
.
.
Respuesta
{
  "requestId": "6894439706274654522",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "currentModeSettings": {
            "load_key": "large_key"
          }
        }
      }
    ]
  }
}

ERRORES DE DISPOSITIVO

Consulta la lista completa de errores y excepciones.