Guide sur les plaques de cuisson connectées

action.devices.types.COOKTOP : les interactions avec les plaques de cuisson peuvent inclure l'activation et la désactivation, le démarrage et l'arrêt, la définition d'un minuteur, l'ajustement des modes de cuisson et des préréglages alimentaires, ainsi que l'ajustement de divers paramètres de mode non cuisson.

Ce type indique que l'appareil reçoit l'icône "Plaque de cuisson" et certains synonymes et alias associés.

Fonctionnalités de l'appareil

Consultez la documentation sur le trait correspondant pour obtenir des informations sur l'implémentation, telles que les attributs et les états que votre service doit prendre en charge, ainsi que sur la création de réponses EXECUTE et QUERY.

Traits obligatoires

Ces traits et commandes sont obligatoires, le cas échéant pour votre appareil. Si votre appareil ne prend pas en charge ces traits, saisissez le code d'erreur functionNotSupported dans une réponse QUERY ou EXECUTE. Pour en savoir plus, consultez la section Erreurs et exceptions.

Ces traits sont recommandés, le cas échéant pour votre appareil. Toutefois, vous êtes libre de combiner tous les traits disponibles pour qu'ils correspondent au mieux aux fonctionnalités de votre produit existant.

Exemple d'appareil : plaque de cuisson simple

Cette section contient des exemples de charges utiles d'intent représentant une "plaque de cuisson" courante en fonction du type d'appareil et des traits ci-dessus. Si vous ajoutez ou supprimez des traits dans votre implémentation, modifiez vos réponses en conséquence pour refléter ces changements.

Exemple de réponse SYNC

Requête
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.COOKTOP",
        "traits": [
          "action.devices.traits.Cook",
          "action.devices.traits.StartStop",
          "action.devices.traits.Timer",
          "action.devices.traits.OnOff"
        ],
        "name": {
          "name": "Simple cooktop"
        },
        "willReportState": true,
        "attributes": {
          "supportedCookingModes": [
            "COOK",
            "BOIL",
            "SAUTE"
          ],
          "foodPresets": [
            {
              "food_preset_name": "chicken_key",
              "supported_units": [
                "POUNDS",
                "OUNCES"
              ],
              "food_synonyms": [
                {
                  "synonym": [
                    "Chicken",
                    "Chicken breast",
                    "Chicken thigh"
                  ],
                  "lang": "en"
                }
              ]
            },
            {
              "food_preset_name": "bacon_key",
              "supported_units": [
                "POUNDS",
                "OUNCES"
              ],
              "food_synonyms": [
                {
                  "synonym": [
                    "Bacon",
                    "Bacon strips"
                  ],
                  "lang": "en"
                }
              ]
            }
          ],
          "maxTimerLimitSec": 1200,
          "pausable": true
        },
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

Exemple de réponse QUERY

Requête
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "on": true,
        "isRunning": true,
        "isPaused": false,
        "timerRemainingSec": 120,
        "currentCookingMode": "COOK",
        "currentFoodPreset": "chicken_key"
      }
    }
  }
}

Exemples de commandes EXECUTE

Cuisiner

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.Cook documentation de référence.

Requête
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.Cook",
                "params": {
                  "start": true,
                  "cookingMode": "BOIL"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "PENDING",
        "states": {
          "online": true,
          "currentCookingMode": "BOIL",
          "currentFoodPreset": "NONE"
        }
      }
    ]
  }
}

StartStop

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.StartStop documentation de référence.

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

PauseUnpause

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.StartStop documentation de référence.

Requête
{
  "requestId": "6894439706274654520",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.PauseUnpause",
                "params": {
                  "pause": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654520",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "isRunning": false,
          "isPaused": true
        }
      }
    ]
  }
}

TimerStart

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.Timer documentation de référence.

Requête
{
  "requestId": "6894439706274654522",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.TimerStart",
                "params": {
                  "timerTimeSec": 300
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654522",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "timerRemainingSec": 300
        }
      }
    ]
  }
}

TimerAdjust

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.Timer documentation de référence.

Requête
{
  "requestId": "6894439706274654524",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.TimerAdjust",
                "params": {
                  "timerTimeSec": -10
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654524",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "timerRemainingSec": 110
        }
      }
    ]
  }
}

TimerPause

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.Timer documentation de référence.

Requête
{
  "requestId": "6894439706274654526",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.TimerPause"
              }
            ]
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654526",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "timerRemainingSec": 120,
          "timerPaused": true
        }
      }
    ]
  }
}

TimerResume

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.Timer documentation de référence.

Requête
{
  "requestId": "6894439706274654528",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.TimerResume"
              }
            ]
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654528",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "timerRemainingSec": 120,
          "timerPaused": false
        }
      }
    ]
  }
}

TimerCancel

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.Timer documentation de référence.

Requête
{
  "requestId": "6894439706274654530",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.TimerCancel"
              }
            ]
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654530",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "timerRemainingSec": -1
        }
      }
    ]
  }
}

OnOff

Pour en savoir plus sur les paramètres de la commande, consultez la action.devices.traits.OnOff documentation de référence.

Requête
{
  "requestId": "6894439706274654532",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.OnOff",
                "params": {
                  "on": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Réponse
{
  "requestId": "6894439706274654532",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "on": true
        }
      }
    ]
  }
}

ERREURS de l'appareil

Consultez la liste complète des erreurs et exceptions.