Cameras com integração directa no Home Assistant

sim consegui tive de instalar o ffmeg no raspberry

image

Tenho esta Vstarcam WIP7824, com imagem a funcionar por qualquer um destes metodos:

  - platform: ffmpeg
    name: VStarWIP
    input: rtsp://user:password@192.xxx.x.x:554/tcp/av0_0
 
   - platform: generic
    name: VStarIMG
    stream_source:  rtsp://user:password@192.xxx.x.x:554/tcp/av0_0
    still_image_url: http://192.xx.x.xx:1080/img/snapshot.cgi?user=user&pwd=password&res=0

  - platform: onvif
    host: 192.xx.x.x:10080/tcp/av0_0
    name: VStarOnvif
    username: user
    password: password

Com este http:

http://192.xx.x.x:80/decoder_control.cgi?user=user&pwd=password&command=<31 ou 34 ou 37>&onestep=1

consigo, posicionar num de 3 preset (só preciso de 3)
Pretendia associar os comandos http a 3 botoes equivalentes aos da imagem infra anexa.
Estava a tentar pegar no codigo que o w00zy, postou lá para trás, tentando adaptar para comandos rest, mas não estou a conseguir

Mostra lá como tens isso e que erros está a dar.

Estou a tentar muitas coisas com quase toda a certeza idiotas e um pouco à sorte. Vou tentar ver se consigo restaurar alguma das idiotices que tentei , Já ‘posto’ daqui a pouco

############## Picture Glance Card Configuration ##############

type: picture-glance
title: Test preset PTZ
entities:
  - entity: switch.pdm2portoes_portao1  #--- teste funcionamento botão abrir portão 1 (funciona)
  - entity: switch.pdm2portoes_portao2  # --- idem portao 2
  - entity: script.preset1              # estava a tentar associar a um script 
camera_image: camera.ipcc               # aparece imagem , c/refresh aprox. 10seg. para já serve para o efeito


############## No Script file  scripts.yaml (tenho include no configurations) ##############
# aqui que estava a inventar , pois não encontro a forma correcta de executar o http , 
# alias nem sei se é possivel num script

preset1:
 alias: preset1
 url: http://xxx.x.x.x:xx80/decoder_control.cgi?loginuse=user&loginpas=password&command=31&onestep=1

Os botanecos aparecem e a imagem tb <
o http no browser faz mover para o preset
image

1 Curtiu

Para os scripts de PTZ funcionarem, precisas de ter a câmera integrada com ONVIF

Anotação 2020-08-18 152438

@w00zy seguir a tua config, foi a 1ª coisa que fiz, até os nomes segui para não haver duvidas, só que, apesar da imagem poder ser integrada por onvif,

  - platform: onvif
    host: xxx.xx.x.x:xxx80/tcp/av0_0
    name: cam8
    username: user
    password: pass

infelizmente a minha camera parece que não tem servico ptz onvi, e dava erro ao executar o ptz

image

Depois disso é que estou a tentar ptz por http

Devias de inegrar a câmera na página de integrações e a integração ONVIF devia de encontrar a câmera. Depois passavas a ter o serviço onvif.ptz

Vou tentar por ai , desconfio é que a camera não será 100% conformant com onvif
O fabrcante é apenas um Observer, que se calhar só tem algumas funcionalidades implementadas

Com Onvif Device manager , consigo detectar camera ver imagem e comandar PTZ, já com Onvif Device test tool nem a camera detecta, as cameras que são detectadas , acusam que o servico ptz não está abilitado.

eu “roubei” a ideia dos scriptz e glance card deste post, pode ser que ajude no rest command

Com integração onvif , encontrou duas cameras , a que me interessa e tem ptz é esta, mas para alem dos dois profiles de stream, não encontro mais nenhum serviço

.
Vou dar vista olhos ao link.

Com automação e telegram consigo qualquer coisa , mas gostava de ter possibilidade de mudar para os preset no HA.

#-------------  Telegram - Resposta com 3 imagens ao comando /imagens     
automation:
 - alias: Resposta_ao_comando_/imagens
   trigger:
      platform: event
      event_type: telegram_command
      event_data:
       command: '/imagens'

   action:
#-------------------------------------- 1ª imagem    
     - service: notify.telegram
       data:
         title: Send an images_telegram
         message: "That's an example that sends an image."
         data:
          photo:
           - url: http://192.xxx.x.xx:1111/decoder_control.cgi?loginuse=utilizador&loginpas=password&command=31&onestep=1  #---move para preset. 1
     - delay:
        seconds: 3
       
     - service: notify.telegram
       data:
         title: Send an images_telegram
         message: "That's an example that sends an image."
         data:
           photo:
            - url: http://192.xxx.x.xx:1111/img/snapshot.cgi?user=utilizador&pwd=password&res=0        # --- tira primeira foto
              caption: Imagem 1 

