aiohomematic 2025.10.6__py3-none-any.whl → 2025.10.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aiohomematic might be problematic. Click here for more details.
- aiohomematic/central/rpc_server.py +7 -5
- aiohomematic/const.py +1 -1
- {aiohomematic-2025.10.6.dist-info → aiohomematic-2025.10.7.dist-info}/METADATA +1 -1
- {aiohomematic-2025.10.6.dist-info → aiohomematic-2025.10.7.dist-info}/RECORD +7 -7
- {aiohomematic-2025.10.6.dist-info → aiohomematic-2025.10.7.dist-info}/WHEEL +0 -0
- {aiohomematic-2025.10.6.dist-info → aiohomematic-2025.10.7.dist-info}/licenses/LICENSE +0 -0
- {aiohomematic-2025.10.6.dist-info → aiohomematic-2025.10.7.dist-info}/top_level.txt +0 -0
|
@@ -12,7 +12,7 @@ from __future__ import annotations
|
|
|
12
12
|
import contextlib
|
|
13
13
|
import logging
|
|
14
14
|
import threading
|
|
15
|
-
from typing import Any, Final
|
|
15
|
+
from typing import Any, Final, cast
|
|
16
16
|
from xmlrpc.server import SimpleXMLRPCRequestHandler, SimpleXMLRPCServer
|
|
17
17
|
|
|
18
18
|
from aiohomematic import central as hmcu
|
|
@@ -175,7 +175,7 @@ class RpcServer(threading.Thread):
|
|
|
175
175
|
"""RPC server thread to handle messages from the backend."""
|
|
176
176
|
|
|
177
177
|
_initialized: bool = False
|
|
178
|
-
_instances: Final[dict[tuple[str, int],
|
|
178
|
+
_instances: Final[dict[tuple[str, int], RpcServer]] = {}
|
|
179
179
|
|
|
180
180
|
def __init__(
|
|
181
181
|
self,
|
|
@@ -190,9 +190,10 @@ class RpcServer(threading.Thread):
|
|
|
190
190
|
self._listen_ip_addr: Final = ip_addr
|
|
191
191
|
self._listen_port: Final[int] = find_free_port() if port == PORT_ANY else port
|
|
192
192
|
self._address: Final[tuple[str, int]] = (ip_addr, self._listen_port)
|
|
193
|
-
threading.Thread.__init__(self, name=f"RpcServer {ip_addr}:{self._listen_port}")
|
|
194
193
|
self._centrals: Final[dict[str, hmcu.CentralUnit]] = {}
|
|
195
194
|
self._simple_rpc_server: SimpleXMLRPCServer
|
|
195
|
+
self._instances[self._address] = self
|
|
196
|
+
threading.Thread.__init__(self, name=f"RpcServer {ip_addr}:{self._listen_port}")
|
|
196
197
|
|
|
197
198
|
def run(self) -> None:
|
|
198
199
|
"""Run the RPC-Server thread."""
|
|
@@ -266,8 +267,9 @@ class XmlRpcServer(RpcServer):
|
|
|
266
267
|
) -> None:
|
|
267
268
|
"""Init XmlRPC server."""
|
|
268
269
|
|
|
270
|
+
if self._initialized:
|
|
271
|
+
return
|
|
269
272
|
super().__init__(ip_addr=ip_addr, port=port)
|
|
270
|
-
self._instances[self._address] = self
|
|
271
273
|
self._simple_rpc_server = HomematicXMLRPCServer(
|
|
272
274
|
addr=self._address,
|
|
273
275
|
requestHandler=RequestHandler,
|
|
@@ -283,7 +285,7 @@ class XmlRpcServer(RpcServer):
|
|
|
283
285
|
if (rpc := cls._instances.get((ip_addr, port))) is None:
|
|
284
286
|
_LOGGER.debug("Creating XmlRpc server")
|
|
285
287
|
return super().__new__(cls)
|
|
286
|
-
return rpc
|
|
288
|
+
return cast(XmlRpcServer, rpc)
|
|
287
289
|
|
|
288
290
|
|
|
289
291
|
def create_xml_rpc_server(*, ip_addr: str = IP_ANY_V4, port: int = PORT_ANY) -> XmlRpcServer:
|
aiohomematic/const.py
CHANGED
|
@@ -19,7 +19,7 @@ import sys
|
|
|
19
19
|
from types import MappingProxyType
|
|
20
20
|
from typing import Any, Final, NamedTuple, Required, TypeAlias, TypedDict
|
|
21
21
|
|
|
22
|
-
VERSION: Final = "2025.10.
|
|
22
|
+
VERSION: Final = "2025.10.7"
|
|
23
23
|
|
|
24
24
|
# Detect test speedup mode via environment
|
|
25
25
|
_TEST_SPEEDUP: Final = (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiohomematic
|
|
3
|
-
Version: 2025.10.
|
|
3
|
+
Version: 2025.10.7
|
|
4
4
|
Summary: Homematic interface for Home Assistant running on Python 3.
|
|
5
5
|
Home-page: https://github.com/sukramj/aiohomematic
|
|
6
6
|
Author-email: SukramJ <sukramj@icloud.com>, Daniel Perna <danielperna84@gmail.com>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
aiohomematic/__init__.py,sha256=ngULK_anZQwwUUCVcberBdVjguYfboiuG9VoueKy9fA,2283
|
|
2
2
|
aiohomematic/async_support.py,sha256=BeNKaDrFsRA5-_uAFzmyyKPqlImfSs58C22Nqd5dZAg,7887
|
|
3
|
-
aiohomematic/const.py,sha256=
|
|
3
|
+
aiohomematic/const.py,sha256=0akDDWSDmPgfp-ynHluHHIKL3_1RamHINEec2jE9qC0,26643
|
|
4
4
|
aiohomematic/context.py,sha256=M7gkA7KFT0dp35gzGz2dzKVXu1PP0sAnepgLlmjyRS4,451
|
|
5
5
|
aiohomematic/converter.py,sha256=gaNHe-WEiBStZMuuRz9iGn3Mo_CGz1bjgLtlYBJJAko,3624
|
|
6
6
|
aiohomematic/decorators.py,sha256=M4n_VSyqmsUgQQQv_-3JWQxYPbS6KEkhCS8OzAfaVKo,11060
|
|
@@ -16,7 +16,7 @@ aiohomematic/caches/persistent.py,sha256=xUMjvu5Vthz9W0LLllSbcqTADZvVV025b4VnPzr
|
|
|
16
16
|
aiohomematic/caches/visibility.py,sha256=8lTO-jfAUzd90atUOK8rKMrzRa__m083RAoEovg0Q0o,31676
|
|
17
17
|
aiohomematic/central/__init__.py,sha256=_ft-2HXfn0pF_LTrNyV_mZ7cHkHuRgeprBJZx5MlK0I,92659
|
|
18
18
|
aiohomematic/central/decorators.py,sha256=NUMSsQ_Or6gno4LzagrNMXeBtmbBbYyoIlMI0TFp1_E,6908
|
|
19
|
-
aiohomematic/central/rpc_server.py,sha256=
|
|
19
|
+
aiohomematic/central/rpc_server.py,sha256=wf2KG-cj_wIdgfRHY3GIFFzOenJbz8MfUGLdF1drd3k,10971
|
|
20
20
|
aiohomematic/client/__init__.py,sha256=w7ns0JZNroKNy9Yw1YM1ssxhPwXUoVNpPo5RLAbgK7E,73857
|
|
21
21
|
aiohomematic/client/_rpc_errors.py,sha256=-NPtGvkQPJ4V2clDxv1tKy09M9JZm61pUCeki9DDh6s,2984
|
|
22
22
|
aiohomematic/client/json_rpc.py,sha256=7p8j6uhS0y2LuJVtobQqwtpOA_AsC5HqEdGB0T8ZSu4,50177
|
|
@@ -69,10 +69,10 @@ aiohomematic/rega_scripts/get_serial.fn,sha256=t1oeo-sB_EuVeiY24PLcxFSkdQVgEWGXz
|
|
|
69
69
|
aiohomematic/rega_scripts/get_system_variable_descriptions.fn,sha256=UKXvC0_5lSApdQ2atJc0E5Stj5Zt3lqh0EcliokYu2c,849
|
|
70
70
|
aiohomematic/rega_scripts/set_program_state.fn,sha256=0bnv7lUj8FMjDZBz325tDVP61m04cHjVj4kIOnUUgpY,279
|
|
71
71
|
aiohomematic/rega_scripts/set_system_variable.fn,sha256=sTmr7vkPTPnPkor5cnLKlDvfsYRbGO1iq2z_2pMXq5E,383
|
|
72
|
-
aiohomematic-2025.10.
|
|
72
|
+
aiohomematic-2025.10.7.dist-info/licenses/LICENSE,sha256=q-B0xpREuZuvKsmk3_iyVZqvZ-vJcWmzMZpeAd0RqtQ,1083
|
|
73
73
|
aiohomematic_support/__init__.py,sha256=_0YtF4lTdC_k6-zrM2IefI0u0LMr_WA61gXAyeGLgbY,66
|
|
74
74
|
aiohomematic_support/client_local.py,sha256=nFeYkoX_EXXIwbrpL_5peYQG-934D0ASN6kflYp0_4I,12819
|
|
75
|
-
aiohomematic-2025.10.
|
|
76
|
-
aiohomematic-2025.10.
|
|
77
|
-
aiohomematic-2025.10.
|
|
78
|
-
aiohomematic-2025.10.
|
|
75
|
+
aiohomematic-2025.10.7.dist-info/METADATA,sha256=EP3Y37kiLdfx6DP4M988pY_gDoL3lKF_9LE3miXFxro,7603
|
|
76
|
+
aiohomematic-2025.10.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
77
|
+
aiohomematic-2025.10.7.dist-info/top_level.txt,sha256=5TDRlUWQPThIUwQjOj--aUo4UA-ow4m0sNhnoCBi5n8,34
|
|
78
|
+
aiohomematic-2025.10.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|