Skip to content

Commit

Permalink
add support for perla one
Browse files Browse the repository at this point in the history
  • Loading branch information
dkarv committed Jan 19, 2025
1 parent 220ef55 commit 76cc3f8
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 44 deletions.
4 changes: 2 additions & 2 deletions custom_components/bwt_perla/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
"integration_type": "device",
"iot_class": "local_polling",
"issue_tracker": "https://github.com/dkarv/ha-bwt-perla/issues",
"requirements": ["bwt_api==0.4.2"],
"requirements": ["bwt_api==0.5.0"],
"ssdp": [],
"version": "0.5.4",
"version": "0.5.5",
"zeroconf": []
}
88 changes: 46 additions & 42 deletions custom_components/bwt_perla/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,23 +77,24 @@ async def async_setup_entry(
# and start a config flow with SOURCE_REAUTH (async_step_reauth)
raise ConfigEntryAuthFailed from e

columns = coordinator.data.columns
model_suffix = "Duplex" if columns == 2 else "One"
device_info = DeviceInfo(
configuration_url=None,
connections=set(),
entry_type=None,
hw_version=None,
identifiers={(DOMAIN, config_entry.entry_id)},
manufacturer="BWT",
model="Perla",
model=f'Perla {model_suffix}',
name=config_entry.title,
serial_number=None,
suggested_area=None,
sw_version=coordinator.data.firmware_version,
via_device=None,
)

async_add_entities(
[
entities = [
TotalOutputSensor(coordinator, device_info, config_entry.entry_id),
ErrorSensor(coordinator, device_info, config_entry.entry_id),
WarningSensor(coordinator, device_info, config_entry.entry_id),
Expand Down Expand Up @@ -159,40 +160,6 @@ async def async_setup_entry(
UnitOfMass.GRAMS,
_MASS,
),
DeviceClassSensor(
coordinator,
device_info,
config_entry.entry_id,
"last_regeneration_1",
lambda data: data.regeneration_last_1,
SensorDeviceClass.TIMESTAMP,
_TIME,
),
DeviceClassSensor(
coordinator,
device_info,
config_entry.entry_id,
"last_regeneration_2",
lambda data: data.regeneration_last_2,
SensorDeviceClass.TIMESTAMP,
_TIME,
),
SimpleSensor(
coordinator,
device_info,
config_entry.entry_id,
"counter_regeneration_1",
lambda data: data.regeneration_count_1,
_COUNTER,
),
SimpleSensor(
coordinator,
device_info,
config_entry.entry_id,
"counter_regeneration_2",
lambda data: data.regeneration_count_2,
_COUNTER,
),
HolidayModeSensor(coordinator, device_info, config_entry.entry_id),
HolidayStartSensor(coordinator, device_info, config_entry.entry_id),
CalculatedWaterSensor(
Expand All @@ -219,23 +186,60 @@ async def async_setup_entry(
lambda data: data.treated_year,
_YEAR,
),
CurrentFlowSensor(coordinator, device_info, config_entry.entry_id),
CalculatedCapacitySensor(
coordinator,
device_info,
config_entry.entry_id,
"capacity_1",
lambda data: data.capacity_1,
),
CalculatedCapacitySensor(
DeviceClassSensor(
coordinator,
device_info,
config_entry.entry_id,
"capacity_2",
lambda data: data.capacity_2,
"last_regeneration_1",
lambda data: data.regeneration_last_1,
SensorDeviceClass.TIMESTAMP,
_TIME,
),
SimpleSensor(
coordinator,
device_info,
config_entry.entry_id,
"counter_regeneration_1",
lambda data: data.regeneration_count_1,
_COUNTER,
),
CurrentFlowSensor(coordinator, device_info, config_entry.entry_id),
]
)

if columns == 2:
entities.append(CalculatedCapacitySensor(
coordinator,
device_info,
config_entry.entry_id,
"capacity_2",
lambda data: data.capacity_2,
))
entities.append(DeviceClassSensor(
coordinator,
device_info,
config_entry.entry_id,
"last_regeneration_2",
lambda data: data.regeneration_last_2,
SensorDeviceClass.TIMESTAMP,
_TIME,
))
entities.append(SimpleSensor(
coordinator,
device_info,
config_entry.entry_id,
"counter_regeneration_2",
lambda data: data.regeneration_count_2,
_COUNTER,
))

async_add_entities(entities)


class BwtEntity(CoordinatorEntity[BwtCoordinator]):
Expand Down

0 comments on commit 76cc3f8

Please sign in to comment.