@@ -188,15 +188,26 @@ def get_details(self) -> None:
188
188
self .device_status = r .get ('deviceStatus' , self .device_status )
189
189
self .details ['active_time' ] = r .get ('activeTime' , 0 )
190
190
self .details ['energy' ] = r .get ('energy' , 0 )
191
- power = r .get ('power' , '0:0' )
192
- power = round (float (Helpers .calculate_hex (power )), 2 )
193
- self .details ['power' ] = power
194
- voltage = r .get ('voltage' , '0:0' )
195
- voltage = round (float (Helpers .calculate_hex (voltage )), 2 )
196
- self .details ['voltage' ] = voltage
191
+ power = r .get ('power' , '0' )
192
+ self .details ['power' ] = self .parse_energy_detail (power )
193
+ voltage = r .get ('voltage' , 0 )
194
+ self .details ['voltage' ] = self .parse_energy_detail (voltage )
197
195
else :
198
196
logger .debug ('Unable to get %s details' , self .device_name )
199
197
198
+ @staticmethod
199
+ def parse_energy_detail (energy ):
200
+ """Parse energy details to be compatible with new and old firmware."""
201
+ try :
202
+ if isinstance (energy , str ) and ':' in energy :
203
+ power = round (float (Helpers .calculate_hex (energy )), 2 )
204
+ else :
205
+ power = float (energy )
206
+ except ValueError :
207
+ logger .debug ('Error parsing power response - %s' , energy )
208
+ power = 0
209
+ return power
210
+
200
211
def get_weekly_energy (self ) -> None :
201
212
"""Get 7A outlet weekly energy info and buld weekly energy dict."""
202
213
r , _ = Helpers .call_api (
0 commit comments