Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.1k stars 1.68k forks source link

Please add support for EasyAccess door lock-model: Easyfinger #6551

Closed sonybansi closed 3 years ago

sonybansi commented 3 years ago

I have a Easyfinger-v1 door lock. I have insalled zigbee module (Dream V1.0), but does not support it yet by Zigbee2MQTT.

Here is a log:

{"definition":null,"endpoints":{"1":{"bindings":[],"clusters":{"input":["genBasic","genPowerCfg","genIdentify","genGroups","genScenes","closuresDoorLock"],"output":["genIdentify","genOta"]},"configured_reportings":[]}},"friendly_name":"0x000d6f000c71f2cb","ieee_address":"0x000d6f000c71f2cb","interview_completed":true,"interviewing":false,"model_id":"EasyCode903G2.1","network_address":50615,"power_source":"Battery","supported":false,"type":"EndDevice"}]'

Zigbee2MQTT:info 2021-03-03 17:12:15: 0x000d6f000c71f2cb (0x000d6f000c71f2cb): Not supported (EndDevice) Zigbee2MQTT:info 2021-03-03 17:12:15: MQTT publish: topic 'zigbee2mqtt/bridge/info', payload '{"commit":"1.17.1","config":{"advanced":{"adapter_concurrent":null,"adapter_delay":null,"availability_blacklist":[],"availability_blocklist":[],"availability_passlist":[],"availability_timeout":0,"availability_whitelist":[],"cache_state":true,"cache_state_persistent":true,"cache_state_send_on_startup":true,"channel":11,"elapsed":false,"ext_pan_id":[221,221,221,221,221,221,221,221],"homeassistant_discovery_topic":"homeassistant","homeassistant_legacy_triggers":true,"homeassistant_status_topic":"hass/status","last_seen":"disable","legacy_api":true,"log_directory":"/share/zigbee2mqtt/log/%TIMESTAMP%","log_file":"log.txt","log_level":"info","log_output":["console","file"],"log_rotation":true,"log_syslog":{},"pan_id":6754,"report":false,"soft_reset_timeout":0,"timestamp_format":"YYYY-MM-DD HH:mm:ss"},"ban":[],"blocklist":[],"device_options":{},"devices":{"0x000d6f000c71f2cb":{"friendly_name":"0x000d6f000c71f2cb"}

Zigbee2MQTT:warn 2021-03-03 17:53:51: Received message from unsupported device with Zigbee model 'EasyCode903G2.1' and manufacturer name 'Datek Wireless' Zigbee2MQTT:warn 2021-03-03 17:53:51: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html.

https://easyaccess.no/product/easyfinger-v2/

IMG_20210303_131507 Screenshot_20210303_133955 Screenshot_20210303_133936

..

log1.txt

..

sonybansi commented 2 years ago

EasyAccess door lock unsupported again. What do I need to change now.

Zigbee2MQTT:warn 2022-03-23 21:54:57: Received message from unsupported device with Zigbee model 'EasyCode903G2.1' and manufacturer name 'Datek Wireless'

Mastiffen commented 2 years ago

I have the same lock brand and the same problem. Until a few days ago I had an old Zigbee only module in my EasyCode Touch, and that was very unreliable. It stopped sending to the lock, but not receiving from it. So I could see in Hass when the lock was opened, but I couldn't open it from Hass, or from Zigbee2MQTT's control panel. Every few days I had to remove a battery to get it working again. So I received a new module from the company, a combined Zigbee and BLE module. But now I have the same problem as @sonybansi. I have the latest update to Zigbee2MQTT, but it doesn't work.

@TheStigh I have two ID Lock 150's, been running those since they came, and I had the first model before them. I would prefer to use that, the problem is that they don't have a physical backup key for some strange reason. In the part of the house that I have the EasyAccess lock there is no other way in, so I'd have to smash a very expensive window (it's in an early 1800's house where the only windows that are accepted are the ones that are approved for use, and they cost) or break down the door to get in if the lock stops working completely.

Ninjacas08 commented 2 years ago

Looking at the pdf in #6379 (comment) it seems they use standard zigbee stuff.

Try with the following external converter:

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const e = exposes.presets;

