Integration with ID Lock 150

Thank you very much. Trying to configure HA makes me feel so stupid. …

So I create the Helper (input_text.unlocker); Configuration > Helpers > + ADD HELPER, and name it unlocker.

I go Configuration > Automations > + ADD AUTOMATION, and then I click ‘START WITH AN EMPTY AUTOMATION’, and then I go to the top right an select ‘Edit in YAML’. Inserting your code there, just pasting it raw - gives me an error message ‘Message malformed: expected dictionary’.

Trying to decifer the various bits using the visual editor, I have ended up with this code:

alias: Unlock
description: ''
trigger:
  - platform: event
    event_type: zwave_js_notification
    event_data:
      node_id: 10
      event_label: Keypad unlock operation
condition: []
action:
  - service: input_text.set_value
    data:
      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' }}
    target:
      entity_id: input_text.unlocker
mode: single

This do not work as intended; I can manually type in characters in that text box, which then alters the History. But this does not work automatically. …

Now, I think the culprit is that the door is not sending UserId. Or sending much Information at all. Looking through debug messages in zwavejs2mqtt, it only shows these types of events:

2021-11-28 21:19:36.320 INFO ZWAVE: Node 10 CC Notification {
type: 6,
event: 1,
label: 'Access Control',
eventLabel: 'Manual lock operation',
parameters: undefined
}

Opening the door from Apple Home app / Home Assistant (unlock), shows this DEBUG message:

2021-11-28 21:25:37.185 INFO ZWAVE: Node 10 CC Notification {
type: 6,
event: 4,
label: 'Access Control',
eventLabel: 'RF unlock operation',
parameters: <Buffer 00>
}

But I would really appreciate it if someone could give me a screenshot of all their entities in HA regarding this IDLock 150.

Further elaborating on this problem I have… .

If you go to https://idlock.no/wp-content/uploads/2019/08/IDLock150_ZWave_UserManual_v3.02.pdf and look at the table in page 8, you’ll see ‘COMMAND_CLASS_NOTIFICATION_V4’ with HEX value 71. And in the post above, post number 98, where I mention which event I get when trying to open / close the door- you’ll see "command_class": 113,. Decimal 113 is HEX 71. This is for me a confirmation that I have added the device securely and it is working as intended - because looking at the table, I would not be able to receive that command class if it wasn’t added securely. IF MY UNDERSTANDING IS CORRECT, offcourse :slight_smile:

But why am I not seing any COMMAND_CLASS_USER_CODE_V1? There is something mysterious here. Why do I see the ‘RF unlock operation’ (post 101), but nothing else? The RF unlock operation correspondes with the table on page 15 (table 7.4).

It was a Black sale yesterday, so I bought the Zigbee module for ~10$. Have not yet moved over, and do not know if I will - it doesn’t seem to have UserId attributes? https://idlock.no/wp-content/uploads/2020/11/User-Manual-Zigbee-module_EN_v0.4.pdf

I am bumping this thread because I would really like to have someone do a screenshot of all their entities for this lock. I do not get anything related to UserId in regards to listening to either zwave_js_value_notification, zwave_js_event or zwave_js_notification.

Is it something missing? It is added secure, though?

Hi
This is what I’ve got!


When i unlock my door with code i get notified with event what user id that unlocked my door.

/Andreas

This is what I got from integrations panel:

Thanks, guys.

It looks just like what I have?

Hmm. It does not compute. Why am I not seiing anything in regards to UserId. Hmmmm.

I have no idea what has happened here. I am fairly certain I did not get these particular events before. Looks like I am getting somewhere here now - thank you very much for your patience. Though, I do not think I have done anything to change this behaviour. Kinda odd.

Could it be that it has been there all the time?

I tried just once more, this time using the HA app on iOS where I listened to the event zwave_js_notification. When I got the notifications, I marked all the text and copied to a new Note on my iOS device.

Then I checked the note/text on my macOS through the Notes app: I can clearly see "userId": 9. Could there be some wrapping of text in the Safari browser which disallowed me to see all events? I do not comprehend how I could miss this. Anyways; I will now try to whack some of your code above together. Thanks!

