core/tests/components/pglab/test_common.py
pglab-electronics c0e8f14745
Update support to external library pypglab to version 0.0.5 (#141876)
update support to external library pypglab to version 0.0.5
2025-03-31 10:25:48 +02:00

51 lines
1.4 KiB
Python

"""Common code for PG LAB Electronics tests."""
import json
from homeassistant.core import HomeAssistant
from tests.common import async_fire_mqtt_message
def get_device_discovery_payload(
number_of_shutters: int,
number_of_boards: int,
device_name: str = "test",
) -> dict[str, any]:
"""Return the device discovery payload."""
# be sure the number of shutters and boards are in the correct range
assert 0 <= number_of_boards <= 8
assert 0 <= number_of_shutters <= (number_of_boards * 4)
# define the number of E-RELAY boards connected to E-BOARD
boards = "1" * number_of_boards + "0" * (8 - number_of_boards)
return {
"ip": "192.168.1.16",
"mac": "80:34:28:1B:18:5A",
"name": device_name,
"hw": "1.0.7",
"fw": "1.0.0",
"type": "E-BOARD",
"id": "E-BOARD-DD53AC85",
"manufacturer": "PG LAB Electronics",
"params": {"shutters": number_of_shutters, "boards": boards},
}
async def send_discovery_message(
hass: HomeAssistant,
payload: dict[str, any] | None,
) -> None:
"""Send the discovery message to make E-BOARD device discoverable."""
topic = "pglab/discovery/E-BOARD-DD53AC85/config"
async_fire_mqtt_message(
hass,
topic,
json.dumps(payload if payload is not None else ""),
)
await hass.async_block_till_done()