const device = {
    zigbeeModel: ['EasyCode903G2.1'],
    model: 'EasyCode903G2.1',
    vendor: 'EasyAccess',
    description: 'EasyFinger V2',
    fromZigbee: [fz.lock, fz.lock_operation_event, fz.battery],
    toZigbee: [tz.lock],
    meta: {configureKey: 1},
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(1);
        await reporting.bind(endpoint, coordinatorEndpoint, ['closuresDoorLock', 'genPowerCfg']);
        await reporting.lockState(endpoint);
        await reporting.batteryPercentageRemaining(endpoint);
    },
    exposes: [e.lock(), e.battery()],
};

module.exports = device;

Next try to control it via the zigbee2mqtt frontend -> click on your device and go to the exposes tab.

@Koenkk Where do I use this code and how? Please explain so I can understand (I am new to HA).

Koenkk commented 2 years ago

@Ninjacas08 https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html#_2-adding-your-device explains how to use an external converter.

Mastiffen commented 2 years ago

According to Sonybansi a few posts up it doesn't work anymore and he asks what should be changed to make it work. I was wondering about the same...

andreaseide80 commented 2 years ago

Managed to get our EasyCode Touch connected and "supported" by using the follwing external converter:


const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const e = exposes.presets;

const device = { zigbeeModel: ['EasyCodeTouch'], model: 'EasyCodeTouch-endpoint1', vendor: 'EasyAccess', description: 'EasyCodeTouch', fromZigbee: [fz.easycodetouch_action, fz.lock, fz.lock_operation_event, fz.battery], toZigbee: [tz.lock], meta: {configureKey: 1}, configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['closuresDoorLock', 'genPowerCfg']); await reporting.lockState(endpoint); await reporting.batteryPercentageRemaining(endpoint); }, exposes: [e.lock(), e.battery(), e.action(['manual locked','zigbee unlocked','rfid tag unlocked','keypad unlocked'])], };

module.exports = device;

But we still get no battery or other status from the lock. Have also tried device.getEndpoint(11); as noted in earlier posts. Am I correct in understanding that model, vendor and description does not matter in connecting to the unit? But zigbeeModel is the required "correct" code to connect to it?

When we try to click the Exposed state "UNLOCK" or "LOCK" we get the following errors in the log: Debug 2022-05-03 10:20:59Received MQTT message on 'zigbee2mqtt/Dør/set' with data '{"state":"UNLOCK"}' Debug 2022-05-03 10:20:59Publishing 'set' 'state' to 'Dør' Error 2022-05-03 10:21:20Publish 'set' 'state' to 'Dør' failed: 'Error: Command 0xf4ce36d1a66a2a2e/11 closuresDoorLock.unlockDoor({"pincodevalue":""}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Timeout - 27260 - 11 - 3 - 257 - 1 after 10000ms)' Debug 2022-05-03 10:21:20Error: Command 0xf4ce36d1a66a2a2e/11 closuresDoorLock.unlockDoor({"pincodevalue":""}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Timeout - 27260 - 11 - 3 - 257 - 1 after 10000ms) at Timeout._onTimeout (/app/node_modules/zigbee-herdsman/src/utils/waitress.ts:64:35) at listOnTimeout (internal/timers.js:557:17) at processTimers (internal/timers.js:500:7)


Edit: I see now that this might be a timeout. Maybe this is because my door unit is far from my HA unit? I will try to move it closer to see if that changes anything later today.

sonybansi commented 2 years ago

Some months ago worked fine, but now ERROR Zigbee2MQTT:error 2022-05-03 21:22:17: Publish 'set' 'state' to 'Easy Access Lock' failed: 'Error: Command 0xxx000dxxxxxcb/1 closuresDoorLock.unlockDoor({"pincodevalue":""}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'No network route' (205))'

Mastiffen commented 2 years ago

@Sonybansi, there you are! I have asked you to contact me on XDA and every other forum I could find your user name...

sonybansi commented 2 years ago

@Sonybansi, there you are! I have asked you to contact me on XDA and every other forum I could find your user name...

Sorry for inconvenience 😕 I was on vacation.

Mastiffen commented 2 years ago

We all need a vacation every now and then. Maybe you could answer on XDA? You have no way of contact here on Github.

sonybansi commented 2 years ago

We all need a vacation every now and then. Maybe you could answer on XDA? You have no way of contact here on Github.

my mobile internet was mostly off during vacation.

Mastiffen commented 2 years ago

That would have made me crazy... (Mind you, this part of the thread will probably be moderated out of excistence!) Oh, you'll find me as Mastiff on the Norwegian Hjemmeautomasjon forum too.

