First PyPI release of the v1 wire path. Wheel published from local source 2026-05-11 with omni_pca/v1/ subpackage included. What's in 2026.5.11 vs 2026.5.10 (already on PyPI): * New omni_pca.v1 subpackage -- OmniConnectionV1, OmniClientV1, OmniClientV1Adapter -- for panels that listen on UDP only and speak the legacy OmniLink (not OmniLink2) wire dialect. * HA integration wires the adapter into the coordinator when Transport=UDP is selected at config-flow time; v2/TCP path is unchanged. * Streaming UploadNames discovery (bare opcode + lock-step Acknowledge until EOD/NAK). * Long-form RequestUnitStatus for unit indices > 255 (sprinklers, named flags, expansion-enclosure outputs). * Chunked status polls -- firmware 2.12 NAKs at ~63 records per request, so we batch in groups of 40. * OmniConnection.close() now sends ClientSessionTerminated so the panel frees our session slot immediately on disconnect. Verified end-to-end against a firmware 2.12 OmniPro II panel at 192.168.1.9: discovery (16 zones, 44 units, 16 buttons, 8 codes, 2 thermostats, 8 messages) + status polling + execute_command round-trip all working under HA, side-by-side with the existing TCP mock-panel path in the dev stack. README: new "Two wire dialects" section explaining when to pick TCP/OmniClient vs UDP/OmniClientV1. manifest.json: requirements bump to omni-pca==2026.5.11.
14 lines
440 B
JSON
14 lines
440 B
JSON
{
|
|
"domain": "omni_pca",
|
|
"name": "HAI/Leviton Omni Panel",
|
|
"version": "2026.5.11",
|
|
"iot_class": "local_push",
|
|
"config_flow": true,
|
|
"dependencies": [],
|
|
"codeowners": ["@rsp2k"],
|
|
"requirements": ["omni-pca==2026.5.11"],
|
|
"documentation": "https://git.supported.systems/warehack.ing/omni-pca",
|
|
"issue_tracker": "https://git.supported.systems/warehack.ing/omni-pca/issues",
|
|
"integration_type": "hub"
|
|
}
|