Envisalink fires open door twice from time to time

Hi, from time to time, when I open a door controlled through the Envisalink (V4 board) 3rd party intergration, my automation is ran twice, with about 15 seconds intervals. Looking at the door state icon, I can see the icon turn yellow when I open the door then blue when I close it back but about 15 seconds later, although the door is still closed, it goes back to yellow and stays like that for 30 seconds before going back to blue.

Anybody knows why it’s doing this and how to fix? My interim solution is to use a Boolean variable that is set when the door opens and resets after 30 seconds (through a timer that fires when the door opens). This timer sets the Boolean to off when it finishes. The automation tests if that Boolean and stops the automation when it’s to on. Surely there is a better way to handle this.

Thanks

Checking at the alarm panel, I don’t see these ‘ghosted’ reopening so it’s something either introduced by Envisalink itself or the integration.

So this is what I did but it would be so much better if I wasn’t necessary. porte_avant timer was already defined and used. Shown here for clarity.

This is in configuration.yaml

timer:
  porte_avant:
      duration: '00:01:00'
  porte_avant_debounce_timer:
      duration: '00:00:30'

input_boolean:
  porte_avant_debounce:
    initial: off

In Automation. I have the opening door automation that triggers the debounce code (30 seconds timer) instead of the real code. I did it this way because I have a few automations that kicks in when the door opens (including one that tells the closest Alexa to warn people to wash their hands after coming in :slight_smile: ). I’m assuming this timer is reset to 30 seconds each time an event is registered, be it a real door open or a ghost one.

- id: '1585374672119'
  alias: Extérieur - Porte avant (trigger)
  description: ''
  trigger:
  - entity_id: binary_sensor.porte_avant
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data: {}
    entity_id: input_boolean.porte_avant_debounce
    service: input_boolean.turn_on
  - data: {}
    entity_id: timer.porte_avant_debounce_timer
    service: timer.start

This code is the actual automation that uses the boolean instead of the door opening event

- id: '1577893423511'
  alias: Extérieur - Ouverture de la porte de l'entrée de l'extérieur la nuit
  description: ''
  trigger:
  - entity_id: input_boolean.porte_avant_debounce
    from: 'off'
    platform: state
    to: 'on'
  condition:
  - condition: state
    entity_id: light.lumiereentree
    state: 'off'
  - condition: state
    entity_id: binary_sensor.nuit
    state: 'on'
  - condition: or
    conditions:
    - condition: state
      entity_id: binary_sensor.porte_d_entree_motion
      state: 'on'
    - condition: template
      value_template: '{{ (as_timestamp(now()) - as_timestamp(states.binary_sensor.porte_d_entree_motion.last_updated)) < 60 }}'
  action:
  - entity_id: light.lumiereentree
    service: light.turn_on
  - entity_id: timer.porte_avant
    service: timer.start

This is the timer that clears the debounce boolean after 30 seconds from the last door open event (real or ghost)

- id: '1585373898886'
  alias: Timer expiré - Debounce porte avant
  description: ''
  trigger:
  - event_data:
      entity_id: timer.porte_avant_debounce_timer
    event_type: timer.finished
    platform: event
  condition: []
  action:
  - data: {}
    entity_id: input_boolean.porte_avant_debounce
    service: input_boolean.turn_off

And last, for sake of clarity, this is the timer expired code for the entrance light turning on at night when the door is opened from the outside (ie, movement registered from my Ring doorbell)

- id: '1577896691214'
  alias: Extérieur - Ferme la lumière de l'entrée 1 minute après ouverture de la porte
  description: ''
  trigger:
  - event_data:
      entity_id: timer.porte_avant
    event_type: timer.finished
    platform: event
  condition: []
  action:
  - data:
      entity_id: light.lumiereentree
    service: light.turn_off

Edit: Forgot to add that one. Again it’s just for clarity. If the light is turned off, clear the timer (not the debounce one). So this allow the light to be turned off then back on to let it stay on and not turn off after a minute.

- id: '1578421537058'
  alias: Extérieur - Annulation du timer d'ouverture de la porte avant
  description: ''
  trigger:
  - entity_id: light.lumiereentree
    platform: state
    to: 'off'
  condition: []
  action:
  - entity_id: timer.porte_avant
    service: timer.cancel

Feel free to give me advices on improving it. Having just started to work with HA since last December, I’m still quite new at this stuff :slight_smile:

Thanks.

1 Like

I just started chasing something like this down as well, I was seeing duplicate events off of all my envisalink zones. about 30 seconds apart. By any chance are you using a DSC alarm?

I noticed a setting in the example config:

zonedump_interval
This is an interval (measured in seconds) where Envisalink will dump out all zone statuses. This is required for Honeywell systems, which do not properly send zone closure events. DSC boards do not technically need this.

When this was set to 30, I was getting duplicate events. I set it to 300 (5 minutes) and the problems went away. I think it could probably even just be omitted. Setting it to 30 seems to do a zone dump and mess with the events, resulting in ghosted duplicates.

Did you get this issue solved? I have the same problem with my sensors, sometimes an open/close event is detected twice with an interval of a few seconds and the door is confirmed to be opened/closed just once. I contacted Envisalink support and they say it’s not their issue, their hardware is, and I quote “perfect”

The example i provided - setting zonedump_interval to something incredibly high (in my case i left it at 999)

problem went away.

1 Like

Wow. Having same exact problem. I see that it sets any zone to open about 5 seconds after I close it…. Then stays open for exactly 30 seconds.

I’ll try setting the zone dump interval to 999

@daytonturner Glad I found this. Setting zonedump_interval to 999 fixed my ghost triggers I have been chasing for a long time on my DSC Power Series with Envisalink. This fix should added to the integration page for Envisalink.

Setting zonedump_interval to 0 will outright disable it - otherwise yep it fires duplicate triggers, eventually even with a high interval.

Will it affect the status of the zones after a restart though?