sonybansi commented 2 years ago

That would have made me crazy... (Mind you, this part of the thread will probably be moderated out of excistence!) Oh, you'll find me as Mastiff on the Norwegian Hjemmeautomasjon forum too.

Sorry again 😕

Mastiffen commented 2 years ago

👍

andreaseide80 commented 2 years ago

Managed to get our EasyCode Touch connected and "supported" by using the follwing external converter:

const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const e = exposes.presets;

const device = { zigbeeModel: ['EasyCodeTouch'], model: 'EasyCodeTouch-endpoint1', vendor: 'EasyAccess', description: 'EasyCodeTouch', fromZigbee: [fz.easycodetouch_action, fz.lock, fz.lock_operation_event, fz.battery], toZigbee: [tz.lock], meta: {configureKey: 1}, configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['closuresDoorLock', 'genPowerCfg']); await reporting.lockState(endpoint); await reporting.batteryPercentageRemaining(endpoint); }, exposes: [e.lock(), e.battery(), e.action(['manual locked','zigbee unlocked','rfid tag unlocked','keypad unlocked'])], };

module.exports = device;

But we still get no battery or other status from the lock. Have also tried device.getEndpoint(11); as noted in earlier posts. Am I correct in understanding that model, vendor and description does not matter in connecting to the unit? But zigbeeModel is the required "correct" code to connect to it?

When we try to click the Exposed state "UNLOCK" or "LOCK" we get the following errors in the log: Debug 2022-05-03 10:20:59Received MQTT message on 'zigbee2mqtt/Dør/set' with data '{"state":"UNLOCK"}' Debug 2022-05-03 10:20:59Publishing 'set' 'state' to 'Dør' Error 2022-05-03 10:21:20Publish 'set' 'state' to 'Dør' failed: 'Error: Command 0xf4ce36d1a66a2a2e/11 closuresDoorLock.unlockDoor({"pincodevalue":""}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Timeout - 27260 - 11 - 3 - 257 - 1 after 10000ms)' Debug 2022-05-03 10:21:20Error: Command 0xf4ce36d1a66a2a2e/11 closuresDoorLock.unlockDoor({"pincodevalue":""}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Timeout - 27260 - 11 - 3 - 257 - 1 after 10000ms) at Timeout._onTimeout (/app/node_modules/zigbee-herdsman/src/utils/waitress.ts:64:35) at listOnTimeout (internal/timers.js:557:17) at processTimers (internal/timers.js:500:7)

Edit: I see now that this might be a timeout. Maybe this is because my door unit is far from my HA unit? I will try to move it closer to see if that changes anything later today.

We moved out HA to be closer to the door today, and managed to get the door to work with getEndpoint(11) So our Easycode Touch is now working. Its not showing any batterystate though. But the most important is that Its able to unlock.

Mastiffen commented 2 years ago

@andreaseide80 Does your door give feedback so you can see if it's locking or unlocking itself? I tried to make a convert from your setup, it ended up like this. But I'm afraid the formatting may be wrong.

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const e = exposes.presets;

const device = {
    zigbeeModel: ['EasyCodeTouch'],
    model: 'EasyCodeTouch-endpoint11',
    vendor: 'EasyAccess',
    description: 'EasyCodeTouch',
    fromZigbee: [fz.easycodetouch_action, fz.lock, fz.lock_operation_event, fz.battery],
    toZigbee: [tz.lock], meta: {configureKey: 1},

configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(11); await reporting.bind(endpoint, coordinatorEndpoint, ['closuresDoorLock', 'genPowerCfg']); await reporting.lockState(endpoint); await reporting.batteryPercentageRemaining(endpoint); }, exposes: [e.lock(), e.battery(), e.action(['manual locked','zigbee unlocked','rfid tag unlocked','keypad unlocked'])], };

module.exports = device;

