@@ -188,15 +188,26 @@ def get_details(self) -> None:
188188 self .device_status = r .get ('deviceStatus' , self .device_status )
189189 self .details ['active_time' ] = r .get ('activeTime' , 0 )
190190 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 )
197195 else :
198196 logger .debug ('Unable to get %s details' , self .device_name )
199197
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+
200211 def get_weekly_energy (self ) -> None :
201212 """Get 7A outlet weekly energy info and buld weekly energy dict."""
202213 r , _ = Helpers .call_api (
0 commit comments