Update xknx to 2.0.0 (#82709)
This commit is contained in:
parent
6f1208b07f
commit
daf56e92a0
10 changed files with 52 additions and 45 deletions
|
@ -362,11 +362,8 @@ class KNXModule:
|
||||||
def init_xknx(self) -> None:
|
def init_xknx(self) -> None:
|
||||||
"""Initialize XKNX object."""
|
"""Initialize XKNX object."""
|
||||||
self.xknx = XKNX(
|
self.xknx = XKNX(
|
||||||
own_address=self.entry.data[CONF_KNX_INDIVIDUAL_ADDRESS],
|
|
||||||
rate_limit=self.entry.data[CONF_KNX_RATE_LIMIT],
|
|
||||||
multicast_group=self.entry.data[CONF_KNX_MCAST_GRP],
|
|
||||||
multicast_port=self.entry.data[CONF_KNX_MCAST_PORT],
|
|
||||||
connection_config=self.connection_config(),
|
connection_config=self.connection_config(),
|
||||||
|
rate_limit=self.entry.data[CONF_KNX_RATE_LIMIT],
|
||||||
state_updater=self.entry.data[CONF_KNX_STATE_UPDATER],
|
state_updater=self.entry.data[CONF_KNX_STATE_UPDATER],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -384,6 +381,9 @@ class KNXModule:
|
||||||
if _conn_type == CONF_KNX_ROUTING:
|
if _conn_type == CONF_KNX_ROUTING:
|
||||||
return ConnectionConfig(
|
return ConnectionConfig(
|
||||||
connection_type=ConnectionType.ROUTING,
|
connection_type=ConnectionType.ROUTING,
|
||||||
|
individual_address=self.entry.data[CONF_KNX_INDIVIDUAL_ADDRESS],
|
||||||
|
multicast_group=self.entry.data[CONF_KNX_MCAST_GRP],
|
||||||
|
multicast_port=self.entry.data[CONF_KNX_MCAST_PORT],
|
||||||
local_ip=self.entry.data.get(CONF_KNX_LOCAL_IP),
|
local_ip=self.entry.data.get(CONF_KNX_LOCAL_IP),
|
||||||
auto_reconnect=True,
|
auto_reconnect=True,
|
||||||
threaded=True,
|
threaded=True,
|
||||||
|
|
|
@ -6,10 +6,10 @@ from typing import Any, Final
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
from xknx import XKNX
|
from xknx import XKNX
|
||||||
from xknx.exceptions.exception import InvalidSignature
|
from xknx.exceptions.exception import InvalidSecureConfiguration
|
||||||
from xknx.io import DEFAULT_MCAST_GRP, DEFAULT_MCAST_PORT
|
from xknx.io import DEFAULT_MCAST_GRP, DEFAULT_MCAST_PORT
|
||||||
from xknx.io.gateway_scanner import GatewayDescriptor, GatewayScanner
|
from xknx.io.gateway_scanner import GatewayDescriptor, GatewayScanner
|
||||||
from xknx.secure import load_key_ring
|
from xknx.secure import load_keyring
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry, ConfigFlow, OptionsFlow
|
from homeassistant.config_entries import ConfigEntry, ConfigFlow, OptionsFlow
|
||||||
from homeassistant.const import CONF_HOST, CONF_PORT
|
from homeassistant.const import CONF_HOST, CONF_PORT
|
||||||
|
@ -41,6 +41,7 @@ from .const import (
|
||||||
CONF_KNX_TUNNELING_TCP,
|
CONF_KNX_TUNNELING_TCP,
|
||||||
CONF_KNX_TUNNELING_TCP_SECURE,
|
CONF_KNX_TUNNELING_TCP_SECURE,
|
||||||
CONST_KNX_STORAGE_KEY,
|
CONST_KNX_STORAGE_KEY,
|
||||||
|
DEFAULT_ROUTING_IA,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
KNXConfigEntryData,
|
KNXConfigEntryData,
|
||||||
)
|
)
|
||||||
|
@ -50,7 +51,7 @@ CONF_KNX_GATEWAY: Final = "gateway"
|
||||||
CONF_MAX_RATE_LIMIT: Final = 60
|
CONF_MAX_RATE_LIMIT: Final = 60
|
||||||
|
|
||||||
DEFAULT_ENTRY_DATA = KNXConfigEntryData(
|
DEFAULT_ENTRY_DATA = KNXConfigEntryData(
|
||||||
individual_address=XKNX.DEFAULT_ADDRESS,
|
individual_address=DEFAULT_ROUTING_IA,
|
||||||
local_ip=None,
|
local_ip=None,
|
||||||
multicast_group=DEFAULT_MCAST_GRP,
|
multicast_group=DEFAULT_MCAST_GRP,
|
||||||
multicast_port=DEFAULT_MCAST_PORT,
|
multicast_port=DEFAULT_MCAST_PORT,
|
||||||
|
@ -347,13 +348,13 @@ class KNXCommonFlow(ABC, FlowHandler):
|
||||||
assert self._tunneling_config
|
assert self._tunneling_config
|
||||||
storage_key = CONST_KNX_STORAGE_KEY + user_input[CONF_KNX_KNXKEY_FILENAME]
|
storage_key = CONST_KNX_STORAGE_KEY + user_input[CONF_KNX_KNXKEY_FILENAME]
|
||||||
try:
|
try:
|
||||||
load_key_ring(
|
await load_keyring(
|
||||||
path=self.hass.config.path(STORAGE_DIR, storage_key),
|
path=self.hass.config.path(STORAGE_DIR, storage_key),
|
||||||
password=user_input[CONF_KNX_KNXKEY_PASSWORD],
|
password=user_input[CONF_KNX_KNXKEY_PASSWORD],
|
||||||
)
|
)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
errors[CONF_KNX_KNXKEY_FILENAME] = "file_not_found"
|
errors[CONF_KNX_KNXKEY_FILENAME] = "file_not_found"
|
||||||
except InvalidSignature:
|
except InvalidSecureConfiguration:
|
||||||
errors[CONF_KNX_KNXKEY_PASSWORD] = "invalid_signature"
|
errors[CONF_KNX_KNXKEY_PASSWORD] = "invalid_signature"
|
||||||
|
|
||||||
if not errors:
|
if not errors:
|
||||||
|
|
|
@ -41,7 +41,9 @@ CONF_KNX_RATE_LIMIT: Final = "rate_limit"
|
||||||
CONF_KNX_ROUTE_BACK: Final = "route_back"
|
CONF_KNX_ROUTE_BACK: Final = "route_back"
|
||||||
CONF_KNX_STATE_UPDATER: Final = "state_updater"
|
CONF_KNX_STATE_UPDATER: Final = "state_updater"
|
||||||
CONF_KNX_DEFAULT_STATE_UPDATER: Final = True
|
CONF_KNX_DEFAULT_STATE_UPDATER: Final = True
|
||||||
CONF_KNX_DEFAULT_RATE_LIMIT: Final = 20
|
CONF_KNX_DEFAULT_RATE_LIMIT: Final = 0
|
||||||
|
|
||||||
|
DEFAULT_ROUTING_IA: Final = "0.0.240"
|
||||||
|
|
||||||
##
|
##
|
||||||
# Secure constants
|
# Secure constants
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"name": "KNX",
|
"name": "KNX",
|
||||||
"config_flow": true,
|
"config_flow": true,
|
||||||
"documentation": "https://www.home-assistant.io/integrations/knx",
|
"documentation": "https://www.home-assistant.io/integrations/knx",
|
||||||
"requirements": ["xknx==1.2.1"],
|
"requirements": ["xknx==2.0.0"],
|
||||||
"codeowners": ["@Julius2342", "@farmio", "@marvin-w"],
|
"codeowners": ["@Julius2342", "@farmio", "@marvin-w"],
|
||||||
"quality_scale": "platinum",
|
"quality_scale": "platinum",
|
||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
|
|
|
@ -2580,7 +2580,7 @@ xboxapi==2.0.1
|
||||||
xiaomi-ble==0.12.2
|
xiaomi-ble==0.12.2
|
||||||
|
|
||||||
# homeassistant.components.knx
|
# homeassistant.components.knx
|
||||||
xknx==1.2.1
|
xknx==2.0.0
|
||||||
|
|
||||||
# homeassistant.components.bluesound
|
# homeassistant.components.bluesound
|
||||||
# homeassistant.components.fritz
|
# homeassistant.components.fritz
|
||||||
|
|
|
@ -1793,7 +1793,7 @@ xbox-webapi==2.0.11
|
||||||
xiaomi-ble==0.12.2
|
xiaomi-ble==0.12.2
|
||||||
|
|
||||||
# homeassistant.components.knx
|
# homeassistant.components.knx
|
||||||
xknx==1.2.1
|
xknx==2.0.0
|
||||||
|
|
||||||
# homeassistant.components.bluesound
|
# homeassistant.components.bluesound
|
||||||
# homeassistant.components.fritz
|
# homeassistant.components.fritz
|
||||||
|
|
|
@ -23,6 +23,7 @@ from homeassistant.components.knx.const import (
|
||||||
CONF_KNX_MCAST_PORT,
|
CONF_KNX_MCAST_PORT,
|
||||||
CONF_KNX_RATE_LIMIT,
|
CONF_KNX_RATE_LIMIT,
|
||||||
CONF_KNX_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER,
|
||||||
|
DEFAULT_ROUTING_IA,
|
||||||
DOMAIN as KNX_DOMAIN,
|
DOMAIN as KNX_DOMAIN,
|
||||||
)
|
)
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
@ -224,7 +225,7 @@ def mock_config_entry() -> MockConfigEntry:
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
CONF_KNX_INDIVIDUAL_ADDRESS: DEFAULT_ROUTING_IA,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from xknx.exceptions.exception import InvalidSignature
|
from xknx.exceptions.exception import InvalidSecureConfiguration
|
||||||
from xknx.io import DEFAULT_MCAST_GRP, DEFAULT_MCAST_PORT
|
from xknx.io import DEFAULT_MCAST_GRP, DEFAULT_MCAST_PORT
|
||||||
from xknx.io.gateway_scanner import GatewayDescriptor
|
from xknx.io.gateway_scanner import GatewayDescriptor
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ async def test_routing_setup_advanced(hass: HomeAssistant) -> None:
|
||||||
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
||||||
CONF_HOST: "192.168.0.1",
|
CONF_HOST: "192.168.0.1",
|
||||||
CONF_PORT: 3675,
|
CONF_PORT: 3675,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: "15.15.250",
|
CONF_KNX_INDIVIDUAL_ADDRESS: "0.0.240",
|
||||||
CONF_KNX_ROUTE_BACK: False,
|
CONF_KNX_ROUTE_BACK: False,
|
||||||
CONF_KNX_LOCAL_IP: None,
|
CONF_KNX_LOCAL_IP: None,
|
||||||
},
|
},
|
||||||
|
@ -229,7 +229,7 @@ async def test_routing_setup_advanced(hass: HomeAssistant) -> None:
|
||||||
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING_TCP,
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING_TCP,
|
||||||
CONF_HOST: "192.168.0.1",
|
CONF_HOST: "192.168.0.1",
|
||||||
CONF_PORT: 3675,
|
CONF_PORT: 3675,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: "15.15.250",
|
CONF_KNX_INDIVIDUAL_ADDRESS: "0.0.240",
|
||||||
CONF_KNX_ROUTE_BACK: False,
|
CONF_KNX_ROUTE_BACK: False,
|
||||||
CONF_KNX_LOCAL_IP: None,
|
CONF_KNX_LOCAL_IP: None,
|
||||||
},
|
},
|
||||||
|
@ -246,7 +246,7 @@ async def test_routing_setup_advanced(hass: HomeAssistant) -> None:
|
||||||
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
||||||
CONF_HOST: "192.168.0.1",
|
CONF_HOST: "192.168.0.1",
|
||||||
CONF_PORT: 3675,
|
CONF_PORT: 3675,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: "15.15.250",
|
CONF_KNX_INDIVIDUAL_ADDRESS: "0.0.240",
|
||||||
CONF_KNX_ROUTE_BACK: True,
|
CONF_KNX_ROUTE_BACK: True,
|
||||||
CONF_KNX_LOCAL_IP: None,
|
CONF_KNX_LOCAL_IP: None,
|
||||||
},
|
},
|
||||||
|
@ -374,7 +374,7 @@ async def test_tunneling_setup_for_local_ip(hass: HomeAssistant) -> None:
|
||||||
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
||||||
CONF_HOST: "192.168.0.2",
|
CONF_HOST: "192.168.0.2",
|
||||||
CONF_PORT: 3675,
|
CONF_PORT: 3675,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: "15.15.250",
|
CONF_KNX_INDIVIDUAL_ADDRESS: "0.0.240",
|
||||||
CONF_KNX_ROUTE_BACK: False,
|
CONF_KNX_ROUTE_BACK: False,
|
||||||
CONF_KNX_LOCAL_IP: "192.168.1.112",
|
CONF_KNX_LOCAL_IP: "192.168.1.112",
|
||||||
}
|
}
|
||||||
|
@ -420,7 +420,7 @@ async def test_tunneling_setup_for_multiple_found_gateways(hass: HomeAssistant)
|
||||||
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
||||||
CONF_HOST: "192.168.0.1",
|
CONF_HOST: "192.168.0.1",
|
||||||
CONF_PORT: 3675,
|
CONF_PORT: 3675,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: "15.15.250",
|
CONF_KNX_INDIVIDUAL_ADDRESS: "0.0.240",
|
||||||
CONF_KNX_ROUTE_BACK: False,
|
CONF_KNX_ROUTE_BACK: False,
|
||||||
CONF_KNX_LOCAL_IP: None,
|
CONF_KNX_LOCAL_IP: None,
|
||||||
}
|
}
|
||||||
|
@ -625,7 +625,7 @@ async def test_configure_secure_tunnel_manual(hass: HomeAssistant):
|
||||||
CONF_KNX_SECURE_DEVICE_AUTHENTICATION: "device_auth",
|
CONF_KNX_SECURE_DEVICE_AUTHENTICATION: "device_auth",
|
||||||
CONF_HOST: "192.168.0.1",
|
CONF_HOST: "192.168.0.1",
|
||||||
CONF_PORT: 3675,
|
CONF_PORT: 3675,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: "15.15.250",
|
CONF_KNX_INDIVIDUAL_ADDRESS: "0.0.240",
|
||||||
CONF_KNX_ROUTE_BACK: False,
|
CONF_KNX_ROUTE_BACK: False,
|
||||||
CONF_KNX_LOCAL_IP: None,
|
CONF_KNX_LOCAL_IP: None,
|
||||||
}
|
}
|
||||||
|
@ -649,7 +649,7 @@ async def test_configure_secure_knxkeys(hass: HomeAssistant):
|
||||||
"homeassistant.components.knx.async_setup_entry",
|
"homeassistant.components.knx.async_setup_entry",
|
||||||
return_value=True,
|
return_value=True,
|
||||||
) as mock_setup_entry, patch(
|
) as mock_setup_entry, patch(
|
||||||
"homeassistant.components.knx.config_flow.load_key_ring", return_value=True
|
"homeassistant.components.knx.config_flow.load_keyring", return_value=True
|
||||||
):
|
):
|
||||||
secure_knxkeys = await hass.config_entries.flow.async_configure(
|
secure_knxkeys = await hass.config_entries.flow.async_configure(
|
||||||
result["flow_id"],
|
result["flow_id"],
|
||||||
|
@ -667,7 +667,7 @@ async def test_configure_secure_knxkeys(hass: HomeAssistant):
|
||||||
CONF_KNX_KNXKEY_PASSWORD: "password",
|
CONF_KNX_KNXKEY_PASSWORD: "password",
|
||||||
CONF_HOST: "192.168.0.1",
|
CONF_HOST: "192.168.0.1",
|
||||||
CONF_PORT: 3675,
|
CONF_PORT: 3675,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: "15.15.250",
|
CONF_KNX_INDIVIDUAL_ADDRESS: "0.0.240",
|
||||||
CONF_KNX_ROUTE_BACK: False,
|
CONF_KNX_ROUTE_BACK: False,
|
||||||
CONF_KNX_LOCAL_IP: None,
|
CONF_KNX_LOCAL_IP: None,
|
||||||
}
|
}
|
||||||
|
@ -688,7 +688,7 @@ async def test_configure_secure_knxkeys_file_not_found(hass: HomeAssistant):
|
||||||
assert not result["errors"]
|
assert not result["errors"]
|
||||||
|
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.knx.config_flow.load_key_ring",
|
"homeassistant.components.knx.config_flow.load_keyring",
|
||||||
side_effect=FileNotFoundError(),
|
side_effect=FileNotFoundError(),
|
||||||
):
|
):
|
||||||
secure_knxkeys = await hass.config_entries.flow.async_configure(
|
secure_knxkeys = await hass.config_entries.flow.async_configure(
|
||||||
|
@ -717,8 +717,8 @@ async def test_configure_secure_knxkeys_invalid_signature(hass: HomeAssistant):
|
||||||
assert not result["errors"]
|
assert not result["errors"]
|
||||||
|
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.knx.config_flow.load_key_ring",
|
"homeassistant.components.knx.config_flow.load_keyring",
|
||||||
side_effect=InvalidSignature(),
|
side_effect=InvalidSecureConfiguration(),
|
||||||
):
|
):
|
||||||
secure_knxkeys = await hass.config_entries.flow.async_configure(
|
secure_knxkeys = await hass.config_entries.flow.async_configure(
|
||||||
result["flow_id"],
|
result["flow_id"],
|
||||||
|
@ -773,13 +773,13 @@ async def test_options_flow_connection_type(
|
||||||
|
|
||||||
assert mock_config_entry.data == {
|
assert mock_config_entry.data == {
|
||||||
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_TUNNELING,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: "15.15.250",
|
CONF_KNX_INDIVIDUAL_ADDRESS: "0.0.240",
|
||||||
CONF_HOST: "192.168.0.1",
|
CONF_HOST: "192.168.0.1",
|
||||||
CONF_PORT: 3675,
|
CONF_PORT: 3675,
|
||||||
CONF_KNX_LOCAL_IP: None,
|
CONF_KNX_LOCAL_IP: None,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_RATE_LIMIT: 20,
|
CONF_KNX_RATE_LIMIT: 0,
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_ROUTE_BACK: False,
|
CONF_KNX_ROUTE_BACK: False,
|
||||||
}
|
}
|
||||||
|
@ -804,7 +804,7 @@ async def test_options_communication_settings(
|
||||||
result["flow_id"],
|
result["flow_id"],
|
||||||
user_input={
|
user_input={
|
||||||
CONF_KNX_STATE_UPDATER: False,
|
CONF_KNX_STATE_UPDATER: False,
|
||||||
CONF_KNX_RATE_LIMIT: 0,
|
CONF_KNX_RATE_LIMIT: 40,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -816,5 +816,5 @@ async def test_options_communication_settings(
|
||||||
**DEFAULT_ENTRY_DATA,
|
**DEFAULT_ENTRY_DATA,
|
||||||
CONF_KNX_CONNECTION_TYPE: CONF_KNX_AUTOMATIC,
|
CONF_KNX_CONNECTION_TYPE: CONF_KNX_AUTOMATIC,
|
||||||
CONF_KNX_STATE_UPDATER: False,
|
CONF_KNX_STATE_UPDATER: False,
|
||||||
CONF_KNX_RATE_LIMIT: 0,
|
CONF_KNX_RATE_LIMIT: 40,
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from aiohttp import ClientSession
|
from aiohttp import ClientSession
|
||||||
from xknx import XKNX
|
|
||||||
from xknx.io import DEFAULT_MCAST_GRP, DEFAULT_MCAST_PORT
|
from xknx.io import DEFAULT_MCAST_GRP, DEFAULT_MCAST_PORT
|
||||||
|
|
||||||
from homeassistant.components.knx.const import (
|
from homeassistant.components.knx.const import (
|
||||||
|
@ -18,6 +17,7 @@ from homeassistant.components.knx.const import (
|
||||||
CONF_KNX_SECURE_DEVICE_AUTHENTICATION,
|
CONF_KNX_SECURE_DEVICE_AUTHENTICATION,
|
||||||
CONF_KNX_SECURE_USER_PASSWORD,
|
CONF_KNX_SECURE_USER_PASSWORD,
|
||||||
CONF_KNX_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER,
|
||||||
|
DEFAULT_ROUTING_IA,
|
||||||
DOMAIN as KNX_DOMAIN,
|
DOMAIN as KNX_DOMAIN,
|
||||||
)
|
)
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
@ -45,10 +45,10 @@ async def test_diagnostics(
|
||||||
) == {
|
) == {
|
||||||
"config_entry_data": {
|
"config_entry_data": {
|
||||||
"connection_type": "automatic",
|
"connection_type": "automatic",
|
||||||
"individual_address": "15.15.250",
|
"individual_address": "0.0.240",
|
||||||
"multicast_group": "224.0.23.12",
|
"multicast_group": "224.0.23.12",
|
||||||
"multicast_port": 3671,
|
"multicast_port": 3671,
|
||||||
"rate_limit": 20,
|
"rate_limit": 0,
|
||||||
"state_updater": True,
|
"state_updater": True,
|
||||||
},
|
},
|
||||||
"configuration_error": None,
|
"configuration_error": None,
|
||||||
|
@ -77,10 +77,10 @@ async def test_diagnostic_config_error(
|
||||||
) == {
|
) == {
|
||||||
"config_entry_data": {
|
"config_entry_data": {
|
||||||
"connection_type": "automatic",
|
"connection_type": "automatic",
|
||||||
"individual_address": "15.15.250",
|
"individual_address": "0.0.240",
|
||||||
"multicast_group": "224.0.23.12",
|
"multicast_group": "224.0.23.12",
|
||||||
"multicast_port": 3671,
|
"multicast_port": 3671,
|
||||||
"rate_limit": 20,
|
"rate_limit": 0,
|
||||||
"state_updater": True,
|
"state_updater": True,
|
||||||
},
|
},
|
||||||
"configuration_error": "extra keys not allowed @ data['knx']['wrong_key']",
|
"configuration_error": "extra keys not allowed @ data['knx']['wrong_key']",
|
||||||
|
@ -103,7 +103,7 @@ async def test_diagnostic_redact(
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
CONF_KNX_INDIVIDUAL_ADDRESS: DEFAULT_ROUTING_IA,
|
||||||
CONF_KNX_KNXKEY_PASSWORD: "password",
|
CONF_KNX_KNXKEY_PASSWORD: "password",
|
||||||
CONF_KNX_SECURE_USER_PASSWORD: "user_password",
|
CONF_KNX_SECURE_USER_PASSWORD: "user_password",
|
||||||
CONF_KNX_SECURE_DEVICE_AUTHENTICATION: "device_authentication",
|
CONF_KNX_SECURE_DEVICE_AUTHENTICATION: "device_authentication",
|
||||||
|
@ -120,10 +120,10 @@ async def test_diagnostic_redact(
|
||||||
) == {
|
) == {
|
||||||
"config_entry_data": {
|
"config_entry_data": {
|
||||||
"connection_type": "automatic",
|
"connection_type": "automatic",
|
||||||
"individual_address": "15.15.250",
|
"individual_address": "0.0.240",
|
||||||
"multicast_group": "224.0.23.12",
|
"multicast_group": "224.0.23.12",
|
||||||
"multicast_port": 3671,
|
"multicast_port": 3671,
|
||||||
"rate_limit": 20,
|
"rate_limit": 0,
|
||||||
"state_updater": True,
|
"state_updater": True,
|
||||||
"knxkeys_password": "**REDACTED**",
|
"knxkeys_password": "**REDACTED**",
|
||||||
"user_password": "**REDACTED**",
|
"user_password": "**REDACTED**",
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
"""Test KNX init."""
|
"""Test KNX init."""
|
||||||
import pytest
|
import pytest
|
||||||
from xknx import XKNX
|
|
||||||
from xknx.io import (
|
from xknx.io import (
|
||||||
DEFAULT_MCAST_GRP,
|
DEFAULT_MCAST_GRP,
|
||||||
DEFAULT_MCAST_PORT,
|
DEFAULT_MCAST_PORT,
|
||||||
|
@ -9,6 +8,7 @@ from xknx.io import (
|
||||||
SecureConfig,
|
SecureConfig,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from homeassistant.components.knx.config_flow import DEFAULT_ROUTING_IA
|
||||||
from homeassistant.components.knx.const import (
|
from homeassistant.components.knx.const import (
|
||||||
CONF_KNX_AUTOMATIC,
|
CONF_KNX_AUTOMATIC,
|
||||||
CONF_KNX_CONNECTION_TYPE,
|
CONF_KNX_CONNECTION_TYPE,
|
||||||
|
@ -51,7 +51,7 @@ from tests.common import MockConfigEntry
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
CONF_KNX_INDIVIDUAL_ADDRESS: DEFAULT_ROUTING_IA,
|
||||||
},
|
},
|
||||||
ConnectionConfig(threaded=True),
|
ConnectionConfig(threaded=True),
|
||||||
),
|
),
|
||||||
|
@ -63,10 +63,13 @@ from tests.common import MockConfigEntry
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
CONF_KNX_INDIVIDUAL_ADDRESS: DEFAULT_ROUTING_IA,
|
||||||
},
|
},
|
||||||
ConnectionConfig(
|
ConnectionConfig(
|
||||||
connection_type=ConnectionType.ROUTING,
|
connection_type=ConnectionType.ROUTING,
|
||||||
|
individual_address=DEFAULT_ROUTING_IA,
|
||||||
|
multicast_group=DEFAULT_MCAST_GRP,
|
||||||
|
multicast_port=DEFAULT_MCAST_PORT,
|
||||||
local_ip="192.168.1.1",
|
local_ip="192.168.1.1",
|
||||||
threaded=True,
|
threaded=True,
|
||||||
),
|
),
|
||||||
|
@ -82,7 +85,7 @@ from tests.common import MockConfigEntry
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
CONF_KNX_INDIVIDUAL_ADDRESS: DEFAULT_ROUTING_IA,
|
||||||
},
|
},
|
||||||
ConnectionConfig(
|
ConnectionConfig(
|
||||||
connection_type=ConnectionType.TUNNELING,
|
connection_type=ConnectionType.TUNNELING,
|
||||||
|
@ -103,7 +106,7 @@ from tests.common import MockConfigEntry
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
CONF_KNX_INDIVIDUAL_ADDRESS: DEFAULT_ROUTING_IA,
|
||||||
},
|
},
|
||||||
ConnectionConfig(
|
ConnectionConfig(
|
||||||
connection_type=ConnectionType.TUNNELING_TCP,
|
connection_type=ConnectionType.TUNNELING_TCP,
|
||||||
|
@ -122,7 +125,7 @@ from tests.common import MockConfigEntry
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
CONF_KNX_INDIVIDUAL_ADDRESS: DEFAULT_ROUTING_IA,
|
||||||
CONF_KNX_KNXKEY_FILENAME: "knx/testcase.knxkeys",
|
CONF_KNX_KNXKEY_FILENAME: "knx/testcase.knxkeys",
|
||||||
CONF_KNX_KNXKEY_PASSWORD: "password",
|
CONF_KNX_KNXKEY_PASSWORD: "password",
|
||||||
},
|
},
|
||||||
|
@ -146,7 +149,7 @@ from tests.common import MockConfigEntry
|
||||||
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
CONF_KNX_STATE_UPDATER: CONF_KNX_DEFAULT_STATE_UPDATER,
|
||||||
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
CONF_KNX_MCAST_PORT: DEFAULT_MCAST_PORT,
|
||||||
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
CONF_KNX_MCAST_GRP: DEFAULT_MCAST_GRP,
|
||||||
CONF_KNX_INDIVIDUAL_ADDRESS: XKNX.DEFAULT_ADDRESS,
|
CONF_KNX_INDIVIDUAL_ADDRESS: DEFAULT_ROUTING_IA,
|
||||||
CONF_KNX_SECURE_USER_ID: 2,
|
CONF_KNX_SECURE_USER_ID: 2,
|
||||||
CONF_KNX_SECURE_USER_PASSWORD: "password",
|
CONF_KNX_SECURE_USER_PASSWORD: "password",
|
||||||
CONF_KNX_SECURE_DEVICE_AUTHENTICATION: "device_auth",
|
CONF_KNX_SECURE_DEVICE_AUTHENTICATION: "device_auth",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue