python-qube-heatpump 1.7.0__tar.gz → 1.8.0__tar.gz

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 (31) hide show
  1. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/PKG-INFO +1 -1
  2. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/pyproject.toml +1 -1
  3. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/client.py +7 -0
  4. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/models.py +51 -0
  5. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  6. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  7. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  8. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/.github/workflows/ci.yml +0 -0
  9. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/.github/workflows/python-publish.yml +0 -0
  10. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/.gitignore +0 -0
  11. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/AGENTS.md +0 -0
  12. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/CLAUDE.md +0 -0
  13. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/LICENSE +0 -0
  14. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/README.md +0 -0
  15. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/docs/modbus-lijst-qube-totaal.pdf +0 -0
  16. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/pytest.ini +0 -0
  17. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/__init__.py +0 -0
  18. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/const.py +0 -0
  19. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/entities/__init__.py +0 -0
  20. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/entities/base.py +0 -0
  21. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/entities/binary_sensors.py +0 -0
  22. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/entities/sensors.py +0 -0
  23. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/entities/switches.py +0 -0
  24. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/network.py +0 -0
  25. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/src/python_qube_heatpump/py.typed +0 -0
  26. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/tests/conftest.py +0 -0
  27. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/tests/test_client.py +0 -0
  28. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/tests/test_const.py +0 -0
  29. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/tests/test_entities.py +0 -0
  30. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/tests/test_models.py +0 -0
  31. {python_qube_heatpump-1.7.0 → python_qube_heatpump-1.8.0}/tests/test_network.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-qube-heatpump
3
- Version: 1.7.0
3
+ Version: 1.8.0
4
4
  Summary: Async Modbus client for Qube Heat Pumps
5
5
  Project-URL: Homepage, https://github.com/MattieGit/python-qube-heatpump
6
6
  Project-URL: Bug Tracker, https://github.com/MattieGit/python-qube-heatpump/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "python-qube-heatpump"
7
- version = "1.7.0"
7
+ version = "1.8.0"
8
8
  authors = [
9
9
  { name="MattieGit", email="6250046+MattieGit@users.noreply.github.com" },
10
10
  ]
@@ -121,6 +121,13 @@ class QubeClient:
121
121
  state.setpoint_dhw = await _read(const.USER_DHW_SETPOINT)
122
122
 
123
123
  self._apply_monotonic_clamping(state)
124
+
125
+ # Fetch binary sensors
126
+ binary_data = await self.read_all_binary_sensors()
127
+ for key, value in binary_data.items():
128
+ if hasattr(state, key):
129
+ setattr(state, key, value)
130
+
124
131
  return state
125
132
 
126
133
  @property
@@ -40,6 +40,57 @@ class QubeState:
40
40
  setpoint_room_cool_night: float | None = None
41
41
  setpoint_dhw: float | None = None
42
42
 
43
+ # Binary sensors - Outputs
44
+ dout_srcpmp_val: bool | None = None
45
+ dout_usrpmp_val: bool | None = None
46
+ dout_fourwayvlv_val: bool | None = None
47
+ dout_cooling_val: bool | None = None
48
+ dout_threewayvlv_val: bool | None = None
49
+ dout_bufferpmp_val: bool | None = None
50
+ dout_heaterstep1_val: bool | None = None
51
+ dout_heaterstep2_val: bool | None = None
52
+ dout_heaterstep3_val: bool | None = None
53
+
54
+ # Binary sensors - System status
55
+ keybonoff: bool | None = None
56
+ daynightmode: bool | None = None
57
+
58
+ # Binary sensors - Alarms
59
+ al_maxtime_antileg_active: bool | None = None
60
+ al_maxtime_dhw_active: bool | None = None
61
+ al_dewpoint_active: bool | None = None
62
+ al_underfloorsafety_active: bool | None = None
63
+ alrm_flw: bool | None = None
64
+ usralrms: bool | None = None
65
+ coolingalrms: bool | None = None
66
+ heatingalrms: bool | None = None
67
+ alarmmng_al_workinghour: bool | None = None
68
+ srsalrm: bool | None = None
69
+ glbal: bool | None = None
70
+ alarmmng_al_pwrplus: bool | None = None
71
+
72
+ # Binary sensors - Sensor/controller status
73
+ roomprb_en: bool | None = None
74
+ plantprb_en: bool | None = None
75
+ bufferprb_en: bool | None = None
76
+ en_dhwpid: bool | None = None
77
+
78
+ # Binary sensors - Demand signals
79
+ plantdemand: bool | None = None
80
+ id_demand: bool | None = None
81
+ thermostatdemand: bool | None = None
82
+ bms_demand: bool | None = None
83
+
84
+ # Binary sensors - Digital inputs
85
+ id_summerwinter: bool | None = None
86
+ dewpoint: bool | None = None
87
+ boostersecurity: bool | None = None
88
+ srcflw: bool | None = None
89
+ req_antileg_1: bool | None = None
90
+
91
+ # Binary sensors - Energy
92
+ surplus_pv: bool | None = None
93
+
43
94
  # Extended dict for additional entities not covered by typed fields
44
95
  _extended: dict[str, Any] = field(default_factory=dict)
45
96