Não consigo ter PTZ em camera Escam no HA

Olá a todos,

Tenho um mini pc com Proxmox e HA. Tenho uma camera Escam PVR008 que integrei no HA via integração Onvif. Consigo sem problema ver a stream num card do Lovelace, o problema é ter o PTZ a funcionar.

  1. Tentei replicar este post aqui do forum mas não aparecendo nenhum erro no HA, não funciona o PTZ.

  2. Encontrei outro post na net em que o script yaml tinha isto:

'escam_pan_left':
  alias: escam PAN LEFT
  sequence:
  - data:
      zoom:
      distance: 0.1
      continuous_duration: 0.5
      entity_id: camera.escam
      move_mode: ContinuousMove
      pan: LEFT
      speed: 0.5
    service: onvif.ptz
'escam_pan_right':
  alias: escam PAN RIGHT
  sequence:
  - data:
      zoom:
      distance: 0.1
      continuous_duration: 0.5
      entity_id: camera.escam
      move_mode: ContinuousMove
      pan: RIGHT
      speed: 0.5
    service: onvif.ptz
'escam_tilt_up':
  alias: escam TILT UP
  sequence:
  - data:
      zoom:
      distance: 0.1
      continuous_duration: 0.5
      entity_id: camera.escam
      move_mode: ContinuousMove
      speed: 0.5

No card do Lovelace tinha isto:

type: picture-glance
entities:
  - entity: camera.escam
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.escam
        pan: LEFT
        speed: 1
        distance: 0.3
        move_mode: ContinuousMove
    name: Pan Left
    show_state: false
    icon: 'mdi:arrow-left'
    show_icon: true
  - entity: camera.escam
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.escam
        tilt: UP
        speed: 1
        distance: 0.3
        move_mode: ContinuousMove
    name: Tilt Up
    icon: 'mdi:arrow-up'
  - entity: camera.escam
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.escam
        tilt: DOWN
        speed: 1
        distance: 0.3
        move_mode: ContinuousMove
    name: Tilt Down
    icon: 'mdi:arrow-down'
  - entity: camera.escam
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.escam
        pan: RIGHT
        speed: 1
        distance: 0.3
        move_mode: ContinuousMove
    name: Pan Right
    icon: 'mdi:arrow-right'
    show_icon: true
camera_image: camera.escam
  1. Outra forma em que no Lovelace card tem isto:
camera_image: camera.escam
camera_view: live
entities:
  - entity: script.escam_pan_left
    icon: 'mdi:arrow-left-bold-circle-outline'
    tap_action:
      action: call-service
      service: script.escam_pan_left
  - entity: script.escam_pan_right
    icon: 'mdi:arrow-right-bold-circle-outline'
    tap_action:
      action: call-service
      service: script.escam_pan_right
  - entity: script.escam_tilt_up
    icon: 'mdi:arrow-up-bold-circle-outline'
    tap_action:
      action: call-service
      service: script.escam_tilt_up
  - entity: script.escam_tilt_down
    icon: 'mdi:arrow-down-bold-circle-outline'
    tap_action:
      action: call-service
      service: script.escam_tilt_down
tap_action:
  action: toggle
title: ' '
type: picture-glance
  • Na maneira 1, não existe erro, mas o PTZ não funciona
  • Na maneira 2 , cada vez que clico nas setas do PTZ aparece um erro do HA a dizer algo como “Failed to call service Onvif/PTZ service not found”
  • Na maneira 3 , cada vez que clico nas setas do PTZ aparece um erro do HA a dizer algo como “Failed to call service script/escam_pan_right. Unable to find service onvif/ptz”

Tenho sempre a imagem/stream. O que falha é o PTZ.

Acrescento ainda que além da app oficial, ja configurei a camera no Android com a app Onvifer e no PC com outra app genérica, em ambas o PTZ funciona. Daí achar que devo conseguir tb ter o PTZ no HA.

Alguém consegue ajudar sff?
Obrigado.

@Luis_Mesquita tens o ficheiro do script dentro de scripts.yaml ou como é que tas a usar à chamada ao script?

Olá Rodolfo,

Não entendi bem a tua pergunta mas vou tentar responder.

Eu tenho o ficheiro script.yaml dentro da pasta config.

E no ficheiro script.yaml tenho o seguinte :

ptz_tilt_up:
  sequence:
    - service: shell_command.camera_up
    - service: shell_command.camera_stop_up
      data:
        entity_id: camera.escam
ptz_tilt_down:
  sequence:
    - service: shell_command.camera_down
    - service: shell_command.camera_stop_down
      data:
        entity_id: camera.escam
ptz_pan_left:
  sequence:
    - service: shell_command.camera_left
    - service: shell_command.camera_stop_left
      data:
        entity_id: camera.escam
