Dahua VTO custom integration

Hi, Thanks in advance,

I have now this completly code:

# VT0
sensor:
  - platform: dahua_vto
    name: Dahua VTO
    host: xxx.xxx.xxx.xxx
    username: XXXX
    password: XXXX
    scan_interval: 5

timer:
  door_lock:
    name: Door Lock
    icon: mdi:timer

lock:
  - platform: template
    name: Door Lock
    value_template: "{{ not is_state('timer.door_lock', 'active') }}"
    optimistic: false
    lock:
    unlock:
      - service: dahua_vto.open_door
        data_template:
          entity_id: sensor.dahua_vto
          channel: 1
          short_number: HA

template:
  - trigger:
      platform: event
      event_type: dahua_vto
      event_data:
        Code: BackKeyLight
    binary_sensor:
      - name: Doorbell Ringing
        unique_id: doorbell_ringing
        device_class: sound
        auto_off: 00:01:00
        state: "{{ iif(trigger.event.data.Data.State | int in [1, 2], 'on', iif(trigger.event.data.Data.State | int == 0, 'off', states(this.entity_id))) }}"

  - trigger:
      - platform: event
        event_type: dahua_vto
        event_data:
          Code: BackKeyLight
    binary_sensor:
      - name: VTO Doorbell
        auto_off: 00:01:00
        state: "{{ trigger.event.data.Data.State | int in [1, 2] }}"

Door is working perfectly and I have these entitys now:

Doorbell cannot be tested today, baby is sleeping. :smiley: But I will comeback tomorrow.

I hope this is fine now.

1 Like

Great! Doorbell Ringing and VTO Doorbell it’s a same sensors, test it and keep one which looks better for you.

Hi,
I havea VTO2101E, in the past i had a configuration fully working.
But i have made a lot of modification and now i’m not able to catch any BackKeyLight event…
I try to uninstall - reinstall the integration, also try the Dahua integration with a gui for the setup. No way …
I also try to reinit the VTO setup with dahua config tool without any effects…
Bemow an extract of my logs…
Thanks in advance for your helps!

2025-02-07 10:41:35.752 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"NTPAdjustTime","Data":{"Address":"","Before":"","LocaleTime":"2025-02-07 10:39:32","UTC":1738924772.0,"result":false},"Index":0}]},"session":2147483569}
2025-02-07 10:41:41.194 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":28,"session":2147483569}
2025-02-07 10:41:41.209 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":28,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:42:03.169 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:39:59","Success":false,"UTC":1738924799.0},"Index":0}]},"session":2147483569}
2025-02-07 10:42:41.210 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":29,"session":2147483569}
2025-02-07 10:42:41.215 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":29,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:43:03.166 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:40:59","Success":false,"UTC":1738924859.0},"Index":0}]},"session":2147483569}
2025-02-07 10:43:41.217 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":30,"session":2147483569}
2025-02-07 10:43:41.223 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":30,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:44:03.170 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:41:59","Success":false,"UTC":1738924919.0},"Index":0}]},"session":2147483569}
2025-02-07 10:44:41.225 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":31,"session":2147483569}
2025-02-07 10:44:41.234 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":31,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:45:03.155 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:42:59","Success":false,"UTC":1738924979.0},"Index":0}]},"session":2147483569}
2025-02-07 10:45:41.235 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":32,"session":2147483569}
2025-02-07 10:45:41.244 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":32,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:46:03.150 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:43:59","Success":false,"UTC":1738925039.0},"Index":0}]},"session":2147483569}
2025-02-07 10:46:35.750 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"NTPAdjustTime","Data":{"Address":"","Before":"","LocaleTime":"2025-02-07 10:44:32","UTC":1738925072.0,"result":false},"Index":0}]},"session":2147483569}
2025-02-07 10:46:41.245 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":33,"session":2147483569}
2025-02-07 10:46:41.250 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":33,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:47:03.150 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:44:59","Success":false,"UTC":1738925099.0},"Index":0}]},"session":2147483569}
2025-02-07 10:47:41.251 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":34,"session":2147483569}
2025-02-07 10:47:41.256 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":34,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:48:03.171 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:45:59","Success":false,"UTC":1738925159.0},"Index":0}]},"session":2147483569}
2025-02-07 10:48:41.257 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":35,"session":2147483569}
2025-02-07 10:48:41.262 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":35,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:49:03.160 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:46:59","Success":false,"UTC":1738925219.0},"Index":0}]},"session":2147483569}
2025-02-07 10:49:41.263 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":36,"session":2147483569}
2025-02-07 10:49:41.274 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":36,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:50:03.158 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:47:59","Success":false,"UTC":1738925279.0},"Index":0}]},"session":2147483569}
2025-02-07 10:50:41.275 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":37,"session":2147483569}
2025-02-07 10:50:41.280 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":37,"params":{"timeout":60},"result":true,"session":2147483569}
2025-02-07 10:51:03.164 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"SIPRegisterResult","Data":{"LocaleTime":"2025-02-07 10:48:59","Success":false,"UTC":1738925339.0},"Index":0}]},"session":2147483569}
2025-02-07 10:51:35.745 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":3,"method":"client.notifyEventStream","params":{"SID":513,"eventList":[{"Action":"Pulse","Code":"NTPAdjustTime","Data":{"Address":"","Before":"","LocaleTime":"2025-02-07 10:49:32","UTC":1738925372.0,"result":false},"Index":0}]},"session":2147483569}
2025-02-07 10:51:41.281 DEBUG (MainThread) [custom_components.dahua_vto.sensor] >>> {"method":"global.keepAlive","params":{"timeout":60,"action":true},"id":38,"session":2147483569}
2025-02-07 10:51:41.286 DEBUG (MainThread) [custom_components.dahua_vto.sensor] <<< {"id":38,"params":{"timeout":60},"result":true,"session":2147483569}

