aioWiserHeatAPI 1.6.6__tar.gz → 1.7.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 (65) hide show
  1. aiowiserheatapi-1.7.0/PKG-INFO +348 -0
  2. aiowiserheatapi-1.7.0/README.md +318 -0
  3. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/__init__.py +1 -1
  4. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/const.py +1 -1
  5. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/battery.py +8 -3
  6. aiowiserheatapi-1.7.0/aioWiserHeatAPI/refactor.py +232 -0
  7. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/rest_controller.py +7 -1
  8. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/wiserhub.py +36 -2
  9. aiowiserheatapi-1.7.0/aioWiserHeatAPI.egg-info/PKG-INFO +348 -0
  10. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI.egg-info/SOURCES.txt +1 -0
  11. aiowiserheatapi-1.6.6/PKG-INFO +0 -330
  12. aiowiserheatapi-1.6.6/README.md +0 -301
  13. aiowiserheatapi-1.6.6/aioWiserHeatAPI.egg-info/PKG-INFO +0 -330
  14. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/LICENSE +0 -0
  15. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/automation.py +0 -0
  16. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/binary_sensor.py +0 -0
  17. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/boiler_interface.py +0 -0
  18. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/button_panel.py +0 -0
  19. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/cli.py +0 -0
  20. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/devices.py +0 -0
  21. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/discovery.py +0 -0
  22. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/exceptions.py +0 -0
  23. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/heating.py +0 -0
  24. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/heating_actuator.py +0 -0
  25. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/__init__.py +0 -0
  26. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/automations.py +0 -0
  27. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/capabilities.py +0 -0
  28. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/cloud.py +0 -0
  29. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/device.py +0 -0
  30. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/equipment.py +0 -0
  31. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/extra_config.py +0 -0
  32. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/firmware.py +0 -0
  33. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/gps.py +0 -0
  34. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/misc.py +0 -0
  35. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/network.py +0 -0
  36. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/opentherm.py +0 -0
  37. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/signal.py +0 -0
  38. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/special_times.py +0 -0
  39. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/status.py +0 -0
  40. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/temp.py +0 -0
  41. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/threshold.py +0 -0
  42. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/uiconfiguration.py +0 -0
  43. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/version.py +0 -0
  44. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/helpers/zigbee.py +0 -0
  45. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/hot_water.py +0 -0
  46. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/light.py +0 -0
  47. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/moments.py +0 -0
  48. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/ptc.py +0 -0
  49. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/pte.py +0 -0
  50. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/room.py +0 -0
  51. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/roomstat.py +0 -0
  52. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/schedule.py +0 -0
  53. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/shutter.py +0 -0
  54. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/smartplug.py +0 -0
  55. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/smartvalve.py +0 -0
  56. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/smokealarm.py +0 -0
  57. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/system.py +0 -0
  58. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/temp_humidity.py +0 -0
  59. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI/ufh.py +0 -0
  60. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI.egg-info/dependency_links.txt +0 -0
  61. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI.egg-info/entry_points.txt +0 -0
  62. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI.egg-info/requires.txt +0 -0
  63. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/aioWiserHeatAPI.egg-info/top_level.txt +0 -0
  64. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/setup.cfg +0 -0
  65. {aiowiserheatapi-1.6.6 → aiowiserheatapi-1.7.0}/setup.py +0 -0