It gives me errors like this one (and I have the stick 150 cm from the lock, so it shouldn't be that):

mai 09 19:46:48 Zigbee-RFX-Pi npm[9083]: Zigbee2MQTT:error 2022-05-09 19:46:48: Publish 'get' 'state' to 'EasyCode Easy Access' failed: 'Error: Read (CORRECT IEEE-ADDRESS)/11 closuresDoorLock(["lockState"], {"sendWhen":"immediate","timeout":>
mai 09 19:46:49 Zigbee-RFX-Pi npm[9083]: Zigbee2MQTT:info  2022-05-09 19:46:49: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'get' 'state' to 'EasyCode Easy Access' failed: 'Error: Read (CORRECT IEEE-ADDRESS)/11>
mai 09 19:47:04 Zigbee-RFX-Pi npm[9083]: Zigbee2MQTT:error 2022-05-09 19:47:04: Publish 'set' 'state' to 'EasyCode Easy Access' failed: 'Error: Command (CORRECT IEEE-ADDRESS)/11 closuresDoorLock.lockDoor({"pincodevalue":""}, {"sendWhen":"imm>
mai 09 19:47:04 Zigbee-RFX-Pi npm[9083]: Zigbee2MQTT:info  2022-05-09 19:47:04: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'state' to 'EasyCode Easy Access' failed: 'Error: Command (CORRECT IEEE-ADDRESS)>
lines 1-21/21 (END)
andreaseide80 commented 2 years ago

@andreaseide80 Does your door give feedback so you can see if it's locking or unlocking itself? I tried to make a convert from your setup, it ended up like this. But I'm afraid the formatting may be wrong.

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const e = exposes.presets;

const device = {
    zigbeeModel: ['EasyCodeTouch'],
    model: 'EasyCodeTouch-endpoint11',
    vendor: 'EasyAccess',
    description: 'EasyCodeTouch',
    fromZigbee: [fz.easycodetouch_action, fz.lock, fz.lock_operation_event, fz.battery],
    toZigbee: [tz.lock], meta: {configureKey: 1},

configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(11); await reporting.bind(endpoint, coordinatorEndpoint, ['closuresDoorLock', 'genPowerCfg']); await reporting.lockState(endpoint); await reporting.batteryPercentageRemaining(endpoint); }, exposes: [e.lock(), e.battery(), e.action(['manual locked','zigbee unlocked','rfid tag unlocked','keypad unlocked'])], };

module.exports = device;

It gives me errors like this one (and I have the stick 150 cm from the lock, so it shouldn't be that):

mai 09 19:46:48 Zigbee-RFX-Pi npm[9083]: Zigbee2MQTT:error 2022-05-09 19:46:48: Publish 'get' 'state' to 'EasyCode Easy Access' failed: 'Error: Read (CORRECT IEEE-ADDRESS)/11 closuresDoorLock(["lockState"], {"sendWhen":"immediate","timeout":>
mai 09 19:46:49 Zigbee-RFX-Pi npm[9083]: Zigbee2MQTT:info  2022-05-09 19:46:49: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'get' 'state' to 'EasyCode Easy Access' failed: 'Error: Read (CORRECT IEEE-ADDRESS)/11>
mai 09 19:47:04 Zigbee-RFX-Pi npm[9083]: Zigbee2MQTT:error 2022-05-09 19:47:04: Publish 'set' 'state' to 'EasyCode Easy Access' failed: 'Error: Command (CORRECT IEEE-ADDRESS)/11 closuresDoorLock.lockDoor({"pincodevalue":""}, {"sendWhen":"imm>
mai 09 19:47:04 Zigbee-RFX-Pi npm[9083]: Zigbee2MQTT:info  2022-05-09 19:47:04: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'state' to 'EasyCode Easy Access' failed: 'Error: Command (CORRECT IEEE-ADDRESS)>
lines 1-21/21 (END)

Hi @Mastiffen Yes, my EasyCodeTouch does give feedback on being unlocked and when it locks again. This is my external converter:


const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const e = exposes.presets;

const device = { zigbeeModel: ['EasyCodeTouch'], model: 'EasyCodeTouch-endpoint11', vendor: 'EasyAccess', description: 'EasyCodeTouch', fromZigbee: [fz.easycodetouch_action, fz.lock, fz.battery], toZigbee: [tz.lock], meta: {configureKey: 1}, configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(11); await reporting.bind(endpoint, coordinatorEndpoint, ['closuresDoorLock', 'genPowerCfg']); await reporting.lockState(endpoint); await reporting.batteryPercentageRemaining(endpoint); }, exposes: [e.lock(), e.battery(), e.action(['manual locked','zigbee unlocked','rfid tag unlocked','keypad unlocked'])], };

module.exports = device;


What I found was important was to match the converters zigbeeModel to the zigbeeModel that the door reports as zigbeeModel on the device in the Zigbee2mqtt device :

image

This gives me the support status Supported

it also has to be in configuration.yaml under the zigbee2mqtt folder.

