Bem-vindo à versão Alpha do Eufy Security Integration for Home Assistant. Parabéns por ser um coração valente e experimentar esta versão.
eufy-security-ws
usando eufy-security-client
para imitar aplicativos móveis e funcionalidades de portal da web e envolveu eufy-security-ws
como hassio-eufy-security-ws
para que possamos usá-lo como complemento do Home Assistant.event duration in seconds
.Verifique aqui: https://github.com/bropat/eufy-security-client#known-working-devices
Nas próximas etapas, você instalará pelo menos um complemento e duas integrações.
No ecossistema do Home Assistant, se você estiver usando uma configuração supervisionada ou baseada no sistema operacional HASS, poderá usar a página Add-ons
do Home Assistant para instalá-los. Se você estiver executando o Core ou não tiver a opção Add-ons
em sua configuração, será necessário instalar o docker e executar esses contêineres você mesmo. Você verá os respectivos comandos nas respectivas etapas. Se você estiver interessado em compor seu contêiner docker, verifique a seção final
Esta integração não faz parte do Home Assistant Core, então você deve instalá-la como uma integração personalizada. Existem duas maneiras de fazer isso: baixando e copiando arquivos manualmente ou usando HACS (Home Assistant Community Store). Usarei o método HACS aqui.
Se você pretende usar esta integração para fins de streaming de vídeo e se sua câmera não suporta streaming baseado em RTSP (Real Time Streaming Protocol) (sem opção de gravação contínua ou NAS nas configurações da câmera), você também precisa instalar a integração personalizada webrtc que incluiria o binário go2rtc (o go2rtc também existe como complemento independente). Este complemento nos permitirá converter bytes ponto a ponto (P2P) em um fluxo RTSP para que você possa reproduzi-lo perfeitamente no Home Assistant (com ou sem RTC) ou com o VLC Player.
Se você pretende usar essa integração para fins de streaming de vídeo e se sua câmera suportar RTSP, você provavelmente desfrutará de um fluxo confiável porque a geração de fluxo RTSP é responsabilidade do hardware e é muito confiável do que o streaming baseado em P2P. Não há necessidade de converter bytes P2P recebidos em fluxo RTSP. Existem algumas versões modificadas do apk Android do Eufy Security que podem ativar o fluxo RTSP para dispositivos não suportados, mas ainda não tentei. Além disso, não possuo pessoalmente um dispositivo com necessidade de P2P, isso porque, muitas vezes, não consigo replicar seus problemas localmente e precisamos trabalhar juntos para depurar esses problemas.
Por último, sua câmera não iniciaria a transmissão magicamente por si só, você teria que chamar os serviços turn_on
ou turn_off
das respectivas entidades da câmera. Portanto, ao instalar tudo pela primeira vez, você não terá nenhum vídeo até chamar essas funções. Além disso, o streaming P2P pode parar aleatoriamente devido a problemas técnicos de baixo nível. Você pode reiniciá-lo novamente com turn_off
e turn_on
. Você pode acionar sua automação nos estados da câmera (inativo, preparação, streaming).
Então, vamos começar.
Siga as diretrizes aqui: https://github.com/bropat/hassio-eufy-security-ws
Isso é obrigatório para streaming P2P e bom para streaming RTSP. O streaming P2P usará go2rtc para gerar stream com um endereço RTSP específico. O streaming RTSP usará isso para um streaming mais rápido.
Existem duas maneiras de fazer isso: instalando o próprio complemento ou instalando a integração personalizada do Webrtc. Sugiro que você instale a integração personalizada Webrtc, que inclui go2rtc e respectivo cartão front-end para streaming mais rápido. A instalação do go2rtc com ou sem webrtc pode ser feita neste link: https://github.com/fuatakgun/WebRTC. Este WebRTC é uma versão personalizada para gerenciar facilmente cartões condicionais e configurações adicionais dependeriam deste.
1- Caso ainda não tenha instalado, instale HACS
seguindo este guia: https://hacs.xyz/docs/setup/download
2- Quando HACS
estiver pronto, procure Eufy Security
dentro de HACS
Integrations.
3- Instale a integração Eufy Security
através do HACS, reinicie sua instância do Home Assistant.
4- Navegue até a página Settings -> Devices & Services
do Home Assistant (https://your-instance.duckdns.org/config/integrations). Clique em Add Integration
e pesquise Eufy Security
(não Eufy
, é exatamente Eufy Security
). Caso não o veja, primeiro valide se está instalado via HACS e se você o reiniciou, depois tente com outro navegador. A lista de integrações pode já estar armazenada em cache no seu navegador.
5- Coloque Eufy Security Add-on IP Address
(127.0.0.1 para instalação supervisionada) e configured port
(padrão 3000) e clique em Enviar.
6- Você pode receber avisos de Captcha ou Multi Factor Authentication (MFA), reconfigure a integração. O código Captcha ficará visível na página Reconfigurar e o código MFA será enviado por e-mail ou mensagem de texto para você. Por favor insira esses valores. Depois disso, pode ser necessário reiniciar a instância do Home Assistant.
7- Se você instalou webrtc custom integration with go2rtc or standalone go2rtc Add-On
, coloque seu IP Address
na página Configuração de integração. Você pode colocar 127.0.0.1
para instalação supervisionada.
8- Você também pode configurar Cloud Scan Interval
, Duração da análise de vídeo, Custom Name 1
, Custom Name 2
e Custom Name 3
Observação: Nome personalizado 1, Nome personalizado 2 e Nome personalizado 3 são rótulos usados para representar o primeiro, o segundo e o terceiro guardas (modos) personalizados que você criou no aplicativo Eufy Security. Você pode acionar seus guardas personalizados usando o cartão do painel de alarme integrado da seguinte forma:
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
Por exemplo, você cria um modo "hora de dormir" no aplicativo Eufy Security; por padrão, não haveria como acioná-lo usando o cartão do painel de alarme. Porém, usando esta integração, você pode chamar o serviço arm_custom_bypass
a partir do painel de alarme, que habilitará seu modo “hora de dormir”. Você pode ajustar o nome de exibição deste modo usando a Etapa 8 acima.
Esses serviços de painel de alarme integrados não correspondem a nenhum protetor Eufy padrão, portanto, eles são reaproveitados para permitir maior flexibilidade para acionar modos de segurança personalizados usando esta integração. Veja a discussão no nº 145 para mais detalhes.
9- Habilite entidades de diagnóstico que estão desabilitadas por padrão. Após a instalação, algumas entidades são desativadas para evitar a geração de grandes quantidades de dados. Este é o comportamento esperado. Se você acha que alguma entidade é importante, basta ativá-la. Para fazer isso, selecione um dos dispositivos nas integrações eufy_security. Em seguida, role para baixo até a seção Diagnóstico e selecione uma das entidades. Na parte superior, vá para configurações e ative os parâmetros Enabled
e Visible
nas configurações. Após cerca de 30 segundos esta entidade estará disponível.
O streaming do Native Home Assistant é bastante lento (talvez não?), então é altamente recomendável instalar a integração WebRTC do HACS.
O código abaixo mostrará a imagem da câmera enquanto a câmera não estiver transmitindo e o cartão webrtc enquanto a câmera estiver transmitindo (cartões condicionais). Substitua camera.entrance
pelo nome da entidade da sua câmera.
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
Se a sua câmera suportar panorâmica e inclinação, você poderá adicionar os respectivos comandos à interface 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)
e Debug (station)
para que eu possa extrair esses sensores. Se esses sensores não puderem ser extraídos do estado do dispositivo, mencione isso explicitamente.button
, switch
e select
, use-as.turn_on
e turn_off
- A integração verificará se o seu dispositivo suporta RTSP e streaming baseado em P2P substitutostart_rtsp_livestream
e stop_rtsp_livestream
- A transmissão será iniciada usando RTSP se o seu dispositivo suportarstart_p2p_livestream
e stop_p2p_livestream
- A transmissão será iniciada usando P2P, todos os dispositivos funcionam aquigenerate_image
- Isso irá gerar uma miniatura para o Home Assistant se a câmera já estiver transmitindoptz_up
, ptz_down
, ptz_right
, ptz_left
, ptz_360
- comandos Pan e Tilttrigger_camera_alarm_with_duration
- Aciona alarme na câmera por um determinado períodoquick_response
- Envie uma mensagem de resposta rápida para a campainha, você pode obter informações voice_id
nos atributos do sensor de Debug (device)
do dispositivo. Isso pode ser executado SOMENTE quando a câmera estiver transmitindo ao vivo (p2p - não rtsp)snooze
- Adia a notificação em andamento por um determinado período.trigger_base_alarm_with_duration
- Dispara alarme na estação por um determinado períodoreset_alarm
- Redefinir alarme em andamento por um determinado períodosnooze
- Adia a notificação em andamento por um determinado período.arm_home
- Mudar para o estado inicialarm_away
- Mudar para o estado Ausentedisarm
- Desarmar o painelalarm_arm_custom1
- Mude para custom 1, que se relaciona ao primeiro, segundo e terceiro guardas (ou modos) personalizados que você criou no aplicativo Eufy Security.alarm_arm_custom2
- Mudar para personalizado 2alarm_arm_custom3
- Mudar para personalizado 3geofence
- Mude para cerca geográfica, isso pode não afetar o estado do painel, pois ele mudará seu estado com base na localização geográfica por meio do aplicativo Eufyschedule
- Mude para custom 3, isso pode não afetar o estado do painel, pois ele mudará seu estado com base na programação por meio do aplicativo Eufychime
- Aciona um som de campainha na estação base (gostei) - Não sei a lista exata de toques disponíveis, experimente você mesmo.lock
e unlock
para fechadurasunlock
com código para cofres Substitua camera.entrance
pelo seu próprio nome de entidade.
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
Esta condição de disparo inicia a automação logo quando a imagem do evento é atualizada. Em algumas instalações é mais confiável e um pouco mais rápido. Se a automação anterior fornecer imagens desatualizadas ou causar problemas, tente este gatilho e condição diferentes:
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
Primeiro, verifique todos os problemas (abertos ou fechados) para descobrir se houve alguma dúvida semelhante, em vez de duplicá-la. Concentre-se em ativar configurações de notificação push, reduzindo a qualidade de streaming/gravação da câmera e removendo qualquer isolamento/restrição no nível da rede. A maioria dos problemas pode ser eliminada por meio deles. Mais tarde, se você encontrar um problema semelhante, basta marcar +1, compartilhar os mesmos registros repetidamente não ajuda em nada. Por último, crie seu problema seguindo o modelo. Provavelmente farei perguntas de acompanhamento mais tarde.
Ficarei mais do que feliz em depurar problemas individuais, desde que você siga as instruções de configuração. Preciso que você compartilhe suas câmeras problemáticas comigo para que eu possa usar minha própria máquina para depurar o problema. Para cada solicitação de depuração, crie um problema no GitHub para que possamos rastrear a partir daí. Não se esqueça de remover as configurações de compartilhamento depois que terminarmos :)
Para agendar o horário, use este link: https://calendly.com/fuatakgun/office-hour