Integration with ID Lock 150

I got my hands on an ID Lock 150 door lock with Zwave, however it does not play well with Home Assistant. I am running Hassio with latest release on RPI with Razberry, but it seems that ID Lock 150 is not yet migrated into OpenZwave.

I got this reply from ID Lock support :" …if you can add the code yourself, here is the link:"

I am not a programmer. Can someone help me how to add the ID Lock 150 to my configuration?




Hi Martin. Have you found any solution to the integration of idlock 150?
I have it working all the way to access control event. It register manual lock/unlock, i’m looking for a way to read event parameter 1. It will tell us who unlocked and how.

Regards Andreas

Hi Andreas,

It worked as you say with manual lock/unlock, but then I tried to update the zwcfgfile with new parameters from the xml file and I run into problems. It looked like I could assign new codes etc, but then I could not lock/unlock the door…
Another problem I have is that the door is eating battery. I guess since the integration is not perfect, Zwave using too much power.
Minimum integration would be to lock/unlock as well as reading battery status.

Have you tried to mess with the config /xml files? If so, remember to stop the zwave network whlie editing. If not, it will not be saved.

Best Regards,


I have found it better to locate where to place idlock150.xml file and update manufacturer_spesific.xml with information about idlock 150. Both files are mentioned in this link
Serach for the file from commandline in your unit where you run Home-assistant with:
“find / -name idlock150.xml”.
Then you remove everything from zwcfg_XXXXXXX.xml regarding idlock 150 after stopping HA.
Restart HA and you should be a little closer. I have found that HA dont like the Values in hex code, so just change them to Decimal number.
Good luck
Regards Andreas

Interesting. I will try it tomorrow. Thanks!

Here is what i have in log so far.

<----------------------------------------------- door secure 0xff= door secure 0x01= door locked/closed ---------->
2018-12-11 23:33:32.545 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0xff, 0x00, 0x01, 0xfe, 0xfe
<--------------------------------------------------- door manual unlock ----------------------------------------------->
2018-12-11 23:33:40.113 Detail, Node045, Decrypted Packet: 0x00, 0x71, 0x05, 0x00, 0x00, 0x00, 0xff, 0x06, 0x02, 0x00
<---------------------------------------------- door unsecure 0x00=Door Unsecured 0x03=unlocked/closed ------------->
2018-12-11 23:33:40.625 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0x00, 0x00, 0x03, 0xfe, 0xfe
<------------------------------------ door Unsecured 0x00=Door Unsecured 0x02=Unlocked/Opened --------------->
2018-12-11 23:33:46.145 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0x00, 0x00, 0x02, 0xfe, 0xfe
<---------------------------------- door unsecure 0x00=unsecured 0x03=Unlocked/Closed --------------------->
2018-12-11 23:33:52.525 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0x00, 0x00, 0x03, 0xfe, 0xfe
<------------------------------------------------ Door manual lock ------------------------------------------------------>
2018-12-11 23:34:01.456 Detail, Node045, Decrypted Packet: 0x00, 0x71, 0x05, 0x00, 0x00, 0x00, 0xff, 0x06, 0x01, 0x00
<----------------------------------- door secured 0xff=Door Secured 0x01=Locked/Closed --------------------->
2018-12-11 23:34:01.977 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0xff, 0x00, 0x01, 0xfe, 0xfe
<---------------------------------- battery 0x23=battery level -------------------->
2018-12-11 23:34:13.019 Detail, Node045, Decrypted Packet: 0x00, 0x80, 0x03, 0x23
<----------------------------------------------------------- master pin unlock ---------------------------------------------->
2018-12-11 23:34:13.624 Detail, Node045, Decrypted Packet: 0x00, 0x71, 0x05, 0x00, 0x00, 0x00, 0xff, 0x06, 0x06, 0x01, 0x01
<---------------------------------------- door unsecured 0x00=door unsecured 0x03=Unlocked/Closed ------------->
2018-12-11 23:34:14.144 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0x00, 0x00, 0x03, 0xfe, 0xfe
<------------------------------ door unsecured 0x00=door unsecured 0x02=Unlocked/Opened ---------------------->
2018-12-11 23:34:18.093 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0x00, 0x00, 0x02, 0xfe, 0xfe
<-------------------------------- door unsecured 0x00=door unsecured 0x03=Unlocked/Closed ------------------->
2018-12-11 23:34:26.649 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0x00, 0x00, 0x03, 0xfe, 0xfe
<--------------------------------------------------------- door manual lock ------------------------------------------->
2018-12-11 23:34:34.254 Detail, Node045, Decrypted Packet: 0x00, 0x71, 0x05, 0x00, 0x00, 0x00, 0xff, 0x06, 0x01, 0x00
<------------------------------- door secured 0xff=door secured 0x01=Locked/Closed ---------------------------->
2018-12-11 23:34:34.767 Detail, Node045, Decrypted Packet: 0x00, 0x62, 0x03, 0xff, 0x00, 0x01, 0xfe, 0xfe
<---------------------------------- battery 0x1e=battery level ---------------------->
2018-12-11 23:34:45.810 Detail, Node045, Decrypted Packet: 0x00, 0x80, 0x03, 0x1e

