Intégrer des contrôles PTZ dans HA

Bonjour,

J’utilise une camera chinoise connectée à Home Assistant, avec l’intégration ONVIF. J’essaie d’intégrer des contrôles PTZ dans HA, sans succès pour l’instant.

Lorsque j’utilise Onvif Device Manager, j’arrive bien à utiliser les contrôles PTZ pour faire bouger la caméra.

Mais, dans mon cas, l’intégration Onvif n’inclut pas de services en lien avec PTZ tels que camera.ptz_move, camera.ptz_stop, etc. Ces services ne semblent pas exposés par l’intégration.

Verriez-vous une solution à ce problème ? Il y a déjà des posts sur ce sujet mais je n’arrive pas à m’y retrouver.

Nota : la camera apparait avec la référence XM530V200_X2-WR_8M dans HA.

D’avance merci pour vos lumières,
Denis

hello

J’ai aussi des « chinoiseries » compatibles onvif.
Avec l’integration onvif (dans laquelle on a pas d’entités ptz de visible) + le HACS WebRTC, pas de soucis pour gerer le PTZ

Voici un exemple de carte webrtc :

type: custom:webrtc-camera
url: rtsp://user:mdp@192.168.15.101/av_stream/ch0
ptz:
  service: onvif.ptz
  data_left:
    entity_id: camera.cam_salon_2_profile_0
    pan: LEFT
    speed: 1
    distance: 0.2
    move_mode: ContinuousMove
  data_right:
    entity_id: camera.cam_salon_2_profile_0
    pan: RIGHT
    speed: 1
    distance: 0.2
    move_mode: ContinuousMove
  data_up:
    entity_id: camera.cam_salon_2_profile_0
    tilt: UP
    speed: 1
    distance: 0.2
    move_mode: ContinuousMove
  data_down:
    entity_id: camera.cam_salon_2_profile_0
    tilt: DOWN
    speed: 1
    distance: 0.2
    move_mode: ContinuousMove

@+

Salut…
Est-ce qu’en testant dans outils de développement tu arrives à quelque chose ?

Ah oui ! je trouve bien un service onvif.ptz.

ça marche avec cet appel de service,

service: onvif.ptz
data:
  entity_id: camera.nvt_mainstream  # Remplacez par le nom de votre entité caméra
  pan: RIGHT  # Direction de la rotation (LEFT pour la gauche, RIGHT pour la droite)
  speed: 1  # Vitesse de la rotation (ajustez la valeur selon vos besoins)
  distance: 0.2  # Distance de la rotation (ajustez la valeur selon vos besoins)
  move_mode: ContinuousMove  # Mode de déplacement (ContinuousMove pour une rotation continue)

Regarde si ok Pour autre fonction !
Après tu peux te servir soit de webrtc !
Ou faire des cdes pour incorporer dans une carte …

Et si tu utilise ces services dans une carte webrtc comme expliqué précédemment , ça te donne ça :
Capture d'écran 2023-10-13 160839

@+

Merci pour vos conseils.

WebRTC pourquoi pas mais je n’ai bien compris comment le mettre en œuvre.

Pour l’instant j’utilise ceci pour visualiser le flux video,

type: grid
square: false
columns: 1
cards:
  - show_state: true
    show_name: true
    camera_view: auto
    type: picture-entity
    entity: camera.nvt_mainstream

Il te faut déjà installer HACS puis suivre la procédure d’installation et de config de webrtc

