From 9a2f025646db3c57c23c08239260eeadc9029240 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 1 May 2020 15:23:56 +0200 Subject: [PATCH] Add support for homematic (#1690) --- supervisor/discovery/services/homematic.py | 18 ++++++++++++++++++ tests/discovery/test_homematic.py | 22 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 supervisor/discovery/services/homematic.py create mode 100644 tests/discovery/test_homematic.py diff --git a/supervisor/discovery/services/homematic.py b/supervisor/discovery/services/homematic.py new file mode 100644 index 000000000..ddae29c44 --- /dev/null +++ b/supervisor/discovery/services/homematic.py @@ -0,0 +1,18 @@ +"""Discovery service for HomeMatic.""" +import voluptuous as vol + +from supervisor.validate import network_port + +from ..const import ATTR_HOST, ATTR_PORT + + +SCHEMA = vol.Schema( + { + vol.Coerce(str): vol.Schema( + { + vol.Required(ATTR_HOST): vol.Coerce(str), + vol.Required(ATTR_PORT): network_port, + } + ) + } +) diff --git a/tests/discovery/test_homematic.py b/tests/discovery/test_homematic.py new file mode 100644 index 000000000..6f341977f --- /dev/null +++ b/tests/discovery/test_homematic.py @@ -0,0 +1,22 @@ +"""Test HomeMatic discovery.""" + +import voluptuous as vol +import pytest + +from supervisor.discovery.validate import valid_discovery_config + + +def test_good_config(): + """Test good homematic config.""" + + valid_discovery_config( + "homematic", + {"ip": {"host": "test", "port": 3812}, "rf": {"host": "test", "port": 3712}}, + ) + + +def test_bad_config(): + """Test good homematic config.""" + + with pytest.raises(vol.Invalid): + valid_discovery_config("homematic", {"test": {"bla": "test", "port": 8080}})