스마트 홈 카메라 가이드

action.devices.types.CAMERA - 카메라는 복잡하며 기능은 업체마다 크게 다릅니다. 시간이 지나면서 카메라는 특정 기능을 설명하는 여러 특성을 획득하게 되며, 그 중 많은 부분이 다른 기기로 스트림을 전송하고, 스트림에 무엇이 있는지 파악하거나, 피드를 다시 재생하는 등의 특별한 방식으로 동영상/오디오 스트림과 상호작용할 수 있습니다.

이 유형은 기기에 카메라 아이콘과 관련 동의어 및 별칭을 가져옵니다.

기기 기능

서비스에서 지원해야 하는 속성 및 상태, EXECUTE 및 QUERY 응답 빌드 방법과 같은 구현 세부정보는 관련 특성 문서를 참고하세요.

필수 특성

기기에 해당되는 경우 이러한 특성과 명령어가 필요합니다. 기기에서 이러한 특성을 지원하지 않으면 QUERY 또는 EXECUTE 응답에 functionNotSupported 오류 코드를 입력하세요. 자세한 내용은 오류 및 예외를 참조하세요.

품질 요구사항

  • 지연 시간: 2000ms 이하여야 합니다.
  • 안정성: 97% 이상이어야 합니다.

기기 예: 간단한 카메라

이 섹션에는 위의 기기 유형 및 특성을 기반으로 일반적인 '카메라'를 나타내는 인텐트 페이로드 예시가 포함되어 있습니다. 구현에서 특성을 추가하거나 삭제하는 경우 이러한 변경사항을 반영하도록 응답을 수정하세요.

샘플 SYNC 응답

요청
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
응답
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.CAMERA",
        "traits": [
          "action.devices.traits.CameraStream"
        ],
        "name": {
          "name": "Simple camera"
        },
        "willReportState": true,
        "attributes": {
          "cameraStreamSupportedProtocols": [
            "hls",
            "progressive_mp4"
          ],
          "cameraStreamNeedAuthToken": true,
          "cameraStreamNeedDrmEncryption": false
        },
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

샘플 QUERY 응답

요청
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
응답
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true
      }
    }
  }
}

샘플 EXECUTE 명령어

카메라 스트림 가져오기

명령어 매개변수에 대한 자세한 내용은 action.devices.traits.CameraStream 참조를 확인하세요.

요청
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.GetCameraStream",
                "params": {
                  "StreamToChromecast": true,
                  "SupportedStreamProtocols": [
                    "progressive_mp4"
                  ]
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
응답
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "cameraStreamAccessUrl": "https://fluffysheep.com/baaaaa.mp4",
          "cameraStreamReceiverAppId": "1g2f89213hg",
          "cameraStreamAuthToken": "12657342190192783",
          "cameraStreamProtocol": "progressive_mp4"
        }
      }
    ]
  }
}

기기 ERRORS

오류 및 예외의 전체 목록을 참조하세요.
  • resourceUnavailable - 스트림 URL 생성과 관련된 모든 실패입니다.