#--------------------------------------- 2ª imagem 
 ... idem 

o serviço onvif.ptz encontra-se em: Developer Tools > Services

Encontrei , depois “call service” … devia acontecer alguma coisa?

Experimenta

entity_id: camera.cam8_profile_000
pan: RIGHT
speed: 0.5
continuous_duration: 1
move_mode: ContinuousMove

@w00zy estava a acabar o teste ptz via http , baseado no teu “roubo” :wink:
Já funciona (só não funciona o custumize do botão)… como diz o amigo Fernando Rocha . " … p.q.p." é complicado esta cena do HA e o raio do yaml é uma “flor de cheiro”, não se pode dar um espaço a mais ou a menos “pqp” :rofl:
Agora é só replicar para os 3 preset, obrigado pela ajuda, assim que puder ainda vou teimar com o metodo onvif .

Agora já é a minha pancada e sou eu a complicar (ao tentar descomplicar e reduzir o codigo):

  • Não haverá maneira de escrever todo o codigo logo no Card?
  • Ou pelo menos chamar o url logo no script

Outra duvida, os rest_command: podem ficar num fch á parte tal como os scripts.yaml?

##############################################################################	
#	COMANDOS PTZ VIA HTTP (se descobrirem os comandos da vossa camera)
#  FONTE: https://community.home-assistant.io/t/hikvision-camera-ptz-control-workaround-without-onvif/180366
##############################################################################	
	
### configuration.yaml  (camp1 - > camera preset 1)
rest_command:
  camp1:
    url: http://xxx.xxx.xxx.xxx:xxxxx/decoder_control.cgi?user=user&pwd=password&command=31&onestep=1
  camp2:
    url: http://xxx.xxx.xxx.xxx:xxxxx/decoder_control.cgi?user=user&pwd=password&command=34&onestep=1
  camp3:
    url: http://xxx.xxx.xxx.xxx:xxxxx/decoder_control.cgi?user=user&pwd=password&command=37&onestep=1

### scripts.yaml
camp1:
  alias: camp1
  sequence:
    - service: rest_command.camp1

### customize.yaml  
script.camp1:
  icon: mdi:numeric-1-box 

##CARD
type: picture-glance
title: Test preset PTZ
camera_image: camera.ipcc
entities:
  - entity: script.camp1
    tap_action:
      action: call-service
      service: script.camp1

Eu ainda tenho muito para aprender sobre o HA, felizmente a comunidade está cheia de génios que gostam de partilhar e uma pessoa com o tempo aprende fácilmente.

Apenas sei responder a isto:

Outra duvida, os rest_command: podem ficar num fch á parte tal como os scripts.yaml?

rest_command: !include rest.yaml

e metes os comandos no ficheiro rest.yaml

Se utilizarem packages poder ter tudo o que diz respeito a cada equipamento num só ficheiro.

Obrigado J :+1:

## configuration.yaml
 packages: !include_dir_named _Packages_XPTO     # --- dir com todos yaml

Já uso essa para evitar os varios !include
Não sabia é que se podia ter um ficheiro para cada equipamento, pareçe ser boa filosofia para organizar e ter tudo junto, assim qd houver problema num device, não temos de andar ás aranhas à procura do gato :sweat:

PS: Tirando o Card , poderia por tudo o resto num ficheiro?
E ainda há uma cena qualquer que já me passou pelas vistas, relacionada a ter sub pastas dentro da “_Packages_XPTO”, ainda não tenho isto com muita tralha , mas pode vir a dar jeito tb

O cartão Lovelace não entra nos packages. De resto podes colocar quase tudo, apenas não sendo aceites os domínios camera:, notify:, media_player: e mais um ou dois se não me falha a memória.

Sim, podes ter pastas dentro de outras pastas se usares o !include_dir_named. Podes ter por exemplo ter uma pasta chamada packages e lá dentro ter por exemplo as pastas garagem, res-do-chao, 1-andar e dentro dessas pastas um ficheiro para cada dispositivo tipo garagem/portao.yaml, garagem/iluminacao.yaml, res-do-chao/luzes_wc1.yaml, etc.

Pessoalmente uso o método de apenas uma pasta com um ficheiro por cada divisão e depois, na mesma pasta, vários ficheiros para funções do sistema tipo sistema_rede.yaml, sistema_medicao_energia.yaml, sistema_ups.yaml, etc.

Mas nestas coisas cada um usa a lógica que se adapte melhor.

Uma organização hierárquica como usas faz todo o sentido, os “excepto” é que estragam tudo.
Já uso “packages: !include_dir_named Packages_XPTO" vou testar as sub pastas, gosto de usar os "” e os “1_” no inicio dos nomes das pastas para as ordenar a gosto, espero que isso não me traga problemas.


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade