ramses-rf 0.22.40__py3-none-any.whl → 0.51.2__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.
Files changed (71) hide show
  1. ramses_cli/__init__.py +18 -0
  2. ramses_cli/client.py +597 -0
  3. ramses_cli/debug.py +20 -0
  4. ramses_cli/discovery.py +405 -0
  5. ramses_cli/utils/cat_slow.py +17 -0
  6. ramses_cli/utils/convert.py +60 -0
  7. ramses_rf/__init__.py +31 -10
  8. ramses_rf/binding_fsm.py +787 -0
  9. ramses_rf/const.py +124 -105
  10. ramses_rf/database.py +297 -0
  11. ramses_rf/device/__init__.py +69 -39
  12. ramses_rf/device/base.py +187 -376
  13. ramses_rf/device/heat.py +540 -552
  14. ramses_rf/device/hvac.py +279 -171
  15. ramses_rf/dispatcher.py +153 -177
  16. ramses_rf/entity_base.py +478 -361
  17. ramses_rf/exceptions.py +82 -0
  18. ramses_rf/gateway.py +377 -513
  19. ramses_rf/helpers.py +57 -19
  20. ramses_rf/py.typed +0 -0
  21. ramses_rf/schemas.py +148 -194
  22. ramses_rf/system/__init__.py +16 -23
  23. ramses_rf/system/faultlog.py +363 -0
  24. ramses_rf/system/heat.py +295 -302
  25. ramses_rf/system/schedule.py +312 -198
  26. ramses_rf/system/zones.py +318 -238
  27. ramses_rf/version.py +2 -8
  28. ramses_rf-0.51.2.dist-info/METADATA +72 -0
  29. ramses_rf-0.51.2.dist-info/RECORD +55 -0
  30. {ramses_rf-0.22.40.dist-info → ramses_rf-0.51.2.dist-info}/WHEEL +1 -2
  31. ramses_rf-0.51.2.dist-info/entry_points.txt +2 -0
  32. {ramses_rf-0.22.40.dist-info → ramses_rf-0.51.2.dist-info/licenses}/LICENSE +1 -1
  33. ramses_tx/__init__.py +160 -0
  34. {ramses_rf/protocol → ramses_tx}/address.py +65 -59
  35. ramses_tx/command.py +1454 -0
  36. ramses_tx/const.py +903 -0
  37. ramses_tx/exceptions.py +92 -0
  38. {ramses_rf/protocol → ramses_tx}/fingerprints.py +56 -15
  39. {ramses_rf/protocol → ramses_tx}/frame.py +132 -131
  40. ramses_tx/gateway.py +338 -0
  41. ramses_tx/helpers.py +883 -0
  42. {ramses_rf/protocol → ramses_tx}/logger.py +67 -53
  43. {ramses_rf/protocol → ramses_tx}/message.py +155 -191
  44. ramses_tx/opentherm.py +1260 -0
  45. ramses_tx/packet.py +210 -0
  46. {ramses_rf/protocol → ramses_tx}/parsers.py +1266 -1003
  47. ramses_tx/protocol.py +801 -0
  48. ramses_tx/protocol_fsm.py +672 -0
  49. ramses_tx/py.typed +0 -0
  50. {ramses_rf/protocol → ramses_tx}/ramses.py +262 -185
  51. {ramses_rf/protocol → ramses_tx}/schemas.py +150 -133
  52. ramses_tx/transport.py +1471 -0
  53. ramses_tx/typed_dicts.py +492 -0
  54. ramses_tx/typing.py +181 -0
  55. ramses_tx/version.py +4 -0
  56. ramses_rf/discovery.py +0 -398
  57. ramses_rf/protocol/__init__.py +0 -59
  58. ramses_rf/protocol/backports.py +0 -42
  59. ramses_rf/protocol/command.py +0 -1576
  60. ramses_rf/protocol/const.py +0 -697
  61. ramses_rf/protocol/exceptions.py +0 -111
  62. ramses_rf/protocol/helpers.py +0 -390
  63. ramses_rf/protocol/opentherm.py +0 -1170
  64. ramses_rf/protocol/packet.py +0 -235
  65. ramses_rf/protocol/protocol.py +0 -613
  66. ramses_rf/protocol/transport.py +0 -1011
  67. ramses_rf/protocol/version.py +0 -10
  68. ramses_rf/system/hvac.py +0 -82
  69. ramses_rf-0.22.40.dist-info/METADATA +0 -64
  70. ramses_rf-0.22.40.dist-info/RECORD +0 -42
  71. ramses_rf-0.22.40.dist-info/top_level.txt +0 -1
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env python3
2
+ """RAMSES RF - exceptions above the packet/protocol/transport layer."""
3
+
4
+ from __future__ import annotations
5
+
6
+ from ramses_tx.exceptions import (
7
+ PacketAddrSetInvalid as PacketAddrSetInvalid,
8
+ PacketInvalid as PacketInvalid,
9
+ PacketPayloadInvalid as PacketPayloadInvalid,
10
+ ProtocolError as ProtocolError,
11
+ RamsesException as RamsesException,
12
+ )
13
+
14
+
15
+ class _RamsesUpperError(RamsesException):
16
+ """A failure in the upper layer (state/schema, gateway, bindings, schedule)."""
17
+
18
+
19
+ ########################################################################################
20
+ # Errors above the protocol/transport layer, incl. message processing, state & schema
21
+
22
+
23
+ class BindingError(_RamsesUpperError):
24
+ """An error occurred when binding."""
25
+
26
+
27
+ class BindingFsmError(BindingError):
28
+ """The binding FSM was/became inconsistent (this shouldn't happen)."""
29
+
30
+
31
+ class BindingFlowFailed(BindingError):
32
+ """The binding failed due to a timeout or retry limit being exceeded."""
33
+
34
+
35
+ ########################################################################################
36
+ # Errors above the protocol/transport layer, incl. message processing, state & schema
37
+
38
+
39
+ class ScheduleError(_RamsesUpperError):
40
+ """An error occurred when getting/setting a schedule."""
41
+
42
+
43
+ class ScheduleFsmError(ScheduleError):
44
+ """The schedule FSM was/became inconsistent (this shouldn't happen)."""
45
+
46
+
47
+ class ScheduleFlowError(ScheduleError):
48
+ """The get/set schedule failed due to a timeout or retry limit being exceeded."""
49
+
50
+
51
+ ########################################################################################
52
+ # Errors above the protocol/transport layer, incl. message processing, state & schema
53
+
54
+
55
+ class ExpiredCallbackError(_RamsesUpperError):
56
+ """Raised when the callback has expired."""
57
+
58
+
59
+ class SystemInconsistent(_RamsesUpperError):
60
+ """Base class for exceptions in this module."""
61
+
62
+
63
+ class SystemSchemaInconsistent(SystemInconsistent):
64
+ """Raised when the system state (usu. schema) is inconsistent."""
65
+
66
+ HINT = "try restarting the client library"
67
+
68
+
69
+ class DeviceNotFaked(SystemInconsistent):
70
+ """Raised when the device does not have faking enabled."""
71
+
72
+ HINT = "faking is configured in the known_list"
73
+
74
+
75
+ class ForeignGatewayError(_RamsesUpperError):
76
+ """Raised when a foreign gateway is detected.
77
+
78
+ These devices may not be gateways (set a class), or belong to a neighbour (exclude
79
+ via block_list/known_list), or should be allowed (known_list).
80
+ """
81
+
82
+ HINT = "consider enforcing a known_list"