@@ -119,12 +119,12 @@ def update(self):
119
119
"Getting door updates from Unifi Access %s Use Polling %s. Doors? %s" ,
120
120
self .host ,
121
121
self .use_polling ,
122
- self .doors ,
122
+ self .doors . keys () ,
123
123
)
124
124
data = self ._make_http_request (f"{ self .host } { DOORS_URL } " )
125
125
126
126
for _i , door in enumerate (data ):
127
- if door ["is_bind_hub" ]:
127
+ if door ["is_bind_hub" ] is True :
128
128
door_id = door ["id" ]
129
129
door_lock_rule = {"type" : "" , "ended_time" : 0 }
130
130
if self .supports_door_lock_rules :
@@ -138,6 +138,16 @@ def update(self):
138
138
]
139
139
existing_door .door_lock_rule = door_lock_rule ["type" ]
140
140
existing_door .door_lock_ended_time = door_lock_rule ["ended_time" ]
141
+ _LOGGER .debug (
142
+ "Updated existing door, id: %s, name: %s, dps: %s, door_lock_relay_status: %s, door lock rule: %s, door lock rule ended time: %s using polling %s" ,
143
+ door_id ,
144
+ door ["name" ],
145
+ door ["door_position_status" ],
146
+ door ["door_lock_relay_status" ],
147
+ door_lock_rule ["type" ],
148
+ door_lock_rule ["ended_time" ],
149
+ self .use_polling ,
150
+ )
141
151
else :
142
152
self ._doors [door_id ] = UnifiAccessDoor (
143
153
door_id = door ["id" ],
@@ -148,26 +158,26 @@ def update(self):
148
158
door_lock_rule_ended_time = door_lock_rule ["ended_time" ],
149
159
hub = self ,
150
160
)
161
+ _LOGGER .debug (
162
+ "Found new door, id: %s, name: %s, dps: %s, door_lock_relay_status: %s, door lock rule: %s, door lock rule ended time: %s, using polling: %s" ,
163
+ door_id ,
164
+ door ["name" ],
165
+ door ["door_position_status" ],
166
+ door ["door_lock_relay_status" ],
167
+ door_lock_rule ["type" ],
168
+ door_lock_rule ["ended_time" ],
169
+ self .use_polling ,
170
+ )
171
+ else :
172
+ _LOGGER .debug ("Door %s is not bound to a hub. Ignoring" , door )
173
+
151
174
if self .update_t is None and self .use_polling is False :
175
+ _LOGGER .debug ("Starting continuous updates. Polling disabled" )
152
176
self .start_continuous_updates ()
153
177
178
+ _LOGGER .debug ("Got doors %s" , self .doors )
154
179
return self ._doors
155
180
156
- def update_door (self , door_id : int ) -> None :
157
- """Get latest door data for a specific door."""
158
- _LOGGER .info ("Getting door update from Unifi Access with id %s" , door_id )
159
- updated_door = self ._make_http_request (f"{ self .host } { DOORS_URL } /{ door_id } " )
160
- door_id = updated_door ["id" ]
161
- _LOGGER .debug ("got door update %s" , updated_door )
162
- if door_id in self .doors :
163
- existing_door : UnifiAccessDoor = self .doors [door_id ]
164
- existing_door .door_lock_relay_status = updated_door [
165
- "door_lock_relay_status"
166
- ]
167
- existing_door .door_position_status = updated_door ["door_position_status" ]
168
- existing_door .name = updated_door ["name" ]
169
- _LOGGER .debug ("door %s updated" , door_id )
170
-
171
181
def authenticate (self , api_token : str ) -> str :
172
182
"""Test if we can authenticate with the host."""
173
183
self .set_api_token (api_token )
@@ -329,12 +339,15 @@ def _handle_location_update_v2(self, update):
329
339
lock_rule
330
340
]["until" ]
331
341
if "thumbnail" in update ["data" ]:
332
- existing_door .thumbnail = self ._get_thumbnail_image (
333
- f"{ self .host } { STATIC_URL } { update ['data' ]['thumbnail' ]['url' ]} "
334
- )
335
- existing_door .thumbnail_last_updated = datetime .fromtimestamp (
336
- update ["data" ]["thumbnail" ]["door_thumbnail_last_update" ]
337
- )
342
+ try :
343
+ existing_door .thumbnail = self ._get_thumbnail_image (
344
+ f"{ self .host } { STATIC_URL } { update ['data' ]['thumbnail' ]['url' ]} "
345
+ )
346
+ existing_door .thumbnail_last_updated = datetime .fromtimestamp (
347
+ update ["data" ]["thumbnail" ]["door_thumbnail_last_update" ]
348
+ )
349
+ except (ApiError , ApiAuthError ):
350
+ _LOGGER .error ("Could not get thumbnail for door id %s" , door_id )
338
351
return existing_door
339
352
340
353
def on_message (self , ws : websocket .WebSocketApp , message ):
0 commit comments