Skip to content

Commit

Permalink
Added High Water Alarm check
Browse files Browse the repository at this point in the history
  • Loading branch information
Gabriel Wieskamp committed Feb 23, 2024
1 parent 1e8f7ba commit 0cf24b1
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 18 deletions.
4 changes: 4 additions & 0 deletions custom_components/glentronics/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import aiohttp
import async_timeout

from .const import LOGGER

API_URL = "https://api.glentronicsconnect.com"
API_USERNAME = "Glentronics"
API_PASSWORD = "API201622@"
Expand Down Expand Up @@ -91,6 +93,8 @@ async def async_get_data(self) -> any:
data[proxy] = details.get("StatusList")[0]
data[proxy]["StatusFields"] = details.get("StatusFields")
data[proxy]["Proxy"] = details.get("Location")
data[proxy]["HasWaterAlarm"] = details.get("UsedAsHighWaterAlarm")
LOGGER.debug(data)
return data

async def _api_wrapper(
Expand Down
51 changes: 35 additions & 16 deletions custom_components/glentronics/binary_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,12 @@

ENTITY_DESCRIPTIONS = (
BinarySensorEntityDescription(
key="Alarm Status",
key="Alarm Status (USB)",
translation_key="FieldStatusOK",
name="Status",
icon="mdi:usb",
device_class=BinarySensorDeviceClass.PROBLEM,
),
BinarySensorEntityDescription(
key="High Water Detector Status",
translation_key="FieldStatusOK",
name="High Water",
icon="mdi:home-flood",
device_class=BinarySensorDeviceClass.MOISTURE,
),
BinarySensorEntityDescription(
key="WiFi Module Status",
translation_key="FieldStatusOK",
Expand All @@ -52,16 +45,42 @@

async def async_setup_entry(hass, entry, async_add_devices):
"""Set up the binary_sensor platform."""
devices = []
coordinator = hass.data[DOMAIN][entry.entry_id]
async_add_devices(
GlentronicsBinarySensor(
coordinator=coordinator,
entity_description=entity_description,
proxy=proxy,
for proxy in coordinator.data:
water_alarm = coordinator.data[proxy].get("HasWaterAlarm")
if water_alarm:
entity_description = BinarySensorEntityDescription(
key="High Water Detector Status",
translation_key="FieldStatusOK",
name="High Water",
icon="mdi:home-flood",
device_class=BinarySensorDeviceClass.MOISTURE,
)
else:
entity_description = BinarySensorEntityDescription(
key="Alarm Status (Remote Terminals)",
translation_key="FieldStatusOK",
name="Remote Terminals",
icon="mdi:chip",
device_class=BinarySensorDeviceClass.PROBLEM,
)
devices.append(
GlentronicsBinarySensor(
coordinator=coordinator,
entity_description=entity_description,
proxy=proxy,
)
)
for entity_description in ENTITY_DESCRIPTIONS
for proxy in coordinator.data
)
for entity_description in ENTITY_DESCRIPTIONS:
devices.append(
GlentronicsBinarySensor(
coordinator=coordinator,
entity_description=entity_description,
proxy=proxy,
)
)
async_add_devices(devices)


class GlentronicsBinarySensor(GlentronicsEntity, BinarySensorEntity):
Expand Down
2 changes: 1 addition & 1 deletion custom_components/glentronics/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"issue_tracker": "https://github.com/theOrakle/glentronics/issues",
"loggers": ["custom_components.glentronics"],
"requirements": [],
"version": "1.0.4",
"version": "1.0.5",
"dependencies": [],
"codeowners": ["@theOrakle"]
}
2 changes: 1 addition & 1 deletion hacs.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Glentronics",
"domains": ["binary_sensor", "sensor"],
"domains": ["binary_sensor"],
"homeassistant": "2023.1.0",
"iot_class": "Cloud Polling",
"render_readme": true
Expand Down

0 comments on commit 0cf24b1

Please sign in to comment.