Event 1 fired 16:00:
{
    "event_type": "zwave_js_notification",
    "data": {
        "domain": "zwave_js",
        "node_id": 10,
        "home_id": 3572541303,
        "device_id": "90c32164946def14841a1a06c84f1f5d",
        "command_class": 113,
        "command_class_name": "Notification",
        "label": "Access Control",
        "type": 6,
        "event": 9,
        "event_label": "Auto lock locked operation",
        "parameters": {
            "type": "Buffer",
            "data": [
                0
            ]
        }
    },
    "origin": "LOCAL",
    "time_fired": "2021-12-16T15:00:58.484626+00:00",
    "context": {
        "id": "b1088c0f13caa0c0d07601a045d82764",
        "parent_id": null,
        "user_id": null
    }
}
Event 0 fired 16:00:
{
    "event_type": "zwave_js_notification",
    "data": {
        "domain": "zwave_js",
        "node_id": 10,
        "home_id": 3572541303,
        "device_id": "90c32164946def14841a1a06c84f1f5d",
        "command_class": 113,
        "command_class_name": "Notification",
        "label": "Access Control",
        "type": 6,
        "event": 6,
        "event_label": "Keypad unlock operation",
        "parameters": {
            "userId": 9
        }
    },
    "origin": "LOCAL",
    "time_fired": "2021-12-16T15:00:38.665478+00:00",
    "context": {
        "id": "3b85b0375dbf0eff0b448fd4b5185b2c",
        "parent_id": null,
        "user_id": null
    }
}
``

Great, then the fun starts. :grinning_face_with_smiling_eyes:

Yes! I whacked something together which actually works.

This automation below sends me a notification on my phone of which user’s code has been used for unlocking the door.

alias: Notification Mobile App - Hall - The Door has been unlocked by Jennifer
description: ''
trigger:
  - platform: event
    event_type: zwave_js_notification
    event_data:
      label: Access Control
      type: 6
      event: 6
      event_label: Keypad unlock operation
      parameters:
        userId: 22
condition: []
action:
  - service: notify.mobile_app_roy
    data:
      message: The door has been unlocked by Jennifer.
      title: Street Adress
mode: single

Again, thank you very much!

2 Likes

Trying to give back:

This is how I created a binary sensor, which then gives me the abilitiy to go to History and see which user opened the door.

You paste this in your configuration.yaml file. Change the userId and name accordingly. This entity will “hang” for 30 seconds:

# Which user opened the door?
template:
- trigger:
    platform: event
    event_type: zwave_js_notification
    event_data:
      label: Access Control
      type: 6
      event: 6
      event_label: Keypad unlock operation
      parameters:
        userId: 9
  binary_sensor:
    - name: 'Brad has unlocked the door.'
      auto_off: 30
      state: "true"
      
- trigger:
    platform: event
    event_type: zwave_js_notification
    event_data:
      label: Access Control
      type: 6
      event: 6
      event_label: Keypad unlock operation
      parameters:
        userId: 12
  binary_sensor:
    - name: 'Roger has unlocked the door.'
      auto_off: 30
      state: "true"

Hi,

I’ve some problem with my lock.
First time when I got it to work there was no problem but when I wanted to change from z-wave JS to z-wave JS to MQTT I couldn’t get the right sensors, it gave me lock but I couldn’t use it, it was greyed out.
So I’ve tried to remove the node uninstall MQTT and I tried to go back to the JS one, and there I got the same sensors as MQTT gave me and it was greys out. So I tried to do a factory reset on the lock and use a backup on my Home Assistant. But now when I try to get the ID lock node it “tries” to interview the node but only gives me a timeout on every stage. And then ends with the node is dead?
Any one else had this problem and got it to work?

2022-01-18T09:14:30.039Z CNTRLR   [Node 006] Interview stage completed: ProtocolInfo
2022-01-18T09:14:30.040Z CNTRLR » [Node 006] querying node info...
2022-01-18T09:14:31.316Z CNTRLR « [Node 006] node info received
                                  supported CCs:
                                  · Z-Wave Plus Info
                                  · Manufacturer Specific
                                  · Security
                                  · Device Reset Locally
                                  · Powerlevel
                                  · Configuration
                                  controlled CCs:
