2626
2727logger = logging .getLogger ("custom_components.dirigera_platform" )
2828
29+ DATE_TIME_FORMAT :str = "%Y-%m-%dT%H:%M:%S.%fZ"
30+
2931def induce_properties (class_to_induce , attr ):
3032 for key in attr .keys ():
3133 logger .debug (f"Inducing class { class_to_induce .__name__ } property { key } : value { attr [key ]} " )
@@ -824,7 +826,7 @@ def __init__(self, device):
824826 icon = "mdi:lightning-bolt-outline" ,
825827 device_class = SensorDeviceClass .ENERGY ,
826828 state_class = SensorStateClass .TOTAL_INCREASING )
827-
829+
828830 @property
829831 def native_value (self ):
830832 return getattr (self ._device , "energy_consumed_at_last_reset" )
@@ -841,6 +843,19 @@ def __init__(self, device):
841843 def native_value (self ):
842844 return getattr (self ._device , "time_of_last_energy_reset" )
843845
846+ @property
847+ def time_of_last_energy_reset (self ):
848+ return self .native_value ()
849+
850+ @time_of_last_energy_reset .setter
851+ def time_of_last_energy_reset (self , value ):
852+ # This is called from hub events where its a str
853+ try :
854+ dt_value = datetime .datetime .strptime (value , DATE_TIME_FORMAT )
855+ setattr (self ._device ,"time_of_last_energy_reset" ,dt_value )
856+ except :
857+ logger .warning (f"Failed to set time_of_last_energy_reset in sensor using value : { value } " )
858+
844859class total_energy_consumed_last_updated_sensor (ikea_base_device_sensor , DateTimeEntity ):
845860 def __init__ (self , device ):
846861 super ().__init__ (device ,"total_energy_consumed_last_updated" ,"%Y-%m-%dT%H:%M:%S.%f%z" ,"TECLU01" ," Time Energy Consumed Last Updated" )
@@ -854,4 +869,17 @@ def __init__(self, device):
854869
855870 @property
856871 def native_value (self ):
857- return getattr (self ._device , "total_energy_consumed_last_updated" )
872+ return getattr (self ._device , "total_energy_consumed_last_updated" )
873+
874+ @property
875+ def total_energy_consumed_last_updated (self ):
876+ return self .native_value ()
877+
878+ @total_energy_consumed_last_updated .setter
879+ def time_of_last_energy_reset (self , value ):
880+ # This is called from hub events where its a str
881+ try :
882+ dt_value = datetime .datetime .strptime (value , DATE_TIME_FORMAT )
883+ setattr (self ._device ,"total_energy_consumed_last_updated" ,dt_value )
884+ except :
885+ logger .warning (f"Failed to set total_energy_consumed_last_updated in sensor using value : { value } " )
0 commit comments