Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
7a5c99c167 | |||
7bc9e718a0 | |||
d4e5793186 | |||
e9f2bb9f4f | |||
ea81e2891f | |||
c71f8f17f5 | |||
27d974abba |
@ -7,10 +7,10 @@ class Appliance(ApplianceBase):
|
|||||||
def attributes(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
def attributes(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||||
data = super().attributes(data)
|
data = super().attributes(data)
|
||||||
if data.get("lastConnEvent", {}).get("category", "") == "DISCONNECTED":
|
if data.get("lastConnEvent", {}).get("category", "") == "DISCONNECTED":
|
||||||
data["parameters"]["temp"].value = "0"
|
data["parameters"]["temp"].value = 0
|
||||||
data["parameters"]["onOffStatus"].value = "0"
|
data["parameters"]["onOffStatus"].value = 0
|
||||||
data["parameters"]["remoteCtrValid"].value = "0"
|
data["parameters"]["remoteCtrValid"].value = 0
|
||||||
data["parameters"]["remainingTimeMM"].value = "0"
|
data["parameters"]["remainingTimeMM"].value = 0
|
||||||
|
|
||||||
data["active"] = data["parameters"]["onOffStatus"] == "1"
|
data["active"] = data["parameters"]["onOffStatus"].value == 1
|
||||||
return data
|
return data
|
||||||
|
@ -7,7 +7,7 @@ from pyhon.parameter.base import HonParameter
|
|||||||
class Appliance(ApplianceBase):
|
class Appliance(ApplianceBase):
|
||||||
def attributes(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
def attributes(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||||
data = super().attributes(data)
|
data = super().attributes(data)
|
||||||
parameter = data["parameters"]["onOffStatus"]
|
parameter = data.get("parameters", {}).get("onOffStatus")
|
||||||
is_class = isinstance(parameter, HonParameter)
|
is_class = isinstance(parameter, HonParameter)
|
||||||
data["active"] = parameter.value == 1 if is_class else parameter == 1
|
data["active"] = parameter.value == 1 if is_class else parameter == 1
|
||||||
return data
|
return data
|
||||||
|
@ -91,6 +91,9 @@ class HonCommand:
|
|||||||
|
|
||||||
def _load_parameters(self, attributes: Dict[str, Dict[str, Any]]) -> None:
|
def _load_parameters(self, attributes: Dict[str, Dict[str, Any]]) -> None:
|
||||||
for key, items in attributes.items():
|
for key, items in attributes.items():
|
||||||
|
if not isinstance(items, dict):
|
||||||
|
_LOGGER.info("Loading Attributes - Skipping %s", str(items))
|
||||||
|
continue
|
||||||
for name, data in items.items():
|
for name, data in items.items():
|
||||||
self._create_parameters(data, name, key)
|
self._create_parameters(data, name, key)
|
||||||
for rule in self._rules:
|
for rule in self._rules:
|
||||||
@ -144,7 +147,11 @@ class HonCommand:
|
|||||||
self.appliance.sync_command_to_params(self.name)
|
self.appliance.sync_command_to_params(self.name)
|
||||||
try:
|
try:
|
||||||
result = await self.api.send_command(
|
result = await self.api.send_command(
|
||||||
self._appliance, self._name, params, ancillary_params
|
self._appliance,
|
||||||
|
self._name,
|
||||||
|
params,
|
||||||
|
ancillary_params,
|
||||||
|
self._category_name,
|
||||||
)
|
)
|
||||||
if not result:
|
if not result:
|
||||||
_LOGGER.error(result)
|
_LOGGER.error(result)
|
||||||
|
@ -190,6 +190,7 @@ class HonAPI:
|
|||||||
command: str,
|
command: str,
|
||||||
parameters: Dict[str, Any],
|
parameters: Dict[str, Any],
|
||||||
ancillary_parameters: Dict[str, Any],
|
ancillary_parameters: Dict[str, Any],
|
||||||
|
program_name: str = "",
|
||||||
) -> bool:
|
) -> bool:
|
||||||
now: str = datetime.utcnow().isoformat()
|
now: str = datetime.utcnow().isoformat()
|
||||||
data: Dict[str, Any] = {
|
data: Dict[str, Any] = {
|
||||||
@ -208,6 +209,8 @@ class HonAPI:
|
|||||||
"parameters": parameters,
|
"parameters": parameters,
|
||||||
"applianceType": appliance.appliance_type,
|
"applianceType": appliance.appliance_type,
|
||||||
}
|
}
|
||||||
|
if command == "startProgram" and program_name:
|
||||||
|
data.update({"programName": program_name.upper()})
|
||||||
url: str = f"{const.API_URL}/commands/v1/send"
|
url: str = f"{const.API_URL}/commands/v1/send"
|
||||||
async with self._hon.post(url, json=data) as response:
|
async with self._hon.post(url, json=data) as response:
|
||||||
json_data: Dict[str, Any] = await response.json()
|
json_data: Dict[str, Any] = await response.json()
|
||||||
@ -319,6 +322,12 @@ class TestAPI(HonAPI):
|
|||||||
command: str,
|
command: str,
|
||||||
parameters: Dict[str, Any],
|
parameters: Dict[str, Any],
|
||||||
ancillary_parameters: Dict[str, Any],
|
ancillary_parameters: Dict[str, Any],
|
||||||
|
program_name: str = "",
|
||||||
) -> bool:
|
) -> bool:
|
||||||
_LOGGER.info("%s - %s", str(parameters), str(ancillary_parameters))
|
_LOGGER.info(
|
||||||
|
"%s - %s - %s",
|
||||||
|
str(parameters),
|
||||||
|
str(ancillary_parameters),
|
||||||
|
str(program_name),
|
||||||
|
)
|
||||||
return True
|
return True
|
||||||
|
@ -6,7 +6,7 @@ CLIENT_ID = (
|
|||||||
"3MVG9QDx8IX8nP5T2Ha8ofvlmjLZl5L_gvfbT9."
|
"3MVG9QDx8IX8nP5T2Ha8ofvlmjLZl5L_gvfbT9."
|
||||||
"HJvpHGKoAS_dcMN8LYpTSYeVFCraUnV.2Ag1Ki7m4znVO6"
|
"HJvpHGKoAS_dcMN8LYpTSYeVFCraUnV.2Ag1Ki7m4znVO6"
|
||||||
)
|
)
|
||||||
APP_VERSION = "2.3.5"
|
APP_VERSION = "2.4.7"
|
||||||
OS_VERSION = 31
|
OS_VERSION = 31
|
||||||
OS = "android"
|
OS = "android"
|
||||||
DEVICE_MODEL = "exynos9820"
|
DEVICE_MODEL = "exynos9820"
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
aiohttp~=3.9
|
aiohttp>=3.8
|
||||||
yarl~=1.9
|
yarl>=1.8
|
||||||
typing-extensions~=4.8
|
typing-extensions>=4.8
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
black~=23.11
|
black>=22.12
|
||||||
flake8~=6.1
|
flake8>=6.0
|
||||||
mypy~=1.7
|
mypy>=0.991
|
||||||
pylint~=3.0
|
pylint>=2.15
|
||||||
setuptools~=68.2
|
setuptools>=62.3
|
||||||
|
4
setup.py
4
setup.py
@ -7,7 +7,7 @@ with open("README.md", "r", encoding="utf-8") as f:
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="pyhOn",
|
name="pyhOn",
|
||||||
version="0.15.11",
|
version="0.15.15",
|
||||||
author="Andre Basche",
|
author="Andre Basche",
|
||||||
description="Control hOn devices with python",
|
description="Control hOn devices with python",
|
||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
@ -21,7 +21,7 @@ setup(
|
|||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
python_requires=">=3.10",
|
python_requires=">=3.10",
|
||||||
install_requires=["aiohttp~=3.9", "typing-extensions~=4.8", "yarl~=1.9"],
|
install_requires=["aiohttp>=3.8", "typing-extensions>=4.8", "yarl>=1.8"],
|
||||||
classifiers=[
|
classifiers=[
|
||||||
"Development Status :: 4 - Beta",
|
"Development Status :: 4 - Beta",
|
||||||
"Environment :: Console",
|
"Environment :: Console",
|
||||||
|
Reference in New Issue
Block a user