ptz_pan_right:
  sequence:
    - service: shell_command.camera_right
    - service: shell_command.camera_stop_right
      data:
        entity_id: camera.escam
####

'escam_pan_left':
  alias: escam PAN LEFT
  sequence:
  - data:
      zoom:
      distance: 0.1
      continuous_duration: 0.5
      entity_id: camera.escam
      move_mode: ContinuousMove
      pan: LEFT
      speed: 0.5
    service: onvif.ptz
'escam_pan_right':
  alias: escam PAN RIGHT
  sequence:
  - data:
      zoom:
      distance: 0.1
      continuous_duration: 0.5
      entity_id: camera.escam
      move_mode: ContinuousMove
      pan: RIGHT
      speed: 0.5
    service: onvif.ptz
'escam_tilt_up':
  alias: escam TILT UP
  sequence:
  - data:
      zoom:
      distance: 0.1
      continuous_duration: 0.5
      entity_id: camera.escam
      move_mode: ContinuousMove
      speed: 0.5
      tilt: UP
    service: onvif.ptz
'escam_tilt_down':
  alias: escam TILT DOWN
  sequence:
  - data:
      zoom:
      distance: 0.1
      continuous_duration: 0.5
      entity_id: camera.escam
      move_mode: ContinuousMove
      speed: 0.5
      tilt: DOWN
    service: onvif.ptz
##

EDIT: Acrescento só que em configuration.yaml tenho esta linha “script: !include scripts.yaml

Dá para perceber o que tou a fazer errado?

Olhando com mais atenção agora, tu tens o serviço onvif.ptz ?

Tu no teu último post mostras que tás a usar shell_command… onde tens esse ficheiro podes mostrar?

Eu inicialmente tinha bem a integração Onvif, mas devo ter feito algo a testar tanta coisa que qd alertaste, fui ver, e tava quebrada.

Removi a integração e configurei de inicio. Acho que agr está bem.

Acho no entanto, vendo pela imagem, que a entity id, tá diferente da dos script. Tenho de alterar nos scripts para camera.onvif_camera_profile_000 ?

Eu não entendo mt disto, apenas vou procurando na net e copiando…

Tu neste post que colocaste tens tudo o que precisas…no que tu fizeste até agora não vi os teus shell_command: deve ser isso que te falta fazer.

scripts

Eu tentei de 3 formas diferentes, a 1º que experimentei foi pelo link aqui do fórum (que tb colocaste no teu ultimo post). Os shell command coloquei como tenho aqui na foto. De qq forma, no Lovelace, qd clico na setas de direção de facto não tenho nenhum erro, apenas a camera não “mexe”.

Os erros que falei acima são pelos métodos 2 e 3 que testei.

@Luis_Mesquita não estás a entender o que te estou a perguntar…
Tu nos teus services estás a chamar o shell_command… mas onde os tens?
Não me mostraste nada disto…

shell_command:  
  camera_down: curl -k "http://user:pass@192.168.1.10/command=ptz_req&req=start&param=directiondown&channel=1&stream=1"
  camera_up: curl -k "http://user:pass@192.168.1.10/command=ptz_req&req=start&param=directionup&channel=1&stream=1"
  camera_right: curl -k "http://user:pass@192.168.1.10/command=ptz_req&req=start&param=directionright&channel=1&stream=1"
  camera_left: curl -k "http://user:pass@192.168.1.10/command=ptz_req&req=start&param=directionleft&channel=1&stream=1"
  camera_stop_up: curl -k "http://user:pass@192.168.1.10/command=ptz_req&req=stop&param=directionup&channel=1&stream=1"
  camera_stop_left: curl -k "http://user:pass@192.168.1.10/command=ptz_req&req=stop&param=directionleft&channel=1&stream=1"
  camera_stop_right: curl -k "http://user:pass@192.168.1.10/command=ptz_req&req=stop&param=directionright&channel=1&stream=1"
  camera_stop_down: curl -k "http://user:pass@192.168.1.10/command=ptz_req&req=stop&param=directiondown&channel=1&stream=1"

Tens isto?

Tenho no configuration.yaml. A única coisa que alterei em relação ao código original foi de user:pass para admin:pass

Na app oficial da camera eu não configurei nada além da conta. O admin era o que vinha, a password não mexi.

Terá a ver com isso?

Exprimenta colocar um username e uma pass diferente, e verifica se alteraste o ip correcto a seguir à pass.

O IP está correcto.

Sobre a pass, fiz reset á camera outra vez e já coloquei uma password, mas agr nem a stream de video funciona (mesmo colocando a pass no URL). Por exemplo o mesmo URL no VLC funciona bem, se bem que no VLC aparece um menu a pedir para preencher user e pass.

Vou deixar esta questão do PTZ de lado por agr. Mais tarde logo tento outra vez.

Obrigado pela ajuda @RodolfoVieira .


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


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