Just a question, are you using Hassio or other installation?


I’m using home-assistant in docker on a Intel-Nuc.

I think they removed the manufacturer_specific.xml file in Hassio. The only configuration file I can see is the zwcfg_XXXXXXX.xml…
I actually tried to manualy copy the text from the idlock150.xml file and added to the zwcfg file and it gave me more options, but then I could lock it anymore from HA… Perhaps I made some typo…
It would be great if openzwave would include this device and someone would write a nice component for setting up and manage the doorlock.


If you use ssh to your unit and search like i mentioned in previous post. you should find both those files.
find / -name idlock150.xml
I do not know how it is structured in, perhaps someone can help u with location of those files in the forum.
It is behaving a little strange on some parts of the xml file, i have sent an email to IdLock support to see if i can get some help from them.


Hi again. A little update.
If you have SSH access then search:
find / -name manufacturer_specific.xml

<Manufacturer id="0373" name="ID Lock AS">
	<Product type="0003" id="0001" name="ID Lock 150" config="idlock/idlock150.xml"/>

under idlock101 post.
Then in the same folder make new folder “idlock”
In that folder use nano or similar to create idlock150.xml and paste:

<?xml version="1.0" encoding="utf-8"?>
<CommandClass id="112">
	<Value type="list" index="1" genre="config" label="Door Lock Mode" units="" min="0" max="3" value="1" size="1">
			Door Lock Mode
			Autolock Mode, Manual lock mode, Activate Away Mode, Deactivate Away Mode
			Default Value : 1 ( Disable Away / Auto Lock Mode )
		<Item label="Disable Away, Manual Lock"	value="0" />
		<Item label="Disable Away, Auto Lock"	value="1" />
		<Item label="Enable Away, Manual Lock"	value="2" />
		<Item label="Enable Away, Auto Lock"	value="3" />
	<Value type="list" index="2" genre="config" label="RFID Registration Configuration" units="" min="1" max="8" value="5" size="1">
			RFID Registration Configuration
			IDLocks can use up to 50 RFID cards. In order to use a RFID, RFID has to be registered by z-wave configuration command class. 
			RFID Configuration with Z-wave is only valid for ID Lock 101.
			Configuration Parameters are as below. Default value is 0x05 (Not in progress).
			ID Lock 150 will always report 0x05 as this feature is not supported by this door lock model.
			Configuration Set in case of starting to register from gateway
  		<Item label="Begin RFID Registering mode on the door lock"	value="1" />
  		<Item label="RFID Database clear"				value="7" />
	<Item label="RFID Registering mode stop"			value="8" />
	<Value type="list" index="3" genre="config" label="Door Hinge Position" units="" min="0" max="1" value="0" size="1">
			Door Hinge Position
			Default Value : 0 (Right Handle)
		<Item label="Right Handle"	value="0" />
		<Item label="Left Handle"	value="1" />
	<Value type="list" index="4" genre="config" label="Door Audio Volume Level" units="" min="0" max="6" value="5" size="1" write_only="true">
			Door Audio Volume Level
			This parameter is a set only parameter. If the value is changed locally on the door lock, this value will not change.
			Default Value : 5
		<Item label="No Sound"		value="0" />
		<Item label="Level 1"		value="1" />
		<Item label="Level 2"		value="2" />
		<Item label="Level 3"		value="3" />
		<Item label="Level 4"		value="4" />
		<Item label="Level 5"		value="5" />
		<Item label="Max. Sound Level"	value="6" />
	<Value type="int" index="10" genre="config" label="Retrieve RFID Information" units="">
			Configuration Report for retriving the RFID information
			In example: RFID index is 1 and information is 0xFDBEC2DE
			| Name        | Parameter Number | Size | Para1 | Para2 | Para3 | Para4 |
			| Get RFID    |        10        |  4   | 0xFD  | 0xBE  | 0xC2  | 0xD2  |
			| Information |                  |      |       |       |       |       |
	<Value type="list" index="5" genre="config" label="Door ReLock Mode" units="" min="0" max="1" value="1" size="1">
			Door ReLock Mode
			Default Value: 1 (Enabled)
		<Item label="Disabled"	value="0" />
		<Item label="Enabled"	value="1" />
	<Value type="list" index="6" genre="config" label="Service PIN Mode" units="" min="0" max="9" value="0" size="1" write_only="true">
			Service PIN Mode
			A configuration get command on this parameter returns the latest set parameter value (set by Z-wave).
			This is a set only value, if changed locally on keypad these values are not changed on Z-wave module. Value 5, 6 and 7 are for future use on door lock.
			Default Value: 0 (Deactivated)
		<Item label="Deactivated"				value="0" />
		<Item label="1 times used"				value="1" />
		<Item label="2 times used"				value="2" />
		<Item label="5 times used"				value="3" />
		<Item label="10 times used"				value="4" />
		<Item label="Not used (for future use)"			value="5" />
		<Item label="Not used (for future use)"			value="6" />
		<Item label="Not used (for future use)"			value="7" />
		<Item label="12 Hours used"				value="8" />
		<Item label="24 Hours used"				value="9" />
	<Value type="list" index="7" genre="config" label="Door Lock Model Type" units="" read_only="true" size="4" value="0373">
			Door Lock Model Type
			This configuration is only accepted by configuration get command
			It is a read only parameter. Default value depends on the door lock model type.
		<Item label="101"	value="0230" />
		<Item label="150"	value="0373" />

