Home Assistant용 Eufy Security Integration의 알파 릴리스에 오신 것을 환영합니다. 용기를 내어 이 버전을 사용해 보신 것을 축하드립니다.
eufy-security-ws
eufy-security-client
security-ws를 구축하고 eufy-security-ws
hassio-eufy-security-ws
로 래핑하여 홈어시스턴트 애드온으로 사용할 수 있습니다.event duration in seconds
) 동안 상태를 유지합니다.여기를 확인하세요: https://github.com/bropat/eufy-security-client#known-working-devices
다음 단계에서는 하나 이상의 추가 기능과 두 개의 통합을 설치하게 됩니다.
Home Assistant 에코시스템에서 Supervised 또는 HASS OS 기반 설정을 사용하는 경우 Home Assistant의 Add-ons
페이지를 사용하여 설치할 수 있습니다. Core를 실행 중이거나 설정에 Add-ons
옵션이 없는 경우 docker를 설치하고 이러한 컨테이너를 직접 실행해야 합니다. 각 단계에서 해당 명령을 볼 수 있습니다. 도커 컨테이너 구성에 관심이 있다면 마지막 섹션을 확인하세요.
이 통합은 Home Assistant Core의 일부가 아니므로 이를 사용자 정의 통합으로 설치해야 합니다. 이를 수행하는 방법에는 수동으로 파일을 다운로드하고 복사하거나 HACS(Home Assistant Community Store)를 사용하는 두 가지 방법이 있습니다. 여기서는 HACS 방법을 사용하겠습니다.
비디오 스트리밍 목적으로 이 통합을 사용하려는 경우 카메라가 RTSP(실시간 스트리밍 프로토콜) 기반 스트리밍을 지원하지 않는 경우(카메라 설정에 연속 녹화 또는 NAS 녹화 옵션이 없음) webrtc 사용자 정의 통합도 설치해야 합니다. 여기에는 go2rtc 바이너리가 포함됩니다(go2rtc는 독립형 추가 기능으로도 존재합니다). 이 추가 기능을 사용하면 P2P(Peer to Peer) 바이트를 RTSP 스트림으로 변환할 수 있으므로 Home Assistant(RTC 유무에 관계없이) 또는 VLC Player에서 원활하게 재생할 수 있습니다.
비디오 스트리밍 목적으로 이 통합을 사용하려는 경우 카메라가 RTSP를 지원하는 경우 RTSP 스트림 생성은 하드웨어의 책임이고 P2P 기반 스트리밍보다 훨씬 안정적이므로 안정적인 스트림을 즐길 수 있습니다. 들어오는 P2P 바이트를 RTSP 스트림으로 변환할 필요가 없습니다. 지원되지 않는 장치에 대해 RTSP 스트림을 활성화할 수 있는 Eufy Security의 Android APK 수정 버전이 있지만 시도하지는 않았습니다. 더욱이 저는 개인적으로 P2P 필수 장치를 소유하고 있지 않습니다. 그 이유는 문제를 로컬로 재현할 수 없고 이러한 문제를 디버깅하기 위해 함께 작업해야 하기 때문입니다.
마지막으로 카메라가 자동으로 스트리밍을 시작하지 않으므로 각 카메라 엔터티의 turn_on
또는 turn_off
서비스를 호출해야 합니다. 따라서 처음 모든 것을 설치할 때 이러한 기능을 호출하기 전까지는 비디오가 표시되지 않습니다. 또한 낮은 수준의 기술적 문제로 인해 P2P 스트리밍이 무작위로 중지될 수 있으므로, turn_off
및 turn_on
사용하여 다시 시작할 수 있습니다. 카메라 상태(유휴, 준비, 스트리밍)에서 자동화를 트리거할 수 있습니다.
자, 시작합시다.
여기의 지침을 따르십시오: https://github.com/bropat/hassio-eufy-security-ws
이는 P2P 스트리밍에 필수이며 RTSP 스트리밍에 있으면 좋습니다. P2P 스트리밍은 go2rtc를 사용하여 특정 RTSP 주소로 스트림을 생성합니다. RTSP 스트리밍은 더 빠른 스트리밍을 위해 이를 사용합니다.
이를 수행하는 방법에는 추가 기능 자체를 설치하거나 Webrtc 사용자 정의 통합을 설치하는 두 가지 방법이 있습니다. 더 빠른 스트리밍을 위해 go2rtc 및 해당 프런트엔드 카드가 포함된 Webrtc 사용자 정의 통합을 설치하는 것이 좋습니다. webrtc 유무에 관계없이 go2rtc 설치는 다음 링크를 따라 수행할 수 있습니다: https://github.com/fuatakgun/WebRTC. 이 WebRTC는 조건부 카드를 쉽게 관리하기 위한 맞춤형 버전이며 추가 설정은 이 버전에 의존합니다.
1- 아직 설치하지 않은 경우 이 가이드에 따라 HACS
설치하십시오: https://hacs.xyz/docs/setup/download
2- HACS
준비되면 HACS
통합 내에서 Eufy Security
검색합니다.
3- HACS를 통해 Eufy Security
통합을 설치하고 Home Assistant 인스턴스를 다시 시작하십시오.
4- 홈어시스턴트(https://your-instance.duckdns.org/config/integrations)의 Settings -> Devices & Services
페이지로 이동합니다. Add Integration
클릭하고 Eufy Security
를 검색하세요( Eufy
아니라 정확히 Eufy Security
입니다). 표시되지 않으면 먼저 HACS를 통해 설치되었는지 확인하고 다시 시작한 후 나중에 다른 브라우저를 사용해 보십시오. 통합 목록이 이미 브라우저에 캐시되어 있을 수 있습니다.
5- Eufy Security Add-on IP Address
(감독 설치의 경우 127.0.0.1)와 configured port
(기본값 3000)를 입력하고 제출을 클릭합니다.
6- 보안 문자 또는 다단계 인증(MFA) 경고가 표시될 수 있습니다. 통합을 다시 구성하십시오. Captcha 코드는 재구성 페이지에 표시되며 MFA 코드는 이메일 또는 문자로 전송됩니다. 다음 값을 입력하세요. 그런 다음 홈어시스턴트 인스턴스를 다시 시작해야 할 수도 있습니다.
7- webrtc custom integration with go2rtc or standalone go2rtc Add-On
설치한 경우 해당 IP Address
통합 구성 페이지에 입력하세요. 감독 설치를 위해 127.0.0.1
넣을 수 있습니다.
8- Cloud Scan Interval
, 비디오 분석 기간, Custom Name 1
, Custom Name 2
및 Custom Name 3
구성할 수도 있습니다.
참고: 사용자 정의 이름 1, 사용자 정의 이름 2 및 사용자 정의 이름 3은 Eufy Security 앱에서 생성한 첫 번째, 두 번째 및 세 번째 사용자 정의 가드(모드)를 나타내는 데 사용되는 레이블입니다. 다음과 같이 내장된 알람 패널 카드를 사용하여 사용자 정의 가드를 트리거할 수 있습니다.
arm_custom_bypass -> triggers your first custom guard defined in Eufy security app (ordered by 'created date')
arm_night -> trigger second custom guard
arm_vacation -> trigger third custom guard
예를 들어, Eufy Security 앱에서 "취침 시간" 모드를 생성하면 기본적으로 알람 패널 카드를 사용하여 해당 모드를 트리거할 방법이 없습니다. 그러나 이 통합을 사용하면 알람 패널에서 arm_custom_bypass
서비스를 호출하여 "취침 시간" 모드를 활성화할 수 있습니다. 위의 8단계를 사용하여 이 모드의 표시 이름을 조정할 수 있습니다.
이러한 내장 알람 패널 서비스는 기본 Eufy 가드와 일치하지 않으므로 이 통합을 사용하여 사용자 정의 보안 모드를 트리거할 수 있는 유연성을 더 높일 수 있도록 용도가 변경되었습니다. 자세한 내용은 #145의 토론을 참조하세요.
9- 기본적으로 비활성화된 진단 엔터티를 활성화합니다. 설치 후에는 너무 많은 양의 데이터가 생성되는 것을 방지하기 위해 일부 엔터티가 비활성화됩니다. 이는 예상된 동작입니다. 중요하다고 생각되는 엔터티가 있으면 활성화하세요. 이를 수행하려면 eufy_security 통합의 장치 중 하나를 선택하십시오. 그런 다음 진단 섹션까지 아래로 스크롤하여 엔터티 중 하나를 선택합니다. 상단에서 설정으로 이동하여 설정에서 Enabled
및 Visible
매개변수를 켜세요. 약 30초 후에 이 엔터티를 사용할 수 있습니다.
Native Home Assistant 스트리밍은 상당히 느리므로(아마도 그렇지 않을 수도 있음) HACS에서 WebRTC 통합을 설치하는 것이 좋습니다.
아래 코드는 카메라가 스트리밍되지 않는 동안 카메라 사진을 표시하고 카메라가 스트리밍하는 동안 webrtc 카드를 표시합니다(조건부 카드). camera.entrance
카메라 엔터티 이름으로 바꾸세요.
type : custom:webrtc-camera
entity : camera.entrance
poster : image.entrance_event_image
ui : true
shortcuts :
- name : Play
icon : mdi:play
service : camera.turn_on
service_data :
entity_id : camera.entrance
- name : Stop
icon : mdi:stop
service : camera.turn_off
service_data :
entity_id : camera.entrance
카메라가 팬 및 틸트를 지원하는 경우 webrtc 인터페이스에 해당 명령을 추가할 수 있습니다.
type : custom:webrtc-camera
entity : camera.garden
ptz :
service : eufy_security.ptz
data_left :
entity_id : camera.garden
direction : LEFT
data_right :
entity_id : camera.garden
direction : RIGHT
data_up :
entity_id : camera.garden
direction : UP
data_down :
entity_id : camera.garden
direction : DOWN
Debug (device)
및 Debug (station)
센서 속성을 공유하면 이러한 센서를 추출할 수 있습니다. 이러한 센서를 장치 상태에서 추출할 수 없는 경우 명시적으로 언급해 주세요.button
, switch
, 엔터티 select
등이 많으니 활용해 보세요.turn_on
및 turn_off
- 통합은 장치가 RTSP 및 폴백 P2P 기반 스트리밍을 지원하는지 확인합니다.start_rtsp_livestream
및 stop_rtsp_livestream
- 장치가 지원하는 경우 RTSP를 사용하여 스트림이 시작됩니다.start_p2p_livestream
및 stop_p2p_livestream
- 스트림은 P2P를 사용하여 시작되며 모든 장치가 여기에서 작동합니다.generate_image
- 카메라가 이미 스트리밍 중인 경우 홈어시스턴트의 썸네일을 생성합니다.ptz_up
, ptz_down
, ptz_right
, ptz_left
, ptz_360
- 팬 및 틸트 명령trigger_camera_alarm_with_duration
- 주어진 기간 동안 카메라에 알람을 트리거합니다.quick_response
- 초인종에 대한 빠른 응답 메시지를 보냅니다. 장치의 Debug (device)
센서 속성에서 voice_id
정보를 얻을 수 있습니다. 카메라가 라이브 스트리밍 중일 때만 실행할 수 있습니다(rtsp가 아닌 p2p).snooze
- 지정된 기간 동안 진행 중인 알림을 일시 중지합니다.trigger_base_alarm_with_duration
- 주어진 기간 동안 스테이션에서 알람을 트리거합니다.reset_alarm
- 주어진 기간 동안 진행 중인 알람을 재설정합니다.snooze
- 지정된 기간 동안 진행 중인 알림을 일시 중지합니다.arm_home
- 홈 상태로 전환arm_away
- 자리 비움 상태로 전환disarm
- 패널을 해제합니다.alarm_arm_custom1
- Eufy Security 앱에서 생성한 첫 번째, 두 번째, 세 번째 사용자 정의 가드(또는 모드)와 관련된 사용자 정의 1로 전환합니다.alarm_arm_custom2
- 사용자 정의 2로 전환alarm_arm_custom3
- 사용자 정의 3으로 전환geofence
- 지오펜싱으로 전환합니다. Eufy 앱을 통해 지리적 위치에 따라 상태가 변경되므로 패널 상태에 영향을 미치지 않을 수 있습니다.schedule
- 사용자 정의 3으로 전환합니다. Eufy 앱을 통해 일정에 따라 상태가 변경되므로 패널 상태에 영향을 주지 않을 수 있습니다.chime
- 기지국에서 차임 소리를 울립니다. (좋아요) - 사용 가능한 벨소리의 정확한 목록을 모르겠습니다. 직접 시도해 보세요.lock
및 unlock
unlock
camera.entrance
자신의 엔터티 이름으로 바꿉니다.
alias : Capture Image on Trigger, Send Mobile Notification with Actions, Snooze or Alarm via Actions
description : " "
trigger :
- platform : state
entity_id :
- binary_sensor.entrance_motion_detected
- binary_sensor.entrance_person_detected
to : " on "
id : sensor
- platform : event
event_type : mobile_app_notification_action
id : snooze
event_data :
action : SNOOZE
- platform : event
event_type : mobile_app_notification_action
id : alarm
event_data :
action : ALARM
condition : []
action :
- choose :
- conditions :
- condition : trigger
id : sensor
sequence :
- delay :
hours : 0
minutes : 0
seconds : 3
milliseconds : 0
- service : notify.mobile_app_fuatx3pro
data :
message : Motion detected
data :
image : /api/image_proxy/image.entrance_event_image
actions :
- action : ALARM
title : Alarm
- action : SNOOZE
title : Snooze
- conditions :
- condition : trigger
id : snooze
sequence :
- service : eufy_security.snooze
data :
snooze_time : 10
snooze_chime : false
snooze_motion : true
snooze_homebase : false
target :
entity_id : camera.entrance
- conditions :
- condition : trigger
id : alarm
sequence :
- service : eufy_security.trigger_camera_alarm_with_duration
data :
duration : 1
target :
entity_id : camera.entrance
mode : single
이 트리거 조건은 이벤트 사진이 업데이트되는 즉시 자동화를 시작합니다. 일부 설치에서는 더 안정적이고 조금 더 빠릅니다. 이전 자동화로 인해 오래된 이미지가 제공되거나 문제가 발생하는 경우 대신 다음과 같은 다른 트리거 및 조건을 시도해 보십시오.
trigger :
- platform : state
entity_id :
- image.entrance_cam
id : sensor
condition :
- condition : template
value_template : >-
{{ as_timestamp(states.image.entrance_cam.last_changed) == as_timestamp(states.image.entrance_cam.last_updated) }}
service : lock.unlock
data :
code : " testtest "
target :
entity_id : lock.safe
먼저, 중복 질문을 하기보다는 모든 이슈(공개 또는 마감)를 확인하여 비슷한 질문이 있었는지 알아보세요. 푸시 알림 설정 활성화, 카메라 스트리밍/녹화 품질 낮추기, 네트워크 수준 격리/제한 제거에 집중하세요. 대부분의 문제는 이를 통해 제거될 수 있습니다. 나중에 비슷한 문제를 발견하면 +1을 눌러주세요. 동일한 로그를 반복해서 공유하는 것은 전혀 도움이 되지 않습니다. 마지막으로 템플릿에 따라 이슈를 생성하세요. 아마 나중에 후속 질문을 할 것 같습니다.
설정 지침을 따르면 개별 문제를 디버깅할 수 있어 기쁩니다. 문제를 디버깅하기 위해 내 컴퓨터를 사용할 수 있도록 문제가 있는 카메라를 나와 공유해 주시기 바랍니다. 각 디버깅 요청에 대해 추적할 수 있도록 github 문제를 생성해 주세요. 작업이 완료되면 공유 설정을 제거하는 것을 잊지 마세요 :)
시간을 예약하려면 다음 링크를 사용하세요: https://calendly.com/fuatakgun/office-hour