כל מכשירי 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 | המצלמה זיהתה תנועה. |
אירוע | אירוע אדם בתכונת CameraMovie | המצלמה זיהתה אדם. |
אירוע | אירוע צליל של תכונת CameraSound | המצלמה זיהתה צליל. |
אירוע | אירוע Chime של תכונת DoorbellChime | פעמון הדלת נלחץ. |
מטען ייעודי (payload)
{ "eventId" : "8cfbc540-68c8-42dd-9bb1-5b71c6ac7fa3",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : { "name" : "enterprises/project-id/devices/device-id", "events" : { "sdm.devices.events.DoorbellChime.Chime
" : { "eventSessionId" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...", "eventId" : "j1L8rc2B4PesaHP2zcdW6A-AwG..." } } } "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" : "HMy5lGCGEPspcfxKvpmxoiqf2i..."
}
}
תשובה
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
הורדת תמונה ממצלמה
ביצוע קריאת GET אל url
בתגובה לפקודה GenerateImage,
באמצעות token
בכותרת 'HTTP Authorization' עם ההרשאה הבסיסית, כדי
מורידים את תמונת המצלמה:
curl -H "Authorization: Basic g.0.eventToken" \
https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...
להשתמש בפרמטרים של שאילתה width
או height
כדי להתאים אישית את הרזולוציה של
התמונה שהורדתם. צריך לציין רק אחד מהפרמטרים האלה. השני
הפרמטר מותאם באופן אוטומטי ליחס הגובה-רוחב של המצלמה.
לדוגמה, אם יחס הגובה-רוחב של המצלמה הוא 4:3, כדי להוריד את תמונת המצלמה ברזולוציה של 480 x 360, מציינים את הרוחב או את הגובה:
רוחב
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
ראו את תמונת המצלמה של מידע על תכונות התמונה.
גישה לשידור חי
אפשר לגשת לשידור החי מהמצלמה. הפורמטים הבאים של שידורים הם נתמך במכשיר הזה:
- 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 של הפקודה 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
איך מפסיקים שידור חי
אם הפסקתם להשתמש בשידור חי מהמצלמה, צריך להפסיק אותו להשבית את הסטרימינג. כדי לעשות זאת, יש להשתמש בזרםFormatהעצירה המתאים. פקודה של CameraLiveStream [trait] לפורמט של השידור שיצרתם.
RTSP
כדי להפסיק זרם RTSP, משתמשים באסימון כדי לבטל את התיקוף באמצעות הפקודה StopRtspStream של הפקודה 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.