<!--TODO! -->
<CommandClass id="113">
	<Value type="byte" genre="user" index="0" label="Alarm Type" units="" read_only="true" />
	<Value type="byte" genre="user" index="1" label="Alarm Level" units="" read_only="true" />
	<Value type="byte" genre="user" index="2" label="SourceNodeId" units="" read_only="true" />
	<Value type="list" genre="config" index="7" label="Access Control" units="" size="1" read_only="true">
                            Access Control (0x06)
	<Value type="list" genre="user" index="9" label="Access Control2" units="" min="1" max="20" size="2" read_only="true">
			Access Control (0x06)
		<Item label="Manual Lock Operation"		value="01" />
		<Item label="Manual Unlock Operation"		value="02" />
		<Item label="RF Unlock Operation"		value="04" />
		<Item label="Keypad Unlock Operation"		value="06" />
		<Item label="Unlock By RF with invalid user"	value="20" />
	<Value type="byte" genre="user" index="10" label="Burglar" units="" read_only="true" />
	<Value type="list" genre="user" index="11" label="User Unlock" units="" min="0" max="69" size="2" read_only="true">
			User unlock
		<Item label="Remote Unlock" value="00" />
		<Item label="Master PIN"    value="01" />
		<Item label="Service PIN"   value="02" />
		<Item label="User 10"       value="60" />
		<Item label="User 1"        value="61" />      
		<Item label="User 2"        value="62" />
		<Item label="User 3"        value="63" />
		<Item label="User 4"        value="64" />
		<Item label="User 5"        value="65" />
		<Item label="User 6"        value="66" />
		<Item label="User 7"        value="67" />
		<Item label="User 8"        value="68" />
		<Item label="User 9"        value="69" />
	<Value type="byte" genre="user" index="13" label="Emergency" units="" read_only="true" />

