Integration with ID Lock 150

I upgraded a FW 1.5 to 1.6. You are welcome to zwavejs2mqtt slack if oyou want more help: https://join.slack.com/t/zwave2mqtt/shared_invite/enQtNjc4NjgyNjc3NDI2LTc3OGQzYmJlZDIzZTJhMzUzZWQ3M2Q3NThmMjY5MGY1MTc4NjFiOWZhZWE5YjNmNGE0OWRjZjJiMjliZGQyYmU

Thanks for all your support! I will check out Slack for sure.

/Martin

I only got those 4 sensors when I didn’t add the lock in secure mode. Try that.

I use Z-waveJS2mqtt and it works really well. I can also recommend Keymaster integration to manage codes etc.
I can see in the user guide that it is possible to set “away mode” by enter the PIN after the door has been locked. This would be super nice to use as a trigger to arm my Alarmo alarm. I looked in the zwave_js_notification event stream but it does not seem to output any info.
Have anyone managed to use this feature in HA?

It works already with Zwave JS. There is an example a few posts above using EventSensor. Not super intuitive, but it works really well.

1 Like

My ID lock 150 and zwave (zwave JS) are using latest fw and everything working great except (if the data is correct) battery drain. Losing 10% per two days.

I got a suggestion to edit “wake up” and “polling” but I have no idea on how to do this. Hoping someone can give some input on how to solve the battery drain.

My ID Lock battery sensor is very unreliable. Even immediatly after change to new Duracell batteries, it never shows more than 80%. And it is practically unusable below 35%. And it only changes in 5% steps.
And sometimes it shows more than the day before.

Screenshot 2021-06-07 084431

Personally, I don’t think it drains that much battery in reality. I thought so after seeing the battery sensor, but then I added a counter to see how many lock/and unlocks we actually do in our house.
Right now there have been 2 021 lock/unlocks since battery change 2021-03-22, and (unreliable) 50 % battery left. That’s about three times more locks/unlocks than I would have expected. Based on actual data, I now think the battery comsumption is quite allright.

Since you already have upgraded FW, my recommendation is to change batteries, take note when for reference, and then wait and see how it works in reality before changing any other parameters.

Good luck!

1 Like

Ok lets hope then its not an actual drain. Thx for reply

Prev. when I used a different controller the idlock supported a very good notification.
Every time someone tried to unlock my door with the wrong pin I got notified.
Trying to do the same now in HA using Zwave.js with I can’t get it to work.
It seems like this notification is not triggered. Tried both zwave_js_value_notification and zwave_js_notification wo any luck. Anyone knows?

Hi
Use the dev page to listen to what id-lock send when you trigger with a wrong code. Then you build your automation from that. I have not done it my self, i can look in to that later when I have some more time.

Regards
Andreas

Feedback: Now it is time to change batteries.

The lock now reports 25% and you can really hear how it struggles to unlock.
There has been 4 537 actions (lock or unlock) since the last battery change in 2021-03-22.
That is 567 actions per AA battery. Way above my expectations.

Edit: Next change 2022-02-20. Only 2 132 actions with Biltema batteries compared to 4 537 with Philips


2 Likes

Hi guys,
I just switched to Home Assistant from another system.
I’m setting up automations for my ID-Lock 150 but can’t find out how to see last used code anywhere from the automation process.
I’m probably missing some step i need to take in HA that i don’t know off, but i have Googled everything and i always ends up in this thread.
Can anyone help me out here?

Hello, in order to see and use last code you must first learn what messages id-lock send when something happens. To do that you use dev pages and listen to z-wave traffic. And if you search for event listener you should find information how to do it and how to use it.

/Andreas

2 Likes

Perfect.
You pointed me in the right direction and now i have solved it like this (my test script):

alias: Dörr lÄstes upp
description: ''
trigger:
  - platform: event
    event_type: zwave_js_notification
condition: []
action:
  - choose:
      - conditions:
          - condition: template
            value_template: '{{ trigger.event.data.parameters.userId == 110 }}'
        sequence:
          - service: notify.mobile_app_name_iphone
            data:
              title: Name LÄste upp dörren
              message: Name LÄste upp dörren
    default:
      - service: notify.mobile_app_name_iphone
        data:
          message: NÄgon lÄste upp dörren
          title: NÄgon lÄste upp dörren
mode: single

Kul jag kunde hjÀlpa. Skicka PM sÄ kan du fÄ lite mer tips pÄ svenska
 :blush:

Hi guys. I am at a bit loss here with this lock. For some time, I used the (now deprecated uzw) thingie. Then I did the switch to Z-Wave JS - and because I am not that big of a user of Home Assistant (I have just used it configured to send ‘door is opened / door is locked’ events to Apple Home so that I get events on my and my spouse’ iPhones), I did not notice that the code I used to have in HA did not work anymore; namely a binary sensor which provided me a historical record (through History) of which user’s code had been used opening the door.

