Skip to content

Commit

Permalink
Read out version
Browse files Browse the repository at this point in the history
  • Loading branch information
Andre0512 committed Jun 29, 2023
1 parent 6519bef commit 60ed8b4
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 8 deletions.
11 changes: 8 additions & 3 deletions custom_components/hon/button.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import logging
from pathlib import Path

import pkg_resources
from homeassistant.components import persistent_notification
from homeassistant.components.button import ButtonEntityDescription, ButtonEntity
from homeassistant.config_entries import ConfigEntry
Expand Down Expand Up @@ -92,10 +91,14 @@ def __init__(self, hass, entry, device: HonAppliance) -> None:
self._attr_icon = "mdi:information"
self._attr_name = "Show Device Info"
self._attr_entity_category = EntityCategory.DIAGNOSTIC
if "beta" not in self.coordinator.info.hon_version:
self._attr_entity_registry_enabled_default = False

async def async_press(self) -> None:
pyhon_version = pkg_resources.get_distribution("pyhon").version
info = f"{self._device.diagnose}pyhOnVersion: {pyhon_version}"
versions = "versions:\n"
versions += f" hon: {self.coordinator.info.hon_version}\n"
versions += f" pyhOn: {self.coordinator.info.pyhon_version}\n"
info = f"{self._device.diagnose}{versions}"
title = f"{self._device.nick_name} Device Info"
persistent_notification.create(
self._hass, f"````\n```\n{info}\n```\n````", title
Expand All @@ -111,6 +114,8 @@ def __init__(self, hass, entry, device: HonAppliance) -> None:
self._attr_icon = "mdi:archive-arrow-down"
self._attr_name = "Create Data Archive"
self._attr_entity_category = EntityCategory.DIAGNOSTIC
if "beta" not in self.coordinator.info.hon_version:
self._attr_entity_registry_enabled_default = False

async def async_press(self) -> None:
path = Path(self._hass.config.config_dir) / "www"
Expand Down
37 changes: 34 additions & 3 deletions custom_components/hon/hon.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import json
import logging
from contextlib import suppress
from datetime import timedelta
from pathlib import Path

import pkg_resources
from homeassistant.core import callback
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
Expand Down Expand Up @@ -37,9 +40,7 @@ def device_info(self):
return DeviceInfo(
identifiers={(DOMAIN, self._device.unique_id)},
manufacturer=self._device.get("brand", ""),
name=self._device.nick_name
if self._device.nick_name
else self._device.model_name,
name=self._device.nick_name,
model=self._device.model_name,
sw_version=self._device.get("fwVersion", ""),
)
Expand All @@ -50,6 +51,31 @@ def _handle_coordinator_update(self, update: bool = True) -> None:
self.async_write_ha_state()


class HonInfo:
def __init__(self):
self._manifest = self._get_manifest()
self._hon_version = self._manifest.get("version", "")
self._pyhon_version = pkg_resources.get_distribution("pyhon").version

@staticmethod
def _get_manifest():
manifest = Path(__file__).parent / "manifest.json"
with open(manifest, "r", encoding="utf-8") as file:
return json.loads(file.read())

@property
def manifest(self):
return self._manifest

@property
def hon_version(self):
return self._hon_version

@property
def pyhon_version(self):
return self._pyhon_version


class HonCoordinator(DataUpdateCoordinator):
def __init__(self, hass, device: HonAppliance):
"""Initialize my coordinator."""
Expand All @@ -60,10 +86,15 @@ def __init__(self, hass, device: HonAppliance):
update_interval=timedelta(seconds=UPDATE_INTERVAL),
)
self._device = device
self._info = HonInfo()

async def _async_update_data(self):
await self._device.update()

@property
def info(self) -> HonInfo:
return self._info


def unique_entities(base_entities, new_entities):
result = list(base_entities)
Expand Down
4 changes: 2 additions & 2 deletions custom_components/hon/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"iot_class": "cloud_polling",
"issue_tracker": "https://github.com/Andre0512/hon/issues",
"requirements": [
"pyhOn==0.14.4"
"pyhOn==0.14.6"
],
"version": "0.9.0-beta.6"
"version": "0.9.0-beta.7"
}

0 comments on commit 60ed8b4

Please sign in to comment.