@@ -112,19 +112,14 @@ def value(self, value):
112
112
logging .debug (f"Update: { self .name } value: { value } ts: { self .timestamp } " )
113
113
self ._value = value
114
114
115
- def __is_subrecord (self , attr ):
116
- return (hasattr (super (), '__dict__' )
117
- and isinstance (super ().__dict__ .get ("_value" , None ), dict )
118
- and attr in super ().value )
119
-
120
115
def __getattr__ (self , attr ):
121
- if self .__is_subrecord ( attr ) :
122
- return super (). value [attr ].value
116
+ if isinstance ( self .__dict__ . get ( "_value" , None ), dict ) and attr in self . _value :
117
+ return self . _value [attr ].value
123
118
raise AttributeError (f"'{ self .__class__ .__name__ } ' object has no attribute '{ attr } '" )
124
119
125
120
def __setattr__ (self , attr , value ):
126
- if self .__is_subrecord ( attr ) :
127
- self .value [attr ].value = value
121
+ if isinstance ( self .__dict__ . get ( "_value" , None ), dict ) and attr in self . _value :
122
+ self ._value [attr ].value = value
128
123
else :
129
124
super ().__setattr__ (attr , value )
130
125
@@ -187,7 +182,7 @@ def __init__(
187
182
self .update_systime ()
188
183
self .last_ping = timestamp ()
189
184
self .device_topic = b"/a/d/" + device_id + b"/e/i"
190
- self .senmlpack = SenmlPack ("urn:uuid:" + device_id . decode ( "utf-8" ) , self .senml_generic_callback )
185
+ self .senmlpack = SenmlPack ("" , self .senml_generic_callback )
191
186
self .mqtt = MQTTClient (device_id , server , port , ssl_params , username , password , keepalive , self .mqtt_callback )
192
187
# Note: the following internal objects are initialized by the cloud.
193
188
for name in ["thing_id" , "tz_offset" , "tz_dst_until" ]:
@@ -312,7 +307,8 @@ async def run(self, user_main=None):
312
307
await asyncio .gather (* self .tasks .values (), return_exceptions = False )
313
308
logging .info ("All tasks finished!" )
314
309
break
315
- except Exception :
310
+ except Exception as e :
311
+ except_msg = str (e )
316
312
pass # import traceback; traceback.print_exc()
317
313
318
314
for name in list (self .tasks ):
@@ -321,6 +317,6 @@ async def run(self, user_main=None):
321
317
if task .done ():
322
318
self .tasks .pop (name )
323
319
self .records .pop (name , None )
324
- logging .error (f"Removed task: { name } . Raised exception: { task . exception () } ." )
320
+ logging .error (f"Removed task: { name } . Raised exception: { except_msg } ." )
325
321
except (CancelledError , InvalidStateError ):
326
322
pass
0 commit comments