Compare commits

...

6 Commits

Author SHA1 Message Date
Andre Basche 6d2a6ce2e9 Fix unit of current elecricity #158 2024-03-30 23:16:54 +01:00
Andre Basche 0e166f3c66 Bump version 2024-03-30 20:26:08 +01:00
Andre Basche 54dd406ec2 Fix checks 2024-03-30 20:25:08 +01:00
Andre Basche a746584833 Fix unkown for 0 in number entity 2024-03-30 20:23:39 +01:00
Andre Basche 36aed2e6ea Fix update entity when changing config 2024-03-30 19:47:46 +01:00
Andre Basche 510c10bd9f Improve device info 2024-03-30 19:46:24 +01:00
9 changed files with 21 additions and 20 deletions

View File

@ -36,7 +36,7 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool
password=entry.data[CONF_PASSWORD],
mobile_id=MOBILE_ID,
session=session,
# test_data_path=Path(config_dir),
test_data_path=Path(config_dir),
refresh_token=entry.data.get(CONF_REFRESH_TOKEN, ""),
).create()

View File

@ -232,7 +232,7 @@ class HonACClimateEntity(HonEntity, ClimateEntity):
self._device.sync_command("startProgram", "settings")
self._set_temperature_bound()
self._handle_coordinator_update(update=False)
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
self._attr_preset_mode = preset_mode
await self._device.commands["startProgram"].send()
self.async_write_ha_state()
@ -408,7 +408,7 @@ class HonClimateEntity(HonEntity, ClimateEntity):
self._device.sync_command(command, "settings")
self._set_temperature_bound()
self._attr_preset_mode = preset_mode
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
await self._device.commands[command].send()
self.async_write_ha_state()

View File

@ -42,10 +42,12 @@ class HonEntity(CoordinatorEntity[DataUpdateCoordinator[dict[str, Any]]]):
def device_info(self) -> DeviceInfo:
return DeviceInfo(
identifiers={(DOMAIN, self._device.unique_id)},
manufacturer=self._device.get("brand", ""),
manufacturer=self._device.get("brand", "").capitalize(),
name=self._device.nick_name,
model=self._device.model_name,
sw_version=self._device.get("fwVersion", ""),
hw_version=f"{self._device.appliance_type}{self._device.model_id}",
serial_number=self._device.get("serialNumber", ""),
)
@callback

View File

@ -58,7 +58,7 @@ class HonLockEntity(HonEntity, LockEntity):
setting.value = setting.max if isinstance(setting, HonParameterRange) else 1
self.async_write_ha_state()
await self._device.commands["settings"].send()
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
async def async_unlock(self, **kwargs: Any) -> None:
"""Unlock method."""
@ -68,7 +68,7 @@ class HonLockEntity(HonEntity, LockEntity):
setting.value = setting.min if isinstance(setting, HonParameterRange) else 0
self.async_write_ha_state()
await self._device.commands["settings"].send()
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
@property
def available(self) -> bool:

View File

@ -11,5 +11,5 @@
"requirements": [
"pyhOn==0.17.3"
],
"version": "0.14.0-beta.5"
"version": "0.14.0-beta.6"
}

View File

@ -257,7 +257,7 @@ class HonNumberEntity(HonEntity, NumberEntity):
await self._device.commands[command].send()
if command != "settings":
self._device.sync_command(command, "settings")
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
@callback
def _handle_coordinator_update(self, update: bool = True) -> None:
@ -300,7 +300,7 @@ class HonConfigNumberEntity(HonEntity, NumberEntity):
@property
def native_value(self) -> float | None:
if value := self._device.settings[self.entity_description.key].value:
if (value := self._device.settings[self.entity_description.key].value) != "":
return float(value)
return None
@ -308,7 +308,7 @@ class HonConfigNumberEntity(HonEntity, NumberEntity):
setting = self._device.settings[self.entity_description.key]
if isinstance(setting, HonParameterRange):
setting.value = value
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
@property
def available(self) -> bool:

View File

@ -263,7 +263,7 @@ class HonConfigSelectEntity(HonEntity, SelectEntity):
async def async_select_option(self, option: str) -> None:
setting = self._device.settings[self.entity_description.key]
setting.value = self._option_to_number(option, setting.values)
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
@callback
def _handle_coordinator_update(self, update: bool = True) -> None:
@ -317,7 +317,7 @@ class HonSelectEntity(HonEntity, SelectEntity):
await self._device.commands[command].send()
if command != "settings":
self._device.sync_command(command, "settings")
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
@property
def available(self) -> bool:

View File

@ -18,7 +18,6 @@ from homeassistant.const import (
UnitOfEnergy,
UnitOfVolume,
UnitOfMass,
UnitOfPower,
UnitOfTime,
UnitOfTemperature,
)
@ -84,7 +83,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
name="Current Electricity Used",
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.POWER,
native_unit_of_measurement=UnitOfPower.KILO_WATT,
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
icon="mdi:lightning-bolt",
translation_key="energy_current",
),

View File

@ -447,7 +447,7 @@ class HonSwitchEntity(HonEntity, SwitchEntity):
setting.value = setting.max if isinstance(setting, HonParameterRange) else 1
self.async_write_ha_state()
await self._device.commands["settings"].send()
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
async def async_turn_off(self, **kwargs: Any) -> None:
setting = self._device.settings[f"settings.{self.entity_description.key}"]
@ -456,7 +456,7 @@ class HonSwitchEntity(HonEntity, SwitchEntity):
setting.value = setting.min if isinstance(setting, HonParameterRange) else 0
self.async_write_ha_state()
await self._device.commands["settings"].send()
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
@property
def available(self) -> bool:
@ -489,14 +489,14 @@ class HonControlSwitchEntity(HonEntity, SwitchEntity):
async def async_turn_on(self, **kwargs: Any) -> None:
self._device.sync_command(self.entity_description.turn_on_key, "settings")
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
await self._device.commands[self.entity_description.turn_on_key].send()
self._device.attributes[self.entity_description.key] = True
self.async_write_ha_state()
async def async_turn_off(self, **kwargs: Any) -> None:
self._device.sync_command(self.entity_description.turn_off_key, "settings")
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
await self._device.commands[self.entity_description.turn_off_key].send()
self._device.attributes[self.entity_description.key] = False
self.async_write_ha_state()
@ -541,7 +541,7 @@ class HonConfigSwitchEntity(HonEntity, SwitchEntity):
if type(setting) == HonParameter:
return
setting.value = setting.max if isinstance(setting, HonParameterRange) else "1"
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
self.async_write_ha_state()
async def async_turn_off(self, **kwargs: Any) -> None:
@ -549,7 +549,7 @@ class HonConfigSwitchEntity(HonEntity, SwitchEntity):
if type(setting) == HonParameter:
return
setting.value = setting.min if isinstance(setting, HonParameterRange) else "0"
self.async_write_ha_state()
self.coordinator.async_set_updated_data({})
self.async_write_ha_state()
@callback