@@ -396,6 +396,13 @@ def setV1State(self, state, advertise=True):
396
396
for key , value in state .items ():
397
397
if key in self .state :
398
398
self .state [key ] = value
399
+ if key in self .config :
400
+ if key == "archetype" :
401
+ self .config [key ] = value .replace ("_" ,"" )
402
+ else :
403
+ self .config [key ] = value
404
+ if key == "name" :
405
+ self .name = value
399
406
if "bri" in state :
400
407
if "min_bri" in self .protocol_cfg and self .protocol_cfg ["min_bri" ] > state ["bri" ]:
401
408
state ["bri" ] = self .protocol_cfg ["min_bri" ]
@@ -422,6 +429,11 @@ def setV2State(self, state):
422
429
self .effect = v1State ["effect" ]
423
430
if "dynamics" in state and "speed" in state ["dynamics" ]:
424
431
self .dynamics ["speed" ] = state ["dynamics" ]["speed" ]
432
+ if "metadata" in state :
433
+ if "archetype" in state ["metadata" ]:
434
+ v1State ["archetype" ] = state ["metadata" ]["archetype" ]
435
+ if "name" in state ["metadata" ]:
436
+ v1State ["name" ] = state ["metadata" ]["name" ]
425
437
self .setV1State (v1State , advertise = False )
426
438
self .genStreamEvent (state )
427
439
@@ -443,7 +455,7 @@ def getDevice(self):
443
455
result ["id_v1" ] = "/lights/" + self .id_v1
444
456
result ["identify" ] = {}
445
457
result ["metadata" ] = {
446
- "archetype" : lightTypes [self .modelid ][ "device" ][ "product_archetype" ],
458
+ "archetype" : archetype [self .config [ "archetype" ] ],
447
459
"name" : self .name
448
460
}
449
461
result ["product_data" ] = lightTypes [self .modelid ]["device" ]
0 commit comments