Use _attr_native_value in repetier (#145219)

This commit is contained in:
epenet 2025-05-19 15:56:27 +02:00 committed by GitHub
parent a38e033e13
commit 05795d0ad8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -78,7 +78,6 @@ class RepetierSensor(SensorEntity):
self._attributes: dict = {} self._attributes: dict = {}
self._temp_id = temp_id self._temp_id = temp_id
self._printer_id = printer_id self._printer_id = printer_id
self._state = None
self._attr_name = name self._attr_name = name
self._attr_available = False self._attr_available = False
@ -88,17 +87,12 @@ class RepetierSensor(SensorEntity):
"""Return sensor attributes.""" """Return sensor attributes."""
return self._attributes return self._attributes
@property
def native_value(self):
"""Return sensor state."""
return self._state
@callback @callback
def update_callback(self): def update_callback(self):
"""Get new data and update state.""" """Get new data and update state."""
self.async_schedule_update_ha_state(True) self.async_schedule_update_ha_state(True)
async def async_added_to_hass(self): async def async_added_to_hass(self) -> None:
"""Connect update callbacks.""" """Connect update callbacks."""
self.async_on_remove( self.async_on_remove(
async_dispatcher_connect(self.hass, UPDATE_SIGNAL, self.update_callback) async_dispatcher_connect(self.hass, UPDATE_SIGNAL, self.update_callback)
@ -115,14 +109,14 @@ class RepetierSensor(SensorEntity):
self._attr_available = True self._attr_available = True
return data return data
def update(self): def update(self) -> None:
"""Update the sensor.""" """Update the sensor."""
if (data := self._get_data()) is None: if (data := self._get_data()) is None:
return return
state = data.pop("state") state = data.pop("state")
_LOGGER.debug("Printer %s State %s", self.name, state) _LOGGER.debug("Printer %s State %s", self.name, state)
self._attributes.update(data) self._attributes.update(data)
self._state = state self._attr_native_value = state
class RepetierTempSensor(RepetierSensor): class RepetierTempSensor(RepetierSensor):
@ -131,11 +125,11 @@ class RepetierTempSensor(RepetierSensor):
@property @property
def native_value(self): def native_value(self):
"""Return sensor state.""" """Return sensor state."""
if self._state is None: if self._attr_native_value is None:
return None return None
return round(self._state, 2) return round(self._attr_native_value, 2)
def update(self): def update(self) -> None:
"""Update the sensor.""" """Update the sensor."""
if (data := self._get_data()) is None: if (data := self._get_data()) is None:
return return
@ -143,7 +137,7 @@ class RepetierTempSensor(RepetierSensor):
temp_set = data["temp_set"] temp_set = data["temp_set"]
_LOGGER.debug("Printer %s Setpoint: %s, Temp: %s", self.name, temp_set, state) _LOGGER.debug("Printer %s Setpoint: %s, Temp: %s", self.name, temp_set, state)
self._attributes.update(data) self._attributes.update(data)
self._state = state self._attr_native_value = state
class RepetierJobSensor(RepetierSensor): class RepetierJobSensor(RepetierSensor):
@ -152,9 +146,9 @@ class RepetierJobSensor(RepetierSensor):
@property @property
def native_value(self): def native_value(self):
"""Return sensor state.""" """Return sensor state."""
if self._state is None: if self._attr_native_value is None:
return None return None
return round(self._state, 2) return round(self._attr_native_value, 2)
class RepetierJobEndSensor(RepetierSensor): class RepetierJobEndSensor(RepetierSensor):
@ -162,7 +156,7 @@ class RepetierJobEndSensor(RepetierSensor):
_attr_device_class = SensorDeviceClass.TIMESTAMP _attr_device_class = SensorDeviceClass.TIMESTAMP
def update(self): def update(self) -> None:
"""Update the sensor.""" """Update the sensor."""
if (data := self._get_data()) is None: if (data := self._get_data()) is None:
return return
@ -171,7 +165,7 @@ class RepetierJobEndSensor(RepetierSensor):
print_time = data["print_time"] print_time = data["print_time"]
from_start = data["from_start"] from_start = data["from_start"]
time_end = start + round(print_time, 0) time_end = start + round(print_time, 0)
self._state = dt_util.utc_from_timestamp(time_end) self._attr_native_value = dt_util.utc_from_timestamp(time_end)
remaining = print_time - from_start remaining = print_time - from_start
remaining_secs = int(round(remaining, 0)) remaining_secs = int(round(remaining, 0))
_LOGGER.debug( _LOGGER.debug(
@ -186,14 +180,14 @@ class RepetierJobStartSensor(RepetierSensor):
_attr_device_class = SensorDeviceClass.TIMESTAMP _attr_device_class = SensorDeviceClass.TIMESTAMP
def update(self): def update(self) -> None:
"""Update the sensor.""" """Update the sensor."""
if (data := self._get_data()) is None: if (data := self._get_data()) is None:
return return
job_name = data["job_name"] job_name = data["job_name"]
start = data["start"] start = data["start"]
from_start = data["from_start"] from_start = data["from_start"]
self._state = dt_util.utc_from_timestamp(start) self._attr_native_value = dt_util.utc_from_timestamp(start)
elapsed_secs = int(round(from_start, 0)) elapsed_secs = int(round(from_start, 0))
_LOGGER.debug( _LOGGER.debug(
"Job %s elapsed %s", "Job %s elapsed %s",