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