image
Mastiffen commented 2 years ago

Weird. I have now put your code into a new file, and I have this in my config:

image

This is what it looks like in the GUI (IEEE address removed, I have no idea if that's dangerous to expose publicly):

image

Still I get the same error messages. Do you get any if you check dem with sudo systemctl status zigbee2mqtt?

mai 09 21:48:23 Zigbee-RFX-Pi npm[11215]: Zigbee2MQTT:error 2022-05-09 21:48:23: Publish 'get' 'state' to 'EasyCode Easy Access' failed: 'Error: Read IEEE/11 closuresDoorLock(["lockState"], {"sendWhen":"immediate","timeout">
mai 09 21:48:24 Zigbee-RFX-Pi npm[11215]: Zigbee2MQTT:info  2022-05-09 21:48:24: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'get' 'state' to 'EasyCode Easy Access' failed: 'Error: Read IEEE/1>
mai 09 21:48:33 Zigbee-RFX-Pi npm[11215]: Zigbee2MQTT:error 2022-05-09 21:48:33: Publish 'set' 'state' to 'EasyCode Easy Access' failed: 'Error: Command IEEE/11 closuresDoorLock.lockDoor({"pincodevalue":""}, {"sendWhen":"im>
mai 09 21:48:33 Zigbee-RFX-Pi npm[11215]: Zigbee2MQTT:info  2022-05-09 21:48:33: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'state' to 'EasyCode Easy Access' failed: **'Error: Command IEEE MISSING THE FINAL CHARACTER, FOR SOME REASON**>

The last error message is a bit strange, missing the final character of the IEEE address.

eirikd commented 2 years ago

Hi

Are you sure that your vendor is EasyAccess and model is EasyCodeTouch-endpoint11? or do you have the one Ninjacas08 has :model: 'EasyCode903G2.1', vendor: 'EasyAccess', or the one Sonibansi has model 'EasyCode903G2.1' and manufacturer name 'Datek Wireless'

There are a few chips for the easyaccess locks. the old one by datek and whitelabeled EasyAccess , model EasyCode903G2.1 And the new E-Life Zigbee Module by Onesti Products AS

Mastiffen commented 2 years ago

OK, no, I'm not sure. I actually assumed that the text I saw in the section of the GUI was the correct name. But does it get that name from the converter? I have the latest model of the chip, as far as I know. I received it a month or so ago from Easy Access because the old one was giving me trouble (jumping out of the system every few days, also it didn't have BLE, this one has that). My lock is an EasyCode Touch (the one without the fingerprint and without the cover in front of the physical keypad). But about the " EasyCodeTouch-endpoint11" I'm really not sure. Maybe it's just EasyCodeTouch? This is a lock that I bought in May 2020, before the Zigbee-module came.

eirikd commented 2 years ago

ill do a commit to fix sonybansi's problem later then i will add EasyCodeTouch to the onesti template to fix your problem if you want a temp fix edit onesti.js to model: 'EasyCodeTouch', the e-life chip reads model from the lock, its not hardcoded

Mastiffen commented 2 years ago

I see, thanks! OK, so I need to find this onesti.js file somewhere. Is that somewhere in the installation, or is it another place, where I can download it?

andreaseide80 commented 2 years ago

Hi

Are you sure that your vendor is EasyAccess and model is EasyCodeTouch-endpoint11? or do you have the one Ninjacas08 has :model: 'EasyCode903G2.1', vendor: 'EasyAccess', or the one Sonibansi has model 'EasyCode903G2.1' and manufacturer name 'Datek Wireless'

There are a few chips for the easyaccess locks. the old one by datek and whitelabeled EasyAccess , model EasyCode903G2.1 And the new E-Life Zigbee Module by Onesti Products AS

