Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
c25e898b42 | |||
55966dd52f |
@ -32,7 +32,7 @@ class HonAppliance:
|
||||
self._api: Optional[HonAPI] = api
|
||||
self._appliance_model: Dict = {}
|
||||
|
||||
self._commands: Dict = {}
|
||||
self._commands: Dict[str, HonCommand] = {}
|
||||
self._statistics: Dict = {}
|
||||
self._attributes: Dict = {}
|
||||
self._zone: int = zone
|
||||
@ -112,7 +112,7 @@ class HonAppliance:
|
||||
return self._appliance_model.get("options", {})
|
||||
|
||||
@property
|
||||
def commands(self):
|
||||
def commands(self) -> Dict[str, HonCommand]:
|
||||
return self._commands
|
||||
|
||||
@property
|
||||
@ -329,7 +329,9 @@ class HonAppliance:
|
||||
self.attributes["parameters"][key] = str(new.intern_value)
|
||||
|
||||
def sync_command(self, main, target=None) -> None:
|
||||
base: HonCommand = self.commands.get(main)
|
||||
base: Optional[HonCommand] = self.commands.get(main)
|
||||
if not base:
|
||||
return
|
||||
for command, data in self.commands.items():
|
||||
if command == main or target and command not in target:
|
||||
continue
|
||||
|
@ -4,7 +4,7 @@ from pyhon.appliances.base import ApplianceBase
|
||||
class Appliance(ApplianceBase):
|
||||
def attributes(self, data):
|
||||
data = super().attributes(data)
|
||||
if data["lastConnEvent"]["category"] == "DISCONNECTED":
|
||||
if data.get("lastConnEvent", {}).get("category", "") == "DISCONNECTED":
|
||||
data["parameters"]["machMode"] = "0"
|
||||
data["active"] = bool(data.get("activity"))
|
||||
return data
|
||||
|
@ -4,7 +4,7 @@ from pyhon.appliances.base import ApplianceBase
|
||||
class Appliance(ApplianceBase):
|
||||
def attributes(self, data):
|
||||
data = super().attributes(data)
|
||||
if data["lastConnEvent"]["category"] == "DISCONNECTED":
|
||||
if data.get("lastConnEvent", {}).get("category", "") == "DISCONNECTED":
|
||||
data["parameters"]["temp"] = "0"
|
||||
data["parameters"]["onOffStatus"] = "0"
|
||||
data["parameters"]["remoteCtrValid"] = "0"
|
||||
|
@ -5,7 +5,7 @@ from pyhon.parameter.fixed import HonParameterFixed
|
||||
class Appliance(ApplianceBase):
|
||||
def attributes(self, data):
|
||||
data = super().attributes(data)
|
||||
if data["lastConnEvent"]["category"] == "DISCONNECTED":
|
||||
if data.get("lastConnEvent", {}).get("category", "") == "DISCONNECTED":
|
||||
data["parameters"]["machMode"] = "0"
|
||||
data["active"] = bool(data.get("activity"))
|
||||
data["pause"] = data["parameters"]["machMode"] == "3"
|
||||
|
@ -4,7 +4,7 @@ from pyhon.appliances.base import ApplianceBase
|
||||
class Appliance(ApplianceBase):
|
||||
def attributes(self, data):
|
||||
data = super().attributes(data)
|
||||
if data["lastConnEvent"]["category"] == "DISCONNECTED":
|
||||
if data.get("lastConnEvent", {}).get("category", "") == "DISCONNECTED":
|
||||
data["parameters"]["machMode"] = "0"
|
||||
data["active"] = bool(data.get("activity"))
|
||||
data["pause"] = data["parameters"]["machMode"] == "3"
|
||||
|
@ -4,7 +4,7 @@ from pyhon.appliances.base import ApplianceBase
|
||||
class Appliance(ApplianceBase):
|
||||
def attributes(self, data):
|
||||
data = super().attributes(data)
|
||||
if data["lastConnEvent"]["category"] == "DISCONNECTED":
|
||||
if data.get("lastConnEvent", {}).get("category", "") == "DISCONNECTED":
|
||||
data["parameters"]["machMode"] = "0"
|
||||
data["active"] = bool(data.get("activity"))
|
||||
data["pause"] = data["parameters"]["machMode"] == "3"
|
||||
|
@ -2,7 +2,7 @@ import logging
|
||||
from typing import Optional, Dict, Any, List, TYPE_CHECKING, Union
|
||||
|
||||
from pyhon import exceptions
|
||||
from pyhon.exceptions import ApiError
|
||||
from pyhon.exceptions import ApiError, NoAuthenticationException
|
||||
from pyhon.parameter.base import HonParameter
|
||||
from pyhon.parameter.enum import HonParameterEnum
|
||||
from pyhon.parameter.fixed import HonParameterFixed
|
||||
@ -113,11 +113,16 @@ class HonCommand:
|
||||
ancillary_params = self.parameter_groups.get("ancillaryParameters", {})
|
||||
ancillary_params.pop("programRules", None)
|
||||
self.appliance.sync_to_params(self.name)
|
||||
try:
|
||||
result = await self.api.send_command(
|
||||
self._appliance, self._name, params, ancillary_params
|
||||
)
|
||||
if not result:
|
||||
_LOGGER.error(result)
|
||||
raise ApiError("Can't send command")
|
||||
except NoAuthenticationException:
|
||||
_LOGGER.error("No Authentication")
|
||||
return False
|
||||
return result
|
||||
|
||||
@property
|
||||
|
Reference in New Issue
Block a user