mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 01:38:02 +00:00
51 lines
1.4 KiB
Python
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()
|