aiobmsble 0.2.3__py3-none-any.whl → 0.4__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 (64) hide show
  1. aiobmsble/__init__.py +2 -0
  2. aiobmsble/__main__.py +4 -2
  3. aiobmsble/basebms.py +40 -15
  4. aiobmsble/bms/abc_bms.py +2 -2
  5. aiobmsble/bms/ant_bms.py +4 -3
  6. aiobmsble/bms/ant_leg_bms.py +177 -0
  7. aiobmsble/bms/braunpwr_bms.py +2 -2
  8. aiobmsble/bms/cbtpwr_bms.py +2 -2
  9. aiobmsble/bms/cbtpwr_vb_bms.py +2 -2
  10. aiobmsble/bms/daly_bms.py +2 -2
  11. aiobmsble/bms/dpwrcore_bms.py +2 -2
  12. aiobmsble/bms/dummy_bms.py +3 -3
  13. aiobmsble/bms/ecoworthy_bms.py +2 -2
  14. aiobmsble/bms/ective_bms.py +2 -2
  15. aiobmsble/bms/ej_bms.py +9 -3
  16. aiobmsble/bms/felicity_bms.py +2 -2
  17. aiobmsble/bms/jbd_bms.py +2 -2
  18. aiobmsble/bms/jikong_bms.py +2 -2
  19. aiobmsble/bms/neey_bms.py +2 -2
  20. aiobmsble/bms/ogt_bms.py +2 -2
  21. aiobmsble/bms/pro_bms.py +2 -2
  22. aiobmsble/bms/redodo_bms.py +5 -2
  23. aiobmsble/bms/renogy_bms.py +2 -2
  24. aiobmsble/bms/renogy_pro_bms.py +2 -2
  25. aiobmsble/bms/roypow_bms.py +2 -2
  26. aiobmsble/bms/seplos_bms.py +3 -3
  27. aiobmsble/bms/seplos_v2_bms.py +2 -2
  28. aiobmsble/bms/tdt_bms.py +2 -2
  29. aiobmsble/bms/tianpwr_bms.py +2 -2
  30. aiobmsble/test_data/__init__.py +95 -0
  31. aiobmsble/test_data/abc_bms.json +34 -0
  32. aiobmsble/test_data/ant_bms.json +18 -0
  33. aiobmsble/test_data/ant_leg_bms.json +19 -0
  34. aiobmsble/test_data/braunpwr_bms.json +34 -0
  35. aiobmsble/test_data/cbtpwr_bms.json +90 -0
  36. aiobmsble/test_data/cbtpwr_vb_bms.json +20 -0
  37. aiobmsble/test_data/daly_bms.json +100 -0
  38. aiobmsble/test_data/dpwrcore_bms.json +18 -0
  39. aiobmsble/test_data/ecoworthy_bms.json +100 -0
  40. aiobmsble/test_data/ective_bms.json +104 -0
  41. aiobmsble/test_data/ej_bms.json +107 -0
  42. aiobmsble/test_data/felicity_bms.json +24 -0
  43. aiobmsble/test_data/ignore.json +48 -0
  44. aiobmsble/test_data/jbd_bms.json +440 -0
  45. aiobmsble/test_data/jikong_bms.json +54 -0
  46. aiobmsble/test_data/neey_bms.json +65 -0
  47. aiobmsble/test_data/ogt_bms.json +16 -0
  48. aiobmsble/test_data/pro_bms.json +15 -0
  49. aiobmsble/test_data/redodo_bms.json +151 -0
  50. aiobmsble/test_data/renogy_bms.json +19 -0
  51. aiobmsble/test_data/renogy_pro_bms.json +16 -0
  52. aiobmsble/test_data/roypow_bms.json +54 -0
  53. aiobmsble/test_data/seplos_bms.json +96 -0
  54. aiobmsble/test_data/seplos_v2_bms.json +41 -0
  55. aiobmsble/test_data/tdt_bms.json +14 -0
  56. aiobmsble/test_data/tianpwr_bms.json +13 -0
  57. aiobmsble-0.4.dist-info/METADATA +163 -0
  58. aiobmsble-0.4.dist-info/RECORD +64 -0
  59. aiobmsble-0.2.3.dist-info/METADATA +0 -122
  60. aiobmsble-0.2.3.dist-info/RECORD +0 -36
  61. {aiobmsble-0.2.3.dist-info → aiobmsble-0.4.dist-info}/WHEEL +0 -0
  62. {aiobmsble-0.2.3.dist-info → aiobmsble-0.4.dist-info}/entry_points.txt +0 -0
  63. {aiobmsble-0.2.3.dist-info → aiobmsble-0.4.dist-info}/licenses/LICENSE +0 -0
  64. {aiobmsble-0.2.3.dist-info → aiobmsble-0.4.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,151 @@
1
+ [
2
+ {
3
+ "advertisement": {
4
+ "local_name": "R-24100BNN160-A00643",
5
+ "manufacturer_data": {
6
+ "22618": "c8478015d834"
7
+ },
8
+ "service_uuids": [
9
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
10
+ ],
11
+ "rssi": -127
12
+ },
13
+ "type": "redodo_bms",
14
+ "_comments": [
15
+ "source PCAP"
16
+ ]
17
+ },
18
+ {
19
+ "advertisement": {
20
+ "local_name": "P-24050BNNA70-A01152",
21
+ "manufacturer_data": {
22
+ "22618": "c8478018bc81"
23
+ },
24
+ "service_uuids": [
25
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
26
+ ],
27
+ "rssi": -57
28
+ },
29
+ "type": "redodo_bms",
30
+ "_comments": [
31
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/280)"
32
+ ]
33
+ },
34
+ {
35
+ "advertisement": {
36
+ "local_name": "PQ-24100B-A00292",
37
+ "manufacturer_data": {
38
+ "22618": "c8478010b79a"
39
+ },
40
+ "service_uuids": [
41
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
42
+ ],
43
+ "rssi": -65
44
+ },
45
+ "type": "redodo_bms",
46
+ "_comments": [
47
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/301)",
48
+ "PowerQueen"
49
+ ]
50
+ },
51
+ {
52
+ "advertisement": {
53
+ "local_name": "L-12100BNNA70-A09683",
54
+ "manufacturer_data": {
55
+ "22618": "c8478015de04"
56
+ },
57
+ "service_uuids": [
58
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
59
+ ],
60
+ "rssi": -46
61
+ },
62
+ "type": "redodo_bms",
63
+ "_comments": [
64
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/370)"
65
+ ]
66
+ },
67
+ {
68
+ "advertisement": {
69
+ "local_name": "RO-24100B-A00162",
70
+ "manufacturer_data": {
71
+ "22618": "c8478012d5e7"
72
+ },
73
+ "service_uuids": [
74
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
75
+ ],
76
+ "rssi": -45
77
+ },
78
+ "type": "redodo_bms",
79
+ "_comments": [
80
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/367)"
81
+ ]
82
+ },
83
+ {
84
+ "advertisement": {
85
+ "local_name": "LT-51230BGC-A00229",
86
+ "manufacturer_data": {
87
+ "22618": "c8478012d64e"
88
+ },
89
+ "service_uuids": [
90
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
91
+ ],
92
+ "rssi": -64
93
+ },
94
+ "type": "redodo_bms",
95
+ "_comments": [
96
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/360)",
97
+ "MAC address"
98
+ ]
99
+ },
100
+ {
101
+ "advertisement": {
102
+ "local_name": "LT-12100BG-A07700",
103
+ "manufacturer_data": {
104
+ "22618": "c8478012b3b8"
105
+ },
106
+ "service_uuids": [
107
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
108
+ ],
109
+ "rssi": -87
110
+ },
111
+ "type": "redodo_bms",
112
+ "_comments": [
113
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/402)",
114
+ "-A07248"
115
+ ]
116
+ },
117
+ {
118
+ "advertisement": {
119
+ "local_name": "L-51030GBNGC2-A00263",
120
+ "manufacturer_data": {
121
+ "22618": "c8478014ec68"
122
+ },
123
+ "service_uuids": [
124
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
125
+ ],
126
+ "rssi": -66
127
+ },
128
+ "type": "redodo_bms",
129
+ "_comments": [
130
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/439)"
131
+ ]
132
+ },
133
+ {
134
+ "advertisement": {
135
+ "local_name": "LT-24100B-A00473",
136
+ "manufacturer_data": {
137
+ "22618": "c847800fad8b"
138
+ },
139
+ "service_uuids": [
140
+ "0000ffe0-0000-1000-8000-00805f9b34fb"
141
+ ],
142
+ "rssi": -48
143
+ },
144
+ "type": "redodo_bms",
145
+ "_comments": [
146
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/472)",
147
+ "LiTime LFP 24V / 100Ah",
148
+ "MAC correct"
149
+ ]
150
+ }
151
+ ]
@@ -0,0 +1,19 @@
1
+ [
2
+ {
3
+ "advertisement": {
4
+ "local_name": "BT-TH-66EDFC11",
5
+ "manufacturer_data": {
6
+ "39008": "66edfc11"
7
+ },
8
+ "service_uuids": [
9
+ "0000ffd0-0000-1000-8000-00805f9b34fb"
10
+ ],
11
+ "rssi": -65
12
+ },
13
+ "type": "renogy_bms",
14
+ "_comments": [
15
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/247)",
16
+ "MAC address correct"
17
+ ]
18
+ }
19
+ ]
@@ -0,0 +1,16 @@
1
+ [
2
+ {
3
+ "advertisement": {
4
+ "local_name": "RNGRBP1228000830",
5
+ "manufacturer_data": {
6
+ "57676": "7457947b"
7
+ },
8
+ "rssi": -44
9
+ },
10
+ "type": "renogy_pro_bms",
11
+ "_comments": [
12
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/390)",
13
+ "MAC address, correct"
14
+ ]
15
+ }
16
+ ]
@@ -0,0 +1,54 @@
1
+ [
2
+ {
3
+ "advertisement": {
4
+ "local_name": " B12100A 220600016 ",
5
+ "manufacturer_data": {
6
+ "424": "88a0126c143922b8"
7
+ },
8
+ "service_uuids": [
9
+ "0000ffe0-0000-1000-8000-00805f9b34fb",
10
+ "0000ffe7-0000-1000-8000-00805f9b34fb"
11
+ ],
12
+ "rssi": -87
13
+ },
14
+ "type": "roypow_bms",
15
+ "_comments": [
16
+ "source pcap (https://github.com/patman15/BMS_BLE-HA/issues/186)",
17
+ "Epoch, BMS: RoyPow SPB22-TI04"
18
+ ]
19
+ },
20
+ {
21
+ "advertisement": {
22
+ "manufacturer_data": {
23
+ "2865": "88a0126c1439281f"
24
+ },
25
+ "service_uuids": [
26
+ "0000ffe0-0000-1000-8000-00805f9b34fb",
27
+ "0000fee7-0000-1000-8000-00805f9b34fb"
28
+ ],
29
+ "rssi": -50
30
+ },
31
+ "type": "roypow_bms",
32
+ "_comments": [
33
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/186)",
34
+ "no name advertised"
35
+ ]
36
+ },
37
+ {
38
+ "advertisement": {
39
+ "manufacturer_data": {
40
+ "35579": "88a0c66c1508a7e9"
41
+ },
42
+ "service_uuids": [
43
+ "0000ffe0-0000-1000-8000-00805f9b34fb",
44
+ "0000fee7-0000-1000-8000-00805f9b34fb"
45
+ ],
46
+ "rssi": -66
47
+ },
48
+ "type": "roypow_bms",
49
+ "_comments": [
50
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/186)",
51
+ "no name advertised"
52
+ ]
53
+ }
54
+ ]
@@ -0,0 +1,96 @@
1
+ [
2
+ {
3
+ "advertisement": {
4
+ "local_name": "SP05B2312190075 ",
5
+ "service_uuids": [
6
+ "0000fff0-0000-1000-8000-00805f9b34fb"
7
+ ],
8
+ "rssi": -76
9
+ },
10
+ "type": "seplos_bms",
11
+ "_comments": [
12
+ "source LOG"
13
+ ]
14
+ },
15
+ {
16
+ "advertisement": {
17
+ "local_name": "SP51B2407270006 ",
18
+ "service_uuids": [
19
+ "00001800-0000-1000-8000-00805f9b34fb",
20
+ "00001801-0000-1000-8000-00805f9b34fb",
21
+ "0000fff0-0000-1000-8000-00805f9b34fb",
22
+ "02f00000-0000-0000-8000-00000000fe00"
23
+ ],
24
+ "rssi": -46
25
+ },
26
+ "type": "seplos_bms",
27
+ "_comments": [
28
+ "source BTctl (https://github.com/patman15/BMS_BLE-HA/issues/142)"
29
+ ]
30
+ },
31
+ {
32
+ "advertisement": {
33
+ "local_name": "SP66B2404270002 ",
34
+ "service_uuids": [
35
+ "0000fff0-0000-1000-8000-00805f9b34fb"
36
+ ],
37
+ "rssi": -81
38
+ },
39
+ "type": "seplos_bms",
40
+ "_comments": [
41
+ "source LOG"
42
+ ]
43
+ },
44
+ {
45
+ "advertisement": {
46
+ "local_name": "SP47B-A2410230006",
47
+ "service_uuids": [
48
+ "0000fff0-0000-1000-8000-00805f9b34fb"
49
+ ],
50
+ "rssi": -81
51
+ },
52
+ "type": "seplos_bms",
53
+ "_comments": [
54
+ "advmon (https://github.com/patman15/BMS_BLE-HA/issues/214)"
55
+ ]
56
+ },
57
+ {
58
+ "advertisement": {
59
+ "local_name": "CSY012405290042",
60
+ "service_uuids": [
61
+ "0000fff0-0000-1000-8000-00805f9b34fb"
62
+ ],
63
+ "rssi": -78
64
+ },
65
+ "type": "seplos_bms",
66
+ "_comments": [
67
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/231)"
68
+ ]
69
+ },
70
+ {
71
+ "advertisement": {
72
+ "local_name": "SP95B-B2503190001",
73
+ "service_uuids": [
74
+ "0000fff0-0000-1000-8000-00805f9b34fb"
75
+ ],
76
+ "rssi": -65
77
+ },
78
+ "type": "seplos_bms",
79
+ "_comments": [
80
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/454)"
81
+ ]
82
+ },
83
+ {
84
+ "advertisement": {
85
+ "local_name": "SP112B2409100524 ",
86
+ "service_uuids": [
87
+ "0000fff0-0000-1000-8000-00805f9b34fb"
88
+ ],
89
+ "rssi": -96
90
+ },
91
+ "type": "seplos_bms",
92
+ "_comments": [
93
+ "source LOG"
94
+ ]
95
+ }
96
+ ]
@@ -0,0 +1,41 @@
1
+ [
2
+ {
3
+ "advertisement": {
4
+ "local_name": "BP02",
5
+ "service_uuids": [
6
+ "0000ff00-0000-1000-8000-00805f9b34fb"
7
+ ],
8
+ "rssi": -81
9
+ },
10
+ "type": "seplos_v2_bms",
11
+ "_comments": []
12
+ },
13
+ {
14
+ "advertisement": {
15
+ "local_name": "BP21",
16
+ "service_uuids": [
17
+ "0000ff00-0000-1000-8000-00805f9b34fb"
18
+ ],
19
+ "rssi": -62
20
+ },
21
+ "type": "seplos_v2_bms",
22
+ "_comments": [
23
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/418)"
24
+ ]
25
+ },
26
+ {
27
+ "advertisement": {
28
+ "local_name": "BP00",
29
+ "service_uuids": [
30
+ "00001800-0000-1000-8000-00805f9b34fb",
31
+ "00001801-0000-1000-8000-00805f9b34fb",
32
+ "0000ff00-0000-1000-8000-00805f9b34fb"
33
+ ],
34
+ "rssi": -62
35
+ },
36
+ "type": "seplos_v2_bms",
37
+ "_comments": [
38
+ "source advmon (https://github.com/patman15/BMS_BLE-HA/issues/418)"
39
+ ]
40
+ }
41
+ ]
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "advertisement": {
4
+ "manufacturer_data": {
5
+ "54976": "3c4fac50ff"
6
+ },
7
+ "rssi": -127
8
+ },
9
+ "type": "tdt_bms",
10
+ "_comments": [
11
+ "source PCAP"
12
+ ]
13
+ }
14
+ ]
@@ -0,0 +1,13 @@
1
+ [
2
+ {
3
+ "advertisement": {
4
+ "local_name": "TP_123456",
5
+ "rssi": -87
6
+ },
7
+ "type": "tianpwr_bms",
8
+ "_comments": [
9
+ "source PCAP (https://github.com/patman15/BMS_BLE-HA/issues/412)",
10
+ "OUI: 90:a6:bf"
11
+ ]
12
+ }
13
+ ]
@@ -0,0 +1,163 @@
1
+ Metadata-Version: 2.4
2
+ Name: aiobmsble
3
+ Version: 0.4
4
+ Summary: Asynchronous Python library to query battery management systems via Bluetooth Low Energy.
5
+ Author: Patrick Loschmidt
6
+ Maintainer: Patrick Loschmidt
7
+ License-Expression: Apache-2.0
8
+ Project-URL: Homepage, https://github.com/patman15/aiobmsble/
9
+ Project-URL: Documentation, https://github.com/patman15/aiobmsble/README
10
+ Project-URL: Source Code, https://github.com/patman15/aiobmsble/
11
+ Project-URL: Bug Reports, https://github.com/patman15/aiobmsble/issues
12
+ Keywords: BMS,BLE,battery,bluetooth
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Requires-Python: >=3.12
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: bleak>=1.0.1
22
+ Requires-Dist: bleak-retry-connector>=4.0.2
23
+ Provides-Extra: dev
24
+ Requires-Dist: pytest; extra == "dev"
25
+ Requires-Dist: pytest-asyncio; extra == "dev"
26
+ Requires-Dist: pytest-cov; extra == "dev"
27
+ Requires-Dist: pytest-xdist; extra == "dev"
28
+ Requires-Dist: hypothesis; extra == "dev"
29
+ Requires-Dist: mypy; extra == "dev"
30
+ Requires-Dist: ruff<0.14.0,>=0.12.1; extra == "dev"
31
+ Dynamic: license-file
32
+
33
+ [![GitHub Release][releases-shield]](https://pypi.org/p/aiobmsble/)
34
+ [![License][license-shield]](LICENSE)
35
+
36
+ # Aiobmsble
37
+ Requires Python 3 and uses [asyncio](https://pypi.org/project/asyncio/) and [bleak](https://pypi.org/project/bleak/)
38
+
39
+ ## Asynchronous Library to Query Battery Management Systems via Bluetooth LE
40
+ This library is intended to query data from battery management systems that use Bluetooth LE. This library can be used stand-alone in any Python environment (with necessary dependencies installed). It is developed to support [BMS_BLE-HA integration](https://github.com/patman15/BMS_BLE-HA/) that was written to make BMS data available to Home Assistant, but can be hopefully usefull for other use-cases as well.
41
+
42
+ * [Features](#features)
43
+ * [Usage](#usage)
44
+ * [Installation](#installation)
45
+ * [Troubleshooting](#troubleshooting)
46
+
47
+ ## Features
48
+ - Support for autodetecting compatible BLE BMSs
49
+ - Automatic detection of compatible BLE write mode
50
+ - Asynchronous operation using [asyncio](https://pypi.org/project/asyncio/)
51
+ - Any number of batteries in parallel
52
+ - 100% test coverage plus fuzz tests for BLE data
53
+
54
+ ### Supported Devices
55
+ The [list of supported devices](https://github.com/patman15/BMS_BLE-HA/blob/feature-aiobmsble/README.md#supported-devices) is maintained in the repository of the related [Home Assistant integration](https://github.com/patman15/BMS_BLE-HA).
56
+
57
+ ## Usage
58
+ In order to identify all devices that are reachable and supported by the library, simply run
59
+ ```bash
60
+ aiobmsble
61
+ ```
62
+ from the command line after [installation](#installation).
63
+
64
+ ### From your Python code
65
+ In case you need a reference to include the code into your library, please see [\_\_main\_\_.py](/aiobmsble/__main__.py).
66
+
67
+ ### From a Script
68
+ This example can also be found as an [example](/examples/minimal.py) in the respective [folder](/main/examples).
69
+ ```python
70
+ """Example of using the aiobmsble library to find a BLE device by name and print its sensor data.
71
+
72
+ Project: aiobmsble, https://pypi.org/p/aiobmsble/
73
+ License: Apache-2.0, http://www.apache.org/licenses/
74
+ """
75
+
76
+ import asyncio
77
+ import logging
78
+ from typing import Final
79
+
80
+ from bleak import BleakScanner
81
+ from bleak.backends.device import BLEDevice
82
+ from bleak.exc import BleakError
83
+
84
+ from aiobmsble import BMSsample
85
+ from aiobmsble.bms.dummy_bms import BMS # TODO: use the right BMS class for your device
86
+
87
+ NAME: Final[str] = "BT Device Name" # TODO: replace with the name of your BLE device
88
+
89
+ # Configure logging
90
+ logging.basicConfig(level=logging.INFO)
91
+ logger: logging.Logger = logging.getLogger(__name__)
92
+
93
+
94
+ async def main(dev_name) -> None:
95
+ """Find a BLE device by name and update its sensor data."""
96
+
97
+ device: BLEDevice | None = await BleakScanner.find_device_by_name(dev_name)
98
+ if device is None:
99
+ logger.error("Device '%s' not found.", dev_name)
100
+ return
101
+
102
+ logger.info("Found device: %s (%s)", device.name, device.address)
103
+ try:
104
+ async with BMS(ble_device=device) as bms:
105
+ logger.info("Updating BMS data...")
106
+ data: BMSsample = await bms.async_update()
107
+ logger.info("BMS data: %s", repr(data).replace(", ", ",\n\t"))
108
+ except BleakError as ex:
109
+ logger.error("Failed to update BMS: %s", type(ex).__name__)
110
+
111
+
112
+ if __name__ == "__main__":
113
+ asyncio.run(main(NAME)) # pragma: no cover
114
+ ```
115
+
116
+ ### Testing
117
+ For integrations tests (using pytest) the library provides advertisement data that can be used to verify detection of BMSs. To use it, include the following line into your `conftest.py`:
118
+ ```python
119
+ pytest_plugins: list[str] = ["aiobmsble.test_data"]
120
+ ```
121
+
122
+ For your tests you can then use
123
+ ```python
124
+ def test_advertisements(bms_advertisements) -> None:
125
+ """Run some tests with the advertisements"""
126
+ for advertisement, bms_type, _comments in bms_advertisements:
127
+ ...
128
+ ```
129
+
130
+ ## Installation
131
+ Install python and pip if you have not already, then run:
132
+ ```bash
133
+ pip3 install pip --upgrade
134
+ pip3 install wheel
135
+ ```
136
+
137
+ ### For Production:
138
+
139
+ ```bash
140
+ pip3 install aiobmsble
141
+ ```
142
+ This will install the latest library release and all of it's python dependencies.
143
+
144
+ ### For Development:
145
+ ```bash
146
+ git clone https://github.com/patman15/aiobmsble.git
147
+ cd aiobmsble
148
+ pip3 install -e .[dev]
149
+ ```
150
+ This gives you the latest library code from the main branch.
151
+
152
+ ## Troubleshooting
153
+ In case you have problems with the library, please enable debug logging. You can also run `aiobmsble -v` from the command line in order to query all known BMS that are reachable.
154
+
155
+ ### In case you have troubles you'd like to have help with
156
+
157
+ - please record a debug log using `aiobmsble -v -l debug.log`,
158
+ - [open an issue](https://github.com/patman15/aiobmsble/issues/new?assignees=&labels=question&projects=&template=support.yml) with a good description of what your question/issue is and attach the log, or
159
+ - [open a bug](https://github.com/patman15/aiobmsble/issues/new?assignees=&labels=Bug&projects=&template=bug.yml) if you think the behaviour you see is misbehaviour of the library, including a good description of what happened, your expectations,
160
+ - and put the `debug.log` **as attachement** to the issue.
161
+
162
+ [license-shield]: https://img.shields.io/github/license/patman15/aiobmsble?style=for-the-badge&cacheSeconds=86400
163
+ [releases-shield]: https://img.shields.io/pypi/v/aiobmsble?style=for-the-badge
@@ -0,0 +1,64 @@
1
+ aiobmsble/__init__.py,sha256=7Qg39LPp9W98ymZX67uOZzbPspJ4JuSUenSxLm12jlo,3119
2
+ aiobmsble/__main__.py,sha256=DOEa7Xogf65ON5ke425EpQqLsEqJC0Icray1WWEZeXE,3158
3
+ aiobmsble/basebms.py,sha256=89Fy7MZyBPOWnYzOmRY3LiRlQYn3fYAqWP6-0O91SY8,19864
4
+ aiobmsble/utils.py,sha256=ckcOXMLTpm4oCxbGKco88cPVP4nOgiTJ16ebFlvsj_E,5805
5
+ aiobmsble/bms/__init__.py,sha256=ZE4Uezyd5fs3os4_bt6Pnzsfrp38LTXItdvJ9-zBiR0,165
6
+ aiobmsble/bms/abc_bms.py,sha256=ug4AeTHiOcMWB4MVTjKI69mbq1wk-J89BbIE2-LeH-w,5993
7
+ aiobmsble/bms/ant_bms.py,sha256=3kNX0Oy7EDxlb1pynARnttTi-QnzSsFovR5MgrveUOo,7236
8
+ aiobmsble/bms/ant_leg_bms.py,sha256=Cz0mi3P7_TaKDodZjGs0dcBq0Mjdk8YhwSfs--ijyMQ,5711
9
+ aiobmsble/bms/braunpwr_bms.py,sha256=fINnmqN3jxZPcKXPcjGPkptU65xxTtuIrilkWlKaWeI,5977
10
+ aiobmsble/bms/cbtpwr_bms.py,sha256=r2EGxFhGJCQvn8iRa1SJY-7xey64Q6MhaKKTfsgo_T0,6277
11
+ aiobmsble/bms/cbtpwr_vb_bms.py,sha256=hivPpOXCc946RH4Z8kQXEC9GkFUTtxJC2KSaIjAvBd0,6626
12
+ aiobmsble/bms/daly_bms.py,sha256=XVz5_sOBBPhBWqlq6PLOXpwglPa1YCfMqOBOT2cQpss,5850
13
+ aiobmsble/bms/dpwrcore_bms.py,sha256=ATUw4bnXPgm7TvAA2ej7H0GKkDMhWfDUqi9CrLE1mps,6666
14
+ aiobmsble/bms/dummy_bms.py,sha256=gso6-0Bs5veVJfp6XNjZiigVAr6JAb_o9hFu-zlsURw,3503
15
+ aiobmsble/bms/ecoworthy_bms.py,sha256=-Y6TEktbTwcIfCUEfAQkRIdqxPH0B93-Fhhm93oeGKk,5410
16
+ aiobmsble/bms/ective_bms.py,sha256=GGcZgqC8BB7v0xm_st7wGvGNmayxCBYq-rhOrevaMzg,5851
17
+ aiobmsble/bms/ej_bms.py,sha256=8AiS26r2_uapXMLI34d-eECh5wKXOHhD2eRIeKhApLQ,8174
18
+ aiobmsble/bms/felicity_bms.py,sha256=oDXlJzYlZF5TtXVC1VYfMybzti1yEKjzGETop12vGYk,4738
19
+ aiobmsble/bms/jbd_bms.py,sha256=wy1EAjxZZkDps9Y5H7cGTgaV8dYz_3n1iQUxP-ImqA4,7167
20
+ aiobmsble/bms/jikong_bms.py,sha256=DOxYo2FwVZOdGtaxRwL3HzffuX0_z3pYZrsckia18Ik,11153
21
+ aiobmsble/bms/neey_bms.py,sha256=dTdyThI2MMNVfEQ2ArPbY5bDkKMGn6NSfz2G68qYZ6Q,7666
22
+ aiobmsble/bms/ogt_bms.py,sha256=gIEt1h1e0ZXESgmL_VwzH34FiyH0pvIfGwjpc3hgIZ0,7988
23
+ aiobmsble/bms/pro_bms.py,sha256=TyAbjZBYaWOLtZ4rWWVWHag8o6x-roeujWobMlnb14A,5079
24
+ aiobmsble/bms/redodo_bms.py,sha256=p6lvJ9fzJS-CkjaB7dSz3_j9-a5Ls3ul1jGBI0p6Ezk,4484
25
+ aiobmsble/bms/renogy_bms.py,sha256=q_SO0LvW0MLtdNvretnactt4UoYnq5Zje3iDrRAum9k,5080
26
+ aiobmsble/bms/renogy_pro_bms.py,sha256=EsPlnrtdn7F4o-LRIIwTnVLIkvm4yfc5uEpeJlG3bCU,3969
27
+ aiobmsble/bms/roypow_bms.py,sha256=ZNuHrMYxQLIGJuao1-DR7pNE2tH6OVGpMaZZxHl2o9I,6169
28
+ aiobmsble/bms/seplos_bms.py,sha256=R4A77uwjy5XDbbPNwzfqOZxaQfIvGs-Vnd-0Ch0zw-s,9532
29
+ aiobmsble/bms/seplos_v2_bms.py,sha256=un6vvMwWXnFzAUgOnHYg69Jokd9MH-9MjqELOQD6Uok,7494
30
+ aiobmsble/bms/tdt_bms.py,sha256=ksGPwTAcn4WDrjSh8a0OzokDhWqrOcixLU3XfndfPyI,7033
31
+ aiobmsble/bms/tianpwr_bms.py,sha256=2EdaCnY4_PxfRUUrU1hQgwvst5fHDz6yvGS7FU_zYxs,4947
32
+ aiobmsble/test_data/__init__.py,sha256=lWBwiwUuGZk9pwBmpWHRzSbmVi4ZbXgRVltoxcLfyg4,3339
33
+ aiobmsble/test_data/abc_bms.json,sha256=xSKro1Aechkgod-mWo_azkgcMW55dZhSxxy2OoTsH94,875
34
+ aiobmsble/test_data/ant_bms.json,sha256=NjcRYC7UALV5Bj2vkCMkOf-5KhoywOO64gjze0WTyn4,373
35
+ aiobmsble/test_data/ant_leg_bms.json,sha256=HKTkLaovPDqFaGrwgtOxqUEe7LZGJn9O2uEaWDY6CcQ,375
36
+ aiobmsble/test_data/braunpwr_bms.json,sha256=XoK-OFQZneSZz0p5J3ZBqgsgeoOOixitW5Fq0yCCrcM,729
37
+ aiobmsble/test_data/cbtpwr_bms.json,sha256=tzHe5AvQQymRYVsLavXxw30S9_R51J9_Jrgpw1pDSDI,2519
38
+ aiobmsble/test_data/cbtpwr_vb_bms.json,sha256=gETNHV7wblBDbGnn6wLelBtzB0nQS7UNSVKfNKNpXD0,447
39
+ aiobmsble/test_data/daly_bms.json,sha256=OiVzdANu3_2a16lSQqeBnQi-BIluUzlMa4U7z8TAQwk,2260
40
+ aiobmsble/test_data/dpwrcore_bms.json,sha256=Qdx7wxsFUD8jmNZ-Y9xaG5eJd4BrN826dsT8dKZ0LuI,469
41
+ aiobmsble/test_data/ecoworthy_bms.json,sha256=kjdUaVEKhLRU-_lbskk4Up0_Byzf2ez_ghHQTzHpXVI,2421
42
+ aiobmsble/test_data/ective_bms.json,sha256=v5L5Vo0CkPMqT4hdSamNqA9Op_vG-6GxEHxhO7LIMCs,2364
43
+ aiobmsble/test_data/ej_bms.json,sha256=B-Uv_gXhZzlEq3RsfkLGbiK1p_lPv0d7ShxvzY9UXPM,2343
44
+ aiobmsble/test_data/felicity_bms.json,sha256=9PVyZBr4_tM0myJQKP8jdk3HUV1J4DtB99llK3fH9hk,525
45
+ aiobmsble/test_data/ignore.json,sha256=1REzB8DmmsPgm9UeZ48w-r_2ulQ-Pwru0xOq-t-2S6I,1158
46
+ aiobmsble/test_data/jbd_bms.json,sha256=CP9YKl0aB-ELAz4MkJpo2ZKp1uauY5ZMJ41-zM0O_mg,10617
47
+ aiobmsble/test_data/jikong_bms.json,sha256=MMfA4sLuJNv64s7nd3kH5L7zr2gPLYHXipOa2IxRvTQ,1222
48
+ aiobmsble/test_data/neey_bms.json,sha256=QISxbO7rVpqK6BE1V7FJ80Nqb1IV0vyLvzFCIjcir_E,1554
49
+ aiobmsble/test_data/ogt_bms.json,sha256=0DGYFDffrCLeAbH4zuvdbFrJCeKReIFZUVAcP9RA1qc,267
50
+ aiobmsble/test_data/pro_bms.json,sha256=hO1kd6AqHL4u68Atq1IJoQb-P2RLrANJGqdM565v63Y,272
51
+ aiobmsble/test_data/redodo_bms.json,sha256=Ddhf_Bg5kZ5l80IXubbp3Y44o4Nq9EXZE5eAQOYJPtQ,3436
52
+ aiobmsble/test_data/renogy_bms.json,sha256=hIE-iD-TjGsncylEz7bcxgv0v8-FrUkaaTukl0-nQXc,398
53
+ aiobmsble/test_data/renogy_pro_bms.json,sha256=CgYTT7aY34zioS07shX2ki-ASE-bFTDIgqflhmYmPxo,324
54
+ aiobmsble/test_data/roypow_bms.json,sha256=vzWwS3nwIBav5GtJU10uRYpd17U4B7bH3Qj6SHQo4Wc,1290
55
+ aiobmsble/test_data/seplos_bms.json,sha256=i1FFOL0ytINZU-98wk9L2DrY9AhvvgvkO54xd7avAZo,2119
56
+ aiobmsble/test_data/seplos_v2_bms.json,sha256=W7l6yDiZDt62zoiA1oNfVZ9NMMpC-c1wwCUUvVHtet0,901
57
+ aiobmsble/test_data/tdt_bms.json,sha256=lLyO_-RCZ6nPbGkkShk--uXMyUXHxFx6mVzuc9swtf0,196
58
+ aiobmsble/test_data/tianpwr_bms.json,sha256=9FHUqTaJQKB74T8A1noWjfcHBXI5LffZ8pUawkLbRGc,239
59
+ aiobmsble-0.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
60
+ aiobmsble-0.4.dist-info/METADATA,sha256=IzkoRCKPTjp1IxmVIyJPoMNdTBqEmb7RoM3uBO2QH_o,6586
61
+ aiobmsble-0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
62
+ aiobmsble-0.4.dist-info/entry_points.txt,sha256=HSC_C3nQikc3nk0a6mcG92RuIM7wAzozjBVfDojJceo,54
63
+ aiobmsble-0.4.dist-info/top_level.txt,sha256=YHBVzg45mJ3vPz0sl_TpMB0edMqqhD61kwJj4EPAk9g,10
64
+ aiobmsble-0.4.dist-info/RECORD,,