eufy_security icon indicating copy to clipboard operation
eufy_security copied to clipboard

Smart locks not supported - Can base lock functionality be provided to devices starting with T85*

Open KINGCanty opened this issue 9 months ago • 21 comments

C30 - T85D0C, E31 - T85F0, S3 max - T85V0

I have these 3 smart locks that show up in home assistant under the integration but do not have any lock attributes like lock / unlock etc. Similar to other issues mentioned for other locks: debug, trigger alarm and a few other default options are shown. Is this because they are not known by the integration?

T85* seems to always be a lock but I may be wrong. Is the base config similar across Eufy locks and therefore could it be partially supported automatically with a default lock config if there is no config for the device?

KINGCanty avatar Jul 20 '25 23:07 KINGCanty

T85LO doesn't show anything lock related. Can this be fixed?

@fuatakgun

JoshuaSeidel avatar Jul 24 '25 23:07 JoshuaSeidel

To add to this, using here is the relevant param_types that change on the C30 from unlocked -> locked -> unlocked. This log is from push notifications but the device info shows the same param_types and their values

2025-07-29 17:41:17.654 DEBUG eufy-security-ws:eufy-security-client [push] [PushClient.handleParsedMessage] Push client - DataMessageStanza { message: '{"tag":8,"object":{"id":"8D43DDB5","from":"348804314802","category":"com.oceanwing.battery.cam","appData":[{"key":"device_sn","value":"T85D0K1024480F05"},{"key":"payload","value":"eyJldmVudF90eXBlIjoyNjEsImV2ZW50X3RpbWUiOjE3NTM4MTA4NzgwMDAsInNob3J0X3VzZXJfaWQiOiIwMDAxIiwibmlja19uYW1lIjoicHBjbGkucmVnaW1lbnRhbGZ1bmRzIiwidXNlcl9pZCI6IjNkZmViNzc2NTc0ZjY4NTI5ZTk2ZTViYzJmOTdkZjNhMWRlNTZjNTYiLCJkZXZpY2VfbmFtZSI6IkdhcmFnZSBEb29yIiwiZGV2aWNlX3NuIjoiVDg1RDBLMTAyNDQ4MEYwNSIsImV2ZW50X3R5cGVfYXJyIjpbMjYxXSwicGFyYW1zIjpbeyJwYXJhbV90eXBlIjo2MDAxLCJwYXJhbV92YWx1ZSI6IjEwMCJ9LHsicGFyYW1fdHlwZSI6NjAwMCwicGFyYW1fdmFsdWUiOiIzIn0seyJwYXJhbV90eXBlIjoxOTE5LCJwYXJhbV92YWx1ZSI6IjMifV19"},{"key":"station_sn","value":"T85D0K1024480F05"},{"key":"google.c.sender.id","value":"348804314802"},{"key":"title","value":"Unlocked - Garage Door"},{"key":"type","value":"51"},{"key":"push_time","value":"1753810877552"},{"key":"content","value":"Door unlocked by Garage Door"},{"key":"event_time","value":"1753810877534"}],"persistentId":"0:1753810877578129%0d2a775cf9fd7ecd","ttl":3600,"sent":"1753810877563"}}' } 2025-07-29 17:41:17.654 DEBUG eufy-security-ws:eufy-security-client [push] [PushNotificationService.onMessage] Raw push message received { message: { id: '8D43DDB5', from: '348804314802', category: 'com.oceanwing.battery.cam', persistentId: '0:1753810877578129%0d2a775cf9fd7ecd', ttl: 3600, sent: '1753810877563', payload: { device_sn: 'T85D0K1024480F05', payload: { event_type: 261, event_time: 1753810878000, short_user_id: '0001', nick_name: 'ppcli.regimentalfunds', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', device_name: 'Garage Door', device_sn: 'T85D0K1024480F05', event_type_arr: [ 261 ], params: [ { param_type: 6001, param_value: '100' }, { param_type: 6000, param_value: '3' }, { param_type: 1919, param_value: '3' } ] }, station_sn: 'T85D0K1024480F05', 'google.c.sender.id': '348804314802', title: 'Unlocked - Garage Door', type: '51', push_time: '1753810877552', content: 'Door unlocked by Garage Door', event_time: '1753810877534' } } } 2025-07-29 17:41:17.654 DEBUG eufy-security-ws:eufy-security-client [push] [PushNotificationService.onMessage] Normalized push message received { message: { name: 'Garage Door', event_time: 1753810877534, type: 51, station_sn: 'T85D0K1024480F05', device_sn: 'T85D0K1024480F05', push_time: 1753810877552, title: 'Unlocked - Garage Door', content: 'Door unlocked by Garage Door', event_type: 261, short_user_id: '0001', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', person_name: 'ppcli.regimentalfunds' } } 2025-07-29 17:41:17.655 DEBUG eufy-security-ws:eufy-security-client [main] [EufySecurity.onPushMessage] Received push message { message: { name: 'Garage Door', event_time: 1753810877534, type: 51, station_sn: 'T85D0K1024480F05', device_sn: 'T85D0K1024480F05', push_time: 1753810877552, title: 'Unlocked - Garage Door', content: 'Door unlocked by Garage Door', event_type: 261, short_user_id: '0001', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', person_name: 'ppcli.regimentalfunds' } } 2025-07-29 17:42:45.780 DEBUG eufy-security-ws:eufy-security-client [push] [PushClient.sendHeartbeat] Push client - Sending heartbeat... { streamId: 15 } 2025-07-29 17:42:45.780 DEBUG eufy-security-ws:eufy-security-client [push] [PushClient.buildHeartbeatPingRequest] Push client - heartbeatPingRequest { streamId: 15, request: '{"last_stream_id_received":15}' } 2025-07-29 17:42:45.810 DEBUG eufy-security-ws:eufy-security-client [push] [PushClient.handleHeartbeatAck] Push client - Heartbeat acknowledge { message: '{"tag":1,"object":{"lastStreamIdReceived":12}}' } 2025-07-29 17:43:17.625 DEBUG eufy-security-ws:eufy-security-client [push] [PushClient.handleParsedMessage] Push client - DataMessageStanza { message: '{"tag":8,"object":{"id":"8D49D652","from":"348804314802","category":"com.oceanwing.battery.cam","appData":[{"key":"device_sn","value":"T85D0K1024480F05"},{"key":"payload","value":"eyJldmVudF90eXBlIjoyNjQsImV2ZW50X3RpbWUiOjE3NTM4MTA5OTgwMDAsInNob3J0X3VzZXJfaWQiOiIwMDAxIiwibmlja19uYW1lIjoicHBjbGkucmVnaW1lbnRhbGZ1bmRzIiwidXNlcl9pZCI6IjNkZmViNzc2NTc0ZjY4NTI5ZTk2ZTViYzJmOTdkZjNhMWRlNTZjNTYiLCJkZXZpY2VfbmFtZSI6IkdhcmFnZSBEb29yIiwiZGV2aWNlX3NuIjoiVDg1RDBLMTAyNDQ4MEYwNSIsImV2ZW50X3R5cGVfYXJyIjpbMjY0XSwicGFyYW1zIjpbeyJwYXJhbV90eXBlIjo2MDAxLCJwYXJhbV92YWx1ZSI6IjEwMCJ9LHsicGFyYW1fdHlwZSI6NjAwMCwicGFyYW1fdmFsdWUiOiI0In0seyJwYXJhbV90eXBlIjoxOTE5LCJwYXJhbV92YWx1ZSI6IjcifV19"},{"key":"station_sn","value":"T85D0K1024480F05"},{"key":"google.c.sender.id","value":"348804314802"},{"key":"title","value":"Locked - Garage Door"},{"key":"type","value":"51"},{"key":"push_time","value":"1753810997551"},{"key":"event_time","value":"1753810997540"},{"key":"content","value":"Door locked by Garage Door"}],"persistentId":"0:1753810997571782%0d2a775cf9fd7ecd","ttl":3600,"sent":"1753810997564"}}' } 2025-07-29 17:43:17.625 DEBUG eufy-security-ws:eufy-security-client [push] [PushNotificationService.onMessage] Raw push message received { message: { id: '8D49D652', from: '348804314802', category: 'com.oceanwing.battery.cam', persistentId: '0:1753810997571782%0d2a775cf9fd7ecd', ttl: 3600, sent: '1753810997564', payload: { device_sn: 'T85D0K1024480F05', payload: { event_type: 264, event_time: 1753810998000, short_user_id: '0001', nick_name: 'ppcli.regimentalfunds', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', device_name: 'Garage Door', device_sn: 'T85D0K1024480F05', event_type_arr: [ 264 ], params: [ { param_type: 6001, param_value: '100' }, { param_type: 6000, param_value: '4' }, { param_type: 1919, param_value: '7' } ] }, station_sn: 'T85D0K1024480F05', 'google.c.sender.id': '348804314802', title: 'Locked - Garage Door', type: '51', push_time: '1753810997551', event_time: '1753810997540', content: 'Door locked by Garage Door' } } } 2025-07-29 17:43:17.625 DEBUG eufy-security-ws:eufy-security-client [push] [PushNotificationService.onMessage] Normalized push message received { message: { name: 'Garage Door', event_time: 1753810997540, type: 51, station_sn: 'T85D0K1024480F05', device_sn: 'T85D0K1024480F05', push_time: 1753810997551, title: 'Locked - Garage Door', content: 'Door locked by Garage Door', event_type: 264, short_user_id: '0001', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', person_name: 'ppcli.regimentalfunds' } } 2025-07-29 17:43:17.626 DEBUG eufy-security-ws:eufy-security-client [main] [EufySecurity.onPushMessage] Received push message { message: { name: 'Garage Door', event_time: 1753810997540, type: 51, station_sn: 'T85D0K1024480F05', device_sn: 'T85D0K1024480F05', push_time: 1753810997551, title: 'Locked - Garage Door', content: 'Door locked by Garage Door', event_type: 264, short_user_id: '0001', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', person_name: 'ppcli.regimentalfunds' } } 2025-07-29 17:43:43.547 DEBUG eufy-security-ws:eufy-security-client [push] [PushClient.handleParsedMessage] Push client - DataMessageStanza { message: '{"tag":8,"object":{"id":"8D4B076B","from":"348804314802","category":"com.oceanwing.battery.cam","appData":[{"key":"device_sn","value":"T85D0K1024480F05"},{"key":"payload","value":"eyJldmVudF90eXBlIjoyNjEsImV2ZW50X3RpbWUiOjE3NTM4MTEwMjQwMDAsInNob3J0X3VzZXJfaWQiOiIwMDAxIiwibmlja19uYW1lIjoicHBjbGkucmVnaW1lbnRhbGZ1bmRzIiwidXNlcl9pZCI6IjNkZmViNzc2NTc0ZjY4NTI5ZTk2ZTViYzJmOTdkZjNhMWRlNTZjNTYiLCJkZXZpY2VfbmFtZSI6IkdhcmFnZSBEb29yIiwiZGV2aWNlX3NuIjoiVDg1RDBLMTAyNDQ4MEYwNSIsImV2ZW50X3R5cGVfYXJyIjpbMjYxXSwicGFyYW1zIjpbeyJwYXJhbV90eXBlIjo2MDAxLCJwYXJhbV92YWx1ZSI6IjEwMCJ9LHsicGFyYW1fdHlwZSI6NjAwMCwicGFyYW1fdmFsdWUiOiIzIn0seyJwYXJhbV90eXBlIjoxOTE5LCJwYXJhbV92YWx1ZSI6IjcifV19"},{"key":"station_sn","value":"T85D0K1024480F05"},{"key":"google.c.sender.id","value":"348804314802"},{"key":"title","value":"Unlocked - Garage Door"},{"key":"type","value":"51"},{"key":"push_time","value":"1753811023476"},{"key":"content","value":"Door unlocked by Garage Door"},{"key":"event_time","value":"1753811023468"}],"persistentId":"0:1753811023500756%0d2a775cf9fd7ecd","ttl":3600,"sent":"1753811023492"}}' } 2025-07-29 17:43:43.547 DEBUG eufy-security-ws:eufy-security-client [push] [PushNotificationService.onMessage] Raw push message received { message: { id: '8D4B076B', from: '348804314802', category: 'com.oceanwing.battery.cam', persistentId: '0:1753811023500756%0d2a775cf9fd7ecd', ttl: 3600, sent: '1753811023492', payload: { device_sn: 'T85D0K1024480F05', payload: { event_type: 261, event_time: 1753811024000, short_user_id: '0001', nick_name: 'ppcli.regimentalfunds', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', device_name: 'Garage Door', device_sn: 'T85D0K1024480F05', event_type_arr: [ 261 ], params: [ { param_type: 6001, param_value: '100' }, { param_type: 6000, param_value: '3' }, { param_type: 1919, param_value: '7' } ] }, station_sn: 'T85D0K1024480F05', 'google.c.sender.id': '348804314802', title: 'Unlocked - Garage Door', type: '51', push_time: '1753811023476', content: 'Door unlocked by Garage Door', event_time: '1753811023468' } } } 2025-07-29 17:43:43.547 DEBUG eufy-security-ws:eufy-security-client [push] [PushNotificationService.onMessage] Normalized push message received { message: { name: 'Garage Door', event_time: 1753811023468, type: 51, station_sn: 'T85D0K1024480F05', device_sn: 'T85D0K1024480F05', push_time: 1753811023476, title: 'Unlocked - Garage Door', content: 'Door unlocked by Garage Door', event_type: 261, short_user_id: '0001', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', person_name: 'ppcli.regimentalfunds' } } 2025-07-29 17:43:43.547 DEBUG eufy-security-ws:eufy-security-client [main] [EufySecurity.onPushMessage] Received push message { message: { name: 'Garage Door', event_time: 1753811023468, type: 51, station_sn: 'T85D0K1024480F05', device_sn: 'T85D0K1024480F05', push_time: 1753811023476, title: 'Unlocked - Garage Door', content: 'Door unlocked by Garage Door', event_type: 261, short_user_id: '0001', user_id: '3dfeb776574f68529e96e5bc2f97df3a1de56c56', person_name: 'ppcli.regimentalfunds' } }

updatelee avatar Jul 29 '25 17:07 updatelee

Claude suggested these edits

Code Changes to Enable T85* Lock Devices Support

Based on the GitHub issue analysis and similar patterns from other lock devices in the repository, here are the suggested code changes to enable T85* lock devices to work with the eufy_security integration.

Problem Analysis

The issue shows that T85* lock devices are:

  • Detected by the integration
  • Only showing basic debug/alarm entities instead of lock functionality
  • Missing lock/unlock controls and proper lock state management

Suggested Code Changes

1. Update Device Type Recognition in const.py

Add T85* device pattern recognition to identify these as lock devices:

# In custom_components/eufy_security/const.py

# Add to device type mappings section
LOCK_DEVICE_PATTERNS = [
    "T8500",  # Existing
    "T8502",  # Existing 
    "T8520",  # Existing
    "T8530",  # Existing
    "T85*",   # New pattern for T85* series locks
]

# Add device type detection helper
def is_lock_device(device_model: str) -> bool:
    """Check if device model indicates a lock device."""
    lock_prefixes = ["T8500", "T8502", "T8520", "T8530", "T85"]
    return any(device_model.startswith(prefix) for prefix in lock_prefixes)

2. Update Lock Entity Configuration

If there’s a lock.py file, enhance it to support T85* devices:

# In custom_components/eufy_security/lock.py

@property
def is_locked(self) -> bool:
    """Return true if the lock is locked."""
    # Handle different lock models that use different state keys
    if self.device.model.startswith("T8500"):
        return self.device.state.get("lockStatus")
    elif self.device.model.startswith("T85"):
        # T85* series may use different state key - test both common ones
        locked_state = self.device.state.get("locked")
        if locked_state is not None:
            return locked_state
        # Fallback to lockStatus if locked key not available
        return self.device.state.get("lockStatus")
    else:
        return self.device.state.get("locked")

async def async_lock(self, **kwargs) -> None:
    """Lock the device."""
    if self.device.model.startswith("T85"):
        # Use appropriate lock command for T85* series
        await self.coordinator.lock_device(self.device.serial_number)
    else:
        await self.coordinator.lock_device(self.device.serial_number)

async def async_unlock(self, **kwargs) -> None:
    """Unlock the device.""" 
    if self.device.model.startswith("T85"):
        # Use appropriate unlock command for T85* series
        await self.coordinator.unlock_device(self.device.serial_number)
    else:
        await self.coordinator.unlock_device(self.device.serial_number)

3. Add T85* Support to Device Coordinator

Update the coordinator to properly handle T85* devices:

# In custom_components/eufy_security/coordinator.py or relevant file

def _determine_device_entities(self, device) -> list:
    """Determine which entities to create for a device."""
    entities = []
    
    # Check if device is a lock
    if is_lock_device(device.model):
        entities.append("lock")
        # Add common lock-related entities
        entities.extend(["battery", "door_sensor", "tamper"])
        
        # T85* specific entities (if any)
        if device.model.startswith("T85"):
            # Add T85*-specific sensors if needed
            pass
    
    return entities

4. Update Entity Descriptions for Locks

Add proper entity descriptions for lock devices:

# In custom_components/eufy_security/const.py

# Lock-specific entity descriptions
class LockEntityDescription:
    """Entity descriptions for lock devices."""
    
    locked = EntityDescription(
        id=auto(), 
        device_class=BinarySensorDeviceClass.LOCK,
        icon="mdi:lock"
    )
    
    door_open = EntityDescription(
        id=auto(),
        device_class=BinarySensorDeviceClass.DOOR, 
        icon="mdi:door-open"
    )
    
    battery_level = EntityDescription(
        id=auto(),
        device_class=SensorDeviceClass.BATTERY,
        state_class=SensorStateClass.MEASUREMENT,
        category=EntityCategory.DIAGNOSTIC
    )
    
    tamper = EntityDescription(
        id=auto(),
        device_class=BinarySensorDeviceClass.TAMPER,
        icon="mdi:shield-alert"
    )

5. Add Device Recognition Logic

Update the main setup logic to recognize T85* devices:

# In custom_components/eufy_security/__init__.py or coordinator.py

async def _setup_device_entities(self, device):
    """Set up entities for a specific device."""
    entities_to_add = []
    
    if is_lock_device(device.model):
        # Add lock entity
        lock_entity = EufySecurityLock(self.coordinator, device)
        entities_to_add.append(lock_entity)
        
        # Add lock-related sensors
        if hasattr(device.state, 'battery'):
            battery_entity = EufySecuritySensor(
                self.coordinator, 
                device, 
                LockEntityDescription.battery_level
            )
            entities_to_add.append(battery_entity)
            
        if hasattr(device.state, 'door_open'):
            door_entity = EufySecurityBinarySensor(
                self.coordinator,
                device,
                LockEntityDescription.door_open
            )
            entities_to_add.append(door_entity)
    
    return entities_to_add

6. Default Lock Configuration

Add a fallback configuration for unknown lock models:

# In device configuration section

DEFAULT_LOCK_CONFIG = {
    "entities": ["lock", "battery", "door_sensor"],
    "state_keys": {
        "locked": ["locked", "lockStatus"],  # Try both common state keys
        "battery": ["battery", "batteryLevel"],
        "door_open": ["door_open", "sensorOpen"]
    },
    "capabilities": ["lock", "unlock"]
}

def get_lock_config(device_model: str) -> dict:
    """Get configuration for lock device, with fallback to default."""
    # Specific configurations for known models
    specific_configs = {
        "T8500": {"state_key": "lockStatus"},
        "T8502": {"state_key": "locked"},
        "T8520": {"state_key": "locked"},
    }
    
    # For T85* devices, use default config
    if device_model.startswith("T85"):
        return DEFAULT_LOCK_CONFIG
        
    return specific_configs.get(device_model, DEFAULT_LOCK_CONFIG)

Implementation Notes

  1. Testing: These changes should be tested with actual T85* devices to verify the correct state keys and command formats.
  2. State Key Discovery: The actual state keys used by T85* devices may need to be discovered through debugging. Common keys include:
  • locked / lockStatus
  • battery / batteryLevel
  • door_open / sensorOpen
  1. Command Format: The lock/unlock commands for T85* devices should match the format expected by the eufy-security-ws backend.
  2. Incremental Approach: Start with basic lock/unlock functionality, then add additional sensors and features.
  3. Backward Compatibility: Ensure changes don’t break existing lock device support.

Testing Steps

  1. Deploy changes to Home Assistant
  2. Restart the integration
  3. Verify T85* devices now show lock entities
  4. Test lock/unlock functionality
  5. Verify state updates work correctly
  6. Add logging to capture actual state keys and values for refinement

This approach provides a foundation for T85* lock support while allowing for easy extension and refinement based on actual device behavior.

blueharford avatar Jul 31 '25 23:07 blueharford

@updatelee i used Cursor to update the code, and i tested it and it works. T85 locks now work and are detected by Home assistant. you have to enable the lock from the disabled diagnostic entities.

https://github.com/fuatakgun/eufy_security/pull/1369

JoshuaSeidel avatar Aug 04 '25 12:08 JoshuaSeidel

@updatelee i used Cursor to update the code, and i tested it and it works. T85 locks now work and are detected by Home assistant. you have to enable the lock from the disabled diagnostic entities.

#1369

is this working for T85F0 Eufy E31 Smart locks. if so how can i apply this update so locking and unlocking work in HA

DevilsDesigns avatar Aug 15 '25 17:08 DevilsDesigns

I have an E30 (T85F1, Firmware: 1.0.9.0) and not seeing the lock entity. Its not showing in disabled either.

Image

reuter avatar Aug 19 '25 14:08 reuter

@updatelee i used Cursor to update the code, and i tested it and it works. T85 locks now work and are detected by Home assistant. you have to enable the lock from the disabled diagnostic entities.

#1369

I managed to implement the code, and it is working for S3 (T85V0). How can it now send Lock and Unlock, as I get an error message while trying to unlock?

elic1973 avatar Aug 22 '25 10:08 elic1973

T8506 works for locking/unlocking, however the entity states don't seem to update when it auto locks after I've unlocked it (in HA) or when using the eufy app

Image

EDIT: Nevermind, I'm an idiot :P Forgot to turn on notifications in the Eufy app!

jgueydan avatar Aug 24 '25 15:08 jgueydan

T8506 works for locking/unlocking, however the entity states don't seem to update when it auto locks after I've unlocked it (in HA) or when using the eufy app

Image EDIT: **Nevermind, I'm an idiot :P Forgot to turn on notifications in the Eufy app!**

can you share the changes you made? Which method you used?

elic1973 avatar Aug 25 '25 15:08 elic1973

Will this be updated at some point soon? I tried to follow this and my const.py does not have a device pairing section so i can't do the first step. i regret buying the c30 now. i was just trying to save 20 bucks vs the C210 :(

ecszone avatar Sep 09 '25 19:09 ecszone

Will this be updated at some point soon? I tried to follow this and my const.py does not have a device pairing section so i can't do the first step. i regret buying the c30 now. i was just trying to save 20 bucks vs the C210 :(

I used Matter for Famillock S3 with Alexa. I can lock and unlock the door, get battery status, set volume and autolock time.

elic1973 avatar Sep 09 '25 19:09 elic1973

I used Matter for Famillock S3 with Alexa. I can lock and unlock the door, get battery status, set volume and autolock time.

I have not configured matter and not sure i want to go down this road. thanks for the suggestion. i did paste all this infor into my py files and rebooted HA, no changes. I guess this is above my head.

ecszone avatar Sep 09 '25 19:09 ecszone

While Eufy has excitingly added Matter to some of its recent locks, including some I listed above, most existing locks don’t support it. Those of us with those locks that don’t use Matter would like to use this integration.

I do use Matter for those that have it and while it should be quicker being local and more reliable I haven’t found it to be so to date with devices going unavailable more often than I would like.

KINGCanty avatar Sep 09 '25 20:09 KINGCanty

How do a implement the changes to support E30? Sorry a GIT new user here...

rayearth2162-ship-it avatar Sep 12 '25 13:09 rayearth2162-ship-it

I have the C30 lock - T85D0, how do I enable the lock and unlock functionality?

youngy00 avatar Sep 22 '25 20:09 youngy00

Me too I'd like help

HPHOMEtech avatar Sep 23 '25 15:09 HPHOMEtech

I don't even see the device type mappings section in the const.py... am I missing something?

Binaryman1979 avatar Sep 29 '25 16:09 Binaryman1979

i remember part of the instructions did not exist in my environment too. i did it all and it did not work (minus the missing piece) i wish they would just say if an update is planned. i have no idea how these work or if they are semi consistently updated.

ecszone avatar Sep 29 '25 17:09 ecszone

@updatelee i used Cursor to update the code, and i tested it and it works. T85 locks now work and are detected by Home assistant. you have to enable the lock from the disabled diagnostic entities.

#1369

Can you post your files somewhere? I can't seem to edit mine correctly.

Binaryman1979 avatar Sep 29 '25 17:09 Binaryman1979

I am running into similar issues with my T8520P and T8520. Both locks are able to lock/unlock from with Home Assistant, but states that I used for automations are no longer reported. A manual unlock/lock of the deadbolts don't even report in the activity log. These use to be rock solid. Reverting to 8.1.1 doesn't do anything either.

SnowJackal avatar Oct 15 '25 06:10 SnowJackal

Same issue with T85D2, following this thread for status. Wildcard approach with the code suggestion sounds viable

charifield avatar Oct 21 '25 01:10 charifield

off topic but same for s3 max T85V0, apart from adding basic lock/unlock function(which I can do by matter), can you also help let me know how to integrate its camera, motion sensor etc?

Lv-devil7 avatar Dec 19 '25 01:12 Lv-devil7