Smart-Home-Garagenleitfaden

action.devices.types.GARAGE: Garagentore können geöffnet und geschlossen werden und einen offenen Zustand erkennen. Sie können auch angeben, ob ein Objekt den Weg der Tür beim Schließen blockiert hat oder ob die Tür verriegelt ist und daher nicht gesteuert werden kann.

Dieser Typ gibt an, dass das Gerät das Garagensymbol und einige zugehörige Synonyme und Aliase erhält.

Gerätefunktionen

In der entsprechenden Trait-Dokumentation finden Sie Implementierungsdetails wie Attribute und Status, die Ihr Dienst unterstützen sollte, und Informationen zum Erstellen von EXECUTE- und QUERY-Antworten.

Erforderliche Merkmale

Diese Merkmale und Befehle sind erforderlich, sofern sie für Ihr Gerät zutreffen. Wenn dein Gerät diese Merkmale nicht unterstützt, gib den Fehlercode functionNotSupported in einer QUERY- oder EXECUTE-Antwort ein. Weitere Informationen finden Sie unter Fehler und Ausnahmen.

Diese Merkmale werden empfohlen, sofern sie für Ihr Gerät zutreffen. Sie können jedoch alle verfügbaren Eigenschaften kombinieren, um die vorhandene Produktfunktionalität optimal abzubilden.

Beispielgerät: Einfache Garage

Dieser Abschnitt enthält Beispielnutzlasten für Intents, die eine gängige „Garage“ basierend auf dem Gerätetyp und den oben genannten Eigenschaften darstellen. Wenn Sie Ihrer Implementierung Attribute hinzufügen oder daraus entfernen, müssen Sie Ihre Antworten entsprechend anpassen.

Beispiel für eine SYNC-Antwort

Anfrage
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
Antwort
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.GARAGE",
        "traits": [
          "action.devices.traits.OpenClose",
          "action.devices.traits.LockUnlock"
        ],
        "name": {
          "name": "Simple garage"
        },
        "willReportState": true,
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

Beispiel für eine QUERY-Antwort

Anfrage
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
Antwort
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "openPercent": 50,
        "isLocked": false,
        "isJammed": false
      }
    }
  }
}

Beispiel für EXECUTE-Befehle

OpenClose

Weitere Informationen zu den Befehlsparametern finden Sie in der Referenz zu action.devices.traits.OpenClose.

Anfrage
{
  "requestId": "6894439706274654518",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.OpenClose",
                "params": {
                  "openPercent": 100
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Antwort
{
  "requestId": "6894439706274654518",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "openPercent": 100
        }
      }
    ]
  }
}

LockUnlock

Weitere Informationen zu den Befehlsparametern finden Sie in der Referenz zu action.devices.traits.LockUnlock.

Anfrage
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.LockUnlock",
                "params": {
                  "lock": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Antwort
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "isLocked": true,
          "isJammed": false
        }
      }
    ]
  }
}

GERÄTEFEHLER

Vollständige Liste der Fehler und Ausnahmen
  • obstructionDetected: Der Nutzer hat versucht, das Garagentor zu schließen, aber ein Objekt hat das Tor blockiert.
  • lockedState: Der Nutzer hat versucht, das Garagentor zu steuern, aber es ist verriegelt und kann nicht bewegt werden.