21 Commits

Author SHA1 Message Date
c5ab9e854c Remove incoming inversion toggles 2026-02-15 16:47:44 +01:00
b59455909c Fix port toggle updates and device layout 2026-02-13 21:28:10 +01:00
6a5589e60a Bump version to 0.0.18 2026-02-13 21:19:10 +01:00
0af4fc8375 Add port devices and enable toggles 2026-02-13 21:13:54 +01:00
6824134c91 Add edit port flow and locale fallbacks 2026-02-13 20:56:14 +01:00
44de824041 Normalize event destination and clamp percent 2026-02-13 20:45:27 +01:00
6ce60029a1 Remove payload_length from KNX send 2026-02-13 20:36:37 +01:00
22afc5addf Improve KNX cover command decoding 2026-02-13 20:23:01 +01:00
0fa390fd7f Fix KNX event listener fallback 2026-02-13 20:07:23 +01:00
4660344a89 Fix translation path and quiet subentry warning 2026-02-13 19:52:26 +01:00
de0146ccae Add options flow translations 2026-02-13 19:45:50 +01:00
502a33dbac Add options flow fallback for ports 2026-02-13 19:33:55 +01:00
8b20cf4744 Improve subentry type detection 2026-02-13 19:29:11 +01:00
6de191b10b Handle missing subentry support 2026-02-13 19:18:01 +01:00
2175e5919e Fix subentry type compatibility 2026-02-13 19:08:13 +01:00
83518c88ab Centralize DPT auto-selection 2026-02-13 14:13:31 +01:00
d91d3edc5a Add per-address invert toggles 2026-02-13 13:44:06 +01:00
d6ec48e2e6 Add switch port support 2026-02-13 13:25:49 +01:00
74f5133bc1 Stop tracking .idea prompt and state files 2026-02-13 13:18:09 +01:00
127fa98471 Track project prompt and state files 2026-02-13 12:14:45 +01:00
b733f9d62d Add KNX address validation and bcs metadata 2026-02-13 11:54:14 +01:00
50 changed files with 5749 additions and 82 deletions

59
.idea/PROJECT_STATE.md generated Normal file
View File

@@ -0,0 +1,59 @@
# Project State: HA KNX Bridge
## Project Description
HA KNX Bridge is a Home Assistant custom integration that mirrors Home Assistant entities
to KNX group addresses and accepts KNX actions to control Home Assistant entities.
It is installed via HACS and configured through the Home Assistant UI (config flow).
The integration should:
- Reuse an existing Home Assistant KNX integration entry when available.
- Allow users to add "Ports" that bind a single HA entity to KNX group addresses.
- Auto-select appropriate KNX DPTs and request only the group addresses needed.
- Ignore missing/empty group addresses without errors.
Target compatibility: Home Assistant 2025.12 with forward compatibility to 2026.2.
Project rules:
- Keep `README.md` updated for user-relevant changes after each new version.
- Maintain `CHANGELOG.md` with newest entries at the top.
- Releases are created only when explicitly requested.
- Version number must match everywhere it is referenced (manifest, changelog, README, HACS if used).
## Current State (as of 2026-02-15)
Completed:
- Repo initialized with `main` branch and pushed to GitHub.
- HACS metadata (`hacs.json`) and base integration scaffold created.
- Config flow created with subentries ("Ports") for:
- Binary Sensor
- Cover
- KNX group address validation and normalization in subentry flows.
- Options flow skeleton added (no options yet).
- `bcs.yaml` metadata file added for BCS store listing.
- Switch port support added (KNX command + state).
- Per-address invert toggles added for incoming/outgoing payloads.
- DPT auto-selection centralized for KNX event registration.
- Port devices and enable switches added for quick overview and toggling.
- Bridge manager implements:
- Binary sensor state -> KNX send (DPT 1)
- Cover KNX incoming commands -> HA services
- Cover HA state -> KNX percent updates (DPT 5.001)
- README includes initial DPT mapping and roadmap.
- Incoming invert toggles removed; outgoing inversion remains only for state addresses.
- Project version set to 0.0.20 and `CHANGELOG.md` maintained.
Files created:
- `custom_components/ha_knx_bridge/__init__.py`
- `custom_components/ha_knx_bridge/bridge.py`
- `custom_components/ha_knx_bridge/config_flow.py`
- `custom_components/ha_knx_bridge/const.py`
- `custom_components/ha_knx_bridge/manifest.json`
- `custom_components/ha_knx_bridge/strings.json`
- `hacs.json`
- `README.md`
- `CHANGELOG.md`
- `.gitignore`
Open items / next steps:
- Add optional option flow for future settings.
- Expand entity coverage (light, switch, sensor, climate).
- Add tests (config flow, KNX mapping).
- Improve DPT auto-selection logic per entity features.

View File

@@ -1,5 +1,69 @@
# Changelog
## 0.0.20 - 2026-02-15
- Remove incoming invert toggles; keep outgoing inversion only for state addresses.
## 0.0.19 - 2026-02-13
- Fix port enable switches by updating config entry options properly.
- Show port switches under the main integration device instead of per-port devices.
## 0.0.18 - 2026-02-13
- Add port devices with enable toggles and an edit-port flow.
- Provide locale fallback translations for all Home Assistant languages.
## 0.0.17 - 2026-02-13
- Add edit port flow to update existing option-based ports.
- Add fallback translations for all supported Home Assistant locales.
- Add per-port enable switches and device entries for quick overview.
## 0.0.16 - 2026-02-13
- Normalize incoming event destinations and clamp percent payloads even without inversion.
## 0.0.15 - 2026-02-13
- Remove unsupported `payload_length` field from KNX send calls.
## 0.0.14 - 2026-02-13
- Improve KNX event decoding for cover commands and address the up/down mapping.
## 0.0.13 - 2026-02-13
- Clamp percent payloads to avoid invalid KNX DPT 5.001 values.
## 0.0.12 - 2026-02-13
- Fix KNX event listener setup for HA versions without async_track_event helper.
## 0.0.11 - 2026-02-13
- Move translations into the integration folder so UI labels render.
- Downgrade missing subentry support log to debug.
## 0.0.10 - 2026-02-13
- Add translations for options flow menu labels.
## 0.0.9 - 2026-02-13
- Add options flow fallback to add/remove ports when subentries are unavailable.
## 0.0.8 - 2026-02-13
- Improve subentry type detection for HA versions exposing different class names.
## 0.0.7 - 2026-02-13
- Avoid crashing config entries when subentries are unsupported.
## 0.0.6 - 2026-02-13
- Fix config flow subentry type compatibility with older Home Assistant versions.
## 0.0.5 - 2026-02-13
- Centralize DPT auto-selection for KNX event registration per address.
## 0.0.4 - 2026-02-13
- Add per-group-address invert toggles for incoming and outgoing KNX payloads.
## 0.0.3 - 2026-02-13
- Add switch port support with KNX command/state mapping (DPT 1).
## 0.0.2 - 2026-02-13
- Validate and normalize KNX group addresses in subentry config flows.
- Add options flow skeleton for future settings.
- Add `bcs.yaml` metadata for BCS store listing.
## 0.0.1 - 2026-02-13
- Initial HACS-ready scaffold with config flow and subentries for binary sensor and cover.
- KNX bridge logic for basic send/receive mappings.