@@ -0,0 +1,348 @@
1
+ Metadata-Version: 2.4
2
+ Name: aioWiserHeatAPI
3
+ Version: 1.7.0
4
+ Summary: An AsyncIO API for controlling the Drayton Wiser Heating system
5
+ Home-page: https://github.com/msp1974/aioWiserHeatAPI
6
+ Author: Mark Parker
7
+ Author-email: msparker@sky.com
8
+ Classifier: Development Status :: 5 - Production/Stable
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: OS Independent
13
+ Requires-Python: >=3.12
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE
16
+ Requires-Dist: zeroconf>=0.131.0
17
+ Requires-Dist: aiohttp>=3.9.3
18
+ Requires-Dist: aiofiles>=23.2.1
19
+ Requires-Dist: pyyaml>=6.0.1
20
+ Dynamic: author
21
+ Dynamic: author-email
22
+ Dynamic: classifier
23
+ Dynamic: description
24
+ Dynamic: description-content-type
25
+ Dynamic: home-page
26
+ Dynamic: license-file
27
+ Dynamic: requires-dist
28
+ Dynamic: requires-python
29
+ Dynamic: summary
30
+
31
+ # Drayton Wiser Hub API Async v1.7.0
32
+
33
+ This repository contains a simple API which queries the Drayton Wiser Heating sysystem used in the UK.
34
+
35
+ The API functionality provides the following functionality to control the wiser heating system for 1,2 and 3 channel heat hubs
36
+ The API also supports Smart Plugs and initial basic functionality for Shutter and Lights
37
+
38
+ ## Requirements
39
+
40
+ Requires a minimum of Python v3.10
41
+
42
+ ## Installation
43
+
44
+ ## 1. Find your HeatHub Secret key
45
+
46
+ Reference [https://it.knightnet.org.uk/kb/nr-qa/drayton-wiser-heating-control/#controlling-the-system](https://it.knightnet.org.uk/kb/nr-qa/drayton-wiser-heating-control/#controlling-the-system)
47
+
48
+ 1. Press the setup button on your HeatHub, the light will start flashing
49
+ Look for the Wi-Fi network (SSID) called **‘WiserHeatXXXXXX’** where XXXXXX is last 6 digits of the MAC address
50
+ 2. Connect to the network from a Windows/Linux/Mac/Android/iPhone machine
51
+ 3. Execute the secret url :-)
52
+
53
+ - Open a browser to url `http://192.168.8.1/secret`
54
+
55
+ This will return a string which is your system secret, store this somewhere. If you are running the test script simply put this value , with the ip address of the hub, in your wiserkeys.params
56
+
57
+ 4. Press the setup button on the HeatHub again and it will go back to normal operations
58
+ 5. Copy the secret and save it somewhere.
59
+
60
+ ## 3. Find Your HEATHUB IP
61
+
62
+ Using your router, or something else, identify the IP address of your HeatHub, it usually identifies itself as the same ID as the `WiserHeatXXXXXX`
63
+
64
+ Alternatively see the test_api_discovery.py file for how to use the api to discover your hub
65
+
66
+ ## 4. Add values in you params.py to run tests
67
+
68
+ Create a file called params.py and place two lines, one with the wiser IP or hostname and the other with the secret key.
69
+ e.g.
70
+
71
+ ```code
72
+ HOST="192.168.0.22"
73
+ KEY="ABCDCDCDCCCDCDC"
74
+ ```
75
+
76
+ ## 5. Run the sample
77
+
78
+ To help understand the api simply look at the test sample code `tests/test_api_properties.py`, `tests/test_api_methods.py` or `tests/test_api_discovery.py` and the fully commented code.
79
+
80
+ ## 6. Documentation
81
+
82
+ Documentation available in [info.md](https://github.com/msp1974/wiserHeatAPIv2/blob/master/docs/info.md) in the docs directory and within comments in the code
83
+
84
+ ## Changelog
85
+
86
+ ### v1.7.0
87
+
88
+ - Added https support for v2 hubs -> required for some commands
89
+
90
+ ### v1.6.7
91
+
92
+ - Added: provide battery level percentage is no battery voltage data
93
+
94
+ ### v1.6.6
95
+
96
+ - Added: support SSL redirect on hub for future firmware
97
+
98
+ ### v1.6.5
99
+
100
+ - Fix: improve status handling of hot water for hw climate mode
101
+
102
+ ### v1.6.4
103
+
104
+ - Fix: fix issue of default extra config values not being provided
105
+
106
+ ### v1.6.3
107
+
108
+ - Fix: fix error in temp validator from websocket schedule data that errored if a slot was set to off
109
+
110
+ ### v1.6.2
111
+
112
+ - Refactor: Removed unused imports causing error in python3.13
113
+ - Fix: Add equipment data during deviuce build process
114
+
115
+ ### v1.6.1
116
+
117
+ - Added: support for temperature and humidity sensors
118
+
119
+ ### v1.6.0
120
+
121
+ - Refactored how devices are enumerated
122
+ - BREAKING CHANGE - threshold sensor is now a device attribute and not its own device
123
+ - Added: support for 2 gang light switches
124
+ - Added: support for threshold and UI configuration as device attributes
125
+ - Added: support for PTC devices
126
+ - Added: UUID now exists for all devices (for future use)
127
+ - Added: New attributes and stored extra config for Hot Water to support HW Climate automation in HA integration
128
+ - Added: Control of interacts with room climate for binary sensors
129
+
130
+ ### v1.5.19
131
+
132
+ - Fixed error when BoilerInterface does not provide DeviceId field
133
+ - Fixed not supporting non ascii characters in schedule names
134
+ - Added ButtonPanel device support
135
+
136
+ ### v1.5.18
137
+
138
+ - Better handle client response exeption and fit into retry routing
139
+
140
+ ### v1.5.17
141
+
142
+ - Fixed error setting opentherm endpoint for fw above 4.32.46
143
+ - Added support for CFMT devices
144
+
145
+ ### v1.5.16
146
+
147
+ - Added support for v2 opentherm endpoint for fw above 4.32.46
148
+
149
+ ### v1.5.15
150
+
151
+ - Added additonal functions for v2 hub lights, equipments etc
152
+ - Added support for WindowDoor sensors
153
+ - Added support for Boiler Interface device
154
+
155
+ ### v1.5.14
156
+
157
+ - Fix presets not using defined boost temp
158
+ - Set return value of energy sensors to None if not provided by hub
159
+ - Updated headers for hub query
160
+
161
+ ### v1.5.13
162
+
163
+ - Updates to support v2 hub functions - @LGO44
164
+ - Add connection timeout to new retry function
165
+ - Increase http timeout from 10s to 20s
166
+
167
+ ### v1.5.12
168
+
169
+ - Improve performance of hub read and retries
170
+ - Fix error is no status endpoint
171
+
172
+ ### v1.5.11
173
+
174
+ - Improve error management
175
+ - Add additional debug logging
176
+
177
+ ### v1.5.10
178
+
179
+ - Add retry routine to prevent hub response errors
180
+
181
+ ### v1.5.9
182
+
183
+ - Force schedules endpoint to use http/1.0
184
+
185
+ ### v1.5.8
186
+
187
+ - Handle chunked encoding if sent by the hub
188
+
189
+ ### v1.5.7
190
+
191
+ - Fixed issue whereby lower target temp for passive mode was not being set correctly
192
+ - Added support for smoke alarm
193
+
194
+ ### v1.5.6
195
+
196
+ - Added improved error handling for json decode errors
197
+
198
+ ### v1.5.5
199
+
200
+ - Added addtional v2 hub attributes and switches
201
+
202
+ ### v1.5.4
203
+
204
+ - Fixed issue whereby json conversion errors due to control characters in string
205
+
206
+ ### v1.5.2
207
+
208
+ - Revert to aiohttp and fix errors with v3.9.x that caused move to httpx
209
+
210
+ ### v1.5.1
211
+
212
+ - Fix nuances with httpx
213
+
214
+ ### v1.5.0
215
+
216
+ - Move to httpx instead of aiohttp
217
+
218
+ ### v1.4.0
219
+
220
+ - Add PowerTagE support
221
+ - Add new v2 hub cloud parameters
222
+ - Add new v2 hub capabilities info
223
+ - Add v2 hub equipment data to relevant devices
224
+ - Add tilt support for shutters
225
+ - Fix issue where non ASCII chars removed
226
+
227
+ ### v1.3.9
228
+
229
+ - Fix for hub firmware bug whereby Away Mode Affects HotWater is turned off when cancelling overrides if no overrides exist.
230
+
231
+ ### v1.3.8
232
+
233
+ - Correct relative modulation level opentherm parameter magnitude
234
+
235
+ ### v1.3.7
236
+
237
+ - Amend battery to return None for voltage and percent if battery data not present
238
+
239
+ ### 1.3.6
240
+
241
+ - Add new status class
242
+ - Fix error if passive mode room device offline
243
+
244
+ ### v1.3.5
245
+
246
+ - Correct async error in extra_config
247
+
248
+ ### v1.3.4
249
+
250
+ - Current temperature now returns none for room if TRV signal lost.
251
+
252
+ ### v1.3.3
253
+
254
+ - Fixed issue in passive mode so that it works with 3 channel hub and different rooms on different channels
255
+
256
+ ### v1.3.2
257
+
258
+ - Fixed issue ot maintaining some parameters after hub update
259
+ - Improved handling of extra config json errors
260
+ - Amended current_target_temp to use DisplayedSetPoint instead of CurrentSetPoint as this displays incorrectly in Eco mode
261
+
262
+ ### 1.3.1
263
+
264
+ - Away mode overrides passive mode functions
265
+
266
+ ### 1.3.0
267
+
268
+ - Rework passive mode functionality (may break previous code if using passive mode)
269
+
270
+ ### 1.2.2
271
+
272
+ - Improve logic defining is_passive_mode property
273
+
274
+ ### 1.2.1
275
+
276
+ - Code refactoring
277
+ - Added is_passive_mode property
278
+ - Corrected bug in passive mode automation to determine target temp
279
+
280
+ ### 1.2.0
281
+
282
+ - Breaking Change - changes to passive mode from on or off to disabled, passive manual and passive follow schedule
283
+ - Support boost in passive mode
284
+ - Add additional opentherm parameters
285
+ - Fix not clearing overrides when enabling passive mode
286
+
287
+ ### 1.1.1
288
+
289
+ - Fix issue setting on/off schedule - issue #349
290
+
291
+ ### 1.1.0
292
+
293
+ - Added room passive mode automation control
294
+
295
+ ### 1.0.2
296
+
297
+ - Fixed error in boost_all_rooms using old temp validation type (no longer supported)
298
+ - Fixed error in validating temps from yaml file
299
+
300
+ ### 1.0.1
301
+
302
+ - Added endpoint parameter to set_opentherm_parameter
303
+
304
+ ### 1.0.0
305
+
306
+ - Moved to stable build version
307
+ - Amended timeout error text
308
+ - Improved error handling for setting schedules
309
+ - Added temp sensor support for heating actuator
310
+ - Added support for network diagnostics
311
+ - Added support for non standard port
312
+ - Add boiler parameters to opentherm
313
+ - Support setting opentherm parameters
314
+
315
+ ### 0.1.8
316
+
317
+ - Add url to exception messages
318
+ - Fix for unicode decode error
319
+
320
+ ### 0.1.7
321
+
322
+ - Fixed error intiallising WiserUFHController class
323
+ - Made python3.9 compatible
324
+
325
+ ### 0.1.6
326
+
327
+ - Remove debuggin print lines
328
+ - Remove session close on endpoint error
329
+
330
+ ### 0.1.5
331
+
332
+ - Add ALL as special day option in schedule file for setting schedules from file
333
+
334
+ ### 0.1.4
335
+
336
+ - Fix incorrect id used for schedule assignment in electrical devices
337
+
338
+ ### 0.1.3
339
+
340
+ - Fixed issue in schedule.get_by_name
341
+
342
+ ### 0.1.2
343
+
344
+ - Fixed calling wrong enpoint id for lights and shutters
345
+
346
+ ### 0.1.0
347
+
348
+ - Initial asyncio release
@@ -0,0 +1,318 @@
1
+ # Drayton Wiser Hub API Async v1.7.0
2
+
3
+ This repository contains a simple API which queries the Drayton Wiser Heating sysystem used in the UK.
4
+
5
+ The API functionality provides the following functionality to control the wiser heating system for 1,2 and 3 channel heat hubs
6
+ The API also supports Smart Plugs and initial basic functionality for Shutter and Lights
7
+
8
+ ## Requirements
9
+
10
+ Requires a minimum of Python v3.10
11
+
12
+ ## Installation
13
+
14
+ ## 1. Find your HeatHub Secret key
15
+
16
+ Reference [https://it.knightnet.org.uk/kb/nr-qa/drayton-wiser-heating-control/#controlling-the-system](https://it.knightnet.org.uk/kb/nr-qa/drayton-wiser-heating-control/#controlling-the-system)
17
+
18
+ 1. Press the setup button on your HeatHub, the light will start flashing
19
+ Look for the Wi-Fi network (SSID) called **‘WiserHeatXXXXXX’** where XXXXXX is last 6 digits of the MAC address
20
+ 2. Connect to the network from a Windows/Linux/Mac/Android/iPhone machine
21
+ 3. Execute the secret url :-)
22
+
23
+ - Open a browser to url `http://192.168.8.1/secret`
24
+
25
+ This will return a string which is your system secret, store this somewhere. If you are running the test script simply put this value , with the ip address of the hub, in your wiserkeys.params
26
+
27
+ 4. Press the setup button on the HeatHub again and it will go back to normal operations
28
+ 5. Copy the secret and save it somewhere.
29
+
30
+ ## 3. Find Your HEATHUB IP
31
+
32
+ Using your router, or something else, identify the IP address of your HeatHub, it usually identifies itself as the same ID as the `WiserHeatXXXXXX`
33
+
34
+ Alternatively see the test_api_discovery.py file for how to use the api to discover your hub
35
+
36
+ ## 4. Add values in you params.py to run tests
37
+
38
+ Create a file called params.py and place two lines, one with the wiser IP or hostname and the other with the secret key.
39
+ e.g.
40
+
41
+ ```code
42
+ HOST="192.168.0.22"
43
+ KEY="ABCDCDCDCCCDCDC"
44
+ ```
45
+
46
+ ## 5. Run the sample
47
+
48
+ To help understand the api simply look at the test sample code `tests/test_api_properties.py`, `tests/test_api_methods.py` or `tests/test_api_discovery.py` and the fully commented code.
49
+
50
+ ## 6. Documentation
51
+
52
+ Documentation available in [info.md](https://github.com/msp1974/wiserHeatAPIv2/blob/master/docs/info.md) in the docs directory and within comments in the code
53
+
54
+ ## Changelog
55
+
56
+ ### v1.7.0
57
+
58
+ - Added https support for v2 hubs -> required for some commands
59
+
60
+ ### v1.6.7
61
+
62
+ - Added: provide battery level percentage is no battery voltage data
63
+
64
+ ### v1.6.6
65
+
66
+ - Added: support SSL redirect on hub for future firmware
67
+
68
+ ### v1.6.5
69
+
70
+ - Fix: improve status handling of hot water for hw climate mode
71
+
72
+ ### v1.6.4
73
+
74
+ - Fix: fix issue of default extra config values not being provided
75
+
76
+ ### v1.6.3
77
+
78
+ - Fix: fix error in temp validator from websocket schedule data that errored if a slot was set to off
79
+
80
+ ### v1.6.2
81
+
82
+ - Refactor: Removed unused imports causing error in python3.13
83
+ - Fix: Add equipment data during deviuce build process
84
+
85
+ ### v1.6.1
86
+
87
+ - Added: support for temperature and humidity sensors
88
+
89
+ ### v1.6.0
90
+
91
+ - Refactored how devices are enumerated
92
+ - BREAKING CHANGE - threshold sensor is now a device attribute and not its own device
93
+ - Added: support for 2 gang light switches
94
+ - Added: support for threshold and UI configuration as device attributes
95
+ - Added: support for PTC devices
96
+ - Added: UUID now exists for all devices (for future use)
97
+ - Added: New attributes and stored extra config for Hot Water to support HW Climate automation in HA integration
98
+ - Added: Control of interacts with room climate for binary sensors
99
+
100
+ ### v1.5.19
101
+
102
+ - Fixed error when BoilerInterface does not provide DeviceId field
103
+ - Fixed not supporting non ascii characters in schedule names
104
+ - Added ButtonPanel device support
105
+
106
+ ### v1.5.18
107
+
108
+ - Better handle client response exeption and fit into retry routing
109
+
110
+ ### v1.5.17
111
+
112
+ - Fixed error setting opentherm endpoint for fw above 4.32.46
113
+ - Added support for CFMT devices
114
+
115
+ ### v1.5.16
116
+
117
+ - Added support for v2 opentherm endpoint for fw above 4.32.46
118
+
119
+ ### v1.5.15
120
+
121
+ - Added additonal functions for v2 hub lights, equipments etc
122
+ - Added support for WindowDoor sensors
123
+ - Added support for Boiler Interface device
124
+
125
+ ### v1.5.14
126
+
127
+ - Fix presets not using defined boost temp
128
+ - Set return value of energy sensors to None if not provided by hub
129
+ - Updated headers for hub query
130
+
131
+ ### v1.5.13
132
+
133
+ - Updates to support v2 hub functions - @LGO44
134
+ - Add connection timeout to new retry function
135
+ - Increase http timeout from 10s to 20s
136
+
137
+ ### v1.5.12
138
+
139
+ - Improve performance of hub read and retries
140
+ - Fix error is no status endpoint
141
+
142
+ ### v1.5.11
143
+
144
+ - Improve error management
145
+ - Add additional debug logging
146
+
147
+ ### v1.5.10
148
+
149
+ - Add retry routine to prevent hub response errors
150
+
151
+ ### v1.5.9
152
+
153
+ - Force schedules endpoint to use http/1.0
154
+
155
+ ### v1.5.8
156
+
157
+ - Handle chunked encoding if sent by the hub
158
+
159
+ ### v1.5.7
160
+
161
+ - Fixed issue whereby lower target temp for passive mode was not being set correctly
162
+ - Added support for smoke alarm
163
+
164
+ ### v1.5.6
165
+
166
+ - Added improved error handling for json decode errors
167
+
168
+ ### v1.5.5
169
+
170
+ - Added addtional v2 hub attributes and switches
171
+
172
+ ### v1.5.4
173
+
174
+ - Fixed issue whereby json conversion errors due to control characters in string
175
+
176
+ ### v1.5.2
177
+
178
+ - Revert to aiohttp and fix errors with v3.9.x that caused move to httpx
179
+
180
+ ### v1.5.1
181
+
182
+ - Fix nuances with httpx
183
+
184
+ ### v1.5.0
185
+
186
+ - Move to httpx instead of aiohttp
187
+
188
+ ### v1.4.0
189
+
190
+ - Add PowerTagE support
191
+ - Add new v2 hub cloud parameters
192
+ - Add new v2 hub capabilities info
193
+ - Add v2 hub equipment data to relevant devices
194
+ - Add tilt support for shutters
195
+ - Fix issue where non ASCII chars removed
196
+
197
+ ### v1.3.9
198
+
199
+ - Fix for hub firmware bug whereby Away Mode Affects HotWater is turned off when cancelling overrides if no overrides exist.
200
+
201
+ ### v1.3.8
202
+
203
+ - Correct relative modulation level opentherm parameter magnitude
204
+
205
+ ### v1.3.7
206
+
207
+ - Amend battery to return None for voltage and percent if battery data not present
208
+
209
+ ### 1.3.6
210
+
211
+ - Add new status class
212
+ - Fix error if passive mode room device offline
213
+
214
+ ### v1.3.5
215
+
216
+ - Correct async error in extra_config
217
+
218
+ ### v1.3.4
219
+
220
+ - Current temperature now returns none for room if TRV signal lost.
221
+
222
+ ### v1.3.3
223
+
224
+ - Fixed issue in passive mode so that it works with 3 channel hub and different rooms on different channels
225
+
226
+ ### v1.3.2
227
+
228
+ - Fixed issue ot maintaining some parameters after hub update
229
+ - Improved handling of extra config json errors
230
+ - Amended current_target_temp to use DisplayedSetPoint instead of CurrentSetPoint as this displays incorrectly in Eco mode
231
+
232
+ ### 1.3.1
233
+
234
+ - Away mode overrides passive mode functions
235
+
236
+ ### 1.3.0
237
+
238
+ - Rework passive mode functionality (may break previous code if using passive mode)
239
+
240
+ ### 1.2.2
241
+
242
+ - Improve logic defining is_passive_mode property
243
+
244
+ ### 1.2.1
245
+
246
+ - Code refactoring
247
+ - Added is_passive_mode property
248
+ - Corrected bug in passive mode automation to determine target temp
249
+
250
+ ### 1.2.0
251
+
252
+ - Breaking Change - changes to passive mode from on or off to disabled, passive manual and passive follow schedule
253
+ - Support boost in passive mode
254
+ - Add additional opentherm parameters
255
+ - Fix not clearing overrides when enabling passive mode
256
+
257
+ ### 1.1.1
258
+
259
+ - Fix issue setting on/off schedule - issue #349
260
+
261
+ ### 1.1.0
262
+
263
+ - Added room passive mode automation control
264
+
265
+ ### 1.0.2
266
+
267
+ - Fixed error in boost_all_rooms using old temp validation type (no longer supported)
268
+ - Fixed error in validating temps from yaml file
269
+
270
+ ### 1.0.1
271
+
272
+ - Added endpoint parameter to set_opentherm_parameter
273
+
274
+ ### 1.0.0
275
+
276
+ - Moved to stable build version
277
+ - Amended timeout error text
278
+ - Improved error handling for setting schedules
279
+ - Added temp sensor support for heating actuator
280
+ - Added support for network diagnostics
281
+ - Added support for non standard port
282
+ - Add boiler parameters to opentherm
283
+ - Support setting opentherm parameters
284
+
285
+ ### 0.1.8
286
+
287
+ - Add url to exception messages
288
+ - Fix for unicode decode error
289
+
290
+ ### 0.1.7
291
+
292
+ - Fixed error intiallising WiserUFHController class
293
+ - Made python3.9 compatible
294
+
295
+ ### 0.1.6
296
+
297
+ - Remove debuggin print lines
298
+ - Remove session close on endpoint error
299
+
300
+ ### 0.1.5
301
+
302
+ - Add ALL as special day option in schedule file for setting schedules from file
303
+
304
+ ### 0.1.4
305
+
306
+ - Fix incorrect id used for schedule assignment in electrical devices
307
+
308
+ ### 0.1.3
309
+
310
+ - Fixed issue in schedule.get_by_name
311
+
312
+ ### 0.1.2
313
+
314
+ - Fixed calling wrong enpoint id for lights and shutters
315
+
316
+ ### 0.1.0
317
+
318
+ - Initial asyncio release
@@ -3,6 +3,6 @@ import logging
3
3
  name = "aioWiserHeatAPI"
4
4
  __all__ = ["wiserAPI", "wiserDiscovery"]
5
5
 
6
- __VERSION__ = "1.6.6"
6
+ __VERSION__ = "1.7.0"
7
7
 
8
8
  _LOGGER = logging.getLogger(__name__)
@@ -83,7 +83,7 @@ SPECIAL_TIMES = {"Sunrise": 3000, "Sunset": 4000}
83
83
  OPENTHERMV2_MIN_VERSION = Version("4.32.47")
84
84
 
85
85
  # Wiser Hub Rest Api URL Constants
86
- WISERHUBURL = "http://{}:{}/data/v2/"
86
+ WISERHUBURL = "{}:{}/data/v2/"
87
87
  WISERHUBDOMAIN = WISERHUBURL + "domain/"
88
88
  WISERHUBNETWORK = WISERHUBURL + "network/"
89
89
  WISERHUBSCHEDULES = WISERHUBURL + "schedules/"
@@ -1,9 +1,9 @@
1
1
  from ..const import (
2
- ROOMSTAT_MIN_BATTERY_LEVEL,
3
2
  ROOMSTAT_FULL_BATTERY_LEVEL,
3
+ ROOMSTAT_MIN_BATTERY_LEVEL,
4
4
  TEXT_UNKNOWN,
5
- TRV_FULL_BATTERY_LEVEL,
6
5
  TRV_BATTERY_LEVEL_MAPPING,
6
+ TRV_FULL_BATTERY_LEVEL,
7
7
  )
8
8
 
9
9
 
@@ -25,7 +25,12 @@ class _WiserBattery(object):
25
25
  @property
26
26
  def percent(self) -> int:
27
27
  """Get the percent of battery remaining"""
28
- if self._data.get("ProductType") == "RoomStat" and self.voltage:
28
+ if self.voltage is None:
29
+ # This device does not provide battery voltage. Calc % from level text
30
+ levels = {"normal": 100, "twothirds": 66, "onethird": 33, "low": 10}
31
+ return levels.get(self.level.lower(), 0)
32
+
33
+ elif self._data.get("ProductType") == "RoomStat" and self.voltage:
29
34
  return percentage_clip(
30
35
  round(
31
36
  (