Skip to content

Commit 7e59f76

Browse files
committed
subscribe to updates
1 parent f108005 commit 7e59f76

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

pyhon/appliance.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import re
44
from datetime import datetime, timedelta
55
from pathlib import Path
6-
from typing import Optional, Dict, Any, TYPE_CHECKING, List, TypeVar, overload
6+
from typing import Optional, Dict, Any, TYPE_CHECKING, List, TypeVar, overload, Callable
77

88
from pyhon import diagnose, exceptions
99
from pyhon.appliances.base import ApplianceBase
@@ -43,6 +43,7 @@ def __init__(
4343
self._additional_data: Dict[str, Any] = {}
4444
self._last_update: Optional[datetime] = None
4545
self._default_setting = HonParameter("", {}, "")
46+
self._notify_function: Optional[Callable[[Any], None]] = None
4647

4748
try:
4849
self._extra: Optional[ApplianceBase] = importlib.import_module(
@@ -312,3 +313,11 @@ def sync_parameter(self, main: Parameter, target: Parameter) -> None:
312313
elif isinstance(target, HonParameterEnum):
313314
target.values = main.values
314315
target.value = main.value
316+
317+
def subscribe(self, notify_function: Callable[[Any], None]) -> None:
318+
self._notify_function = notify_function
319+
320+
def notify(self) -> None:
321+
self.sync_params_to_command("settings")
322+
if self._notify_function:
323+
self._notify_function(self.attributes)

pyhon/connection/mqtt.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,15 @@
1717

1818

1919
def on_lifecycle_stopped(lifecycle_stopped_data: mqtt5.LifecycleStoppedData) -> None:
20-
print("Lifecycle Stopped")
21-
print(lifecycle_stopped_data)
20+
_LOGGER.info("Lifecycle Stopped: %s", str(lifecycle_stopped_data))
2221

2322

2423
def on_lifecycle_connection_success(
2524
lifecycle_connect_success_data: mqtt5.LifecycleConnectSuccessData,
2625
) -> None:
27-
print("Lifecycle Connection Success")
28-
print(lifecycle_connect_success_data.connack_packet)
29-
print(lifecycle_connect_success_data.negotiated_settings)
26+
_LOGGER.info(
27+
"Lifecycle Connection Success: %s", str(lifecycle_connect_success_data)
28+
)
3029

3130

3231
def on_publish_received(data: mqtt5.PublishReceivedData) -> None:
@@ -40,9 +39,10 @@ def on_publish_received(data: mqtt5.PublishReceivedData) -> None:
4039
)
4140
for parameter in payload["parameters"]:
4241
appliance.attributes["parameters"][parameter["parName"]].update(parameter)
43-
print(parameter)
42+
appliance.notify()
43+
_LOGGER.debug("%s - %s", topic, payload)
4444
else:
45-
print(topic, payload)
45+
_LOGGER.debug("%s - %s", topic, payload)
4646

4747

4848
async def create_mqtt_client(api: "HonAPI") -> mqtt5.Client:
@@ -64,7 +64,7 @@ async def create_mqtt_client(api: "HonAPI") -> mqtt5.Client:
6464
def subscribe(client: mqtt5.Client, appliance: HonAppliance) -> None:
6565
for topic in appliance.info.get("topics", {}).get("subscribe", []):
6666
client.subscribe(mqtt5.SubscribePacket([mqtt5.Subscription(topic)])).result(10)
67-
_LOGGER.error("Subscribed to topic %s", topic)
67+
_LOGGER.info("Subscribed to topic %s", topic)
6868

6969

7070
async def start(api: "HonAPI", app: list[HonAppliance]) -> mqtt5.Client:

0 commit comments

Comments
 (0)