<CommandClass id="114">
	<Value type="list" index="1" genre="config" label="Manufacturer Specific" units="" size="4" read_only="true">
			The ID Lock support the Manufacturer Specific Command Class with the following parameters
		<Item label="ID Lock AS"			value="0373" />
		<Item label="PRODUCT_TYPE_ID_ZWAVE_PLUS"	value="0003" />
		<Item label="PRODUCT_ID_DoorLockKeyPad"		value="0001" />

<CommandClass id="134">
	<Value type="list" index="1" genre="config" label="Version Parameter" units="" min="0" max="5" size="1" read_only="true">
			The ID Lock support the Door Lock Command Class Version 2 with the following parameters
		<Item label="Z-wave Protocol Library Type"	value="3" />
		<Item label="Z-wave Protocol Version"		value="4" />
		<Item label="Z-wave Protocol Sub version"	value="5" />
		<Item label="Firmware 0 Version"		value="1" />
		<Item label="Firmware 0 Sub Version"		value="5" />
		<Item label="Hardware Version"			value="1" />
		<Item label="Number of Firmware targets"	value="1" />
		<Item label="Firmware 1 Version"		value="1" />
		<Item label="Firmware 1 Sub version"		value="1" />

<!-- Association Groups -->
<CommandClass id="133">
	<Instance index="1" />
	<Associations num_groups="1">
		<Group index="1" max_associations="5" label="Lifeline"/>

Stop Hass and clear zwcfg_XXXXXXX.xml or just remove the idlock Node.
Start hass and let it run until all Nodes are ready then restart hass.


Hi Andreas,

When I SSH into my RPI, I only get to Hassio CLI, nothing happens when I search for the xml file. It looks like they have hidden all Zwave files somehow.


Are U logging in as root or your hass user?
I found this post that can help you!

Thanks. It looks like they do as I did, modifying the zwcfg_XXXXXXX.xml. The manufacturer_specific.xml seems to have dissapeared in Hassio.

I am logged in as root.

Thanks again!

You are welcome!
If you find any additional information / solution please write in this post!
I do the same if I find something.



Did any of you actually succeed in getting the “user unlock” values through to Home Assistant? To inform you of who opened the door?

I can see that the values are there in the OZW_Log.txt file:
2019-04-09 16:27:48.097 Detail, Node009, Decrypted Packet: 0x00, 0x71, 0x05, 0x00, 0x00, 0x00, 0xff, 0x06, 0x06, 0x01, 0x3c

0x3c equals “60” which is one of the user codes…

But I am not able to configure Home Assistant so that it reads this value…
I have tried modifying the idlock150.xml file according to andreas1’s post, but it seems like it’s not picking it up… the changes never transferred over to the zwcfg_XXXXXXX.xml… I even tried removing the node, adding in the changes to idlock150.xml, and then adding the node again…

My last attempt was to edit the zwcfg_XXXXXXX.xml directly, after it was recreated… this brings up a new sensor in HA, but the value is stuck at “Remote unlock”… no matter who opens the door.

I have noticed that the zwcfg_XXXXXXX.xml file lists CommandClass 113 as “COMMAND_CLASS_ALARM”, whilst the Idlock docs refer to this as “COMMAND_CLASS_NOTIFICATION”… would that be an issue?

Anyway, it seems that no matter how I manually configure this, the z-wave config in HA will query the idlock device and configure it accordingly… it seems I can’t overwrite this in any way?

Please let me know if any of you have had any success getting this into HA.


1 Like

Has anyone succeeded in integrating ID Lock 150 and using the lock with its full potential?
Eg. see who unlocks, insert new user codes, insert disposable codes, see if the door is open / closed etc.


I changed controler for my IdLock 150 to tellstick were i get last unlock and battery. I have tried to get help from IdLock with the configuration in Home Assistant but they dont know how, Probably to few people have this lock to get a quick and simple answer.


You can use my XLM if you want, it adds what is possible atm. When the OZW gets updated, more stuff will be possible.

Hi, sounds interesting. But me and git hub don’t play well and I do not find this xml! Where do I find it, when i click the link I get instant lost… :roll_eyes::joy:
Kind regards