View File

@@ -5,6 +5,7 @@ add "Ports" that bind an HA entity to KNX addresses for state updates and comman
Current minimal scope:
- Binary Sensor port (state -> KNX)
- Switch port (KNX -> HA commands, HA state -> KNX)
- Cover port (KNX -> HA commands, HA state -> KNX)
## Requirements
@@ -20,6 +21,9 @@ Current minimal scope:
## Configure
1. During setup, select the existing Home Assistant KNX integration entry.
2. Add Ports from the integration's configuration page.
If the "Add Port" UI is missing, open the integration options and manage ports
there (fallback for HA versions without subentry support).
3. Each Port shows up as a device with an enable switch for quick on/off control.
### Binary Sensor Port
- `entity_id`: the HA binary_sensor to mirror.
@@ -35,10 +39,28 @@ Current minimal scope:
- `angle_state_address` (DPT 5.001): KNX group address that receives HA tilt updates.
If a group address is left empty, it is ignored.
Group address format must be `X/Y/Z` (0-31/0-7/0-255) or `X/Y` (0-31/0-2047).
Only state addresses expose an `invert outgoing` toggle to flip KNX payloads.
### Switch Port
- `entity_id`: the HA switch to control/monitor.
- `command_address` (DPT 1): KNX group address for on/off commands.
- `state_address` (DPT 1): KNX group address that receives HA on/off state.
## Notes
- For DPT 1.008 (Up/Down), the bridge treats `0 = Up/Open` and `1 = Down/Close`.
- For DPT 5.001, values are interpreted as 0-100 percent where 0 = closed and 100 = open.
- DPTs are auto-selected per address:
- Binary sensor `state_address`: DPT 1
- Switch `command_address`: DPT 1
- Switch `state_address`: DPT 1
- Cover `move_long_address`: DPT 1.008
- Cover `move_short_address`: DPT 1.007
- Cover `stop_address`: DPT 1
- Cover `position_address`: DPT 5.001
- Cover `position_state_address`: DPT 5.001
- Cover `angle_address`: DPT 5.001
- Cover `angle_state_address`: DPT 5.001
## Roadmap
- Optional standalone KNX connection (without requiring the HA KNX integration).
@@ -46,6 +68,6 @@ If a group address is left empty, it is ignored.
- Advanced DPT mapping options and inversion settings.
## Versioning and Releases
- Current version: 0.0.1
- Current version: 0.0.20
- `CHANGELOG.md` lists versions with the newest entries at the top.
- Release creation is manual and only done when explicitly requested.

21
bcs.yaml Normal file
View File

@@ -0,0 +1,21 @@
name: HA KNX Bridge
description: >
Home Assistant custom integration that mirrors Home Assistant entities
to KNX group addresses and accepts KNX actions to control Home Assistant
entities. It reuses an existing Home Assistant KNX integration and
provides per-entity "Ports" with automatic DPT selection and UI setup
via config flow.
category: Integrations
author: Bahmcloud
maintainer: Bahmcloud
domains:
- ha_knx_bridge
min_ha_version: "2025.12.0"
homepage: https://github.com/bahmcloud/HA-KNX-Bridge
issues: https://github.com/bahmcloud/HA-KNX-Bridge/issues
source: https://github.com/bahmcloud/HA-KNX-Bridge

View File

@@ -16,6 +16,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
raise
entry.runtime_data = manager
entry.async_on_unload(entry.add_update_listener(_update_listener))
await hass.config_entries.async_forward_entry_setups(entry, ["switch"])
return True
@@ -24,6 +25,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
if manager is None:
return True
await manager.async_unload()
await hass.config_entries.async_unload_platforms(entry, ["switch"])
return True

View File

