python-pooldose 0.7.9__tar.gz → 0.8.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.
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/PKG-INFO +4 -5
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/README.md +3 -4
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/__init__.py +1 -1
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/mappings/model_PDHC1H1HAR1V1_FW539224.json +4 -8
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/mappings/model_PDPR1H1HAR1V0_FW539224.json +4 -4
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/values/instant_values.py +6 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/python_pooldose.egg-info/PKG-INFO +4 -5
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_instant_values.py +15 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/LICENSE +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/pyproject.toml +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/setup.cfg +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/__main__.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/client.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/constants.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/device_analyzer.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/mappings/__init__.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/mappings/mapping_info.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/mappings/model_PDPR1H1HAW100_FW539187.json +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/mock_client.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/py.typed +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/request_handler.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/request_status.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/type_definitions.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/values/__init__.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/pooldose/values/static_values.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/python_pooldose.egg-info/SOURCES.txt +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/python_pooldose.egg-info/dependency_links.txt +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/python_pooldose.egg-info/entry_points.txt +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/python_pooldose.egg-info/requires.txt +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/python_pooldose.egg-info/top_level.txt +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_client.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_device_analyzer.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_device_analyzer_integration.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_mapping_info.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_mock_client_set_value.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_request_handler.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_ssl_support.py +0 -0
- {python_pooldose-0.7.9 → python_pooldose-0.8.1}/tests/test_static_values.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-pooldose
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.1
|
|
4
4
|
Summary: Unoffical async Python client for SEKO PoolDose devices
|
|
5
5
|
Author-email: Lukas Maertin <pypi@lukas-maertin.de>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -985,8 +985,7 @@ Data Classification:
|
|
|
985
985
|
|
|
986
986
|
For detailed release notes and version history, please see [CHANGELOG.md](CHANGELOG.md).
|
|
987
987
|
|
|
988
|
-
### Latest Release (0.
|
|
988
|
+
### Latest Release (0.8.1)
|
|
989
989
|
|
|
990
|
-
- **
|
|
991
|
-
- **
|
|
992
|
-
- **Enhanced Organization**: Improved distinction between read-only sensors and configurable numbers
|
|
990
|
+
- **Unit Standardization**: Chlorine values now return "ppm" instead of "CL2"
|
|
991
|
+
- **Mapping Consistency**: OFA threshold mappings renamed for consistency (`ofa_orp_*`, `ofa_cl_*`)
|
|
@@ -966,8 +966,7 @@ Data Classification:
|
|
|
966
966
|
|
|
967
967
|
For detailed release notes and version history, please see [CHANGELOG.md](CHANGELOG.md).
|
|
968
968
|
|
|
969
|
-
### Latest Release (0.
|
|
969
|
+
### Latest Release (0.8.1)
|
|
970
970
|
|
|
971
|
-
- **
|
|
972
|
-
- **
|
|
973
|
-
- **Enhanced Organization**: Improved distinction between read-only sensors and configurable numbers
|
|
971
|
+
- **Unit Standardization**: Chlorine values now return "ppm" instead of "CL2"
|
|
972
|
+
- **Mapping Consistency**: OFA threshold mappings renamed for consistency (`ofa_orp_*`, `ofa_cl_*`)
|
|
@@ -119,22 +119,22 @@
|
|
|
119
119
|
"type": "number",
|
|
120
120
|
"field": "maxT"
|
|
121
121
|
},
|
|
122
|
-
"
|
|
122
|
+
"ofa_orp_lower": {
|
|
123
123
|
"key": "w_1g1l13bkn",
|
|
124
124
|
"type": "number",
|
|
125
125
|
"field": "minT"
|
|
126
126
|
},
|
|
127
|
-
"
|
|
127
|
+
"ofa_orp_upper": {
|
|
128
128
|
"key": "w_1g1l13bkn",
|
|
129
129
|
"type": "number",
|
|
130
130
|
"field": "maxT"
|
|
131
131
|
},
|
|
132
|
-
"
|
|
132
|
+
"ofa_cl_lower": {
|
|
133
133
|
"key": "w_1g1l13dke",
|
|
134
134
|
"type": "number",
|
|
135
135
|
"field": "minT"
|
|
136
136
|
},
|
|
137
|
-
"
|
|
137
|
+
"ofa_cl_upper": {
|
|
138
138
|
"key": "w_1g1l13dke",
|
|
139
139
|
"type": "number",
|
|
140
140
|
"field": "maxT"
|
|
@@ -290,9 +290,5 @@
|
|
|
290
290
|
"|PDPR1H1HAR1V0_FW539224_COMBO_w_1f0j0qe9q_ON_OFF|": "on / off",
|
|
291
291
|
"|PDPR1H1HAR1V0_FW539224_COMBO_w_1f0j0qe9q_TIMED|": "timed"
|
|
292
292
|
}
|
|
293
|
-
},
|
|
294
|
-
"flow_rate_value": {
|
|
295
|
-
"key": "w_1f0iv4ls4",
|
|
296
|
-
"type": "sensor"
|
|
297
293
|
}
|
|
298
294
|
}
|
|
@@ -11,6 +11,10 @@
|
|
|
11
11
|
"key": "w_1f0invtg9",
|
|
12
12
|
"type": "sensor"
|
|
13
13
|
},
|
|
14
|
+
"flow_rate": {
|
|
15
|
+
"key": "w_1f0iv4ls4",
|
|
16
|
+
"type": "sensor"
|
|
17
|
+
},
|
|
14
18
|
"ph_type_dosing": {
|
|
15
19
|
"key": "w_1f0it2vcf",
|
|
16
20
|
"type": "sensor",
|
|
@@ -122,9 +126,5 @@
|
|
|
122
126
|
"|PDPR1H1HAR1V0_FW539224_COMBO_w_1f3dfp59r_LITERS__L_|": "L",
|
|
123
127
|
"|PDPR1H1HAR1V0_FW539224_COMBO_w_1f3dfp59r_CUBIC_METER__M__|": "m³"
|
|
124
128
|
}
|
|
125
|
-
},
|
|
126
|
-
"flow_rate_value": {
|
|
127
|
-
"key": "w_1f0iv4ls4",
|
|
128
|
-
"type": "sensor"
|
|
129
129
|
}
|
|
130
130
|
}
|
|
@@ -251,6 +251,9 @@ class InstantValues:
|
|
|
251
251
|
# Get unit
|
|
252
252
|
units = raw_entry.get("magnitude", [""])
|
|
253
253
|
unit = units[0] if units and units[0].lower() not in ("undefined", "ph") else None
|
|
254
|
+
# Convert CL2/Chlorine to ppm
|
|
255
|
+
if unit and unit.lower() in ("cl2", "chlorine"):
|
|
256
|
+
unit = "ppm"
|
|
254
257
|
|
|
255
258
|
return (value, unit)
|
|
256
259
|
|
|
@@ -318,6 +321,9 @@ class InstantValues:
|
|
|
318
321
|
# Get unit
|
|
319
322
|
units = raw_entry.get("magnitude", [""])
|
|
320
323
|
unit = units[0] if isinstance(units, (list, tuple)) and units and str(units[0]).lower() not in ("undefined", "ph") else None
|
|
324
|
+
# Convert CL2/Chlorine to ppm
|
|
325
|
+
if unit and str(unit).lower() in ("cl2", "chlorine"):
|
|
326
|
+
unit = "ppm"
|
|
321
327
|
|
|
322
328
|
return (value, unit, abs_min, abs_max, resolution)
|
|
323
329
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-pooldose
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.1
|
|
4
4
|
Summary: Unoffical async Python client for SEKO PoolDose devices
|
|
5
5
|
Author-email: Lukas Maertin <pypi@lukas-maertin.de>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -985,8 +985,7 @@ Data Classification:
|
|
|
985
985
|
|
|
986
986
|
For detailed release notes and version history, please see [CHANGELOG.md](CHANGELOG.md).
|
|
987
987
|
|
|
988
|
-
### Latest Release (0.
|
|
988
|
+
### Latest Release (0.8.1)
|
|
989
989
|
|
|
990
|
-
- **
|
|
991
|
-
- **
|
|
992
|
-
- **Enhanced Organization**: Improved distinction between read-only sensors and configurable numbers
|
|
990
|
+
- **Unit Standardization**: Chlorine values now return "ppm" instead of "CL2"
|
|
991
|
+
- **Mapping Consistency**: OFA threshold mappings renamed for consistency (`ofa_orp_*`, `ofa_cl_*`)
|
|
@@ -20,6 +20,12 @@ class TestInstantValues: # pylint: disable=too-many-public-methods
|
|
|
20
20
|
assert value == 25.5
|
|
21
21
|
assert unit == "°C"
|
|
22
22
|
|
|
23
|
+
def test_getitem_sensor_chlorine_unit(self, instant_values_fixture):
|
|
24
|
+
"""Test getting chlorine sensor values with ppm unit conversion."""
|
|
25
|
+
value, unit = instant_values_fixture["chlorine"]
|
|
26
|
+
assert value == 0.5
|
|
27
|
+
assert unit == "ppm"
|
|
28
|
+
|
|
23
29
|
def test_getitem_sensor_with_conversion(self, instant_values_fixture):
|
|
24
30
|
"""Test getting sensor values with string conversion."""
|
|
25
31
|
value, unit = instant_values_fixture["ph_type_dosing"]
|
|
@@ -35,6 +41,15 @@ class TestInstantValues: # pylint: disable=too-many-public-methods
|
|
|
35
41
|
assert max_val == 8.0
|
|
36
42
|
assert step == 0.1
|
|
37
43
|
|
|
44
|
+
def test_getitem_number_chlorine_unit(self, instant_values_fixture):
|
|
45
|
+
"""Test getting chlorine number values with ppm unit conversion."""
|
|
46
|
+
value, unit, min_val, max_val, step = instant_values_fixture["chlorine_target"]
|
|
47
|
+
assert value == 0.6
|
|
48
|
+
assert unit == "ppm"
|
|
49
|
+
assert min_val == 0.3
|
|
50
|
+
assert max_val == 3.0
|
|
51
|
+
assert step == 0.1
|
|
52
|
+
|
|
38
53
|
def test_getitem_switch(self, instant_values_fixture):
|
|
39
54
|
"""Test getting switch values."""
|
|
40
55
|
value = instant_values_fixture["pump_switch"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/python_pooldose.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{python_pooldose-0.7.9 → python_pooldose-0.8.1}/src/python_pooldose.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|