Bonjour,
voici ma config avec une reolink par ONVIF et une carte picture-elements et le PTZ en bouton:

              type: picture-elements
              entity: camera.reolink_e1_zoom_profile000_mainstream
              camera_image: camera.reolink_e1_zoom_profile000_mainstream
              camera_view: live
              elements:
                - type: icon
                  icon: mdi:arrow-up-drop-circle-outline
                  style:
                    top: 70px
                    left: 650px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      tilt: UP
                      move_mode: ContinuousMove
                - type: icon
                  icon: mdi:arrow-down-drop-circle-outline
                  style:
                    top: 70px
                    left: 700px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      tilt: DOWN
                      move_mode: ContinuousMove
                - type: icon
                  icon: mdi:arrow-left-drop-circle-outline
                  style:
                    top: 70px
                    left: 750px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      pan: LEFT
                      move_mode: ContinuousMove
                - type: icon
                  icon: mdi:arrow-right-drop-circle-outline
                  style:
                    top: 70px
                    left: 800px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      pan: RIGHT
                      move_mode: ContinuousMove
                - type: icon
                  icon: mdi:magnify-minus
                  style:
                    top: 70px
                    left: 500px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      zoom: ZOOM_OUT
                      move_mode: ContinuousMove
                - type: icon
                  icon: mdi:magnify-plus
                  style:
                    top: 70px
                    left: 550px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      zoom: ZOOM_IN
                      move_mode: ContinuousMove
                - type: icon
                  icon: mdi:image-filter-center-focus
                  style:
                    top: 70px
                    left: 900px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      preset: '001'
                      move_mode: GotoPreset
                - type: icon
                  icon: mdi:loupe
                  style:
                    top: 70px
                    left: 950px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      preset: '002'
                      move_mode: GotoPreset
                - type: icon
                  icon: mdi:wall
                  style:
                    top: 70px
                    left: 1000px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      preset: '000'
                      move_mode: GotoPreset
1 « J'aime »

La proposition de WarC0zes m’a l’air bien intéressante, j’ai poursuivi de mon côté avec ceci, c’est à dire une carte pictures-elements aussi, qui ne demande pas d’autre installation,

camera_view: auto
type: picture-glance
title: Saloon
entities:
  - entity: camera.nvt_mainstream
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.nvt_mainstream
        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.nvt_mainstream
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.nvt_mainstream
        tilt: UP
        speed: 1
        distance: 0.3
        move_mode: ContinuousMove
    name: Tilt Up
    icon: mdi:arrow-up
  - entity: camera.nvt_mainstream
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.nvt_mainstream
        tilt: DOWN
        speed: 1
        distance: 0.3
        move_mode: ContinuousMove
    name: Tilt Down
    icon: mdi:arrow-down
  - entity: camera.nvt_mainstream
    tap_action:
      action: call-service
      service: onvif.ptz
      service_data:
        entity_id: camera.nvt_mainstream
        pan: RIGHT
        speed: 1
        distance: 0.3
        move_mode: ContinuousMove
    name: Pan Right
    icon: mdi:arrow-right
    show_icon: true
camera_image: camera.nvt_mainstream

Juste pour compléter, avec ma caméra, les zooms in-out et le gotopreset ne fonctionent pas, alors que ce dernier fonctionne correctement avec Onvif Device Manager.

Pour les presets, test ca:

          - entity: camera.ptz_profile_000
            tap_action:
              action: call-service
              service: onvif.ptz
              service_data:
                entity_id: camera.ptz_profile_000
                preset: 1
                speed: 0.5
                distance: 0.5
                move_mode: GotoPreset
            name: Preset 1
            show_state: false
            icon: 'mdi:numeric-1-box'
            show_icon: true
          - entity: camera.ptz_profile_000
            tap_action:
              action: call-service
              service: onvif.ptz
              service_data:
                entity_id: camera.ptz_profile_000
                preset: 2
                speed: 0.5
                distance: 0.5
                move_mode: GotoPreset
            name: Preset 2
            show_state: false
            icon: 'mdi:numeric-2-box'
            show_icon: true

Le zoom je vois pas ce qui cloche avec le code que je t’es partager.

                - type: icon
                  icon: mdi:magnify-minus
                  style:
                    top: 70px
                    left: 500px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      zoom: ZOOM_OUT
                      move_mode: ContinuousMove
                - type: icon
                  icon: mdi:magnify-plus
                  style:
                    top: 70px
                    left: 550px
                  tap_action:
                    action: call-service
                    service: onvif.ptz
                    service_data:
                      entity_id: camera.reolink_e1_zoom_profile000_mainstream
                      zoom: ZOOM_IN
                      move_mode: ContinuousMove

Je ne vos pas non plus ce qui cloche. Le preset fonctionne bien avec Onvif Device Manager, mais pas le zoom.

Dans HA, ces 2 fonctions sont inopérantes.

1 « J'aime »

Slt…
Il y a des fonctions qui des fois ne sont pas compatibles avec certaines CAM.
Voir si le test en mode développement donne QQC.
Est-ce que ta CAM est accessible en mode WEB ?