Basic Home Alarm Setup with Zipato Keypad

Hi,

I’m planning to implement this because I also want use my Keypad in combination with the control panel in HA.
But isn’t this going to cause a loop in the automation?

For example:

  • When arming from HA - the shell command set keypad sensor value to 255.
  • This will then trigger the keypad automation because it watch for this change and then fire the alarm_arm_away.
  • This will then trigger the shell command to set 255 again.

Or maybe it’s not a problem?
How is it working for you?

Here is my code for how I plan to use it:

  • id: alarm_armed_away
    alias: ‘[Alarm] Away Mode Armed’
    trigger:

    • platform: state
      entity_id: alarm_control_panel.larmpanel
      to: ‘armed_away’
      action:
      • service: notify.ha_push_group
        data_template:
        title: ‘Hemlarm’
        message: ‘Larmet har blivit aktiverat för bortaläge!’
      • service: shell_command.set_keypad_away
  • id: alarm_disarmed
    alias: ‘[Alarm] Disarmed’
    trigger:

    • platform: state
      entity_id: alarm_control_panel.larmpanel
      to: ‘disarmed’
      action:
      • service: notify.ha_push_group
        data_template:
        title: ‘Hemlarm’
        message: ‘Larmet har blivit frånkopplat!’
      • service: shell_command.set_keypad_home
  • id: alarm_triggered
    alias: ‘[Alarm] Triggered’
    trigger:

    • platform: state
      entity_id: alarm_control_panel.larmpanel
      to: ‘triggered’
      action:
      • service: notify.ha_push_group
        data_template:
        title: ‘Hemlarm’
        message: ‘Larmet har blivit utlöst!’
        #Siren
      • service: switch.turn_on
        entity_id:
        • switch.switch_18
  • alias: ‘[Alarm] Trigger alarm while armed away’
    trigger:

    • platform: state
      entity_id: sensor.huvudentredorren_sensor
      to: ‘Öppen’
    • platform: state
      entity_id: sensor.koksentredorren_sensor
      to: ‘Öppen’
    • platform: state
      entity_id: sensor.kallordorren_sensor
      to: ‘Öppen’
      condition:
    • condition: state
      entity_id: alarm_control_panel.larmpanel
      state: armed_away
      action:
    • service: alarm_control_panel.alarm_trigger
      entity_id: alarm_control_panel.larmpanel
  • alias: ‘[Alarm] Keypad hemma’
    trigger:

    • platform: numeric_state
      entity_id: sensor.alarm_level_16
      below: ‘1’
      action:
      #Siren
    • service: switch.turn_off
      entity_id:
      • switch.switch_18
    • service: alarm_control_panel.alarm_disarm
      entity_id: alarm_control_panel.larmpanel
      #Keypad notification switch
    • service: switch.turn_on
      entity_id: switch.switch_20
  • alias: ‘[Alarm] Keypad borta’
    trigger:

    • platform: numeric_state
      entity_id: sensor.alarm_level_16
      above: ‘254’
      action:
    • service: alarm_control_panel.alarm_arm_away
      entity_id: alarm_control_panel.larmpanel
      #Keypad notification switch
    • service: switch.turn_on
      entity_id: switch.switch_20

Hi,

To answer my own question:
I tried to implement this automation and it seems that it won’t cause a loop.
When arming from HA, the shell command set 255 to the keypad sensor and will trigger my '[Alarm] Keypad borta’ automation. But it won’t continue because I think I recognize that the alarm is already armed.

Hi,

I have added this to my automation:

- alias: Check alarm state on startup
  trigger:
    - platform: homeassistant
      event: start
  action:
    service_template: >
      {%- if is_state("alarm_control_panel.larmpanel", "armed_away") -%}
        shell_command.set_keypad_away
      {%- elif is_state("alarm_control_panel.larmpanel", "disarmed") -%}
        shell_command.set_keypad_home
      {%- endif %}

This will check the state of the “alarm_control_panel” and based on the values it will run the correct shell command to “sync” the alarm state to the keypad.
So this scenario seems to work for me now:

  1. Arm the alarm using the tagreader.
  2. Disarm the alarm using the web GUI.
  3. Reboot HA server.
  4. Arm the alarm using the tagreader.

So after reboot the keypad will have the value 0 for disarmed.

I also have wake up interval at the default 7200s which doesn’t seem to be a problem.

I do get this in the log after restart of HA but it seems to be working anyway:
Entity id already exists: sensor.alarm_level_16. Platform zwave does not generate unique IDs

Hi all,
I have just get one if these keypads and discovered this thread. Bad to read that this zwave device is so poorly supported.
For those who have it working with all the hacks related in this thread: is this working properly?
Is worth the effort?

