bropat / eufy-security-client

This shared library allows to control Eufy security devices by connecting to the Eufy cloud servers and local/remote stations over p2p.
MIT License
487 stars 70 forks source link

[Question]: SmartTracker Properties #399

Closed fuatakgun closed 7 months ago

fuatakgun commented 11 months ago

Ask your question

hey bropat, I see that you have added support for smart tracker devices and I am able to receive locationCoordinates and locationLastUpdate properties after some time later client was initialized.

I assume that late initialization is avoidable, on the other hand, I was assuming that get_properties and get_properties_metadata would still inform me about these properties. As of now, these properties do not exist in get_properties and get_properties_metadata responses until these values are generated. All these assumptions are sourced from device properties and respective metadata fields should be state independent. I am using the responses from these two commands at startup to create respective sensors and following on their changes using propert_changed event.

Can we include these properties into get_properties_metadata even though they are not initialized yet as you are doing it for current_mode for stations. Current mode is initialized later on but its information is shared beforehand.

fuatakgun commented 11 months ago
{
'serialNumber': 'T87B2Pxxx829E3', 
'properties': 
{
'name': {'key': 'device_name', 'name': 'name', 'label': 'Name', 'readable': True, 'writeable': False, 'type': 'string'}, 
'model': {'key': 'device_model', 'name': 'model', 'label': 'Model', 'readable': True, 'writeable': False, 'type': 'string'}, 
'serialNumber': {'key': 'device_sn', 'name': 'serialNumber', 'label': 'Serial number', 'readable': True, 'writeable': False, 'type': 'string'}, 
'type': {'key': 'device_type', 'name': 'type', 'label': 'Type', 'readable': True, 'writeable': False, 'type': 'number', 'states': {'0': 'Station', '1': 'Camera', '2': 'Sensor (T8900)', '3': 'Floodlight', '4': 'Camera E', '5': 'Doorbell', '7': 'Battery Doorbell', '8': 'Camera 2', '9': 'eufyCam S210 (eufyCam 2C)', '10': 'Motion Sensor (T8910)', '11': 'Keypad', '14': 'eufyCam S221 (eufyCam 2 Pro)', '15': 'eufyCam S220 (eufyCam 2C Pro)', '16': 'Battery Doorbell 2', '18': 'HomeBase S380 (HomeBase 3; T8030)', '19': 'eufyCam S330 (eufyCam 3)', '23': 'eufyCam S300 (eufyCam 3C)', '30': 'Indoor Camera', '31': 'Indoor Camera PT', '32': 'Solo Camera', '33': 'Solo Camera Pro', '34': 'Indoor Camera 1080', '35': 'Indoor Camera PT 1080', '37': 'Floodlight 8422', '38': 'Floodlight 8423', '39': 'Floodlight 2', '44': 'Outdoor Camera 1080P No Light', '45': 'Outdoor Camera 2k', '46': 'Outdoor Camera 1080P', '50': 'Lock Basic', '51': 'Lock Advanced', '52': 'Lock Basic No Finger', '53': 'Lock Basic Advanced No Finger', '54': 'Retrofit Smart Lock E110 (T8503)', '55': 'Video Smart Lock S330 (T8530)', '56': 'Lock 85A3', '57': 'Lock 8592', '58': 'Retrofit Smart Lock E130 (T8504)', '60': 'Solo Camera Spotlight 1080p', '61': 'Solo Camera Spotlight 2k', '62': 'Solo Camera Spotlight Solar', '90': 'Smart Drop S300 (T8790)', '91': 'Video Doorbell Dual', '93': 'Video Doorbell Dual (Wired)', '100': 'Indoor Cost Down Camera', '101': 'Camera Gun', '102': 'Camera Snail', '110': 'Starlight 4G LTE', '131': 'Camera Garage T8453 Common', '132': 'Garage-Control Cam E110 (T8452)', '133': 'Garage-Control Cam E120 (T8453)', '140': 'Smart Safe S10 (T7400)', '141': 'Smart Safe S12 (T7401)', '142': 'Smart Safe T7402', '143': 'Smart Safe T7403', '151': 'Wired Wall Light Cam S100 (T84A1)', '157': 'SmartTrack Link (T87B0)', '159': 'SmartTrack Card (T87B2)', '180': 'Lock T8502 / T8506', '10005': 'Solar Wall Light Cam S120 (T81A0)'}}, 
'hardwareVersion': {'key': 'main_hw_version', 'name': 'hardwareVersion', 'label': 'Hardware version', 'readable': True, 'writeable': False, 'type': 'string'}, 
'softwareVersion': {'key': 'main_sw_version', 'name': 'softwareVersion', 'label': 'Software version', 'readable': True, 'writeable': False, 'type': 'string'}, 
'stationSerialNumber': {'key': 'station_sn', 'name': 'stationSerialNumber', 'label': 'Station serial number', 'readable': True, 'writeable': False, 'type': 'string'}, 
'battery': {'key': 1003, 'name': 'battery', 'label': 'Battery percentage', 'readable': True, 'writeable': False, 'type': 'number', 'unit': '%', 'min': 0, 'max': 100}
}
}
hvorragend commented 10 months ago

@bropat Can I support this or you in any way?

bropat commented 8 months ago

@fuatakgun

This is an issue on eufy-security-ws side. It will be fixed there in the next release.