Skip to content

Commit ce977bb

Browse files
committed
switched advertisement data to python
1 parent f2ea3de commit ce977bb

File tree

3 files changed

+103
-88
lines changed

3 files changed

+103
-88
lines changed

tests/advertisement_data.json

-64
This file was deleted.

tests/advertisement_data.py

+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
"""Test data for BLE Battery Management System integration config flow."""
2+
3+
from typing import Final
4+
5+
from .bluetooth import generate_advertisement_data
6+
7+
ADVERTISEMENTS: Final[list] = [
8+
# ( # conflicting integrated component: https://github.com/patman15/BMS_BLE-HA/issues/123
9+
# generate_advertisement_data(
10+
# local_name="NWJ20221223010330",#\x11",
11+
# manufacturer_data={65535: b"0UD7\xa2\xd2"},
12+
# service_uuids=["0000ffe0-0000-1000-8000-00805f9b34fb"],
13+
# rssi=-56,
14+
# ),
15+
# "ective_bms",
16+
# ),
17+
# (
18+
# generate_advertisement_data(
19+
# local_name="NWJ20221223010388",#\x11",
20+
# manufacturer_data={65535: b"0UD7b\xec"},
21+
# service_uuids=["0000ffe0-0000-1000-8000-00805f9b34fb"],
22+
# rssi=-47,
23+
# ),
24+
# "ective_bms",
25+
# ),
26+
(
27+
generate_advertisement_data(
28+
local_name="BatteryOben-00",
29+
manufacturer_data={2917: b"\x88\xa0\xc8G\x80\x0f\xd5\xc5"},
30+
service_uuids=["0000ffe0-0000-1000-8000-00805f9b34fb"],
31+
tx_power=-127,
32+
rssi=-83,
33+
),
34+
"jikong_bms",
35+
),
36+
(
37+
generate_advertisement_data(
38+
local_name="BatterieUnten-01",
39+
manufacturer_data={2917: b"\x88\xa0\xc8G\x80\r\x08k"},
40+
service_uuids=["0000ffe0-0000-1000-8000-00805f9b34fb"],
41+
tx_power=-127,
42+
rssi=-68,
43+
),
44+
"jikong_bms",
45+
),
46+
(
47+
generate_advertisement_data(
48+
local_name="JK_B2A8S20P",
49+
manufacturer_data={2917: b"\x88\xa0\xc8G\x80\x14\x88\xb7"},
50+
service_uuids=[
51+
"00001800-0000-1000-8000-00805f9b34fb",
52+
"00001801-0000-1000-8000-00805f9b34fb",
53+
"0000180a-0000-1000-8000-00805f9b34fb",
54+
"0000180f-0000-1000-8000-00805f9b34fb",
55+
"0000fee7-0000-1000-8000-00805f9b34fb",
56+
"0000ffe0-0000-1000-8000-00805f9b34fb",
57+
"f000ffc0-0451-4000-b000-000000000000",
58+
],
59+
rssi=-67,
60+
),
61+
"jikong_bms",
62+
),
63+
(
64+
generate_advertisement_data(
65+
local_name="SP05B2312190075 ",
66+
service_uuids=["0000fff0-0000-1000-8000-00805f9b34fb"],
67+
tx_power=-127,
68+
rssi=-76,
69+
),
70+
"seplos_bms",
71+
),
72+
(
73+
generate_advertisement_data(
74+
local_name="BP02",
75+
service_uuids=["0000ff00-0000-1000-8000-00805f9b34fb"],
76+
rssi=-81,
77+
),
78+
"seplos_v2_bms",
79+
),
80+
(
81+
generate_advertisement_data(
82+
local_name="BP02",
83+
service_uuids=[
84+
"00001800-0000-1000-8000-00805f9b34fb",
85+
"00001801-0000-1000-8000-00805f9b34fb",
86+
"0000ff00-0000-1000-8000-00805f9b34fb",
87+
],
88+
rssi=-90,
89+
),
90+
"seplos_v2_bms",
91+
),
92+
(
93+
generate_advertisement_data(
94+
local_name="LT-12V-1544",
95+
manufacturer_data={33384: b"\x01\x02\x00\x07\x81\xb5N"},
96+
tx_power=-127,
97+
rssi=-71,
98+
),
99+
"ej_bms",
100+
),
101+
]

tests/test_config_flow.py

+2-24
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
"""Test the BLE Battery Management System integration config flow."""
22

3-
import json
4-
from pathlib import Path
53
from typing import Final
64

75
from bleak.backends.scanner import AdvertisementData
@@ -22,6 +20,7 @@
2220
from homeassistant.data_entry_flow import FlowResultType
2321
from homeassistant.helpers import entity_registry as er
2422

23+
from .advertisement_data import ADVERTISEMENTS
2524
from .bluetooth import (
2625
generate_advertisement_data,
2726
generate_ble_device,
@@ -30,30 +29,9 @@
3029
from .conftest import mock_config, mock_update_min
3130

3231

33-
def load_advertisement_data():
34-
"""Load advertisement data from file."""
35-
with Path("tests/advertisement_data.json").open(encoding="utf-8") as file:
36-
return json.load(file)
37-
38-
3932
@pytest.fixture(
4033
name="advertisement",
41-
params=[
42-
(
43-
generate_advertisement_data(
44-
local_name=item["local_name"],
45-
service_uuids=item.get("service_uuids", []),
46-
manufacturer_data={
47-
int(k): bytes.fromhex(v)
48-
for k, v in item.get("manufacturer_data", {}).items()
49-
},
50-
tx_power=item.get("tx_power"),
51-
rssi=item["rssi"],
52-
),
53-
item["label"],
54-
)
55-
for item in load_advertisement_data()
56-
],
34+
params=ADVERTISEMENTS,
5735
ids=lambda param: param[1],
5836
)
5937
def bms_advertisement(request) -> BluetoothServiceInfoBleak:

0 commit comments

Comments
 (0)