Hi. Model is EasyCodeTouch. (Ninjacas08 is my son, so his info was copied from a previous post here. When he tried that config it didn't work) I have the exact same unit as @Mastiffen over here. Even the same FIrmware builddate. Zigbee2mqtt reads the model, vendor and description from my externalconverter file, so what I write there is irrelevant. image

@Mastiffen: I think we had to remove the device and add it again after we got the correct external converter in place to have it work. Maybe something to do with the interview when adding the product?

Mastiffen commented 2 years ago

I think I'll wait until the changes are merged into the code, I struggle with these converters. And I'm getting a bit tired of dismantling the lock to get to the module and reset it. Is there a way to remove it from Zigbee and then re-adding it without resetting the module (holding the button for 10-15 seconds)?

ismarslomic commented 2 years ago

Ref #6379 and reguest from @GD-Dal to support EasyAccess EasyFingerTouch door lock. Is this lock and corresponding EasyAccess Zigbee/BLE module now supported?

I ask this because I face issues pairing my EadyFingerTouch lock with Zonoff Zigbee 3 adapter (flashed with Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_coordinator_20220219) using zigbee2mqtt v1.25.1 (docker) and mosquitto v2.0.14 (docker). I have tried repairing at least 20 times without luck. Lock appears in the zigbee2mqtt frontend UI, but the interviewing fails for some reason. From the log in docker container I dont see any reason for failure.

I bought an 5m USB extension cable to make sure adapter is close to the door lock (distance is around 2 meter now) and I have also pressed and hold the button on the EasyAccess module for 15 sec (to reset it, I guess. Documentation is lacking).

Any suggestions what I can try? It might be some hardware issues with EasyAccess module as well, but its hard to tell really.

Mastiffen commented 2 years ago

Not at the moment, no. I'm too waiting for it to be implemented in the code (again?). I can pair it, but there's nothing that's possible to do with it. As for reset you need to hold it in quite long, until the lights show that it's reset.

ismarslomic commented 2 years ago

@Mastiffen what zigbee adapter did you manage to pair it with? Did you put your EasyAccess module in pairing by taking out and in the batteries, or by using the button?

Regarding the button, I released the button after the yellow light started flashing rapidly. But, I dont have a clue what this button does, as there are no docs. One thing I realized is that after resetting with button, the yellow light stops blinking.

I have also made sure to replace the three batteries with new ones, to exclude batteries as the problem.

Mastiffen commented 2 years ago

I am using a ConBee II. I reset it because I had already paired it before, with old code that didn't work at all. If it has never been paired, you can do it by pulling the battery and putting it in again. To reset you press, hold and release when it starts to blink fast.

This is my second module, the first was the original version of it without BLE support, and that worked with the code, except for that it lost sync every few days, I guess up to a week. Then I couldn't open the door with it, and I had to pull a battery to reset it. I'm hoping this will rid me of this problem, when the commit of the code implements erikd's code.

ismarslomic commented 2 years ago

Aha, I see. I bought mine EasyFingerTouch lock and the module week ago (in Norway). And wanted to give Sonoff Zigbee 3 a try, because it seemed like this adapter worked better with zigbee2mqtt.

This lock is the only reason for me to buy Zigbee adapter. I have only Zwave devices (around 60), and never had any issues pairing those.

I switched from ID Lock to EasyAccess after 3 years with different issues.

Mastiffen commented 2 years ago

Actually, as I write further up, the reason I didn't go for ID Lock (which I managed to tame after a year or so) is that EasyAccess has that emergency key. I have it in an appartment in our house that does not have another entrance, so I need something that can be opened physically if everything else gives up. But it had a small perk, Elektroimportøren sells very cheap motion sensors for Zigbee, a lot cheaper than what you can get for Z-Wave, so I bought a few of those too.

ismarslomic commented 2 years ago

Ditto, I experienced being locked out from my cabin with ID Lock and emergency solution with 9V battery didnt work. Whole familly was locked out in two hours. After replacing ID lock for 3. times I gave up and switched to EasyAccess. But pairing ID Lock and operating it with zwave where never a issue.

Mastiffen commented 2 years ago

It's never been that bad for me, since I have back porch doors with keys both at my cabin and in the large appartment in the house (which I rent out). My problem was mostly batteries being eaten too fast, I don't think I ever bothered to try the 9V battery. Now both the cabin lock and the one in the house have been stable for at least a couple of years. And the functions are a lot more versatile than on the EasyAccess.

ismarslomic commented 2 years ago

After updating ID lock firmware and zwave firmware mine batteries lasted for 6-8 months. But before the upgrade I should have made weekly membership on batteries. 8 batteries was changed every 3. week or so

Mastiffen commented 2 years ago

Yeah, that's where I am too. I have't had that problem for a couple of years at least, after one of those firmware updates. But you must have had problems after that too, since you gave them up. Was that the 9V not working?

ismarslomic commented 2 years ago

I had three different issues:

  1. the door lock seemed to be demaged with some transparent liquid after unboxing it
  2. the emergency solution didnt work and I got locked out
  3. door alarm went bananas without sny reason, after I left my cabin. And this drained the batteries and made trouble for me and my guests
Mastiffen commented 2 years ago

That would have meant a mail to ID Lock support for me, I got a couple of locks replaced until I got it all stable. They were very nice about it, maybe because I was "bleeding edge", ias one of the first to buy the thing.

ismarslomic commented 2 years ago

I got the replacement from Komplett. But for the last issue with the alarm I got quite dissapointed with ID lock support. I waited one week for them to come back to me, and after reaching out to them they "lost" details for my case and I needed to repeat the whole story again. Well, replacing a product couple of times to get one stable, seems like quite bad product quality. I bought initially two ID Locks, the last one has worked without problems whole the time (3 years). So the failure rate is 75% 😞

Mastiffen commented 2 years ago

Weird, but the 101 version was unstable, but it was a totally new product for the company. The 150 version was a totally different beast, even if it looked just the same. And I think you were just unlucky with support, I am pretty sure I have read about more than one who's gotten a new lock from support on the Norwegan Hjemmeautomasjon forum.

ismarslomic commented 2 years ago

Replacing the lock was not the issue. But the need to actually replace the lock 3 times and all the trouble it leads was reason why I got frustrated. Replacing an lock is more challanging then replacing a bulb or a sensor. You need the replacement product before sending the demaged one back. And in all 3 cases I carried all the downside of replacements. I just gave ID loock too many chances, and didnt see where this will end. One downside with ID lock is that it is much more lumpy then EasyAccess. And it require 8 batteries!

Mastiffen commented 2 years ago

Ah, I see. OK, I guess my patience is a bit over your level. Or my stubbornness, perhaps. Anyway, replacing the lock took me around 20 minutes, tops. But of course that depends on how handy you are an your toolkit. As for the looks I like them pretty good.

Mastiffen commented 2 years ago

There's a new commit, but it doesn't seem like that has anything to do with this issue.

ismarslomic commented 2 years ago

FYI: I have been in touch with EasyAccess regarding issues I faced with my EasyAccess BLE and Zigbee module (loosing BLE connection while trying to upgrade the firmware and issues pairing the module with Sonoff Zigbee 3 and zigbee2mqtt). I even replaced the module with new one from the store, but same issues occurred.

EasyAccess informed that they will replace the module with new one, having the latest firmware. It seemed like they where aware of the issues with current modules that are available at the store in Norway.

Mastiffen commented 2 years ago

Interesting, thanks! I got a new one from them at the beginning of April. Wonder if that's the type without the problem or if it's still affected.

ismarslomic commented 2 years ago

Hard to say. If you are able to check for firmware updates by using the EasyAccess BLE app on mobile, I guess you are good. They told me that they are aware of some modules sold by Power which face issues checking and upgrading to latest firmware version. So EasyAccess has requested new modules with latest firmware preinstalled from their vendor. These will arrive in two weeks or so.

You could always contact EasyAccess and ask what the latest firmware is

Mastiffen commented 2 years ago

Is it the Easy Access BLE app that is used for firmware updates? I had it working first, then I reset the lock to try the new Zigbee-setup, and I haven't gotten it to work since. I assume it is because the app recognize the lock as previously added, while the lock doesn't recognize the app after the reset.

ismarslomic commented 2 years ago

Yes, to upgrade the firmware of module you must use the EasyAccess BLE app on mobile. I faced the same issue as you described. I paired module and mobile and where able to lock and unlock the door. Then I went to Settings => Check for firmare upgrade. This operation failed and informed me to reset the module (by holding the button for 15 sec) and remove the module from bluetooth list on mobile. After I did these steps I never again managed to pair successfully mobile and module again.

Mastiffen commented 2 years ago

Sounds like the same thing, yeah. I'll mail Easy Access again. Luckily I have a lot of patience to get stuff the way I want. I guess living on the bleeding edge of Home Automation since around 1990 (when it was all cables and soldering) did that to me...

stolevegen commented 2 years ago

I have two locks, the most recent pairs fine with the EasyAccess BLE app, but the other never shows up. Both work with Z2M, but battery percentage is usually always 100% or 0%

Mastiffen commented 2 years ago

When did you buy the last Zigbee/BLE module?

ismarslomic commented 2 years ago

@Mastiffen please share any useful information from EasyAccess! I want to get this work as well

@stolevegen what zigbee adapter do you use?