Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Device Support Request] Onesti EasyCodeTouch doorlock #2354

Closed
1bard opened this issue Apr 24, 2023 · 8 comments
Closed

[Device Support Request] Onesti EasyCodeTouch doorlock #2354

1bard opened this issue Apr 24, 2023 · 8 comments
Labels
stale Issue is inactivate and might get closed soon

Comments

@1bard
Copy link

1bard commented Apr 24, 2023

This works as a lock, but I'm missing battery status.

The device is powered by 3xAA batteries, and as far as I know, mains power is not an option on this model.
The correct battery information seems to be available, but not used.
I believe the issue is that the device reports power source as mains/DC.

Device signature
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered: 140>, manufacturer_code=4660, maximum_buffer_size=108, maximum_incoming_transfer_size=127, server_mask=11264, maximum_outgoing_transfer_size=127, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "11": {
      "profile_id": 260,
      "device_type": "0x000a",
      "in_clusters": [
        "0x0000",
        "0x0001",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0101",
        "0xfea2"
      ],
      "out_clusters": [
        "0x0019"
      ]
    }
  },
  "manufacturer": "Onesti Products AS",
  "model": "EasyCodeTouch",
  "class": "zigpy.device.Device"
}
Diagnostic information
    "ieee": "**REDACTED**",
    "nwk": 34502,
    "manufacturer": "Onesti Products AS",
    "model": "EasyCodeTouch",
    "name": "Onesti Products AS EasyCodeTouch",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 4660,
    "power_source": "Mains",
    "lqi": 255,
    "rssi": -81,
    "last_seen": "2023-04-24T20:21:03",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered: 140>, manufacturer_code=4660, maximum_buffer_size=108, maximum_incoming_transfer_size=127, server_mask=11264, maximum_outgoing_transfer_size=127, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "11": {
          "profile_id": 260,
          "device_type": "0x000a",
          "in_clusters": [
            "0x0000",
            "0x0001",
            "0x0003",
            "0x0004",
            "0x0005",
            "0x0101",
            "0xfea2"
          ],
          "out_clusters": [
            "0x0019"
          ]
        }
      }
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "button.onesti_products_as_easycodetouch_identify",
        "name": "Onesti Products AS EasyCodeTouch"
      },
      {
        "entity_id": "lock.onesti_products_as_easycodetouch_doorlock",
        "name": "Onesti Products AS EasyCodeTouch"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "DOOR_LOCK"
      }
    ],
    "user_given_name": null,
    "device_reg_id": "25cbd8823980768b84764226c66c5449",
    "area_id": "bf6016a107d611eb8e53e78571c4c004",
    "cluster_details": {
      "11": {
        "device_type": {
          "name": "DOOR_LOCK",
          "id": 10
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "Onesti Products AS"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "EasyCodeTouch"
              },
              "0x0007": {
                "attribute_name": "power_source",
                "value": 4
              }
            },
            "unsupported_attributes": {
              "0x000e": {
                "attribute_name": "product_label"
              }
            }
          },
          "0x0001": {
            "endpoint_attribute": "power",
            "attributes": {
              "0x0020": {
                "attribute_name": "battery_voltage",
                "value": 45
              },
              "0x0021": {
                "attribute_name": "battery_percentage_remaining",
                "value": 200
              },
              "0x0031": {
                "attribute_name": "battery_size",
                "value": 3
              },
              "0x0033": {
                "attribute_name": "battery_quantity",
                "value": 3
              },
              "0x0034": {
                "attribute_name": "battery_rated_voltage",
                "value": 15
              }
            },
            "unsupported_attributes": {
              "0x0000": {
                "attribute_name": "mains_voltage"
              },
              "0x0041": {
                "attribute_name": "battery_2_percentage_remaining"
              },
              "0x0061": {
                "attribute_name": "battery_3_percentage_remaining"
              },
              "0xfffe": {
                "attribute_name": "attr_reporting_status"
              }
            }
          },
          "0x0003": {
            "endpoint_attribute": "identify",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0101": {
            "endpoint_attribute": "door_lock",
            "attributes": {
              "0x0000": {
                "attribute_name": "lock_state",
                "value": 1
              },
              "0x0003": {
                "attribute_name": "door_state",
                "value": 4
              }
            },
            "unsupported_attributes": {
              "0x0020": {
                "attribute_name": "enable_logging"
              },
              "0x0021": {
                "attribute_name": "language"
              },
              "0x0006": {
                "attribute_name": "open_period"
              },
              "0x0004": {
                "attribute_name": "door_open_events"
              },
              "0x002a": {
                "attribute_name": "enable_inside_status_led"
              },
              "0x0034": {
                "attribute_name": "zigbee_security_level"
              }
            }
          },
          "0xfea2": {
            "endpoint_attribute": "manufacturer_specific",
            "attributes": {},
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }

image
image
image

@1bard
Copy link
Author

1bard commented May 3, 2023

I've created a quirk and PR.
By removing the MainsPowered-flag from node discriptor, battery percentage became available in HA.

image

@Strauman
Copy link

Strauman commented Jun 11, 2023

The Onesti EasyCodeTouch (aka Nimly / Easy Access touch) also sends open info (user ID, RFID/FingerPring/Code) to 0x101 and pin code to 0x100 on the doorlock endpoint. Also on wrong entry of code. It'd be awesome to have triggers on failed attempts and also know and know who opened the door when it opens.

@Strauman
Copy link

See also the related z2m issue.

@linust
Copy link

linust commented Aug 2, 2023

It seems version 1.32.2 of z2m has included support. The issue references three relevant commits to herdsman-converters.

I'm not familiar enough with zha & herdsman to navigate a port. But perhaps someone else is?

issue :
Koenkk/zigbee2mqtt#17205

referencing the following pulls:

Koenkk/zigbee-herdsman-converters#6009

Koenkk/zigbee-herdsman-converters#6010

Koenkk/zigbee-herdsman-converters#6024

@1bard
Copy link
Author

1bard commented Aug 4, 2023

I've been using my power quirk for a few months now and battery data reported by my lock is useless.
It reports 100% and 4.5 volts for a long time, then it jumps all over the place the day before batteries die.
Not really worth implementing.

Open info and failed attempts sounds more interesting.

@DagBertelsen
Copy link

DagBertelsen commented Aug 8, 2023

I have a friend that has this lock in zigbee2mqtt, he say the same thing. The battery goes from 100% ->0% without a warning and is not of use in zigbee2mqtt either.

@oleost
Copy link

oleost commented Jan 21, 2024

My device has stopped updating Locked / unlocked. It always report’s unlocked.

And when I press lock it does lock the door but does not update state to locked.

Is used to work.

IMG_3500

Copy link

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Issue is inactivate and might get closed soon label Jul 19, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Jul 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Issue is inactivate and might get closed soon
Projects
None yet
Development

No branches or pull requests

5 participants