

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Gestione los comandos y eventos de los dispositivos de IoT
<a name="device-commands-events"></a>

Los comandos del dispositivo permiten administrar de forma remota un dispositivo físico, lo que garantiza un control total sobre el dispositivo, además de realizar actualizaciones críticas de seguridad, software y hardware. Con una gran flota de dispositivos, saber cuándo un dispositivo ejecuta un comando permite supervisar toda la implementación del dispositivo. Un comando del dispositivo o una actualización automática activarán un cambio de estado del dispositivo, lo que a su vez creará un nuevo evento en el dispositivo. Este evento en el dispositivo activará una notificación que se enviará automáticamente a un destino gestionado por el cliente.

**Topics**
+ [Comandos de dispositivos](#device-commands)
+ [Eventos del dispositivo](#device-events)

## Comandos de dispositivos
<a name="device-commands"></a>

Una solicitud de comando es el comando que se envía al dispositivo. Una solicitud de comando incluye una carga útil que especifica la acción que se debe realizar, como encender la bombilla. Para enviar un comando de dispositivo, Managed Integrations llama a la `SendManagedThingCommand` API en nombre del usuario final y envía la solicitud de comando al dispositivo. 

La respuesta a a `SendManagedThingCommand` es a `traceId` y se puede utilizar para realizar un seguimiento de la entrega de comandos y de cualquier flujo de trabajo relacionado con la respuesta `traceId` a los comandos siempre que sea posible.

Para obtener más información sobre el funcionamiento `SendManagedThingCommand` de la API, consulte [SendManagedThingCommand](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_SendManagedThingCommand.html).

**Acción de `UpdateState`**

Para actualizar el estado de un dispositivo, por ejemplo, la hora en que se enciende una luz, usa la `UpdateState` acción al llamar a la `SendManagedThingCommand` API. Indique la propiedad del modelo de datos y el nuevo valor con el que está actualizando`parameters`. El siguiente ejemplo ilustra una solicitud `OnTime` de `SendManagedThingCommand` API que actualiza la bombilla a`5`.

```
{
  "Endpoints": [
    {
      "endpointId": "1",
      "capabilities": [
        {
          "id": "matter.OnOff",
          "name": "On/Off",
          "version": "1",
          "actions": [
            {
              "name": "UpdateState",
              "parameters": {
                "OnTime": 5
              }
            }
          ]
        }
      ]
    }
  ]
}
```

**Acción de `ReadState`**

Para obtener el estado más reciente de un dispositivo, incluidos los valores actuales de todas las propiedades del modelo de datos, usa la `ReadState` acción cuando llames a la `SendManagedThingCommand` API. En`propertiesToRead`, puedes usar las siguientes opciones:
+ Proporcione una propiedad específica del modelo de datos para obtener el valor más reciente, por ejemplo, `OnOff` para determinar si una luz está encendida o apagada.
+ Utilice el operador comodín (`*`) para leer *todas las* propiedades del estado del dispositivo para obtener una capacidad.

Los siguientes ejemplos ilustran ambos escenarios para una solicitud de `SendManagedThingCommand` API mediante la `ReadState` acción:

```
{
  "Endpoints": [
    {
      "endpointId": "1",
      "capabilities": [
        {
          "id": "aws.OnOff",
          "name": "On/Off",
          "version": "1",
          "actions": [
            {
              "name": "ReadState",
              "parameters": {
                "propertiesToRead": [ "OnOff" ]
              }
            }
          ]
        }
      ]
    }
  ]
}
```

```
{
  "Endpoints": [
    {
      "endpointId": "1",
      "capabilities": [
        {
          "id": "aws.OnOff",
          "name": "On/Off",
          "version": "1",
          "actions": [
            {
              "name": "ReadState",
              "parameters": {
                "propertiesToRead": [ "*" ]
              }
            }
          ]
        }
      ]
    }
  ]}
```

## Eventos del dispositivo
<a name="device-events"></a>

Un evento de dispositivo incluye el estado actual del dispositivo. Esto puede significar que el dispositivo ha cambiado de estado o que está informando de su estado aunque el estado no haya cambiado. Incluye informes de propiedades y eventos que se definen en el modelo de datos. Un evento podría ser que se haya completado el ciclo de la lavadora o que el termostato haya alcanzado la temperatura deseada establecida por el usuario final.

**Notificaciones de eventos del dispositivo**

Un usuario final puede suscribirse a destinos específicos gestionados por el cliente que cree para recibir actualizaciones sobre eventos específicos del dispositivo. Para crear un destino gestionado por el cliente, llama a la API. `CreateDestination` Cuando el dispositivo informa de un evento de dispositivo a Managed Integrations, se notifica al destino gestionado por el cliente, si existe alguno. 