action.devices.EXECUTE

Intent זה שולח פקודות להפעלה במכשירים לבית חכם.

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

אובייקט Intent אחד מסוג EXECUTE יכול לטרגט למספר מכשירים באמצעות מספר פקודות. לדוגמה, כשמפעילים Intent, המערכת יכולה להגדיר גם בהירות וגם צבע בקבוצה של או להגדיר כמה נורות בצבע שונה.

מידע נוסף זמין במאמר בנושא שאילתה והפעלה.

פורמט הבקשה

שדות סוג תיאור
requestId String

חובה.

מזהה הבקשה.

inputs מערך

חובה.

רשימת מקורות קלט שתואמים לבקשת ה-Intent.

[item, ...] מפגע

הסוג והמטען הייעודי (Payload) שמשויכים לבקשת ה-Intent.

intent

חובה.

(ערך קבוע: "action.devices.EXECUTE")

סוג הבקשה של אובייקט Intent.

payload מפגע

חובה.

EXECUTE של הבקשה מטען ייעודי (payload).

commands מערך

חובה.

רשימה של צמדי פקודות ומכשיר יעד.

[item, ...] מפגע

קבוצת פקודות להפעלה ביעדים של המכשירים המחוברים.

devices מערך

חובה.

רשימה של מכשירי יעד.

[item, ...] מפגע

יעד המכשיר להפעלה.

id String

חובה.

מזהה המכשיר, לפי המזהה שסופק בסנכרון.

customData מפגע

אם אובייקט customData האטום מסופק בסנכרון, הוא נשלח כאן.

execution מערך

חובה.

רשימת הפקודות להפעלה במכשירי היעד.

[item, ...] מפגע

פקודה במכשיר.

command String

חובה.

הפקודה להפעלה, בדרך כלל עם פרמטרים נלווים.

params מפגע

התאמה לפרמטרים של כל פקודה.

דוגמאות

החרגה של בקשת Intent

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123",
                "customData": {
                  "fooValue": 74,
                  "barValue": true,
                  "bazValue": "sheepdip"
                }
              },
              {
                "id": "456",
                "customData": {
                  "fooValue": 36,
                  "barValue": false,
                  "bazValue": "moarsheep"
                }
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.OnOff",
                "params": {
                  "on": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

פורמט התשובה

שדות סוג תיאור
requestId String

חובה.

המזהה של הבקשה התואמת.

payload מפגע

חובה.

מטען ייעודי (payload) של תגובה של Intent.

errorCode String

קוד שגיאה לכל הטרנזקציה בגלל כשלי אימות וחוסר זמינות של המערכת של המפתח. במקרה של שגיאות במכשיר ספציפי, צריך להשתמש ב-ErrorCode באובייקט המכשיר.

debugString String

שגיאה מפורטת שאף פעם לא תוצג למשתמשים, אבל ייתכן שתירשם ביומן או תשתמש בה במהלך הפיתוח.

commands מערך

כל אובייקט מכיל מכשיר אחד או יותר עם פרטי התגובה. נ.ב. יכול להיות שהנתונים האלה לא יקובצו באותו אופן כמו בבקשה. לדוגמה, אם הבקשה נדלקת 7 נורות ו-3 נורות נכשלות ו-4 נורות נכשלות, כך שבתשובה שהתקבלה שתי קבוצות.

[item, ...] מפגע

תוצאת ביצוע של המכשיר.

ids מערך

חובה.

רשימה של מזהי מכשירים שתואמים לסטטוס הזה.

[item, ...] String

מזהה המכשיר.

status String

חובה.

התוצאה של פעולת הביצוע.

ערכים נתמכים:

SUCCESS
מוודאים שהפקודה הצליחה.
PENDING
הפקודה נוספה לתור אבל צפויה להצליח.
OFFLINE
מכשיר היעד נמצא במצב אופליין או שלא ניתן לגשת אליו.
EXCEPTIONS
יש בעיה או התראה שמשויכת לפקודה. הפקודה יכולה להצליח או להיכשל. סוג הסטטוס הזה מוגדר בדרך כלל כשרוצים לשלוח מידע נוסף על מכשיר מחובר אחר.
ERROR
מכשיר היעד לא יכול לבצע את הפקודה.
states מפגע

תואם למצבים של כל תכונה שמתוארים בכל הפניה לסכימת תכונות. אלה המצבים אחרי הביצוע, אם הם זמינים.

online בוליאני

מציין אם המכשיר במצב אונליין (כלומר נגיש) או לא.

errorCode String

הרחבת מצב ERROR במידת הצורך מקודי השגיאה הקבועים מראש, שתמפה לשגיאות המוצגות למשתמשים.

דוגמאות

ביצוע תגובה של Intent

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      },
      {
        "ids": [
          "456"
        ],
        "status": "ERROR",
        "errorCode": "deviceTurnedOff"
      }
    ]
  }
}