This is the code I used, placed in the configuration.yaml file:

binary_sensor:
  - platform: template
    sensors:
      id_150_user_code_brad:
       friendly_name:  "Brad opened the door"
       value_template: >-
         {{ is_state('sensor.id_150_z_wave_module_user_code', '61') }}
  - platform: template
    sensors:
      id_150_user_code_jenny:
       friendly_name: "Jenny opened the door"
       value_template: >-
         {{ is_state('sensor.id_150_z_wave_module_user_code', '60') }}

I noticed it was suddenly always “off” in History. So I tried to google, which came inclonclusive.

Then I saw that I had firmware 1.5 on this ID Lock 150 and I should update it. So then I went with zwavejs2mqtt instead of zwave js; OTA firmware upgrade worked great. I was able to upgrade the lock to 1.6 firmware (can someone explain to me the difference between the 1.6 firmware versus the firmware (?) / update I get from the official idlock Updater app on my phone?) The 1.6 is the “OS”, the Updater app is the “app” on the lock? The Updater app says I am on firmware 1.5.9, which is the latest provided.

Anyways.

I only have these entities in the lock (check Picture)- but reading through all this, and looking at the code above I used a couple of years ego, I think there are some missing? As you can see, the device was added securely.

However, when I looked at idlock in zwavejs2mqtt Control panel, I see I have “User Code” as a value. Should not this be showing as an entity?

I have tried to:

  • re-interview the device
  • removed it from z-wave, successfully
  • added the device, successfully
    Nothing changed. No new entities.

So then I did a remove from z-wave, did a reset on the z-wave module through the keypad on the lock - removed the batteries, then did a secure include; nope, no entity is shown in HA besides those in the first picture above.

It is quite the challenge to move the hub any closer to the door, as I am using a virtual machine instance for HA, and the physical server can not be moved. Through the Network Graph, it looks like the Controller has direct access to the lock, so I do not think that matters. And it says it is included just fine? (I read some comments above they only had these entities when it is not added securely? And someone else suggested that you should move it closer when including?)

Q: Can someone confirm that I should have an entity from this device regards to user codes?

If I should not have it, I will then try to wrap my head around on how to use the event type “zwave_js_notification” to trigger a binary sensor. Which I do not comprehend just yet.

Hi
To get some historical data on whom unlocked your door you need to use events. Your on the right path with zwave_js_notification, use it in UI to find the correct message from your lock.
The firmware 1.6 you refer to is for the z-wave module and the updater app is for your lock itself.
Get back to me if you need help finding the right template for this.

/Andreas

So you confirm that I have all the correct entities?

I cannot understand how the code worked before.

I do not receive any events when I am using the keypad and enter the door.

Not on zwave_js_value_notification or zwave_js_notification.

I do get an event on zwave_js_notification, which is when the door shuts and locks down after I have opened the door and have gone in.


Event 0 fired 19:00:
{
    "event_type": "zwave_js_notification",
    "data": {
        "domain": "zwave_js",
        "node_id": 10,
        "home_id": 3571547381,
        "device_id": "90c32164976def14841a1a06b84f118f",
        "command_class": 113,
        "command_class_name": "Notification",
        "label": "Access Control",
        "type": 6,
        "event": 1,
        "event_label": "Manual lock operation",
        "parameters": {}
    },
    "origin": "LOCAL",
    "time_fired": "2021-11-28T18:00:31.383886+00:00",
    "context": {
        "id": "5468d08c5fdb97fdd52f0ba3a70361db",
        "parent_id": null,
        "user_id": null
    }
}

Hi
Try this in an automation, it works good for me. Remember to create a “input_text.unlocker”.

  - alias: Senaste UpplÄsningen
    id: '1234567890ABCDEFGH'
    initial_state: true
    trigger:
      platform: event
      event_type: zwave_js_notification
      event_data:
        node_id: 35
        event_label: 'Keypad unlock operation'
    action:
    - service: input_text.set_value
      data:
        entity_id: input_text.unlocker
        value: >
          {% set mapper = {
            0:'Your user name',
            1:'xxxxxx',
            2:'xxxxxx',
            3:'xxxxxx',
            4:'xxxxxx',
            5:'xxxxxx',
            6:'xxxxxx'} %}
          {% set selection = trigger.event.data.parameters['userId'] %}
          {{ mapper[selection] if selection in mapper else 'error' }}

Change number to the number where you have your code and change name to those you want.
And change node id to your lock’s id.

/Andreas