@tremebundo

Juan,

I’ve got 2 of these, if you have the patience, will and knowledge to plow through everything suggested in this thread, in the end it’s working ok. I’ve got 2 of these, one downstairs near the exit and that one is working fine, another one upstairs (to trigger ‘home’ mode for the night) and still having issues with that one such as battery running out in a 2-3 months. I think the 2nd one has to do wit reception problems but I have a repeater close by but somehow the keypad does not pick it up. More tinkering required…

All in all, given the cost of these things, a lot of hassle. But the big advantage is that once it’s working it’s very family friendly (ie easy to use for the wife & kids).

Would I buy them again, probably not. In hindsight I probably go for some cheap android devices that connect over wifi and run them in kiosk mode. only problem with that is you need some sort of powersupply near where you put these.

Hope this helps.

1 Like

So, if I understand correctly, this mod to components/lock/zwave.py is meant to use HA to register user codes.
I still could do as stated in the first post (with OZWCP) if I do not appply this mod, could I?

Thanks a lot. Very useful comment.

Hello,
I’m using hassio and pi 2 + a zme usb stick.
OZWCP doesn’t work, the building is endless and crash the zwave in HA.
How could I register the tags to the keypad?
I’ve got the same error when I’m trying to do it from HA:
Unable to find service lock/set_usercode
Thank you

Hi new to Home Assistant moving all devices from Fibaro HC2

I have the same issue missing the parts to register my tags into the keypad

Log Details (WARNING)
Fri Oct 19 2018 20:53:03 GMT+0200 (Centraleuropæisk sommertid)

Unable to find service lock/set_usercode

Using PI + zme usb stick.

i do no know how to edit the PY file to solve my issue

Regards Erik

Hi Anasazi, I’m re-considering to move the Pad of my Vera controller back to HASS. All is clear but except the part of the registration of the RFID tags when I would move it back to Hass. What is needed to register these in HASS.IO?

does it need to be (expensive) zipato tags, or anyone should work?

Hello @merredin,

Just wondering if you still have the Zipato keypad and if you can share a bit of your configuration on how you use it?
I am having some trouble on configuring it and my keypad is also the 6131:5501.

Thanks!

Hi, just got 2 used zipato RFID, but I am having a hard time (not succeding) in including the devices.

Is the below correct?

  1. press ADD NODE into the ZWAVE HASSIO menu
  2. with the ZIPATO back cover OPEN, PRESS AND HOLD the TAMPER switch for 1 second … but after I release it it gives 3 times RED LED fast blink in 1 second, then again, then again (3 times 3 blink) then a last 8 blinks very fast.
    According to the manual that means it went into error and not into LEARNING mode.

If I press a bit longer then 1 second (2 or 3) then after releasing the TAMPER switch it blinks more slowly 3 times the LED (according to instruction is the signal or releasing the TAMPER switch, so that’s correct)

But how to put the thing in LEARNING mode? Is there anything else I should try?

where do you see this?

A long time has passed since the post, I don’t even remember where I got that from but I have the keypad working well on my side.
I just saw your post above too, I dont have the instructions for mine as well but I don’t remember having issues on adding it.

Keypad is working well here. With the latest version of Home Assistant it is possible to configure the user codes using Configuration --> Z-Wave, select the node. Scan a RFID tag, and it will show under Node User Codes as 0: Enrollment code. Copy this code. Change the code slot to another slot, and paste the HEX values. Only caveat is that if you have a short HEX code, like \x4, the panel will interprent it wrongly. You have to make sure there are always two digits, so make it \x04.

The only thing I would like to know is which RFID tag (which User Code) armed/disarmed the keypad. Does anyone know how to get this information?

Hi Joris,

The current version of the Python Z-Wave library doesn’t seem to provide information about which user code was used to arm/disarm the keypad.

The good news is that there is an ugly workaround for that. The OZW_Log.txt file contains the information, if you know how to look for it (hidden in a hex string). I’ve written a custom component (both backend and frontend) that allows you to show a list of recent arm/disarm events in Home Assistant. You can find the component on Github: https://github.com/janpascal/ha_lock_history

Hope this helps,

Jan-Pascal

This is an interesting idea indeed.

It might be “ugly” as workaround, but I would be happy to have it working. So I did try to install and configure it but without success. I’ve raised an issue here, hopefully you can help me!

Can you give more information about short hex codes problem. When I try to paste code from enrollment (or from logs) it always delete some zeros and the code is not the same than the tag.

Hi Denis, you should add the missing zero’s to the code manually, so \x4 should be \x04. Let me know if it works.