DHI-ITC413-PW4D-IZ1 working with integration Dahua VTO

Thanks for update!
@cheusovalexandr As I can see it’s ANPR camera, do you manage to get number plates from it using this integration?

Very sad that this happened :frowning: According the log, integration can connect to the VTO but receives only SIPRegisterResult and NTPAdjustTime messages but that means communication with VTO is working. Try to play with VTO using DMSS application (press the button, open the door if you have it connected, check if you can speak with visitor, etc) but keep integration working - maybe the log messages from integration and DMSS reactions will give you some idea what was happening.

I’m getting this error on the logs “Detected that custom integration ‘dahua_vto’ registers an entity service with a non entity service schema which will stop working in HA Core 2025.9 at custom_components/dahua_vto/sensor.py, line 99: platform.async_register_entity_service(, please create a bug report at GitHub · Where software is built

Looks like you use version 1.0.7 or older, if you don’t want to see this warning you should update to latest version.

Do you happen to know the correct command for answering a call? I tried using ac similar to hc, but unfortunately, I get an error code. Is there any other command list available for DHIP?

You can try to issue ac at VTH, VTO doesn’t have these command because it’s make a call.
Some list of command you can get if you run help command on device console, here the list of VTH commands.

Hello! Thanks for the integration! Tested with DHI-VTO2311R-WP. It works. Example of automating the opening of the Aqara N100 lock using a mifare key.

alias: Test door open vto card
description: “”
triggers:

  • trigger: event
    event_type: dahua_vto
    event_data:
    Code: AccessControl
    actions:
  • choose:
    • conditions:
      • condition: template
        value_template: |
        {{ trigger.event.data.Data.CardNo == ‘CD134B6E’ }}
        enabled: true
        sequence:
      • entity_id: lock.smart_door_lock_n100_b9a4
        action: lock.unlock
        mode: single

Two-way audio also works, with output to tablet. I used go2rtc add-on
example card:

type: custom:webrtc-camera
streams:

  • url: vto_hd
    name: “Off”
  • url: vto_two_way_audio
    name: “On”
    mode: webrtc
    media: video,audio,microphone
    ui: true

For two-way communication https:// is required …

1 Like

Thanks you for sharing!

1 Like

Maybe someone knows?
DHI-VTO2311R-WP
How to turn off constant button backlight?
How to turn on constant recording to sd card?
I’m trying to connect via ssh, it asks for a domain,
I can’t figure out which domain.

Hi Everyone,
Thanks for all these related integrations and the incredibly valuable information in this and related posts.

I’m coming to ask, does anyone know how to edit Access Card settings via this or another integration?
I would like to enable access with a specific mifare card only on some specific time intervals. Since my system doesn’t support it, I am trying to achieve this by creating an automation in Home Assistant that disables / re-enables access for that card during the specified periods.
However, I’ve been trying for days to find a way to alter a card’s access and even thouth it feels so close, I keep hitting roadblocks!

I have a VTO2211 and a VTH5221 connected through a PoE Ethernet switch.

I have tried using the HTTP API via CURL to the VTO and this Dahua VTO integration making calls through Developer Tools > Actions > “Dahua VTO: Send command”, to the VTO and the VTH - which I think is acually sending XMLRPC command through the TCP port on the devices.

In both cases, I got close but I can’t get either update (ideal) or insert to work, most likely due to some peculiarity on the required parameters, which isn’t documented anywhere and error messages don’t help understand.

In the case of the HTTP API, I was successfully able to list cards and also remove a card, but for the life of me I can’t insert or update.

In the case of the Dahua VTO: Send command actions (which I would prefer), I can see a list of promising services and commands, such as RecordUpdater.update but it always fails with “Invalid Request!”.

Does anypone have any kind of link / lead that could help me get unblocked on the last stretch of this quest?

Thanks a lot,
Julian

Hello,

I check with VTO2111D, also can’t insert card but after some tries I found a way to update the card (my mistake was that recno should be lowercase):

# List cards
http://<ip>/cgi-bin/recordFinder.cgi?action=find&name=AccessControlCard
# Update card with recno=2
http://<ip>/cgi-bin/recordUpdater.cgi?action=update&name=AccessControlCard&recno=2&CardStatus=1
# Remove card with recno=2
http://<ip>/cgi-bin/recordUpdater.cgi?action=remove&name=AccessControlCard&recno=2

curl or browser it’s a very easy way to test command but I’m sure that you will be able to issue same command using Dahua VTO: Send command action.
Hope this helps.

PS: Another way it’s the open the door when you receive access card event like in this example.
In this case you doesn’t need to add cards at all and you can just open a door for specific card. Not sure if it’s will work in your case.

1 Like

I don’t have a model which support these features but you can look into Dahua HTTP API and try to check parameters using request for RecordMode, Record, VideoInBacklight, etc:

http://<ip>/cgi-bin/configManager.cgi?action=getConfig&name=RecordMode

As a domain you can try to use 888888 or 666666 like it’s described here but much easy way to get VTO shell using this Dahua Console Utility

1 Like

Yesss!!
Thank you SO MUCH.
I can’t explain how many things I’ve tried and failed. The update method you described worked! Maybe the trick was to use recno in lowercase (I had tried that) and then update only one additional field? I don’t know. I had tried things very similar to this but they always gave an opaque error. This one (recno + CardStatus) returns OK and does exactly what I need.

Out of curiosity, do you have any particular trick for figuring out which are the right parameters? I found it extra hard to figure out because the error response doesn’t give any hints on what could be wrong and there are no logs that I could find pointing to the error in the VTO or VTH. If you have any trick to share on how to keep investigating, I’d appreciate it.

I also like the alternative approach you proposed. It has the downside of depending on Home Assistant and the integration for the door to work, but on the other hand it can’t fail to disable the access after the specified period expires, so I like it too. I’ll experiment with it.

Once more, thanks again for this priceless answer @myhomeiot

As long as I have been working with Dahua VTO/VTH, it has always been a trial and error method, you have to be attentive to little details, collect information on the Internet from various sources and try a lot. So you on the right path :wink:
I’m glad that I helps you.

Absolutely right! I can read plate number, car type and model, car color, plate number background color. I can also read the car’s approach and leave attributes.

Sorry for my English…

{
    "Action": "Pulse",
    "Code": "TrafficJunction",
    "Data": {
        "Action": "Pulse",
        "Class": "Traffic",
        "Code": "TrafficJunction",
        "CommInfo": {
            "CoordinateX": "None",
            "CoordinateY": "None",
            "Country": "RUS",
            "ExtraPlateNumber": "None",
            "ParkType": 0,
            "Province": "Unknown",
            "SnapCategory": "Motor",
            "VehicleTypeInTollStation": "Unknown"
        },
        "CountInGroup": 1,
        "DSTTune": 0,
        "DetectRegion": [
            [
                0,
                0
            ],
            [
                8191,
                0
            ],
            [
                8191,
                8191
            ],
            [
                0,
                8191
            ]
        ],
        "EncodeSequence": 1249,
        "EncodeTimes": 0,
        "EventID": 1249,
        "FrameSequence": 1599251,
        "FrameStamp": 1598595,
        "GroupID": 3149180,
        "Index": 0,
        "IndexInGroup": 1,
        "JunctionDirection": "Obverse",
        "Lane": 0,
        "LocaleTime": "2025-04-09 15:03:02",
        "Mark": 0,
        "Name": "TrafficJunction0",
        "Object": {
            "Action": "Appear",
            "BelongId": 0,
            "BoundingBox": [
                3032,
                2824,
                3272,
                2936
            ],
            "Category": "",
            "Center": [
                3152,
                2880
            ],
            "Confidence": 86,
            "Country": "RUS",
            "ExtraPlateNumber": "None",
            "MainColor": [
                255,
                255,
                255,
                0
            ],
            "MainSeat": {
                "DriverCalling": "unknow",
                "DriverSmoking": "unknow",
                "SafeBelt": "unknow"
            },
            "ObjectID": 1726,
            "ObjectType": "Plate",
            "OriginalBoundingBox": [
                994,
                587,
                1073,
                608
            ],
            "PlateInfo": "None",
            "Province": "Unknown",
            "RecogniseConf": 0,
            "RecogniseEqualVoting": 0,
            "RelativeID": 1726,
            "SlaveSeat": {
                "DriverCalling": "unknow",
                "DriverSmoking": "unknow",
                "SafeBelt": "unknow"
            },
            "Speed": 0,
            "Text": "X123XX123",
            "TrackType": 0,
            "ValidAnalyseAttributes": 524288
        },
        "ObjectID": 1726,
        "OpenStrobeState": "Close",
        "PTS": 133404434,
        "RealUTC": 1744200182,
        "RuleID": 0,
        "Sequence": 1,
        "Source": 118411616,
        "TimeZone": 3,
        "TrafficCar": {
            "BlackList": {
                "Enable": "False"
            },
            "CapTime": 1744210982.677,
            "CarType": "NormalCar",
            "Category": "SaloonCar",
            "CountInGroup": 1,
            "Country": "RUS",
            "CustomRoadwayDirection": "",
            "DefendCode": "NiYentbjadFwlY5O",
            "DetailedAddress": "Area-Z",
            "DeviceAddress": "",
            "Direction": 0,
            "DrivingDirection": [
                "Approach",
                "",
                ""
            ],
            "Event": "TrafficJunction",
            "GroupID": 3149180,
            "IndexInGroup": 1,
            "Lane": 1,
            "LowerSpeedLimit": 20,
            "MachineAddress": "",
            "MachineName": "AB07E54PAJ00012",
            "OverSpeedMargin": 0,
            "PhysicalLane": 0,
            "PlateColor": "White",
            "PlateNumber": "X123XX123",
            "PlateType": "",
            "RoadwayNo": "",
            "RouteNo": "",
            "SpeedForSize": "False",
            "UTC": 1744210982,
            "UnderSpeedMargin": 0,
            "UpperSpeedLimit": 70,
            "VehicleColor": "Yellow",
            "VehicleSign": "Skoda",
            "VehicleSize": "Light-duty",
            "WhiteList": {
                "Enable": "True",
                "TrustCar": "False"
            }
        },
        "TriggerType": 2,
        "UTC": 1744210982,
        "UTCMS": 677,
        "Vehicle": {
            "Action": "Appear",
            "BelongId": 0,
            "BoundingBox": [
                2936,
                1864,
                4296,
                3128
            ],
            "BrandYear": 0,
            "BrandYearText": "Другой",
            "CarLogoIndex": 30,
            "CarSeriesIndex": 0,
            "CarSeriesIndexYear": 0,
            "Category": "SaloonCar",
            "Center": [
                3616,
                2496
            ],
            "Confidence": 78,
            "HeadDirection": 0,
            "MainColor": [
                255,
                255,
                0,
                0
            ],
            "MainSeat": {
                "DriverCalling": "unknow",
                "DriverSmoking": "unknow",
                "SafeBelt": "unknow"
            },
            "ObjectID": 1726,
            "ObjectType": "Vehicle",
            "OriginalBoundingBox": [
                963,
                409,
                1409,
                644
            ],
            "RelativeID": 1726,
            "SlaveSeat": {
                "DriverCalling": "unknow",
                "DriverSmoking": "unknow",
                "SafeBelt": "unknow"
            },
            "Speed": 0,
            "SubBrand": 0,
            "SubText": "Другой",
            "Text": "Skoda",
            "ValidAnalyseAttributes": 0,
            "VehicleDirection": "Head",
            "VehicleTypeInTollStation": "Unknown"
        },
        "VehicleDirection": "Head",
        "VehicleHeadDirection": 0,
        "ViolationSnapSource": 3,
        "YuvPacket": {
            "AddrU": 2965320704,
            "AddrV": 2966342144,
            "AddrY": 2961234944,
            "Channel": 0,
            "Format": 9,
            "FrmSeq": 1599251,
            "Height": 1520,
            "PhyAddrU": 1094812672,
            "PhyAddrV": 1095834112,
            "PhyAddrY": 1090726912,
            "Priv": 114423000,
            "SourceType": 0,
            "Stride": [
                2688,
                1344,
                1344
            ],
            "Width": 2688,
            "YuvPts": 133404434
        }
    },
    "Index": 0,
    "entity_id": "sensor.dahua_anpr"
}

home assistant automation:

- alias: open_gates_camera_anpr
  initial_state: true
  id: open_gates_camera_anpr
  trace:
    stored_traces: 10
  mode: parallel
  triggers:
    - trigger: event
      event_type: dahua_vto
      event_data:
        Code: "TrafficJunction"
  actions:
    - variables:
        vars_camera_anpr: |
          {% set vars_camera_anpr = {
            'camera_entity': 'camera.dahua_anpr_main',
            'gates_entity': 'switch.gates',
            'photo_path': '/config/www/camera/camera_anpr_main.png',
            'video_path': '/config/www/camera/dahua_anpr_vehicle_main.mp4'
            }
          %}
          {{ vars_camera_anpr }}
    - choose:
        - conditions:
            - "{{ trigger.event.data.Code == 'TrafficJunction' }}"
            - "{{ 'Approach' in trigger.event.data['Data']['TrafficCar']['DrivingDirection'] }}"
            - "{{ is_state('input_select.gates', 'closed') }}"
            - condition: or
              conditions:
                - "{{ 'X123XX123' in trigger.event.data['Data']['TrafficCar']['PlateNumber'] }}"
                - "{{ 'Y321YY321' in trigger.event.data['Data']['TrafficCar']['PlateNumber'] }}"
          sequence:
            - action: switch.turn_on
              data:
                entity_id: |
                  {{ vars_camera_anpr['gates_entity'] }}
1 Like

Great! Thanks for sharing!

1 Like