Dahua VTO custom integration

Hello,

This integration is more technical then others, you should implement all this sensors in yaml configuration, here the example of lock, here the example of doorbell ring.

Hello,

You can cancel VTO call and it’s stops ringing all VTH’s. I use it to stop ring when door was opening, before this I will need to press end call on VTH.

# Cancel VTO Call
service: dahua_vto.send_command
data:
  entity_id: sensor.dahua_vto
  method: console.runCmd
  params: {'command': 'hc'}
  event: false
1 Like

Do you know if stoping the ringing also prevents the “The person you are trying to reach is unavailable” voice message on the door station?
I was able to mute / change all the sounds of the door station except this one and it is really annoying…

I don’t remember this voice message, but maybe because I have this settings on VTO:
image

The “Voice Prompt Sound” is the only one I still have active because otherwise there is no sound when you press the doorbell button.
I disabled all others and even uploaded an empty sound for all available sound-types.
Even cancelling the call results in the voice prompt, the only way to prevent it is to take the call

I see, I disable “Voice Prompt Sound” because user hear the doorbell sound from VTH installed inside but close to the door.

If you have VHT, you can send ac command to accept the call (same way as hc command in example but you should define new instance of integration connected to VTH), here the list of commands from VHT.

Thank you for the information.
I dont have a VTH, only the VTO, as I am using my phone and in future maybe a wallpanel with HA in kiosk browser (using the SIP addon / integration).
Can this command be sent from HA as well?

If you will use SIP server for calls from VTO you should look for command to accept and cancel call of this SIP server, I think this will be possible but you need to check it with SIP addon/integration.

As much as I know the VTO has an internal SIP-Server which is used by default.
In Home Assistant I am only using the doorbell events to trigger notifications (with multiroom audio and phone notification with snaptshot).
So I am not (yet) using the SIP addon and was just wondering if it is possible to send accept / cancel call command using the dahua integration

Yes, you can send cancel call command to VTO, but VTO doesn’t have accept call command. If you will manage to connect your SIP client/addon to VTO internal SIP server you probably will be able to send accept call command to this client (accept call it’s a client command).

I am planning to use SIP integration but a while back, before I had my real installation, I tested it and never got it to work. I even had to reset my Dahua as I managed to completly destroy my config.
So I currently lack motivation to finaly try this out :smiley:
Anyways, thanks for the information, maybe I’ll try that SIP integration again and use it to fix this annoying message :slight_smile:

Welcome! :slight_smile: Usually peoples use external SIP server (like FreePBX) in order to integrate Dahua VTO and SIP addon to it, you can find more info about it in the previous messages.

1 Like

Hi there, I have a VTO2000 and installed the integration from HACS, put the sensor in my configuration.yaml and restarted all … but I am a bit confused now.
I see no device, and no entities, only a sensor “sensor.dahua.vto” which shows state “OK”, and 3 Services called “Open door”, “Send Command” and “Send Instance command”.

I would like, when so is pressing the doorbell, to have a notification on ly tablet / Phone.

Can I achieve this ?

Many thanks !

You can find the answer here

Yeah sorry myhomeiot, i had a look there but could not find any code nor anything related for example to pop up a screen with video on who is at my door ;-(

… do you really refer to this code ?

- alias: Dahua VTO All Events
  mode: queued
  trigger:
    - platform: event
      event_type: dahua_vto
  action:
    - service: persistent_notification.create
      data:
        title: "{{ trigger.event.data.Code if trigger.event.data.Code is defined else 'Unknown Code' }}"
        message: "{{ trigger.event.data }}"

- alias: Dahua VTO Command Result
  mode: queued
  trigger:
    - platform: event
      event_type: dahua_vto
  condition:
    - condition: template
      value_template: "{{ trigger.event.data.method is defined }}"
  action:
    - service: persistent_notification.create
      data:
        title: "{{ trigger.event.data.method }}"
        message: "{{ trigger.event.data }}"

- alias: Dahua VTO
  mode: queued
  trigger:
    - platform: event
      event_type: dahua_vto
      event_data:
        Code: BackKeyLight
  action:
    - choose:
        - conditions: >
            {{ trigger.event.data.Data.State | int in [0, 1, 2, 5, 6] }}
          sequence:
            - service: persistent_notification.create
              data:
                title: "{{ 'Doorbell Ring' if trigger.event.data.Data.State | int in [1, 2] else 'Doorbell No Ring' }}"
                message: "{{ trigger.event.data }}"
        - conditions: >
            {{ trigger.event.data.Data.State | int == 8 }}
          sequence:
            - service: timer.start
              data:
                entity_id: timer.door_lock
                duration: 00:00:02 # VTO Unlock Period
            - service: persistent_notification.create
              data:
                title: Unlock
                message: "{{ trigger.event.data }}"
        - conditions: >
            {{ trigger.event.data.Data.State | int == 9 }}
          sequence:
            - service: persistent_notification.create
              data:
                title: Unlock failed
                message: "{{ trigger.event.data }}"
        - conditions: >
            {{ trigger.event.data.Data.State | int == 11 }}
          sequence:
            - service: persistent_notification.create
              data:
                title: Device rebooted
                message: "{{ trigger.event.data }}"
      default:
        - service: persistent_notification.create
          data:
            title: "Unknown state {{ trigger.event.data.Data.State | int }}"
            message: "{{ trigger.event.data }}"

Hello, I haveput this code in my configuration.yaml + mu logger and restarted HA :

image

… but the log is not showing anything when someone rings at the door.
I am missing any configuration here ?

P.S. final purpose would be to have the HA showing someone rings at the door when it happens, to get rid of my Daha VTH screen …

Many thanks !!

Any hint or idea how to lock/disable exit button using HA?
I have wired exit button near by VTO to unlock door when leaving property, but want to control it i.e during kids play arround or disable by automation during a night.
So far, based on events, i am able to read button pressed status but no clue how to extend it to disable opening a door.

1 Like

Try it http://ip:port/cgi-bin/configManager.cgi?action=setConfig&AccessControlGeneral.ButtonExitEnable=(true or false)

Simple as that! Works like a charm! Much appreciate.

Hello good. Can you tell me which repository you used for hacs and integration. Thank you