Przewodnik po czujnikach inteligentnego domu

action.devices.types.SENSOR – jeden czujnik może pełnić wiele funkcji, np. monitorować zarówno temperaturę, jak i wilgotność. Czujniki mogą podawać pomiary ilościowe (np. poziom tlenku węgla i dymu mierzony w cząsteczkach na milion) lub jakościowe (np. czy jakość powietrza jest dobra czy zła).

Ten typ oznacza, że urządzenie otrzymuje ikonę czujnika oraz powiązane synonimy i aliasy.

Funkcje urządzenia

Szczegóły implementacji, takie jak atrybuty i stany, które powinna obsługiwać Twoja usługa, oraz sposób tworzenia odpowiedzi EXECUTE i QUERY, znajdziesz w dokumentacji odpowiedniego cechy.

Te cechy są zalecane, jeśli mają zastosowanie do Twojego urządzenia. Możesz jednak dowolnie łączyć wszystkie dostępne atrybuty, aby jak najlepiej dopasować je do istniejących funkcji produktu.

Czujniki mogą też wykorzystywać inne cechy dotyczące danych, które mogą zgłaszać, takie jak:

Przykładowe urządzenie: prosty czujnik

Ta sekcja zawiera przykładowe ładunki intencji reprezentujące typowe „czujniki” na podstawie typu urządzenia i cech wymienionych powyżej. Jeśli dodasz lub usuniesz cechy w swojej implementacji, odpowiednio zmodyfikuj odpowiedzi, aby odzwierciedlały te zmiany.

Przykładowa odpowiedź SYNC

Prośba
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
Odpowiedź
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.SENSOR",
        "traits": [
          "action.devices.traits.EnergyStorage",
          "action.devices.traits.OccupancySensing",
          "action.devices.traits.SensorState"
        ],
        "name": {
          "name": "Simple sensor"
        },
        "willReportState": true,
        "attributes": {
          "sensorStatesSupported": [
            {
              "name": "AirQuality",
              "descriptiveCapabilities": {
                "availableStates": [
                  "healthy",
                  "moderate",
                  "unhealthy",
                  "very unhealthy"
                ]
              }
            }
          ],
          "queryOnlyEnergyStorage": true,
          "occupancySensorConfiguration": [
            {
              "occupancySensorType": "PIR",
              "occupiedToUnoccupiedDelaySec": 10,
              "unoccupiedToOccupiedDelaySec": 10,
              "unoccupiedToOccupiedEventThreshold": 2
            }
          ]
        },
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

Przykładowa odpowiedź na zapytanie

Prośba
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
Odpowiedź
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "currentSensorStateData": [
          {
            "name": "AirQuality",
            "currentSensorState": "healthy"
          }
        ],
        "descriptiveCapacityRemaining": "HIGH",
        "capacityRemaining": [
          {
            "unit": "PERCENTAGE",
            "rawValue": 90
          }
        ],
        "occupancy": "OCCUPIED"
      }
    }
  }
}

BŁĘDY urządzenia

Zobacz pełną listę błędów i wyjątków.