2022-01-18T09:14:31.321Z CNTRLR   [Node 006] Interview stage completed: NodeInfo
2022-01-18T09:14:31.324Z CNTRLR » [Node 006] Querying securely supported commands (S0)...
2022-01-18T09:14:42.905Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:14:42.905Z CNTRLR   [Node 006] Querying securely supported commands (S0) timed out
2022-01-18T09:14:42.909Z CNTRLR   [Node 006] Interviewing Manufacturer Specific...
2022-01-18T09:14:42.909Z CNTRLR » [Node 006] querying manufacturer information...
2022-01-18T09:14:44.242Z CNTRLR « [Node 006] received response for manufacturer information:
                                    manufacturer: ID Lock AS (0x0373)
                                    product type: 0x03
                                    product id:   0x01
2022-01-18T09:14:44.248Z CNTRLR   [Node 006] Interviewing Version...
2022-01-18T09:14:44.249Z CNTRLR » [Node 006]   querying the CC version for Version...
2022-01-18T09:14:55.538Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:14:55.538Z CNTRLR   [Node 006] CC version query for Version timed out - assuming the node supports
                                   version 1...
2022-01-18T09:14:55.538Z CNTRLR » [Node 006] querying node versions...
2022-01-18T09:15:06.817Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:15:06.817Z CNTRLR » [Node 006] querying CC versions...
2022-01-18T09:15:06.817Z CNTRLR » [Node 006]   querying the CC version for Basic...
2022-01-18T09:15:19.266Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:15:19.266Z CNTRLR   [Node 006] CC version query for Basic timed out - assuming the node supports v
                                  ersion 1...
2022-01-18T09:15:19.267Z CNTRLR » [Node 006]   querying the CC version for Door Lock...
2022-01-18T09:15:32.978Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:15:32.979Z CNTRLR   [Node 006] CC version query for Door Lock timed out - assuming the node suppor
                                  ts version 1...
2022-01-18T09:15:32.980Z CNTRLR » [Node 006]   querying the CC version for User Code...
2022-01-18T09:15:48.954Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:15:48.955Z CNTRLR   [Node 006] CC version query for User Code timed out - assuming the node suppor
                                  ts version 1...
2022-01-18T09:15:48.956Z CNTRLR » [Node 006]   querying the CC version for Manufacturer Specific...
2022-01-18T09:16:04.915Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:16:04.915Z CNTRLR   [Node 006] CC version query for Manufacturer Specific timed out - assuming the
                                   node supports version 1...
2022-01-18T09:16:04.915Z CNTRLR » [Node 006]   querying the CC version for Z-Wave Plus Info...
2022-01-18T09:16:19.765Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:16:19.765Z CNTRLR   [Node 006] CC version query for Z-Wave Plus Info timed out - assuming the node
                                   supports version 1...
2022-01-18T09:16:19.766Z CNTRLR   [Node 006]   skipping query for Security (0x98) because max implemented versio
                                  n is 1
2022-01-18T09:16:19.766Z CNTRLR   [Node 006]   skipping query for Device Reset Locally (0x5a) because max implem
                                  ented version is 1
2022-01-18T09:16:19.766Z CNTRLR   [Node 006]   skipping query for Powerlevel (0x73) because max implemented vers
                                  ion is 1
2022-01-18T09:16:19.766Z CNTRLR » [Node 006]   querying the CC version for Configuration...
2022-01-18T09:16:36.899Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:16:36.900Z CNTRLR   [Node 006] CC version query for Configuration timed out - assuming the node su
                                  pports version 1...
2022-01-18T09:16:36.922Z CNTRLR   [Node 006] Embedded device config loaded
2022-01-18T09:16:36.927Z CNTRLR   [Node 006] Interviewing Z-Wave Plus Info...
2022-01-18T09:16:36.927Z CNTRLR » [Node 006] querying Z-Wave+ information...
2022-01-18T09:16:38.396Z CNTRLR « [Node 006] received response for Z-Wave+ information:
                                  Z-Wave+ version: 1
                                  role type:       SleepingListeningSlave
                                  node type:       Node
                                  installer icon:  0x0300
                                  user icon:       0x0300
