מדריך למכונה אוטומטית להאכלת חיות מחמד לבית חכם

‫action.devices.types.PETFEEDER – אינטראקציות עם מתקני האכלה לחיות מחמד עשויות לכלול חלוקת מזון או מים לחיות מחמד בכמויות שונות ובהגדרות קבועות מראש.

הסוג הזה מציין שהמכשיר מקבל את הסמל של מתקן האכלה לחיות מחמד וכמה מילים נרדפות וכינויים קשורים.

תכונות המכשיר

במסמכי התיעוד של התכונה המתאימה מפורטים פרטי ההטמעה, כמו מאפיינים ומצבים שהשירות שלכם צריך לתמוך בהם, והסבר על אופן יצירת תשובות של EXECUTE ו-QUERY.

מאפיינים נדרשים

התכונות והפקודות האלה נדרשות, אם הן רלוונטיות למכשיר שלכם. אם המכשיר לא תומך בתכונות האלה, צריך להזין את קוד השגיאה functionNotSupported בתגובה של QUERY או EXECUTE. מידע נוסף זמין במאמר שגיאות וחריגים.

מומלץ להשתמש בתכונות האלה אם הן רלוונטיות למכשיר שלכם. עם זאת, אתם יכולים לשלב בין כל התכונות הזמינות כדי להתאים אותן בצורה הטובה ביותר לפונקציונליות הקיימת של המוצר.

מכשיר לדוגמה: מכונה אוטומטית פשוטה להאכלת חיות מחמד

בקטע הזה מופיעות דוגמאות למטענים ייעודיים (payloads) של כוונות שמייצגים 'מאכיל חיות מחמד' נפוץ, על סמך סוג המכשיר והמאפיינים שצוינו למעלה. אם מוסיפים או מסירים מאפיינים בהטמעה, צריך לשנות את התגובות בהתאם כדי לשקף את השינויים האלה.

דוגמה לתגובת סנכרון

בקשה
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.PETFEEDER",
        "traits": [
          "action.devices.traits.Dispense",
          "action.devices.traits.StartStop"
        ],
        "name": {
          "name": "Simple pet feeder"
        },
        "willReportState": true,
        "attributes": {
          "supportedDispenseItems": [
            {
              "item_name": "cat_food_key",
              "item_name_synonyms": [
                {
                  "lang": "en",
                  "synonyms": [
                    "Cat food",
                    "Kibble"
                  ]
                }
              ],
              "supported_units": [
                "OUNCES",
                "CUPS"
              ],
              "default_portion": {
                "amount": 1,
                "unit": "CUPS"
              }
            }
          ],
          "supportedDispensePresets": [
            {
              "preset_name": "cat_meal_key",
              "preset_name_synonyms": [
                {
                  "lang": "en",
                  "synonyms": [
                    "Normal meal",
                    "Dinner"
                  ]
                }
              ]
            }
          ]
        },
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

דוגמה לתשובה של שאילתה

בקשה
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "dispenseItems": [
          {
            "itemName": "cat_food_key",
            "amountRemaining": {
              "amount": 6,
              "unit": "CUPS"
            },
            "amountLastDispensed": {
              "amount": 2.5,
              "unit": "CUPS"
            },
            "isCurrentlyDispensing": false
          }
        ],
        "isRunning": true,
        "isPaused": false
      }
    }
  }
}

דוגמאות לפקודות EXECUTE

חלוקה

פרטים נוספים על פרמטרים של הפקודה זמינים במאמר בנושא action.devices.traits.Dispense.

בקשה
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.Dispense",
                "params": {
                  "amount": 1,
                  "unit": "CUPS",
                  "item": "cat_food_key"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "PENDING",
        "states": {
          "online": true,
          "dispenseItems": [
            {
              "itemName": "cat_food_key",
              "amountRemaining": {
                "amount": 5,
                "unit": "CUPS"
              },
              "amountLastDispensed": {
                "amount": 1,
                "unit": "CUPS"
              },
              "isCurrentlyDispensing": true
            }
          ]
        }
      }
    ]
  }
}

StartStop

פרטים נוספים על פרמטרים של הפקודה זמינים במאמר בנושא action.devices.traits.StartStop.

בקשה
{
  "requestId": "6894439706274654518",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.StartStop",
                "params": {
                  "start": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654518",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "PENDING",
        "states": {
          "online": true,
          "isRunning": true,
          "isPaused": false
        }
      }
    ]
  }
}

PauseUnpause

פרטים נוספים על פרמטרים של הפקודה זמינים במאמר בנושא action.devices.traits.StartStop.

בקשה
{
  "requestId": "6894439706274654520",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.PauseUnpause",
                "params": {
                  "pause": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654520",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "PENDING",
        "states": {
          "online": true,
          "isRunning": false,
          "isPaused": true
        }
      }
    ]
  }
}

שגיאות במכשיר

רשימה מלאה של שגיאות וחריגים