@@ -12,8 +12,14 @@ from homeassistant.helpers import event as event_helper
from .const import (
CONF_ANGLE_ADDRESS,
CONF_ANGLE_STATE_ADDRESS,
ADDRESS_EVENT_TYPE,
ADDRESS_VALUE_TYPE,
CONF_COMMAND_ADDRESS,
CONF_INVERT_OUTGOING,
CONF_MOVE_LONG_ADDRESS,
CONF_MOVE_SHORT_ADDRESS,
CONF_PORT_ENABLED,
CONF_PORTS,
CONF_POSITION_ADDRESS,
CONF_POSITION_STATE_ADDRESS,
CONF_STATE_ADDRESS,
@@ -29,6 +35,7 @@ KNX_DOMAIN = "knx"
class BinarySensorPort:
entity_id: str
state_address: str | None
state_invert_outgoing: bool
@dataclass(frozen=True)
@@ -39,8 +46,24 @@ class CoverPort:
stop_address: str | None
position_address: str | None
position_state_address: str | None
position_state_invert_outgoing: bool
angle_address: str | None
angle_state_address: str | None
angle_state_invert_outgoing: bool
@dataclass(frozen=True)
class SwitchPort:
entity_id: str
command_address: str | None
state_address: str | None
state_invert_outgoing: bool
@dataclass(frozen=True)
class AddressOptions:
value_type: str | None
invert_outgoing: bool
class BridgeManager:
@@ -51,14 +74,15 @@ class BridgeManager:
self._knx_event_unsub: callable | None = None
self._address_handlers: dict[str, callable[[Event], Any]] = {}
self._registered_addresses: list[tuple[str, str | None]] = []
self._address_options: dict[str, AddressOptions] = {}
async def async_setup(self) -> None:
if not self.hass.services.has_service(KNX_DOMAIN, "send"):
raise ConfigEntryNotReady("KNX integration services not available")
binary_ports, cover_ports = self._load_ports()
self._register_outgoing(binary_ports, cover_ports)
await self._register_incoming(cover_ports)
binary_ports, switch_ports, cover_ports = self._load_ports()
self._register_outgoing(binary_ports, switch_ports, cover_ports)
await self._register_incoming(switch_ports, cover_ports)
async def async_unload(self) -> None:
for unsub in self._unsub_listeners:
@@ -71,21 +95,43 @@ class BridgeManager:
await self._unregister_knx_events()
def _load_ports(self) -> tuple[list[BinarySensorPort], list[CoverPort]]:
def _load_ports(
self,
) -> tuple[list[BinarySensorPort], list[SwitchPort], list[CoverPort]]:
binary_ports: list[BinarySensorPort] = []
switch_ports: list[SwitchPort] = []
cover_ports: list[CoverPort] = []
subentries = getattr(self.entry, "subentries", [])
for subentry in subentries:
data = subentry.data
if subentry.type == "binary_sensor":
enabled_overrides = dict(self.entry.options.get(CONF_PORT_ENABLED, {}))
for port in _iter_port_configs(self.entry):
port_type = port.port_type
data = port.data
if not _is_port_enabled(port, enabled_overrides):
continue
if port_type == "binary_sensor":
binary_ports.append(
BinarySensorPort(
entity_id=data["entity_id"],
state_address=_clean_address(data.get(CONF_STATE_ADDRESS)),
state_invert_outgoing=_clean_bool(
data.get(_invert_out_key(CONF_STATE_ADDRESS))
),
)
)
elif subentry.type == "cover":
elif port_type == "switch":
switch_ports.append(
SwitchPort(
entity_id=data["entity_id"],
command_address=_clean_address(
data.get(CONF_COMMAND_ADDRESS)
),
state_address=_clean_address(data.get(CONF_STATE_ADDRESS)),
state_invert_outgoing=_clean_bool(
data.get(_invert_out_key(CONF_STATE_ADDRESS))
),
)
)
elif port_type == "cover":
cover_ports.append(
CoverPort(
entity_id=data["entity_id"],
@@ -96,59 +142,133 @@ class BridgeManager:
position_state_address=_clean_address(
data.get(CONF_POSITION_STATE_ADDRESS)
),
position_state_invert_outgoing=_clean_bool(
data.get(_invert_out_key(CONF_POSITION_STATE_ADDRESS))
),
angle_address=_clean_address(data.get(CONF_ANGLE_ADDRESS)),
angle_state_address=_clean_address(
data.get(CONF_ANGLE_STATE_ADDRESS)
),
angle_state_invert_outgoing=_clean_bool(
data.get(_invert_out_key(CONF_ANGLE_STATE_ADDRESS))
),
)
)
return binary_ports, cover_ports
return binary_ports, switch_ports, cover_ports
def _register_outgoing(
self, binary_ports: list[BinarySensorPort], cover_ports: list[CoverPort]
self,
binary_ports: list[BinarySensorPort],
switch_ports: list[SwitchPort],
cover_ports: list[CoverPort],
) -> None:
for port in binary_ports:
if not port.state_address:
continue
self._remember_address_options(
port.state_address,
_get_value_type(CONF_STATE_ADDRESS),
port.state_invert_outgoing,
)
self._unsub_listeners.append(
event_helper.async_track_state_change_event(
self.hass, [port.entity_id], self._binary_sensor_changed(port)
)
)
for port in switch_ports:
if not port.state_address:
continue
self._remember_address_options(
port.state_address,
_get_value_type(CONF_STATE_ADDRESS),
port.state_invert_outgoing,
)
self._unsub_listeners.append(
event_helper.async_track_state_change_event(
self.hass, [port.entity_id], self._switch_changed(port)
)
)
for port in cover_ports:
if not (port.position_state_address or port.angle_state_address):
continue
if port.position_state_address:
self._remember_address_options(
port.position_state_address,
_get_value_type(CONF_POSITION_STATE_ADDRESS),
port.position_state_invert_outgoing,
)
if port.angle_state_address:
self._remember_address_options(
port.angle_state_address,
_get_value_type(CONF_ANGLE_STATE_ADDRESS),
port.angle_state_invert_outgoing,
)
self._unsub_listeners.append(
event_helper.async_track_state_change_event(
self.hass, [port.entity_id], self._cover_changed(port)
)
)
async def _register_incoming(self, cover_ports: list[CoverPort]) -> None:
async def _register_incoming(
self, switch_ports: list[SwitchPort], cover_ports: list[CoverPort]
) -> None:
for port in switch_ports:
self._register_knx_switch_address(
port.command_address,
port,
)
for port in cover_ports:
self._register_knx_address(port.move_long_address, None, port, "move_long")
self._register_knx_address(port.move_short_address, None, port, "move_short")
self._register_knx_address(port.stop_address, None, port, "stop")
self._register_knx_address(
port.position_address, "percent", port, "position"
port.move_long_address,
CONF_MOVE_LONG_ADDRESS,
port,
"move_long",
)
self._register_knx_address(
port.angle_address, "percent", port, "angle"
port.move_short_address,
CONF_MOVE_SHORT_ADDRESS,
port,
"move_short",
)
self._register_knx_address(
port.stop_address,
CONF_STOP_ADDRESS,
port,
"stop",
)
self._register_knx_address(
port.position_address,
CONF_POSITION_ADDRESS,
port,
"position",
)
self._register_knx_address(
port.angle_address,
CONF_ANGLE_ADDRESS,
port,
"angle",
)
if self._address_handlers:
self._knx_event_unsub = event_helper.async_track_event(
self.hass, "knx_event", self._handle_knx_event
)
if hasattr(event_helper, "async_track_event"):
self._knx_event_unsub = event_helper.async_track_event(
self.hass, "knx_event", self._handle_knx_event
)
else:
self._knx_event_unsub = self.hass.bus.async_listen(
"knx_event", self._handle_knx_event
)
await self._register_knx_events()
def _register_knx_address(
self,
address: str | None,
value_type: str | None,
address_key: str,
port: CoverPort,
action: str,
) -> None:
@@ -158,22 +278,55 @@ class BridgeManager:
self._address_handlers[address] = lambda event: self._handle_cover_action(
port, action, event
)
self._registered_addresses.append((address, value_type))
value_type = _get_value_type(address_key)
event_type = _get_event_type(address_key)
self._remember_address_options(
address, value_type, False
)
self._registered_addresses.append((address, event_type))
def _register_knx_switch_address(
self,
address: str | None,
port: SwitchPort,
) -> None:
if not address:
return
self._address_handlers[address] = lambda event: self._handle_switch_action(
port, event
)
self._remember_address_options(
address,
_get_value_type(CONF_COMMAND_ADDRESS),
False,
)
self._registered_addresses.append((address, _get_event_type(CONF_COMMAND_ADDRESS)))
def _remember_address_options(
self,
address: str,
value_type: str | None,
invert_outgoing: bool,
) -> None:
self._address_options[address] = AddressOptions(
value_type=value_type,
invert_outgoing=invert_outgoing,
)
async def _register_knx_events(self) -> None:
for address, value_type in self._registered_addresses:
for address, event_type in self._registered_addresses:
data: dict[str, Any] = {"address": address}
if value_type:
data["type"] = value_type
if event_type:
data["type"] = event_type
await self.hass.services.async_call(
KNX_DOMAIN, "event_register", data, blocking=False
)
async def _unregister_knx_events(self) -> None:
for address, value_type in self._registered_addresses:
for address, event_type in self._registered_addresses:
data: dict[str, Any] = {"address": address, "remove": True}
if value_type:
data["type"] = value_type
if event_type:
data["type"] = event_type
await self.hass.services.async_call(
KNX_DOMAIN, "event_register", data, blocking=False
)
@@ -187,6 +340,24 @@ class BridgeManager:
if new_state.state not in ("on", "off"):
return
payload = 1 if new_state.state == "on" else 0
payload = _invert_value(
payload, port.state_address, self._address_options
)
await self._knx_send_raw(port.state_address, payload)
return _handler
def _switch_changed(self, port: SwitchPort) -> callable[[Event], Any]:
async def _handler(event: Event) -> None:
new_state: State | None = event.data.get("new_state")
if new_state is None:
return
if new_state.state not in ("on", "off"):
return
payload = 1 if new_state.state == "on" else 0
payload = _invert_value(
payload, port.state_address, self._address_options
)
await self._knx_send_raw(port.state_address, payload)
return _handler
@@ -200,20 +371,33 @@ class BridgeManager:
if port.position_state_address is not None:
position = new_state.attributes.get("current_position")
if position is not None:
await self._knx_send_percent(port.position_state_address, position)
position = _invert_value(
position,
port.position_state_address,
self._address_options,
)
await self._knx_send_percent(
port.position_state_address, position
)
if port.angle_state_address is not None:
angle = new_state.attributes.get("current_tilt_position")
if angle is not None:
angle = _invert_value(
angle,
port.angle_state_address,
self._address_options,
)
await self._knx_send_percent(port.angle_state_address, angle)
return _handler
async def _handle_knx_event(self, event: Event) -> None:
if event.data.get("direction") != "Incoming":
direction = event.data.get("direction")
if direction is not None and not str(direction).lower().startswith("incoming"):
return
destination = event.data.get("destination")
destination = _event_destination(event)
if not destination:
return
@@ -229,6 +413,8 @@ class BridgeManager:
value = _extract_event_value(event)
if value is None:
return
destination = _event_destination(event)
value = _invert_value(value, destination, self._address_options)
if action == "move_long":
if value == 0:
@@ -250,6 +436,17 @@ class BridgeManager:
port.entity_id, "set_cover_tilt_position", {"tilt_position": value}
)
async def _handle_switch_action(self, port: SwitchPort, event: Event) -> None:
value = _extract_event_value(event)
if value is None:
return
destination = _event_destination(event)
value = _invert_value(value, destination, self._address_options)
if value == 0:
await self._call_switch_service(port.entity_id, "turn_off")
elif value == 1:
await self._call_switch_service(port.entity_id, "turn_on")
async def _call_cover_service(
self, entity_id: str, service: str, service_data: dict[str, Any] | None = None
) -> None:
@@ -260,19 +457,30 @@ class BridgeManager:
"cover", service, data, blocking=False
)
async def _call_switch_service(
self, entity_id: str, service: str, service_data: dict[str, Any] | None = None
) -> None:
data = {"entity_id": entity_id}
if service_data:
data.update(service_data)
await self.hass.services.async_call(
"switch", service, data, blocking=False
)
async def _knx_send_raw(self, address: str | None, payload: int) -> None:
if not address:
return
await self.hass.services.async_call(
KNX_DOMAIN,
"send",
{"address": address, "payload": payload, "payload_length": 0},
{"address": address, "payload": payload},
blocking=False,
)
async def _knx_send_percent(self, address: str | None, value: int) -> None:
if not address:
return
value = _clamp_percent(value)
await self.hass.services.async_call(
KNX_DOMAIN,
"send",
@@ -283,15 +491,18 @@ class BridgeManager:
def _extract_event_value(event: Event) -> int | None:
if "value" in event.data:
try:
return int(event.data["value"])
except (TypeError, ValueError):
return None
value = event.data["value"]
mapped = _map_scalar_value(value)
if mapped is not None:
return mapped
data = event.data.get("data")
if data is None:
return None
if isinstance(data, list) and data:
data = data[0]
mapped = _map_scalar_value(data)
if mapped is not None:
return mapped
try:
return int(data) & 1
except (TypeError, ValueError):
@@ -305,3 +516,125 @@ def _clean_address(address: Any) -> str | None:
stripped = address.strip()
return stripped or None
return None
def _clean_bool(value: Any) -> bool:
return bool(value)
def _invert_value(
value: int,
address: str | None,
address_options: dict[str, AddressOptions],
) -> int:
if address is None:
return value
options = address_options.get(address)
if options is None:
return value
if options.value_type == "percent":
value = _clamp_percent(value)
if not options.invert_outgoing:
return value
if options.value_type == "percent":
return 100 - value
if value not in (0, 1):
return value
return 0 if value == 1 else 1
def _invert_out_key(address_key: str) -> str:
return f"{address_key}_{CONF_INVERT_OUTGOING}"
def _get_value_type(address_key: str) -> str | None:
return ADDRESS_VALUE_TYPE.get(address_key)
def _get_event_type(address_key: str) -> str | None:
return ADDRESS_EVENT_TYPE.get(address_key)
def _clamp_percent(value: int) -> int:
if value < 0:
return 0
if value > 100:
return 100
return value
def _map_scalar_value(value: Any) -> int | None:
if isinstance(value, bool):
return 1 if value else 0
if isinstance(value, (int, float)):
return int(value)
if isinstance(value, str):
text = value.strip().lower()
if text in ("on", "true", "yes", "1", "down", "close", "closed"):
return 1
if text in ("off", "false", "no", "0", "up", "open", "opened"):
return 0
try:
return int(text)
except ValueError:
return None
return None
def _event_destination(event: Event) -> str | None:
return (
event.data.get("destination")
or event.data.get("destination_address")
or event.data.get("address")
)
@dataclass(frozen=True)
class PortConfig:
port_id: str
port_type: str
title: str
data: dict[str, Any]
enabled: bool | None
def _iter_port_configs(entry: ConfigEntry) -> list[PortConfig]:
ports: list[PortConfig] = []
subentries = getattr(entry, "subentries", [])
for subentry in subentries:
ports.append(
PortConfig(
port_id=subentry.entry_id,
port_type=subentry.type,
title=subentry.title or subentry.entry_id,
data=subentry.data,
enabled=subentry.data.get(CONF_ENABLED),
)
)
option_ports = entry.options.get(CONF_PORTS, [])
for port in option_ports:
port_type = port.get("type")
data = port.get("data", {})
if port_type and isinstance(data, dict):
ports.append(
PortConfig(
port_id=port.get("id", ""),
port_type=port_type,
title=port.get("title", port.get("id", "Port")),
data=data,
enabled=port.get("enabled"),
)
)
return ports
def _is_port_enabled(port: PortConfig, overrides: dict[str, Any]) -> bool:
if port.port_id and port.port_id in overrides:
return bool(overrides[port.port_id])
if port.enabled is None:
return True
return bool(port.enabled)
def iter_ports(entry: ConfigEntry) -> list[PortConfig]:
return _iter_port_configs(entry)

View File

@@ -1,6 +1,7 @@
from __future__ import annotations
import logging
import uuid
import voluptuous as vol
@@ -12,11 +13,17 @@ from homeassistant.helpers import selector
from .const import (
CONF_ANGLE_ADDRESS,
CONF_ANGLE_STATE_ADDRESS,
CONF_COMMAND_ADDRESS,
CONF_INVERT_OUTGOING,
CONF_KNX_ENTRY_ID,
CONF_MOVE_LONG_ADDRESS,
CONF_MOVE_SHORT_ADDRESS,
CONF_PORTS,
CONF_PORT_ID,
CONF_POSITION_ADDRESS,
CONF_POSITION_STATE_ADDRESS,
CONF_ENABLED,
CONF_PORT_ENABLED,
CONF_STATE_ADDRESS,
CONF_STOP_ADDRESS,
DOMAIN,
@@ -54,38 +61,291 @@ class HAKnxBridgeConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
)
return self.async_show_form(step_id="user", data_schema=schema)
@staticmethod
@callback
def async_get_options_flow(config_entry):
return HAKnxBridgeOptionsFlow(config_entry)
@staticmethod
@callback
def async_get_supported_subentry_types(config_entry):
subentry_type = _get_subentry_type()
if subentry_type is None:
_LOGGER.debug(
"Config subentries are not supported in this Home Assistant version"
)
return {}
return {
"binary_sensor": config_entries.SubentryType(
"binary_sensor": subentry_type(
name="Binary Sensor Port", flow_class=BinarySensorPortSubentryFlow
),
"cover": config_entries.SubentryType(
"switch": subentry_type(
name="Switch Port", flow_class=SwitchPortSubentryFlow
),
"cover": subentry_type(
name="Cover Port", flow_class=CoverPortSubentryFlow
),
}
class HAKnxBridgeOptionsFlow(config_entries.OptionsFlow):
def __init__(self, config_entry: config_entries.ConfigEntry) -> None:
self._config_entry = config_entry
async def async_step_init(self, user_input: dict | None = None):
return self.async_show_menu(
step_id="init",
menu_options=[
"add_binary_sensor",
"add_switch",
"add_cover",
"edit_port",
"remove_port",
],
)
async def async_step_add_binary_sensor(self, user_input: dict | None = None):
if user_input is not None:
user_input, errors = _validate_knx_addresses(
user_input,
[
CONF_STATE_ADDRESS,
],
)
if errors:
return self.async_show_form(
step_id="add_binary_sensor",
data_schema=_binary_sensor_schema(),
errors=errors,
)
return await self._async_store_port("binary_sensor", user_input)
return self.async_show_form(
step_id="add_binary_sensor", data_schema=_binary_sensor_schema()
)
async def async_step_add_switch(self, user_input: dict | None = None):
if user_input is not None:
user_input, errors = _validate_knx_addresses(
user_input, [CONF_COMMAND_ADDRESS, CONF_STATE_ADDRESS]
)
if errors:
return self.async_show_form(
step_id="add_switch",
data_schema=_switch_schema(),
errors=errors,
)
return await self._async_store_port("switch", user_input)
return self.async_show_form(
step_id="add_switch", data_schema=_switch_schema()
)
async def async_step_add_cover(self, user_input: dict | None = None):
if user_input is not None:
user_input, errors = _validate_knx_addresses(
user_input,
[
CONF_MOVE_LONG_ADDRESS,
CONF_MOVE_SHORT_ADDRESS,
CONF_STOP_ADDRESS,
CONF_POSITION_ADDRESS,
CONF_POSITION_STATE_ADDRESS,
CONF_ANGLE_ADDRESS,
CONF_ANGLE_STATE_ADDRESS,
],
)
if errors:
return self.async_show_form(
step_id="add_cover", data_schema=_cover_schema(), errors=errors
)
return await self._async_store_port("cover", user_input)
return self.async_show_form(step_id="add_cover", data_schema=_cover_schema())
async def async_step_remove_port(self, user_input: dict | None = None):
ports = list(self._config_entry.options.get(CONF_PORTS, []))
if not ports:
return self.async_abort(reason="no_ports_to_remove")
if user_input is not None:
port_id = user_input[CONF_PORT_ID]
ports = [port for port in ports if port.get("id") != port_id]
overrides = dict(self._config_entry.options.get(CONF_PORT_ENABLED, {}))
overrides.pop(port_id, None)
return self.async_create_entry(
title="",
data={CONF_PORTS: ports, CONF_PORT_ENABLED: overrides},
)
options = [
{
"value": port.get("id"),
"label": port.get("title", port.get("id")),
}
for port in ports
if port.get("id")
]
schema = vol.Schema(
{
vol.Required(CONF_PORT_ID): selector.SelectSelector(
selector.SelectSelectorConfig(options=options, mode="dropdown")
)
}
)
return self.async_show_form(step_id="remove_port", data_schema=schema)
async def async_step_edit_port(self, user_input: dict | None = None):
ports = list(self._config_entry.options.get(CONF_PORTS, []))
if not ports:
return self.async_abort(reason="no_ports_to_edit")
if user_input is not None and CONF_PORT_ID in user_input:
port_id = user_input[CONF_PORT_ID]
port = next((item for item in ports if item.get("id") == port_id), None)
if port is None:
return self.async_abort(reason="no_ports_to_edit")
self.context["port_id"] = port_id
port_type = port.get("type")
data = port.get("data", {})
if port_type == "binary_sensor":
return self.async_show_form(
step_id="edit_binary_sensor",
data_schema=_binary_sensor_schema(defaults=data),
)
if port_type == "switch":
return self.async_show_form(
step_id="edit_switch",
data_schema=_switch_schema(defaults=data),
)
if port_type == "cover":
return self.async_show_form(
step_id="edit_cover",
data_schema=_cover_schema(defaults=data),
)
return self.async_abort(reason="no_ports_to_edit")
options = [
{
"value": port.get("id"),
"label": port.get("title", port.get("id")),
}
for port in ports
if port.get("id")
]
schema = vol.Schema(
{
vol.Required(CONF_PORT_ID): selector.SelectSelector(
selector.SelectSelectorConfig(options=options, mode="dropdown")
)
}
)
return self.async_show_form(step_id="edit_port", data_schema=schema)
async def async_step_edit_binary_sensor(self, user_input: dict | None = None):
return await self._async_edit_port(
"binary_sensor", user_input, _binary_sensor_schema
)
async def async_step_edit_switch(self, user_input: dict | None = None):
return await self._async_edit_port("switch", user_input, _switch_schema)
async def async_step_edit_cover(self, user_input: dict | None = None):
return await self._async_edit_port("cover", user_input, _cover_schema)
async def _async_store_port(self, port_type: str, user_input: dict):
ports = list(self._config_entry.options.get(CONF_PORTS, []))
title = _entity_title(self.hass, user_input[CONF_ENTITY_ID])
enabled = bool(user_input.get(CONF_ENABLED, True))
ports.append(
{
"id": uuid.uuid4().hex,
"type": port_type,
"title": title,
"data": user_input,
"enabled": enabled,
}
)
overrides = dict(self._config_entry.options.get(CONF_PORT_ENABLED, {}))
overrides[ports[-1]["id"]] = enabled
return self.async_create_entry(
title="",
data={CONF_PORTS: ports, CONF_PORT_ENABLED: overrides},
)
async def _async_edit_port(self, port_type: str, user_input, schema_factory):
ports = list(self._config_entry.options.get(CONF_PORTS, []))
port_id = self.context.get("port_id")
if port_id is None:
return self.async_abort(reason="no_ports_to_edit")
port = next((item for item in ports if item.get("id") == port_id), None)
if port is None:
return self.async_abort(reason="no_ports_to_edit")
if user_input is None:
return self.async_show_form(
step_id=f"edit_{port_type}",
data_schema=schema_factory(defaults=port.get("data", {})),
)
user_input, errors = _validate_knx_addresses(user_input, _port_keys(port_type))
if errors:
return self.async_show_form(
step_id=f"edit_{port_type}",
data_schema=schema_factory(defaults=user_input),
errors=errors,
)
enabled = bool(user_input.get(CONF_ENABLED, True))
port["data"] = user_input
port["enabled"] = enabled
port["title"] = _entity_title(self.hass, user_input[CONF_ENTITY_ID])
overrides = dict(self._config_entry.options.get(CONF_PORT_ENABLED, {}))
overrides[port_id] = enabled
return self.async_create_entry(
title="",
data={CONF_PORTS: ports, CONF_PORT_ENABLED: overrides},
)
class BinarySensorPortSubentryFlow(config_entries.ConfigSubentryFlow):
VERSION = 1
async def async_step_user(self, user_input: dict | None = None):
if user_input is not None:
user_input, errors = _validate_knx_addresses(
user_input,
[
CONF_STATE_ADDRESS,
],
)
if errors:
return self.async_show_form(
step_id="user", data_schema=_binary_sensor_schema(), errors=errors
)
title = _entity_title(self.hass, user_input[CONF_ENTITY_ID])
return self.async_create_entry(title=title, data=user_input)
schema = vol.Schema(
{
vol.Required(CONF_ENTITY_ID): selector.EntitySelector(
selector.EntitySelectorConfig(domain=["binary_sensor"])
),
vol.Optional(CONF_STATE_ADDRESS): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
}
)
return self.async_show_form(step_id="user", data_schema=schema)
return self.async_show_form(step_id="user", data_schema=_binary_sensor_schema())
class SwitchPortSubentryFlow(config_entries.ConfigSubentryFlow):
VERSION = 1
async def async_step_user(self, user_input: dict | None = None):
if user_input is not None:
user_input, errors = _validate_knx_addresses(
user_input, [CONF_COMMAND_ADDRESS, CONF_STATE_ADDRESS]
)
if errors:
return self.async_show_form(
step_id="user", data_schema=_switch_schema(), errors=errors
)
title = _entity_title(self.hass, user_input[CONF_ENTITY_ID])
return self.async_create_entry(title=title, data=user_input)
return self.async_show_form(step_id="user", data_schema=_switch_schema())
class CoverPortSubentryFlow(config_entries.ConfigSubentryFlow):
@@ -93,38 +353,26 @@ class CoverPortSubentryFlow(config_entries.ConfigSubentryFlow):
async def async_step_user(self, user_input: dict | None = None):
if user_input is not None:
user_input, errors = _validate_knx_addresses(
user_input,
[
CONF_MOVE_LONG_ADDRESS,
CONF_MOVE_SHORT_ADDRESS,
CONF_STOP_ADDRESS,
CONF_POSITION_ADDRESS,
CONF_POSITION_STATE_ADDRESS,
CONF_ANGLE_ADDRESS,
CONF_ANGLE_STATE_ADDRESS,
],
)
if errors:
return self.async_show_form(
step_id="user", data_schema=_cover_schema(), errors=errors
)
title = _entity_title(self.hass, user_input[CONF_ENTITY_ID])
return self.async_create_entry(title=title, data=user_input)
schema = vol.Schema(
{
vol.Required(CONF_ENTITY_ID): selector.EntitySelector(
selector.EntitySelectorConfig(domain=["cover"])
),
vol.Optional(CONF_MOVE_LONG_ADDRESS): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(CONF_MOVE_SHORT_ADDRESS): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(CONF_STOP_ADDRESS): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(CONF_POSITION_ADDRESS): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(CONF_POSITION_STATE_ADDRESS): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(CONF_ANGLE_ADDRESS): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(CONF_ANGLE_STATE_ADDRESS): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
}
)
return self.async_show_form(step_id="user", data_schema=schema)
return self.async_show_form(step_id="user", data_schema=_cover_schema())
def _entity_title(hass, entity_id: str) -> str:
@@ -132,3 +380,234 @@ def _entity_title(hass, entity_id: str) -> str:
if state is None:
return entity_id
return state.attributes.get("friendly_name", entity_id)
def _binary_sensor_schema(defaults: dict | None = None) -> vol.Schema:
defaults = defaults or {}
return vol.Schema(
{
vol.Required(
CONF_ENTITY_ID,
default=defaults.get(CONF_ENTITY_ID, ""),
): selector.EntitySelector(
selector.EntitySelectorConfig(domain=["binary_sensor"])
),
vol.Optional(
CONF_STATE_ADDRESS,
default=defaults.get(CONF_STATE_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
_invert_out_key(CONF_STATE_ADDRESS),
default=bool(defaults.get(_invert_out_key(CONF_STATE_ADDRESS))),
): (
selector.BooleanSelector()
),
vol.Optional(CONF_ENABLED, default=bool(defaults.get(CONF_ENABLED, True))): (
selector.BooleanSelector()
),
}
)
def _cover_schema(defaults: dict | None = None) -> vol.Schema:
defaults = defaults or {}
return vol.Schema(
{
vol.Required(
CONF_ENTITY_ID,
default=defaults.get(CONF_ENTITY_ID, ""),
): selector.EntitySelector(
selector.EntitySelectorConfig(domain=["cover"])
),
vol.Optional(
CONF_MOVE_LONG_ADDRESS,
default=defaults.get(CONF_MOVE_LONG_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
CONF_MOVE_SHORT_ADDRESS,
default=defaults.get(CONF_MOVE_SHORT_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
CONF_STOP_ADDRESS,
default=defaults.get(CONF_STOP_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
CONF_POSITION_ADDRESS,
default=defaults.get(CONF_POSITION_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
CONF_POSITION_STATE_ADDRESS,
default=defaults.get(CONF_POSITION_STATE_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
_invert_out_key(CONF_POSITION_STATE_ADDRESS),
default=bool(defaults.get(_invert_out_key(CONF_POSITION_STATE_ADDRESS))),
): (
selector.BooleanSelector()
),
vol.Optional(
CONF_ANGLE_ADDRESS,
default=defaults.get(CONF_ANGLE_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
CONF_ANGLE_STATE_ADDRESS,
default=defaults.get(CONF_ANGLE_STATE_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
_invert_out_key(CONF_ANGLE_STATE_ADDRESS),
default=bool(defaults.get(_invert_out_key(CONF_ANGLE_STATE_ADDRESS))),
): (
selector.BooleanSelector()
),
vol.Optional(CONF_ENABLED, default=bool(defaults.get(CONF_ENABLED, True))): (
selector.BooleanSelector()
),
}
)
def _switch_schema(defaults: dict | None = None) -> vol.Schema:
defaults = defaults or {}
return vol.Schema(
{
vol.Required(
CONF_ENTITY_ID,
default=defaults.get(CONF_ENTITY_ID, ""),
): selector.EntitySelector(
selector.EntitySelectorConfig(domain=["switch"])
),
vol.Optional(
CONF_COMMAND_ADDRESS,
default=defaults.get(CONF_COMMAND_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
CONF_STATE_ADDRESS,
default=defaults.get(CONF_STATE_ADDRESS, ""),
): selector.TextSelector(
selector.TextSelectorConfig(type="text")
),
vol.Optional(
_invert_out_key(CONF_STATE_ADDRESS),
default=bool(defaults.get(_invert_out_key(CONF_STATE_ADDRESS))),
): (
selector.BooleanSelector()
),
vol.Optional(CONF_ENABLED, default=bool(defaults.get(CONF_ENABLED, True))): (
selector.BooleanSelector()
),
}
)
def _port_keys(port_type: str) -> list[str]:
if port_type == "binary_sensor":
return [CONF_STATE_ADDRESS]
if port_type == "switch":
return [CONF_COMMAND_ADDRESS, CONF_STATE_ADDRESS]
if port_type == "cover":
return [
CONF_MOVE_LONG_ADDRESS,
CONF_MOVE_SHORT_ADDRESS,
CONF_STOP_ADDRESS,
CONF_POSITION_ADDRESS,
CONF_POSITION_STATE_ADDRESS,
CONF_ANGLE_ADDRESS,
CONF_ANGLE_STATE_ADDRESS,
]
return []
def _validate_knx_addresses(
user_input: dict, keys: list[str]
) -> tuple[dict, dict[str, str]]:
errors: dict[str, str] = {}
cleaned = dict(user_input)
for key in keys:
if key not in cleaned:
continue
value = cleaned.get(key)
if value is None:
cleaned.pop(key, None)
cleaned.pop(_invert_out_key(key), None)
continue
try:
normalized = _normalize_group_address(str(value))
except ValueError:
errors[key] = "invalid_ga"
continue
if normalized == "":
cleaned.pop(key, None)
cleaned.pop(_invert_out_key(key), None)
else:
cleaned[key] = normalized
return cleaned, errors
def _normalize_group_address(value: str) -> str:
text = value.strip()
if not text:
return ""
parts = text.split("/")
if len(parts) == 2:
main, sub = _parse_int(parts[0]), _parse_int(parts[1])
if not (0 <= main <= 31 and 0 <= sub <= 2047):
raise ValueError("group address out of range")
return f"{main}/{sub}"
if len(parts) == 3:
main, middle, sub = (
_parse_int(parts[0]),
_parse_int(parts[1]),
_parse_int(parts[2]),
)
if not (0 <= main <= 31 and 0 <= middle <= 7 and 0 <= sub <= 255):
raise ValueError("group address out of range")
return f"{main}/{middle}/{sub}"
raise ValueError("invalid group address format")
def _parse_int(value: str) -> int:
text = value.strip()
if text == "":
raise ValueError("empty group address part")
return int(text)
def _invert_out_key(address_key: str) -> str:
return f"{address_key}_{CONF_INVERT_OUTGOING}"
def _get_subentry_type():
candidates = [
"SubentryType",
"ConfigEntrySubentryType",
"ConfigSubentryType",
"SubEntryType",
]
for name in candidates:
subentry_type = getattr(config_entries, name, None)
if subentry_type is not None:
return subentry_type
_LOGGER.debug(
"Subentry type class not found on homeassistant.config_entries. "
"Available attrs: %s",
", ".join(sorted(dir(config_entries))),
)
return None

View File

@@ -3,6 +3,12 @@ DOMAIN = "ha_knx_bridge"
CONF_KNX_ENTRY_ID = "knx_entry_id"
CONF_STATE_ADDRESS = "state_address"
CONF_COMMAND_ADDRESS = "command_address"
CONF_INVERT_OUTGOING = "invert_outgoing"
CONF_PORTS = "ports"
CONF_PORT_ID = "port_id"
CONF_PORT_ENABLED = "port_enabled"
CONF_ENABLED = "enabled"
CONF_MOVE_LONG_ADDRESS = "move_long_address"
CONF_MOVE_SHORT_ADDRESS = "move_short_address"
@@ -11,3 +17,31 @@ CONF_POSITION_ADDRESS = "position_address"
CONF_POSITION_STATE_ADDRESS = "position_state_address"
CONF_ANGLE_ADDRESS = "angle_address"
CONF_ANGLE_STATE_ADDRESS = "angle_state_address"
ADDRESS_DPT_MAP: dict[str, str] = {
CONF_STATE_ADDRESS: "1",
CONF_COMMAND_ADDRESS: "1",
CONF_MOVE_LONG_ADDRESS: "1.008",
CONF_MOVE_SHORT_ADDRESS: "1.007",
CONF_STOP_ADDRESS: "1",
CONF_POSITION_ADDRESS: "5.001",
CONF_POSITION_STATE_ADDRESS: "5.001",
CONF_ANGLE_ADDRESS: "5.001",
CONF_ANGLE_STATE_ADDRESS: "5.001",
}
ADDRESS_VALUE_TYPE: dict[str, str] = {
CONF_POSITION_ADDRESS: "percent",
CONF_POSITION_STATE_ADDRESS: "percent",
CONF_ANGLE_ADDRESS: "percent",
CONF_ANGLE_STATE_ADDRESS: "percent",
}
ADDRESS_EVENT_TYPE: dict[str, str] = {
CONF_MOVE_LONG_ADDRESS: "up_down",
CONF_MOVE_SHORT_ADDRESS: "step",
CONF_POSITION_ADDRESS: "percent",
CONF_POSITION_STATE_ADDRESS: "percent",
CONF_ANGLE_ADDRESS: "percent",
CONF_ANGLE_STATE_ADDRESS: "percent",
}

View File

@@ -1,7 +1,7 @@
{
"domain": "ha_knx_bridge",
"name": "HA KNX Bridge",
"version": "0.0.1",
"version": "0.0.20",
"config_flow": true,
"documentation": "https://github.com/bahmcloud/HA-KNX-Bridge",
"issue_tracker": "https://github.com/bahmcloud/HA-KNX-Bridge/issues",

View File

@@ -3,6 +3,9 @@
"abort": {
"knx_not_configured": "Set up the Home Assistant KNX integration first."
},
"error": {
"invalid_ga": "Invalid KNX group address. Use X/Y/Z (0-31/0-7/0-255) or X/Y (0-31/0-2047)."
},
"step": {
"user": {
"title": "HA KNX Bridge",
@@ -13,14 +16,95 @@
}
}
},
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
}
}
},
"config_subentries": {
"error": {
"invalid_ga": "Invalid KNX group address. Use X/Y/Z (0-31/0-7/0-255) or X/Y (0-31/0-2047)."
},
"binary_sensor": {
"step": {
"user": {
"title": "Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)"
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
},
"switch": {
"step": {
"user": {
"title": "Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
@@ -32,12 +116,20 @@
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_state_address": "State tilt (DPT 5.001)"
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}

View File

@@ -0,0 +1,76 @@
from __future__ import annotations
from dataclasses import dataclass
from typing import Any
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.components.switch import SwitchEntity
from .const import CONF_PORTS, CONF_PORT_ENABLED, DOMAIN
from .bridge import iter_ports
@dataclass(frozen=True)
class PortDescriptor:
port_id: str
port_type: str
title: str
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities
) -> None:
entities: list[SwitchEntity] = []
for port in iter_ports(entry):
entities.append(
PortEnabledSwitch(entry, port.port_id, port.port_type, port.title)
)
async_add_entities(entities, update_before_add=True)
class PortEnabledSwitch(SwitchEntity):
_attr_has_entity_name = True
def __init__(self, entry: ConfigEntry, port_id: str, port_type: str, title: str):
self._entry = entry
self._port_id = port_id
self._port_type = port_type
self._title = title
self._attr_unique_id = f"{entry.entry_id}_{port_id}_enabled"
@property
def name(self) -> str:
return f"{self._title} Enabled"
@property
def device_info(self) -> DeviceInfo:
return DeviceInfo(
identifiers={(DOMAIN, self._entry.entry_id)},
name="HA KNX Bridge",
manufacturer="HA KNX Bridge",
model="Integration",
)
@property
def is_on(self) -> bool:
overrides = self._entry.options.get(CONF_PORT_ENABLED, {})
if self._port_id in overrides:
return bool(overrides[self._port_id])
return True
async def async_turn_on(self, **kwargs: Any) -> None:
await self._async_set_enabled(True)
async def async_turn_off(self, **kwargs: Any) -> None:
await self._async_set_enabled(False)
async def _async_set_enabled(self, enabled: bool) -> None:
overrides = dict(self._entry.options.get(CONF_PORT_ENABLED, {}))
overrides[self._port_id] = enabled
self.hass.config_entries.async_update_entry(
self._entry,
options={**self._entry.options, CONF_PORT_ENABLED: overrides},
)
await self.hass.config_entries.async_reload(self._entry.entry_id)

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}

View File

@@ -0,0 +1,115 @@
{
"options": {
"abort": {
"no_ports_to_remove": "There are no ports to remove yet.",
"no_ports_to_edit": "There are no ports to edit yet."
},
"step": {
"init": {
"title": "HA KNX Bridge Options",
"description": "Manage ports when subentries are unavailable.",
"menu_options": {
"add_binary_sensor": "Add binary sensor port",
"add_switch": "Add switch port",
"add_cover": "Add cover port",
"edit_port": "Edit port",
"remove_port": "Remove port"
}
},
"add_binary_sensor": {
"title": "Add Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_switch": {
"title": "Add Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"add_cover": {
"title": "Add Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"remove_port": {
"title": "Remove Port",
"data": {
"port_id": "Port to remove"
}
},
"edit_port": {
"title": "Edit Port",
"data": {
"port_id": "Port to edit"
}
},
"edit_binary_sensor": {
"title": "Edit Binary Sensor Port",
"data": {
"entity_id": "Binary sensor entity",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_switch": {
"title": "Edit Switch Port",
"data": {
"entity_id": "Switch entity",
"command_address": "Command group address (DPT 1)",
"command_address_invert_outgoing": "Invert outgoing",
"state_address": "State group address (DPT 1)",
"state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
},
"edit_cover": {
"title": "Edit Cover Port",
"data": {
"entity_id": "Cover entity",
"move_long_address": "Move long (DPT 1.008 Up/Down)",
"move_long_address_invert_outgoing": "Invert outgoing",
"move_short_address": "Move short (DPT 1.007 Step)",
"move_short_address_invert_outgoing": "Invert outgoing",
"stop_address": "Stop (DPT 1)",
"stop_address_invert_outgoing": "Invert outgoing",
"position_address": "Set position (DPT 5.001)",
"position_address_invert_outgoing": "Invert outgoing",
"position_state_address": "State position (DPT 5.001)",
"position_state_address_invert_outgoing": "Invert outgoing",
"angle_address": "Set tilt (DPT 5.001)",
"angle_address_invert_outgoing": "Invert outgoing",
"angle_state_address": "State tilt (DPT 5.001)",
"angle_state_address_invert_outgoing": "Invert outgoing",
"enabled": "Enabled"
}
}
}
}
}