2022-01-18T09:16:38.400Z CNTRLR   [Node 006] Interviewing Door Lock...
2022-01-18T09:16:38.401Z CNTRLR » [Node 006] requesting lock configuration...
2022-01-18T09:16:50.879Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:16:50.880Z CNTRLR » [Node 006] requesting current lock status...
2022-01-18T09:17:03.421Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:17:03.426Z CNTRLR   [Node 006] Interviewing User Code...
2022-01-18T09:17:03.426Z CNTRLR » [Node 006] querying number of user codes...
2022-01-18T09:17:10.552Z CNTRLR   [Node 006] did not respond after 1/3 attempts. Scheduling next try in 500 ms.
2022-01-18T09:17:23.416Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:17:23.416Z CNTRLR   [Node 006] Querying number of user codes timed out, skipping interview...
2022-01-18T09:17:23.420Z CNTRLR   [Node 006] Interviewing Configuration...
2022-01-18T09:17:23.420Z CNTRLR   [Node 006] ConfigurationCC: Loading configuration parameters from device confi
                                  g
2022-01-18T09:17:23.427Z CNTRLR » [Node 006] querying parameter #1 value...
2022-01-18T09:17:28.357Z CNTRLR « [Node 006] parameter #1 has value: 1
2022-01-18T09:17:28.357Z CNTRLR » [Node 006] querying parameter #3 value...
2022-01-18T09:17:40.817Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:17:40.817Z CNTRLR « [Node 006] received no value for parameter #3
2022-01-18T09:17:40.817Z CNTRLR » [Node 006] querying parameter #4 value...
2022-01-18T09:17:56.768Z CNTRLR   [Node 006] Timed out while waiting for a response from the node (ZW0201)
2022-01-18T09:17:56.768Z CNTRLR « [Node 006] received no value for parameter #4
2022-01-18T09:17:56.769Z CNTRLR » [Node 006] querying parameter #5 value...
2022-01-18T09:18:03.906Z CNTRLR   [Node 006] did not respond after 1/3 attempts. Scheduling next try in 500 ms.
2022-01-18T09:18:07.924Z CNTRLR   [Node 006] did not respond after 2/3 attempts. Scheduling next try in 500 ms.
2022-01-18T09:18:11.975Z CNTRLR   [Node 006] The node did not respond after 3 attempts, it is presumed dead
2022-01-18T09:18:11.978Z CNTRLR   [Node 006] The node is now dead.
2022-01-18T09:18:11.992Z CNTRLR   [Node 006] Interview attempt (1/5) failed, node is dead.

I tried the normal way ~10 times yesterday. When i manually choose “Secure if possible” it worked immediately without timeouts.
Can’t explain why that worked, but it did.

Exclude it first. Then press Add device - but click the link “How do you want to add your device”. And there first try “Secure if possible” and if that still doesn’t work, try “Legacy Secure”.

Hi Marcus. Did you manage to get this working with EventSensor? I am seeing the same; “RF unlock operation” reports the number of which tag that has been used. Or in the case of Z-wave unlock it reports 0. I have one sensor working just fine with “Keypad unlock operation”, but I haven’t found a way of setting up EventSensor correctly so that it manages to interpret the number/data reported by “RF unlock operation”.

parameter_data2

Mine looks like this and works fine:

Hi boneheadfraggle. My EventSensor for “Keypad unlock operation” works fine as well. My post adressed “RF unlock operation”.

I obviously missed this post. Tried to set it up as described and now it works just fine. Thanks @boneheadfraggle!

How are you getting Keymaster to work? i currently have ZwaveJStoMQTT and previously ran ZwaveJS both attempted with Keymaster, i am not able to change and create user PINs for the lock

My lock stopped reporting current status of the door (open or closed) during my last attempt to update my Home assistant setup. I ran a quite old version of Z-wave JS before, and also a few months old version of HA itself.

Anyone else experience the same problem?

Yes had the same problem after updating zwave_js. Solved the problem bu re-interviewing the device.

For those who are not comfortable with all the json the same effect can be achieved using Node-Red and listening to the Event event-type zwave_js_notification.

/Shay

1 Like

Hi all. Has anyone figured a way to use the “away” mode? It would be lovely if we could activate the alarm with this lock.