@@ -438,44 +438,45 @@ def native_value(self):
438438 @property
439439 def extra_state_attributes (self ):
440440 """Return the state attributes."""
441- if self .entity_description .key == "inverter_data_watts" :
442- if self .coordinator .data .get ("inverter_production" ):
443- value = (
444- self .coordinator .data .get ("inverter_production" )
445- .get (self ._device_serial_number )
446- .get ("lastReportDate" )
447- )
448- return {
449- "last_reported" : datetime .datetime .fromtimestamp (
450- int (value ), tz = datetime .timezone .utc
441+ try :
442+ if self .entity_description .key == "inverter_data_watts" :
443+ if self .coordinator .data .get ("inverter_production" ):
444+ value = (
445+ self .coordinator .data .get ("inverter_production" )
446+ .get (self ._device_serial_number )
447+ .get ("lastReportDate" )
451448 )
452- }
453- elif self . entity_description . key . startswith ( "inverter_info_" ):
454- if self . coordinator . data . get ( "inverter_info" ):
455- value = (
456- self . coordinator . data . get ( "inverter_info" )
457- . get ( self ._device_serial_number )
458- . get ("last_rpt_date" )
459- )
460- return {
461- "last_reported" : datetime . datetime . fromtimestamp (
462- int ( value ), tz = datetime . timezone . utc
449+ return {
450+ "last_reported" : datetime . datetime . fromtimestamp (
451+ int ( value ), tz = datetime . timezone . utc
452+ )
453+ }
454+ elif self .entity_description . key . startswith ( "inverter_info_" ):
455+ if self . coordinator . data . get ("inverter_info" ):
456+ value = (
457+ self . coordinator . data . get ( "inverter_info" )
458+ . get ( self . _device_serial_number )
459+ . get ( "last_rpt_date" )
463460 )
464- }
465- elif self . entity_description . key . startswith ( "inverter_data_" ):
466- if self . coordinator . data . get ( "inverter_device_data" ):
467- value = (
468- self . coordinator . data . get ( "inverter_device_data" )
469- . get ( self ._device_serial_number )
470- . get ("last_reading" )
471- )
472- return {
473- "last_reported" : datetime . datetime . fromtimestamp (
474- int ( value ), tz = datetime . timezone . utc
461+ return {
462+ "last_reported" : datetime . datetime . fromtimestamp (
463+ int ( value ), tz = datetime . timezone . utc
464+ )
465+ }
466+ elif self .entity_description . key . startswith ( "inverter_data_" ):
467+ if self . coordinator . data . get ("inverter_device_data" ):
468+ value = (
469+ self . coordinator . data . get ( "inverter_device_data" )
470+ . get ( self . _device_serial_number )
471+ . get ( "last_reading" )
475472 )
476- }
477-
478- return None
473+ return {
474+ "last_reported" : datetime .datetime .fromtimestamp (
475+ int (value ), tz = datetime .timezone .utc
476+ )
477+ }
478+ except (ValueError , TypeError ):
479+ return None
479480
480481 @property
481482 def device_info (self ) -> DeviceInfo | None :
0 commit comments