mirror of https://github.com/home-assistant/core
426 lines
21 KiB
JSON
426 lines
21 KiB
JSON
{
|
|
"config": {
|
|
"step": {
|
|
"connection_type": {
|
|
"title": "KNX connection",
|
|
"description": "Please enter the connection type we should use for your KNX connection. \n AUTOMATIC - The integration takes care of the connectivity to your KNX Bus by performing a gateway scan. \n TUNNELING - The integration will connect to your KNX bus via tunneling. \n ROUTING - The integration will connect to your KNX bus via routing.",
|
|
"data": {
|
|
"connection_type": "KNX Connection Type"
|
|
}
|
|
},
|
|
"tunnel": {
|
|
"title": "Tunnel",
|
|
"description": "Please select a gateway from the list.",
|
|
"data": {
|
|
"gateway": "KNX Tunnel Connection"
|
|
}
|
|
},
|
|
"manual_tunnel": {
|
|
"title": "Tunnel settings",
|
|
"description": "Please enter the connection information of your tunneling device.",
|
|
"data": {
|
|
"tunneling_type": "KNX Tunneling Type",
|
|
"port": "[%key:common::config_flow::data::port%]",
|
|
"host": "[%key:common::config_flow::data::host%]",
|
|
"route_back": "Route back / NAT mode",
|
|
"local_ip": "Local IP interface"
|
|
},
|
|
"data_description": {
|
|
"port": "Port of the KNX/IP tunneling device.",
|
|
"host": "IP address or hostname of the KNX/IP tunneling device.",
|
|
"route_back": "Enable if your KNXnet/IP tunneling server is behind NAT. Only applies for UDP connections.",
|
|
"local_ip": "Local IP or interface name used for the connection from Home Assistant. Leave blank to use auto-discovery."
|
|
}
|
|
},
|
|
"secure_key_source_menu_tunnel": {
|
|
"title": "KNX IP-Secure",
|
|
"description": "Select how you want to configure KNX/IP Secure.",
|
|
"menu_options": {
|
|
"secure_knxkeys": "Use a `.knxkeys` file containing IP secure keys",
|
|
"secure_tunnel_manual": "Configure IP secure credentials manually"
|
|
}
|
|
},
|
|
"secure_key_source_menu_routing": {
|
|
"title": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::title%]",
|
|
"description": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::description%]",
|
|
"menu_options": {
|
|
"secure_knxkeys": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::menu_options::secure_knxkeys%]",
|
|
"secure_routing_manual": "Configure IP secure backbone key manually"
|
|
}
|
|
},
|
|
"secure_knxkeys": {
|
|
"title": "Import KNX Keyring",
|
|
"description": "Please select a `.knxkeys` file to import.",
|
|
"data": {
|
|
"knxkeys_file": "Keyring file",
|
|
"knxkeys_password": "The password to decrypt the `.knxkeys` file"
|
|
},
|
|
"data_description": {
|
|
"knxkeys_password": "This was set when exporting the file from ETS."
|
|
}
|
|
},
|
|
"knxkeys_tunnel_select": {
|
|
"title": "Tunnel endpoint",
|
|
"description": "Select the tunnel used for connection.",
|
|
"data": {
|
|
"user_id": "`Automatic` will use the first free tunnel endpoint."
|
|
}
|
|
},
|
|
"secure_tunnel_manual": {
|
|
"title": "Secure tunnelling",
|
|
"description": "Please enter your IP secure information.",
|
|
"data": {
|
|
"user_id": "User ID",
|
|
"user_password": "User password",
|
|
"device_authentication": "Device authentication password"
|
|
},
|
|
"data_description": {
|
|
"user_id": "This is often tunnel number +1. So 'Tunnel 2' would have User-ID '3'.",
|
|
"user_password": "Password for the specific tunnel connection set in the 'Properties' panel of the tunnel in ETS.",
|
|
"device_authentication": "This is set in the 'IP' panel of the interface in ETS."
|
|
}
|
|
},
|
|
"secure_routing_manual": {
|
|
"title": "Secure routing",
|
|
"description": "[%key:component::knx::config::step::secure_tunnel_manual::description%]",
|
|
"data": {
|
|
"backbone_key": "Backbone key",
|
|
"sync_latency_tolerance": "Network latency tolerance"
|
|
},
|
|
"data_description": {
|
|
"backbone_key": "Can be seen in the 'Security' report of an ETS project. Eg. '00112233445566778899AABBCCDDEEFF'",
|
|
"sync_latency_tolerance": "Default is 1000."
|
|
}
|
|
},
|
|
"routing": {
|
|
"title": "Routing",
|
|
"description": "Please configure the routing options.",
|
|
"data": {
|
|
"individual_address": "Individual address",
|
|
"routing_secure": "Use KNX IP Secure",
|
|
"multicast_group": "Multicast group",
|
|
"multicast_port": "Multicast port",
|
|
"local_ip": "[%key:component::knx::config::step::manual_tunnel::data::local_ip%]"
|
|
},
|
|
"data_description": {
|
|
"individual_address": "KNX address to be used by Home Assistant, e.g. `0.0.4`",
|
|
"local_ip": "[%key:component::knx::config::step::manual_tunnel::data_description::local_ip%]"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
|
|
"invalid_backbone_key": "Invalid backbone key. 32 hexadecimal numbers expected.",
|
|
"invalid_individual_address": "Value does not match pattern for KNX individual address.\n'area.line.device'",
|
|
"invalid_ip_address": "Invalid IPv4 address.",
|
|
"keyfile_invalid_signature": "The password to decrypt the `.knxkeys` file is wrong.",
|
|
"keyfile_no_backbone_key": "The `.knxkeys` file does not contain a backbone key for secure routing.",
|
|
"keyfile_no_tunnel_for_host": "The `.knxkeys` file does not contain credentials for host `{host}`.",
|
|
"keyfile_not_found": "The specified `.knxkeys` file was not found in the path config/.storage/knx/",
|
|
"no_router_discovered": "No KNXnet/IP router was discovered on the network.",
|
|
"no_tunnel_discovered": "Could not find a KNX tunneling server on your network.",
|
|
"unsupported_tunnel_type": "Selected tunnelling type not supported by gateway."
|
|
}
|
|
},
|
|
"options": {
|
|
"step": {
|
|
"init": {
|
|
"title": "KNX Settings",
|
|
"menu_options": {
|
|
"connection_type": "Configure KNX interface",
|
|
"communication_settings": "Communication settings",
|
|
"secure_knxkeys": "Import a `.knxkeys` file"
|
|
}
|
|
},
|
|
"communication_settings": {
|
|
"title": "[%key:component::knx::options::step::init::menu_options::communication_settings%]",
|
|
"data": {
|
|
"state_updater": "State updater",
|
|
"rate_limit": "Rate limit",
|
|
"telegram_log_size": "Telegram history limit"
|
|
},
|
|
"data_description": {
|
|
"state_updater": "Set default for reading states from the KNX Bus. When disabled, Home Assistant will not actively retrieve entity states from the KNX Bus. Can be overridden by `sync_state` entity options.",
|
|
"rate_limit": "Maximum outgoing telegrams per second.\n`0` to disable limit. Recommended: 0 or 20 to 40",
|
|
"telegram_log_size": "Telegrams to keep in memory for KNX panel group monitor. Maximum: {telegram_log_size_max}"
|
|
}
|
|
},
|
|
"connection_type": {
|
|
"title": "[%key:component::knx::config::step::connection_type::title%]",
|
|
"description": "[%key:component::knx::config::step::connection_type::description%]",
|
|
"data": {
|
|
"connection_type": "[%key:component::knx::config::step::connection_type::data::connection_type%]"
|
|
}
|
|
},
|
|
"tunnel": {
|
|
"title": "[%key:component::knx::config::step::tunnel::title%]",
|
|
"description": "[%key:component::knx::config::step::tunnel::description%]",
|
|
"data": {
|
|
"gateway": "[%key:component::knx::config::step::tunnel::data::gateway%]"
|
|
}
|
|
},
|
|
"manual_tunnel": {
|
|
"title": "[%key:component::knx::config::step::manual_tunnel::title%]",
|
|
"description": "[%key:component::knx::config::step::manual_tunnel::description%]",
|
|
"data": {
|
|
"tunneling_type": "[%key:component::knx::config::step::manual_tunnel::data::tunneling_type%]",
|
|
"port": "[%key:common::config_flow::data::port%]",
|
|
"host": "[%key:common::config_flow::data::host%]",
|
|
"route_back": "[%key:component::knx::config::step::manual_tunnel::data::route_back%]",
|
|
"local_ip": "[%key:component::knx::config::step::manual_tunnel::data::local_ip%]"
|
|
},
|
|
"data_description": {
|
|
"port": "[%key:component::knx::config::step::manual_tunnel::data_description::port%]",
|
|
"host": "[%key:component::knx::config::step::manual_tunnel::data_description::host%]",
|
|
"route_back": "[%key:component::knx::config::step::manual_tunnel::data_description::route_back%]",
|
|
"local_ip": "[%key:component::knx::config::step::manual_tunnel::data_description::local_ip%]"
|
|
}
|
|
},
|
|
"secure_key_source_menu_tunnel": {
|
|
"title": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::title%]",
|
|
"description": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::description%]",
|
|
"menu_options": {
|
|
"secure_knxkeys": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::menu_options::secure_knxkeys%]",
|
|
"secure_tunnel_manual": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::menu_options::secure_tunnel_manual%]"
|
|
}
|
|
},
|
|
"secure_key_source_menu_routing": {
|
|
"title": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::title%]",
|
|
"description": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::description%]",
|
|
"menu_options": {
|
|
"secure_knxkeys": "[%key:component::knx::config::step::secure_key_source_menu_tunnel::menu_options::secure_knxkeys%]",
|
|
"secure_routing_manual": "[%key:component::knx::config::step::secure_key_source_menu_routing::menu_options::secure_routing_manual%]"
|
|
}
|
|
},
|
|
"secure_knxkeys": {
|
|
"title": "[%key:component::knx::config::step::secure_knxkeys::title%]",
|
|
"description": "[%key:component::knx::config::step::secure_knxkeys::description%]",
|
|
"data": {
|
|
"knxkeys_file": "[%key:component::knx::config::step::secure_knxkeys::data::knxkeys_file%]",
|
|
"knxkeys_password": "[%key:component::knx::config::step::secure_knxkeys::data::knxkeys_password%]"
|
|
},
|
|
"data_description": {
|
|
"knxkeys_password": "[%key:component::knx::config::step::secure_knxkeys::data_description::knxkeys_password%]"
|
|
}
|
|
},
|
|
"knxkeys_tunnel_select": {
|
|
"title": "[%key:component::knx::config::step::knxkeys_tunnel_select::title%]",
|
|
"description": "[%key:component::knx::config::step::knxkeys_tunnel_select::description%]",
|
|
"data": {
|
|
"user_id": "[%key:component::knx::config::step::knxkeys_tunnel_select::data::user_id%]"
|
|
}
|
|
},
|
|
"secure_tunnel_manual": {
|
|
"title": "[%key:component::knx::config::step::secure_tunnel_manual::title%]",
|
|
"description": "[%key:component::knx::config::step::secure_tunnel_manual::description%]",
|
|
"data": {
|
|
"user_id": "[%key:component::knx::config::step::secure_tunnel_manual::data::user_id%]",
|
|
"user_password": "[%key:component::knx::config::step::secure_tunnel_manual::data::user_password%]",
|
|
"device_authentication": "[%key:component::knx::config::step::secure_tunnel_manual::data::device_authentication%]"
|
|
},
|
|
"data_description": {
|
|
"user_id": "[%key:component::knx::config::step::secure_tunnel_manual::data_description::user_id%]",
|
|
"user_password": "[%key:component::knx::config::step::secure_tunnel_manual::data_description::user_password%]",
|
|
"device_authentication": "[%key:component::knx::config::step::secure_tunnel_manual::data_description::device_authentication%]"
|
|
}
|
|
},
|
|
"secure_routing_manual": {
|
|
"title": "[%key:component::knx::config::step::secure_routing_manual::title%]",
|
|
"description": "[%key:component::knx::config::step::secure_tunnel_manual::description%]",
|
|
"data": {
|
|
"backbone_key": "[%key:component::knx::config::step::secure_routing_manual::data::backbone_key%]",
|
|
"sync_latency_tolerance": "[%key:component::knx::config::step::secure_routing_manual::data::sync_latency_tolerance%]"
|
|
},
|
|
"data_description": {
|
|
"backbone_key": "[%key:component::knx::config::step::secure_routing_manual::data_description::backbone_key%]",
|
|
"sync_latency_tolerance": "[%key:component::knx::config::step::secure_routing_manual::data_description::sync_latency_tolerance%]"
|
|
}
|
|
},
|
|
"routing": {
|
|
"title": "[%key:component::knx::config::step::routing::title%]",
|
|
"description": "[%key:component::knx::config::step::routing::description%]",
|
|
"data": {
|
|
"individual_address": "[%key:component::knx::config::step::routing::data::individual_address%]",
|
|
"routing_secure": "[%key:component::knx::config::step::routing::data::routing_secure%]",
|
|
"multicast_group": "[%key:component::knx::config::step::routing::data::multicast_group%]",
|
|
"multicast_port": "[%key:component::knx::config::step::routing::data::multicast_port%]",
|
|
"local_ip": "[%key:component::knx::config::step::manual_tunnel::data::local_ip%]"
|
|
},
|
|
"data_description": {
|
|
"individual_address": "[%key:component::knx::config::step::routing::data_description::individual_address%]",
|
|
"local_ip": "[%key:component::knx::config::step::manual_tunnel::data_description::local_ip%]"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
|
|
"invalid_backbone_key": "[%key:component::knx::config::error::invalid_backbone_key%]",
|
|
"invalid_individual_address": "[%key:component::knx::config::error::invalid_individual_address%]",
|
|
"invalid_ip_address": "[%key:component::knx::config::error::invalid_ip_address%]",
|
|
"keyfile_no_backbone_key": "[%key:component::knx::config::error::keyfile_no_backbone_key%]",
|
|
"keyfile_invalid_signature": "[%key:component::knx::config::error::keyfile_invalid_signature%]",
|
|
"keyfile_no_tunnel_for_host": "[%key:component::knx::config::error::keyfile_no_tunnel_for_host%]",
|
|
"keyfile_not_found": "[%key:component::knx::config::error::keyfile_not_found%]",
|
|
"no_router_discovered": "[%key:component::knx::config::error::no_router_discovered%]",
|
|
"no_tunnel_discovered": "[%key:component::knx::config::error::no_tunnel_discovered%]",
|
|
"unsupported_tunnel_type": "[%key:component::knx::config::error::unsupported_tunnel_type%]"
|
|
}
|
|
},
|
|
"entity": {
|
|
"climate": {
|
|
"knx_climate": {
|
|
"state_attributes": {
|
|
"preset_mode": {
|
|
"name": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::name%]",
|
|
"state": {
|
|
"auto": "Auto",
|
|
"comfort": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::comfort%]",
|
|
"standby": "Standby",
|
|
"economy": "[%key:component::climate::entity_component::_::state_attributes::preset_mode::state::eco%]",
|
|
"building_protection": "Building protection"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"sensor": {
|
|
"individual_address": {
|
|
"name": "[%key:component::knx::config::step::routing::data::individual_address%]"
|
|
},
|
|
"connected_since": {
|
|
"name": "Connection established"
|
|
},
|
|
"connection_type": {
|
|
"name": "Connection type"
|
|
},
|
|
"telegrams_incoming": {
|
|
"name": "Incoming telegrams",
|
|
"unit_of_measurement": "[%key:component::knx::entity::sensor::telegram_count::unit_of_measurement%]"
|
|
},
|
|
"telegrams_incoming_error": {
|
|
"name": "Incoming telegram errors",
|
|
"unit_of_measurement": "errors"
|
|
},
|
|
"telegrams_outgoing": {
|
|
"name": "Outgoing telegrams",
|
|
"unit_of_measurement": "[%key:component::knx::entity::sensor::telegram_count::unit_of_measurement%]"
|
|
},
|
|
"telegrams_outgoing_error": {
|
|
"name": "Outgoing telegram errors",
|
|
"unit_of_measurement": "[%key:component::knx::entity::sensor::telegrams_incoming_error::unit_of_measurement%]"
|
|
},
|
|
"telegram_count": {
|
|
"name": "Telegrams",
|
|
"unit_of_measurement": "telegrams"
|
|
}
|
|
}
|
|
},
|
|
"device_automation": {
|
|
"trigger_type": {
|
|
"telegram": "Telegram"
|
|
},
|
|
"extra_fields": {
|
|
"destination": "Group addresses",
|
|
"group_value_write": "GroupValueWrite",
|
|
"group_value_read": "GroupValueRead",
|
|
"group_value_response": "GroupValueResponse",
|
|
"incoming": "Incoming",
|
|
"outgoing": "Outgoing"
|
|
},
|
|
"extra_fields_descriptions": {
|
|
"destination": "The trigger will listen to telegrams sent or received on these group addresses. If no address is selected, the trigger will fire for every group address.",
|
|
"group_value_write": "Listen on GroupValueWrite telegrams.",
|
|
"group_value_read": "Listen on GroupValueRead telegrams.",
|
|
"group_value_response": "Listen on GroupValueResponse telegrams.",
|
|
"incoming": "Listen on incoming telegrams.",
|
|
"outgoing": "Listen on outgoing telegrams."
|
|
}
|
|
},
|
|
"services": {
|
|
"send": {
|
|
"name": "Send to KNX bus",
|
|
"description": "Sends arbitrary data directly to the KNX bus.",
|
|
"fields": {
|
|
"address": {
|
|
"name": "Group address",
|
|
"description": "Group address(es) to write to. Lists will send to multiple group addresses successively."
|
|
},
|
|
"payload": {
|
|
"name": "Payload",
|
|
"description": "Payload to send to the bus. Integers are treated as DPT 1/2/3 payloads. For DPTs > 6 bits send a list. Each value represents 1 octet (0-255). Pad with 0 to DPT byte length."
|
|
},
|
|
"type": {
|
|
"name": "Value type",
|
|
"description": "If set, the payload will not be sent as raw bytes, but encoded as given DPT. KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types)."
|
|
},
|
|
"response": {
|
|
"name": "Send as Response",
|
|
"description": "If set to `True`, the telegram will be sent as a `GroupValueResponse` instead of a `GroupValueWrite`."
|
|
}
|
|
}
|
|
},
|
|
"read": {
|
|
"name": "Reads from KNX bus",
|
|
"description": "Send GroupValueRead requests to the KNX bus. Response can be used from `knx_event` and will be processed in KNX entities.",
|
|
"fields": {
|
|
"address": {
|
|
"name": "[%key:component::knx::services::send::fields::address::name%]",
|
|
"description": "Group address(es) to send read request to. Lists will read multiple group addresses."
|
|
}
|
|
}
|
|
},
|
|
"event_register": {
|
|
"name": "Registers knx_event",
|
|
"description": "Add or remove group addresses to knx_event filter for triggering `knx_event`s. Only addresses added with this service can be removed.",
|
|
"fields": {
|
|
"address": {
|
|
"name": "[%key:component::knx::services::send::fields::address::name%]",
|
|
"description": "Group address(es) that shall be added or removed. Lists are allowed."
|
|
},
|
|
"type": {
|
|
"name": "Value type",
|
|
"description": "If set, the payload will be decoded as given DPT in the event data `value` key. KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types)."
|
|
},
|
|
"remove": {
|
|
"name": "Remove event registration",
|
|
"description": "If `True` the group address(es) will be removed."
|
|
}
|
|
}
|
|
},
|
|
"exposure_register": {
|
|
"name": "Expose to KNX bus",
|
|
"description": "Adds or remove exposures to KNX bus. Only exposures added with this service can be removed.",
|
|
"fields": {
|
|
"address": {
|
|
"name": "[%key:component::knx::services::send::fields::address::name%]",
|
|
"description": "Group address state or attribute updates will be sent to. GroupValueRead requests will be answered. Per address only one exposure can be registered."
|
|
},
|
|
"type": {
|
|
"name": "Value type",
|
|
"description": "Telegrams will be encoded as given DPT. 'binary' and all KNX sensor types are valid values (see https://www.home-assistant.io/integrations/knx/#value-types)."
|
|
},
|
|
"entity_id": {
|
|
"name": "Entity",
|
|
"description": "Entity id whose state or attribute shall be exposed."
|
|
},
|
|
"attribute": {
|
|
"name": "Entity attribute",
|
|
"description": "Attribute of the entity that shall be sent to the KNX bus. If not set the state will be sent. Eg. for a light the state is eigther “on” or “off” - with attribute you can expose its “brightness”."
|
|
},
|
|
"default": {
|
|
"name": "Default value",
|
|
"description": "Default value to send to the bus if the state or attribute value is None. Eg. a light with state “off” has no brightness attribute so a default value of 0 could be used. If not set (or None) no value would be sent to the bus and a GroupReadRequest to the address would return the last known value."
|
|
},
|
|
"remove": {
|
|
"name": "Remove exposure",
|
|
"description": "If `True` the exposure will be removed. Only `address` is required for removal."
|
|
}
|
|
}
|
|
},
|
|
"reload": {
|
|
"name": "[%key:common::action::reload%]",
|
|
"description": "Reloads the KNX integration."
|
|
}
|
|
}
|
|
}
|