כל מכשירי Nest Doorbell הקודמים נתמכים דרך ה-API של ניהול מכשירים חכמים (SDM). המכשיר הזה מחזיר את סוג המכשיר DOORBELL:
sdm.devices.types.DOORBELL
ב-Google Nest Doorbell (דור קודם) יש מצלמה, שפועלת כמו מכשיר מסוג 'מצלמה'.
תכונות
חומרי עזר
המאפיינים, הפקודות או האירועים הבאים קשורים למכשיר הזה:
מאפיין | תיאור | פקודות | אירועים |
---|---|---|---|
CameraEventImage | התכונה הזו שייכת לכל מכשיר שתומך ביצירה של תמונות מאירועים. | GenerateImage | |
CameraImage | המאפיין הזה שייך לכל מכשיר שתומך בצילום תמונות. | ||
CameraLiveStream | התכונה הזו שייכת לכל מכשיר שתומך בסטרימינג בשידור חי. | GenerateRtspStream ExtendRtspStream StopRtspStream | |
CameraMotion | המאפיין הזה שייך לכל מכשיר שתומך באירועי זיהוי תנועה. | תנועה | |
CameraPerson | המאפיין הזה שייך לכל מכשיר שתומך באירועי זיהוי אנשים. | אדם | |
CameraSound | המאפיין הזה שייך לכל מכשיר שתומך באירועי זיהוי צלילים. | צליל | |
DoorbellChime | המאפיין הזה שייך לכל מכשיר שתומך בצלצול של פעמון דלת ובאירועי לחיצה קשורים. | Chime | |
מידע | התכונה הזו שייכת לכל מכשיר לקבלת מידע שקשור למכשיר. |
JSON
אם מאפיין מסוים לא מופיע בתגובה של קריאת GET, סימן שהמאפיין או התכונה לא זמינים כרגע במכשיר. למידע נוסף, אפשר לקרוא את המאמר סוגי מכשירים.
{ "type" : "sdm.devices.types.DOORBELL", "traits" : { "sdm.devices.traits.CameraEventImage" : {}, "sdm.devices.traits.CameraImage" : { "maxImageResolution" : { "width" : 1280, "height" : 960 } }, "sdm.devices.traits.CameraLiveStream" : { "maxVideoResolution" : { "width" : 640, "height" : 480 }, "videoCodecs" : ["H264"], "audioCodecs" : ["AAC"], "supportedProtocols" : ["WEB_RTC"] }, "sdm.devices.traits.CameraMotion" : {}, "sdm.devices.traits.CameraPerson" : {}, "sdm.devices.traits.CameraSound" : {}, "sdm.devices.traits.DoorbellChime" : {}, "sdm.devices.traits.Info" : { "customName" : "My device" } } }
טיפול באירועים של פעמון דלת ומצלמה
האירועים הבאים עשויים להיגרם ממכשיר מסוג DOORBELL:סוג | רכיב | תיאור |
---|---|---|
אירוע | אירוע Motion של תכונת CameraMotion | המצלמה זיהתה תנועה. |
אירוע | האירוע Person של המאפיין CameraPerson | המצלמה זיהתה אדם. |
אירוע | אירוע צליל של תכונת CameraSound | המצלמה זיהתה קול. |
אירוע | האירוע Chime של המאפיין DoorbellChime | פעמון הדלת נלחץ. |
מטען ייעודי (payload)
{ "eventId" : "76f85e13-cc15-4705-83c3-0b3838118524",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "cV7T3NiEMXH5ZmQz21AwMaW0mF..." } } } "userId" : "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [ "enterprises/project-id/devices/device-id" ] }
eventId
שאפשר להשתמש בו עם הפקודה GenerateImage. הפקודה הזו מחזירה כתובת URL להורדה של תמונת המצלמה שקשורה לאירוע:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "mFNqXZk08luMZuuBBPCPbS7mZ4..."
}
}
תשובה
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
הורדת תמונה מהמצלמה
כדי להוריד את תמונת המצלמה, מבצעים קריאת GET ל-url
מתגובת הפקודה GenerateImage באמצעות token
שמופיע בכותרת הרשאת HTTP עם הרשאה בסיסית.
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...
משתמשים בפרמטרים של שאילתה width
או height
כדי להתאים אישית את הרזולוציה של התמונה שמורידים. צריך לציין רק אחד מהפרמטרים האלה. הפרמטר השני מותאם באופן אוטומטי בהתאם ליחס הגובה-רוחב של המצלמה.
לדוגמה, אם יחס הגובה-רוחב של המצלמה הוא 4:3, כדי להוריד את התמונה ברזולוציה של 480x360, מציינים את הרוחב או את הגובה:
רוחב
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480
גובה
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360
חלות הגבלות נוספות על כתובת ה-URL להורדה:
- אם שני הפרמטרים מצוינים בכתובת ה-URL, המערכת משתמשת ב-
width
ומתעלם מ-height
. - אם לא ציינתם אף אחד מהפרמטרים בכתובת ה-URL, נבחר ערך ברירת מחדל של 480 ל-
width
.
למידע על מאפייני התמונות, אפשר לעיין במאפיין CameraImage .
גישה לשידור חי
אפשר לגשת לשידור החי מהמצלמה. המערכת תומכת בפורמטים הבאים של סטרימינג במכשיר הזה:
- RTSP
רשימה מלאה של המצלמות ופורמטים נתמכים של סטרימינג מפורטת בקטע מכשירים נתמכים.
כדי לגשת לשידור חי, משתמשים בפקודה GenerateFormatStream המתאימה של המאפייןCameraLiveStream.
RTSP
בשידור RTSP, הפקודה GenerateRtspStream של הפקודה של המאפיין CameraLiveStream מחזירה את כתובת ה-URL של השידור ואת streamToken
הקשור:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.GenerateRtspStream
",
"params" : {}
}
תשובה
{ "results" : { "streamUrls" : { "rtspUrl" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken" }, "streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "streamToken" : "g.0.streamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
לאחר מכן, משתמשים בכתובת ה-URL של הסטרימינג כדי לגשת לשידור החי של המצלמה:
rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken
אי אפשר לשתף כתובות URL של שידורים חיים ב-RTSP בין לקוחות. לקוח אחד בלבד יכול להשתמש בכתובת URL של שידור בכל פעם. אם כמה לקוחות רוצים להפעיל סטרימינג מאותה מצלמה בו-זמנית, צריך לשלוח פקודות RTSP לכל לקוח בנפרד, וכל לקוח צריך להשתמש בכתובת URL משלו לסטרימינג.
הארכת שידור חי
סשנים של שידורים חיים ממצלמה תקפים למשך 5 דקות בלבד. אם אתם צריכים להאריך את משך החיים של שידור חי, השתמשו בפקודה המתאימה ExtendFormatStream של המאפיין CameraLiveStream בפורמט הסטרימינג שיצרתם.
RTSP
כדי להרחיב שידור RTSP, משתמשים
בפקודה ExtendRtspStream בפקודת ה-trait של CameraLiveStream כדי לקבל את הערכים streamExtensionToken
ו-streamToken
החדשים:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.ExtendRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
תשובה
{ "results" : { "streamExtensionToken" : "dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "streamToken" : "g.0.newStreamingToken", "expiresAt" : "2018-01-04T18:30:00.000Z" } }
כדי להמשיך לצפות בשידור החי, מעדכנים את כתובת ה-URL של הסטרימינג באמצעות הערכים החדשים הבאים:
rtsps://someurl.com/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?auth=g.0.newStreamingToken
איך מפסיקים שידור חי
בכל פעם שאתם מפסיקים להשתמש בשידור חי מהמצלמה, עליכם לעצור אותו ולבטל את התוקף שלו. כדי לעשות זאת, משתמשים בפקודה המתאימה StopFormatStream של המאפייןCameraLiveStreamלפורמט הסטרימינג שיצרתם.
RTSP
כדי לעצור סטרימינג של RTSP, משתמשים באסימון כדי לבטל את התוקף באמצעות הפקודה StopRtspStream של פקודת ה-trait של CameraLiveStream:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraLiveStream.StopRtspStream
",
"params" : {
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF..."
}
}
תשובה
{}
שגיאות
ייתכן שיוחזר אחד או יותר מקודי השגיאה הבאים לגבי המכשיר הזה:
הודעת השגיאה | הכנסה לקליק | פתרון בעיות |
---|---|---|
התמונה מהמצלמה כבר לא זמינה להורדה. | DEADLINE_EXCEEDED |
התוקף של תמונות האירוע יפוג 30 שניות אחרי פרסום האירוע. חשוב להוריד את התמונה לפני שתוקפה יפוג. |
מזהה האירוע לא שייך למצלמה. | FAILED_PRECONDITION |
צריך להשתמש בeventID הנכון שהוחזר על ידי אירוע המצלמה. |
בחומר העזר בנושא קודי שגיאה ב-API מופיעה רשימה מלאה של קודי השגיאה ב-API.