git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #125445 from mweinelt/home-assistant
commitb73c304dce1593a279a683094d7ccfc07c4fa3b8 authorMartin Weinelt <mweinelt@users.noreply.github.com> dateFri 11 Jun 2021, 22:15 (5 years ago) parent2c31bc7f8a97bf
28 files changed+363−104
pkgs/development/python-modules/aiohomekit/default.nix+9−9 pkgs/development/python-modules/aiohue/default.nix+2−2 pkgs/development/python-modules/aiolyric/default.nix+2−2 pkgs/development/python-modules/aiorecollect/default.nix+2−2 pkgs/development/python-modules/boschshcpy/default.nix+41 pkgs/development/python-modules/bravia-tv/default.nix+10−5 pkgs/development/python-modules/garages-amsterdam/default.nix+2−2 pkgs/development/python-modules/gios/default.nix+55 pkgs/development/python-modules/growattserver/default.nix+42 pkgs/development/python-modules/HAP-python/default.nix → pkgs/development/python-modules/hap-python/default.nix+4−4 pkgs/development/python-modules/ismartgate/default.nix+60 pkgs/development/python-modules/nexia/default.nix+2−2 pkgs/development/python-modules/openhomedevice/default.nix+2−2 pkgs/development/python-modules/pyatmo/default.nix+6−2 pkgs/development/python-modules/pydroid-ipcam/default.nix+3−3 pkgs/development/python-modules/python-smarttub/default.nix+2−2 pkgs/development/python-modules/pyroon/default.nix → pkgs/development/python-modules/roonapi/default.nix+2−2 pkgs/development/python-modules/simplisafe-python/default.nix+5−11 pkgs/development/python-modules/systembridge/default.nix+2 pkgs/development/python-modules/venstarcolortouch/default.nix+2−2 pkgs/development/python-modules/xknx/default.nix+2−2 pkgs/development/python-modules/zwave-js-server-python/default.nix+2−2 pkgs/servers/home-assistant/component-packages.nix+46−39 pkgs/servers/home-assistant/default.nix+43−4 pkgs/servers/home-assistant/frontend.nix+2−2 pkgs/servers/home-assistant/parse-requirements.py+1 pkgs/top-level/python-aliases.nix+1 pkgs/top-level/python-packages.nix+11−3
pkgs/development/python-modules/aiohomekit/default.nix+9−9
@@ -2,7 +2,7 @@
22, buildPythonPackage
33, cryptography
44, fetchFromGitHub
5−, poetry
5+, poetry-core
66, pytest-aiohttp
77, pytestCheckHook
88, pythonAtLeast
@@ -11,7 +11,7 @@
1111
1212buildPythonPackage rec {
1313 pname = "aiohomekit";
14− version = "0.2.62";
14+ version = "0.2.67";
1515 format = "pyproject";
1616 disabled = pythonAtLeast "3.9";
1717
@@ -19,10 +19,12 @@ buildPythonPackage rec {
1919 owner = "Jc2k";
2020 repo = pname;
2121 rev = version;
22− sha256 = "sha256-01IzeR0iukPTkz8I7h93wZkgjz6flRAJN8unEX6d+cs=";
22+ sha256 = "04421p0dq7xh7rhx8ip177g2b91lhlc2yziqxbs9yxd1qyzwiqj1";
2323 };
2424
25− nativeBuildInputs = [ poetry ];
25+ nativeBuildInputs = [
26+ poetry-core
27+ ];
2628
2729 propagatedBuildInputs = [
2830 cryptography
@@ -34,11 +36,9 @@ buildPythonPackage rec {
3436 pytestCheckHook
3537 ];
3638
37− # Some test requires network access
38− disabledTests = [
39− "test_remove_pairing"
40− "test_pair"
41− "test_add_and_remove_pairings"
39+ disabledTestPaths = [
40+ # Tests require network access
41+ "tests/test_ip_pairing.py"
4242 ];
4343
4444 pythonImportsCheck = [ "aiohomekit" ];
pkgs/development/python-modules/aiohue/default.nix+2−2
@@ -6,11 +6,11 @@
66
77buildPythonPackage rec {
88 pname = "aiohue";
9− version = "2.3.1";
9+ version = "2.5.0";
1010
1111 src = fetchPypi {
1212 inherit pname version;
13− sha256 = "1qxvqqsflcn263yg7r8vvfc2c2fl3rh4dkzwzh926ijnbc2sk4nm";
13+ sha256 = "sha256-4q5JvkUmEoOomcwblXhvB/5Qdr6aMR0lDb4t4bjDjw8=";
1414 };
1515
1616 propagatedBuildInputs = [
pkgs/development/python-modules/aiolyric/default.nix+2−2
@@ -8,14 +8,14 @@
88
99buildPythonPackage rec {
1010 pname = "aiolyric";
11− version = "1.0.6";
11+ version = "1.0.7";
1212 disabled = pythonOlder "3.7";
1313
1414 src = fetchFromGitHub {
1515 owner = "timmo001";
1616 repo = pname;
1717 rev = "v${version}";
18− sha256 = "1lnzsdw6kvgk0762f3vyw4xfzn7qkvsff16q61gm0ryjqg9j8whx";
18+ sha256 = "sha256-3UyWUsamluJclwrQD+MuUPLhNJoNU4/8w1m92OLWyrg=";
1919 };
2020
2121 propagatedBuildInputs = [ aiohttp ];
pkgs/development/python-modules/aiorecollect/default.nix+2−2
@@ -12,14 +12,14 @@
1212
1313buildPythonPackage rec {
1414 pname = "aiorecollect";
15− version = "1.0.4";
15+ version = "1.0.5";
1616 format = "pyproject";
1717
1818 src = fetchFromGitHub {
1919 owner = "bachya";
2020 repo = pname;
2121 rev = version;
22− sha256 = "sha256-A4qk7eo4maCRP4UmtWrRCPvG6YrLVSOiOcfN8pEj5Po=";
22+ sha256 = "0h76l0pahnmls0radknzm8dw79qx9dv0xhxqnn6011j9fwyviyqm";
2323 };
2424
2525 nativeBuildInputs = [
pkgs/development/python-modules/boschshcpy/default.nixnew file+41
@@ -0,0 +1,41 @@
1+{ lib
2+, buildPythonPackage
3+, cryptography
4+, fetchFromGitHub
5+, getmac
6+, pythonOlder
7+, requests
8+, zeroconf
9+}:
10+
11+buildPythonPackage rec {
12+ pname = "boschshcpy";
13+ version = "0.2.18";
14+ disabled = pythonOlder "3.7";
15+
16+ src = fetchFromGitHub {
17+ owner = "tschamm";
18+ repo = pname;
19+ rev = version;
20+ sha256 = "08bfg3g0hifjaa17d4zmws2ikbijdm0b98svgj8jdcl8v0nlqx69";
21+ };
22+
23+ propagatedBuildInputs = [
24+ cryptography
25+ getmac
26+ requests
27+ zeroconf
28+ ];
29+
30+ # Project has no tests
31+ doCheck = false;
32+
33+ pythonImportsCheck = [ "boschshcpy" ];
34+
35+ meta = with lib; {
36+ description = "Python module to work with the Bosch Smart Home Controller API";
37+ homepage = "https://github.com/tschamm/boschshcpy";
38+ license = with licenses; [ bsd3 ];
39+ maintainers = with maintainers; [ fab ];
40+ };
41+}
pkgs/development/python-modules/bravia-tv/default.nix+10−5
@@ -1,20 +1,25 @@
1−{ lib, fetchFromGitHub, buildPythonPackage, isPy27, requests }:
1+{ lib
2+, buildPythonPackage
3+, fetchFromGitHub
4+, pythonOlder
5+, requests
6+}:
27
38buildPythonPackage rec {
49 pname = "bravia-tv";
5− version = "1.0.8";
6− disabled = isPy27;
10+ version = "1.0.11";
11+ disabled = pythonOlder "3.6";
712
813 src = fetchFromGitHub {
914 owner = "dcnielsen90";
1015 repo = "python-bravia-tv";
1116 rev = "v${version}";
12− sha256 = "0djwy4z1y173q3mnbngp754yrwzmm6h3x0rshvrvd64b78x1bsmp";
17+ sha256 = "sha256-g47bDd5bZl0jad3o6T1jJLcnZj8nx944kz3Vxv8gD2U=";
1318 };
1419
1520 propagatedBuildInputs = [ requests ];
1621
17− # package does not include tests
22+ # Package does not include tests
1823 doCheck = false;
1924
2025 pythonImportsCheck = [ "bravia_tv" ];
pkgs/development/python-modules/garages-amsterdam/default.nix+2−2
@@ -7,14 +7,14 @@
77
88buildPythonPackage rec {
99 pname = "garages-amsterdam";
10− version = "2.1.0";
10+ version = "2.1.1";
1111 disabled = pythonOlder "3.7";
1212
1313 src = fetchFromGitHub {
1414 owner = "klaasnicolaas";
1515 repo = "garages_amsterdam";
1616 rev = version;
17− sha256 = "1lg66g0im6v0m294j82229n2b7bhs6kkrp0d9nh87k2rz7zgllil";
17+ sha256 = "1m0bc3bzb83apprk412s7k5r2g6p5br2hrak2a976lh9ifk1d8hj";
1818 };
1919
2020 propagatedBuildInputs = [
pkgs/development/python-modules/gios/default.nixnew file+55
@@ -0,0 +1,55 @@
1+{ lib
2+, aiohttp
3+, aioresponses
4+, buildPythonPackage
5+, fetchFromGitHub
6+, pytest-asyncio
7+, pytest-error-for-skips
8+, pytestCheckHook
9+, pythonOlder
10+}:
11+
12+buildPythonPackage rec {
13+ pname = "gios";
14+ version = "1.0.1";
15+ disabled = pythonOlder "3.7";
16+
17+ src = fetchFromGitHub {
18+ owner = "bieniu";
19+ repo = pname;
20+ rev = version;
21+ sha256 = "031z5j1j961pcw8s4ajj5z2xn2jxb2hyfn3x3bxbaagwl9a5qkvn";
22+ };
23+
24+ propagatedBuildInputs = [
25+ aiohttp
26+ ];
27+
28+ checkInputs = [
29+ aioresponses
30+ pytest-asyncio
31+ pytest-error-for-skips
32+ pytestCheckHook
33+ ];
34+
35+ postPatch = ''
36+ substituteInPlace setup.cfg \
37+ --replace "--cov --cov-report term-missing " ""
38+ substituteInPlace setup.py \
39+ --replace "pytest-runner" ""
40+ '';
41+
42+ disabledTests = [
43+ # Test requires network access
44+ "test_invalid_station_id"
45+ ];
46+
47+ pythonImportsCheck = [ "gios" ];
48+
49+ meta = with lib; {
50+ description = "Python client for getting air quality data from GIOS";
51+ homepage = "https://github.com/bieniu/gios";
52+ license = licenses.asl20;
53+ maintainers = with maintainers; [ fab ];
54+ };
55+}
pkgs/development/python-modules/growattserver/default.nixnew file+42
@@ -0,0 +1,42 @@
1+{ lib
2+, buildPythonPackage
3+, fetchFromGitHub
4+, pythonOlder
5+, requests
6+}:
7+
8+buildPythonPackage rec {
9+ pname = "growattserver";
10+ version = "1.0.1";
11+ disabled = pythonOlder "3.6";
12+
13+ src = fetchFromGitHub {
14+ owner = "indykoning";
15+ repo = "PyPi_GrowattServer";
16+ rev = version;
17+ sha256 = "1vgb92axlz1kkszmamjbsqgi74afnbr2mc1np3pmbn3bx5rmk1d9";
18+ };
19+
20+ propagatedBuildInputs = [
21+ requests
22+ ];
23+
24+ postPatch = ''
25+ # https://github.com/indykoning/PyPi_GrowattServer/issues/2
26+ substituteInPlace setup.py \
27+ --replace "tag = os.environ['LATEST_TAG']" "" \
28+ --replace "version=tag," 'version="${version}",'
29+ '';
30+
31+ # Project has no tests
32+ doCheck = false;
33+
34+ pythonImportsCheck = [ "growattServer" ];
35+
36+ meta = with lib; {
37+ description = "Python package to retrieve information from Growatt units";
38+ homepage = "https://github.com/indykoning/PyPi_GrowattServer";
39+ license = licenses.mit;
40+ maintainers = with maintainers; [ fab ];
41+ };
42+}
pkgs/development/python-modules/HAP-python/default.nix → pkgs/development/python-modules/hap-python/default.nixrenamed+4−4
@@ -16,16 +16,16 @@
1616}:
1717
1818buildPythonPackage rec {
19− pname = "HAP-python";
20− version = "3.4.1";
19+ pname = "hap-python";
20+ version = "3.5.0";
2121 disabled = pythonOlder "3.5";
2222
2323 # pypi package does not include tests
2424 src = fetchFromGitHub {
2525 owner = "ikalchev";
26− repo = pname;
26+ repo = "HAP-python";
2727 rev = "v${version}";
28− sha256 = "sha256-tZ6Zwlx5J62Xqpxxmt8Phdd9ngtKYhP/p3uor1dRfK8=";
28+ sha256 = "1vzlfx0gpidl0rzv4z94pziwm6rj4lrilly5pykgq984y708pcqf";
2929 };
3030
3131 propagatedBuildInputs = [
pkgs/development/python-modules/ismartgate/default.nixnew file+60
@@ -0,0 +1,60 @@
1+{ lib
2+, asynctest
3+, buildPythonPackage
4+, click
5+, defusedxml
6+, dicttoxml
7+, fetchFromGitHub
8+, httpx
9+, pycryptodome
10+, pytest-asyncio
11+, pytest-raises
12+, pytestCheckHook
13+, pythonOlder
14+, respx
15+, typing-extensions
16+}:
17+
18+buildPythonPackage rec {
19+ pname = "ismartgate";
20+ version = "4.0.1";
21+ disabled = pythonOlder "3.7";
22+
23+ src = fetchFromGitHub {
24+ owner = "bdraco";
25+ repo = pname;
26+ rev = "v${version}";
27+ sha256 = "1kxlcjnppsk8m93gfcpy3asig1frhp1k5rfqx3rszhkcxmni95m2";
28+ };
29+
30+ propagatedBuildInputs = [
31+ click
32+ defusedxml
33+ dicttoxml
34+ httpx
35+ pycryptodome
36+ typing-extensions
37+ ];
38+
39+ checkInputs = [
40+ asynctest
41+ pytest-asyncio
42+ pytest-raises
43+ pytestCheckHook
44+ respx
45+ ];
46+
47+ postPatch = ''
48+ substituteInPlace setup.py \
49+ --replace '"pytest-runner>=5.2",' ""
50+ '';
51+
52+ pythonImportsCheck = [ "ismartgate" ];
53+
54+ meta = with lib; {
55+ description = "Python module to work with the ismartgate and gogogate2 API";
56+ homepage = "https://github.com/bdraco/ismartgate";
57+ license = with licenses; [ mit ];
58+ maintainers = with maintainers; [ fab ];
59+ };
60+}
pkgs/development/python-modules/nexia/default.nix+2−2
@@ -9,14 +9,14 @@
99
1010buildPythonPackage rec {
1111 pname = "nexia";
12− version = "0.9.6";
12+ version = "0.9.7";
1313 disabled = pythonOlder "3.5";
1414
1515 src = fetchFromGitHub {
1616 owner = "bdraco";
1717 repo = pname;
1818 rev = version;
19− sha256 = "1k8h1p2zqm8gghff03jh8q3zik7jw2l686cyyg36r3qrgz6zi19q";
19+ sha256 = "sha256-1oBrDr8QAUe6LLBliR/sNwDlLuisxOWPeI9sxuJtGxU=";
2020 };
2121
2222 propagatedBuildInputs = [
pkgs/development/python-modules/openhomedevice/default.nix+2−2
@@ -8,14 +8,14 @@
88
99buildPythonPackage rec {
1010 pname = "openhomedevice";
11− version = "1.0.0";
11+ version = "2.0.1";
1212 disabled = pythonOlder "3.5";
1313
1414 src = fetchFromGitHub {
1515 owner = "bazwilliams";
1616 repo = pname;
1717 rev = version;
18− sha256 = "04qdlyzc8xsk7qxyn9l59pbwnlw49zknw0r5lqwx402va12g4ra0";
18+ sha256 = "sha256-BQgwXg15+xEGfPm0HJWpKXbNuCgc0VcAD5AuVSDXd8g=";
1919 };
2020
2121 propagatedBuildInputs = [
pkgs/development/python-modules/pyatmo/default.nix+6−2
@@ -2,24 +2,26 @@
22, buildPythonPackage
33, pythonOlder
44, fetchFromGitHub
5+, aiohttp
56, oauthlib
67, requests
78, requests_oauthlib
89, freezegun
10+, pytest-asyncio
911, pytestCheckHook
1012, requests-mock
1113}:
1214
1315buildPythonPackage rec {
1416 pname = "pyatmo";
15− version = "4.2.3";
17+ version = "5.0.1";
1618 disabled = pythonOlder "3.7";
1719
1820 src = fetchFromGitHub {
1921 owner = "jabesq";
2022 repo = "pyatmo";
2123 rev = "v${version}";
22− sha256 = "sha256-hbs+1x/pwv00dhm+1Yj1effddJZHDjs2K3oeBmdCY+k=";
24+ sha256 = "0can9v602iqfn0l01fd7gr63qzvcngfm0qka4s1x0pldh6avxmfh";
2325 };
2426
2527 postPatch = ''
@@ -29,6 +31,7 @@ buildPythonPackage rec {
2931 '';
3032
3133 propagatedBuildInputs = [
34+ aiohttp
3235 oauthlib
3336 requests
3437 requests_oauthlib
@@ -36,6 +39,7 @@ buildPythonPackage rec {
3639
3740 checkInputs = [
3841 freezegun
42+ pytest-asyncio
3943 pytestCheckHook
4044 requests-mock
4145 ];
pkgs/development/python-modules/pydroid-ipcam/default.nix+3−3
@@ -8,14 +8,14 @@
88
99buildPythonPackage rec {
1010 pname = "pydroid-ipcam";
11− version = "unstable-2021-04-16";
11+ version = "unstable-2021-06-01";
1212 disabled = pythonOlder "3.7";
1313
1414 src = fetchFromGitHub {
1515 owner = "home-assistant-libs";
1616 repo = pname;
17− rev = "9f22682c6f9182aa5e42762f52223337b8b6909c";
18− sha256 = "1lvppyzmwg0fp8zch11j51an4sb074yl9shzanakvjmbqpnif6s6";
17+ rev = "3ca14ff178f3506a6a91d8736deea8f06e9ad1c1";
18+ sha256 = "0w81pl5fya17hg5xgba2vgxnylfd8jc70il575wdz2pw6z6ihj3s";
1919 };
2020
2121 propagatedBuildInputs = [
pkgs/development/python-modules/python-smarttub/default.nix+2−2
@@ -13,14 +13,14 @@
1313
1414buildPythonPackage rec {
1515 pname = "python-smarttub";
16− version = "0.0.24";
16+ version = "0.0.25";
1717 disabled = pythonOlder "3.8";
1818
1919 src = fetchFromGitHub {
2020 owner = "mdz";
2121 repo = pname;
2222 rev = "v${version}";
23− sha256 = "sha256-XWZbfPNZ1cPsDwtJRuOwIPTHmNBMzFSYHDDcbBrXjtk=";
23+ sha256 = "13yf75vmn15g2hrbiv78mws96qbk40p5pz7vc6ljyp41y2lc9wpm";
2424 };
2525
2626 propagatedBuildInputs = [
pkgs/development/python-modules/pyroon/default.nix → pkgs/development/python-modules/roonapi/default.nixrenamed+2−2
@@ -11,14 +11,14 @@
1111}:
1212
1313buildPythonPackage rec {
14− pname = "pyroon";
14+ pname = "roonapi";
1515 version = "0.0.37";
1616 format = "pyproject";
1717 disabled = pythonOlder "3.7";
1818
1919 src = fetchFromGitHub {
2020 owner = "pavoni";
21− repo = pname;
21+ repo = "pyroon";
2222 rev = version;
2323 sha256 = "1hxr473z9h3kb91m3ygina58pfwfyjsv1yb29spxmnbzvk34rzzz";
2424 };
pkgs/development/python-modules/simplisafe-python/default.nix+5−11
@@ -6,45 +6,37 @@
66, fetchFromGitHub
77, poetry-core
88, pytest-asyncio
9−, pytest-cov
109, pytestCheckHook
11−, python-engineio
12−, python-socketio
1310, pythonOlder
1411, pytz
1512, voluptuous
16−, websockets
1713}:
1814
1915buildPythonPackage rec {
2016 pname = "simplisafe-python";
21− version = "9.6.10";
17+ version = "10.0.0";
2218 format = "pyproject";
23− disabled = pythonOlder "3.6";
19+ disabled = pythonOlder "3.7";
2420
2521 src = fetchFromGitHub {
2622 owner = "bachya";
2723 repo = pname;
2824 rev = version;
29− sha256 = "0cc5kxxishxhkg1nqmgbh36yxs8yjfynmimzjnaqkqfrs9iq46mr";
25+ sha256 = "sha256-VF8R+dty54GuWvYs/OqWhfGtOVieuxtfndQUxHhu5lc=";
3026 };
3127
3228 nativeBuildInputs = [ poetry-core ];
3329
3430 propagatedBuildInputs = [
3531 aiohttp
36− python-engineio
37− python-socketio
3832 pytz
3933 voluptuous
40− websockets
4134 ];
4235
4336 checkInputs = [
4437 aresponses
4538 asynctest
4639 pytest-asyncio
47− pytest-cov
4840 pytestCheckHook
4941 ];
5042
@@ -52,6 +44,8 @@ buildPythonPackage rec {
5244
5345 pythonImportsCheck = [ "simplipy" ];
5446
47+ __darwinAllowLocalNetworking = true;
48+
5549 meta = with lib; {
5650 description = "Python library the SimpliSafe API";
5751 homepage = "https://simplisafe-python.readthedocs.io/";
pkgs/development/python-modules/systembridge/default.nix+2
@@ -1,5 +1,6 @@
11{ lib
22, aiohttp
3+, websockets
34, buildPythonPackage
45, fetchFromGitHub
56}:
@@ -17,6 +18,7 @@ buildPythonPackage rec {
1718
1819 propagatedBuildInputs = [
1920 aiohttp
21+ websockets
2022 ];
2123
2224 # Project has no tests
pkgs/development/python-modules/venstarcolortouch/default.nix+2−2
@@ -6,11 +6,11 @@
66
77buildPythonPackage rec {
88 pname = "venstarcolortouch";
9− version = "0.13";
9+ version = "0.14";
1010
1111 src = fetchPypi {
1212 inherit pname version;
13− sha256 = "04y9gmxb0vsmc5c930x9ziis5v83b29kfzsgjlww3pssj69lmw1s";
13+ sha256 = "sha256-wrsu1SffD4/RvDiE6yABfZN/oSDH8Ao/RJK7yL2QKy8=";
1414 };
1515
1616 propagatedBuildInputs = [
pkgs/development/python-modules/xknx/default.nix+2−2
@@ -11,14 +11,14 @@
1111
1212buildPythonPackage rec {
1313 pname = "xknx";
14− version = "0.18.3";
14+ version = "0.18.4";
1515 disabled = pythonOlder "3.7";
1616
1717 src = fetchFromGitHub {
1818 owner = "XKNX";
1919 repo = pname;
2020 rev = version;
21− sha256 = "sha256-IXzmVAxxFOfU8ptixZLeyM64Fm1xSIlEDbR09f77JKM=";
21+ sha256 = "sha256-gKt3VDPsHjd3QNqD63MY0Pe+eLR3YmKidoAE5lbqCZQ=";
2222 };
2323
2424 propagatedBuildInputs = [
pkgs/development/python-modules/zwave-js-server-python/default.nix+2−2
@@ -9,7 +9,7 @@
99
1010buildPythonPackage rec {
1111 pname = "zwave-js-server-python";
12− version = "0.25.0";
12+ version = "0.26.1";
1313 disabled = pythonOlder "3.8";
1414
1515
@@ -17,7 +17,7 @@ buildPythonPackage rec {
1717 owner = "home-assistant-libs";
1818 repo = pname;
1919 rev = version;
20− sha256 = "sha256-frhmyla3neFVZILDy7HnKloMqNLRjm3gxS88xZdu29w=";
20+ sha256 = "1rh6wim5hr9lygvgria7lr6x61sdyrv3drrrirgv9p9gl3rxcj6m";
2121 };
2222
2323 propagatedBuildInputs = [
pkgs/servers/home-assistant/component-packages.nix+46−39
@@ -2,7 +2,7 @@
22# Do not edit!
33
44{
5− version = "2021.5.5";
5+ version = "2021.6.3";
66 components = {
77 "abode" = ps: with ps; [ abodepy ];
88 "accuweather" = ps: with ps; [ accuweather ];
@@ -40,7 +40,7 @@
4040 "apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess
4141 "api" = ps: with ps; [ aiohttp-cors ];
4242 "apns" = ps: with ps; [ ]; # missing inputs: apns2
43− "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv pyroute2 zeroconf ];
43+ "apple_tv" = ps: with ps; [ aiohttp-cors ifaddr netdisco pyatv zeroconf ];
4444 "apprise" = ps: with ps; [ apprise ];
4545 "aprs" = ps: with ps; [ geopy ]; # missing inputs: aprslib
4646 "aqualogic" = ps: with ps; [ aqualogic ];
@@ -96,6 +96,7 @@
9696 "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
9797 "bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected
9898 "bond" = ps: with ps; [ ]; # missing inputs: bond-api
99+ "bosch_shc" = ps: with ps; [ aiohttp-cors boschshcpy ifaddr zeroconf ];
99100 "braviatv" = ps: with ps; [ bravia-tv ];
100101 "broadlink" = ps: with ps; [ broadlink ];
101102 "brother" = ps: with ps; [ brother ];
@@ -110,7 +111,7 @@
110111 "calendar" = ps: with ps; [ aiohttp-cors ];
111112 "camera" = ps: with ps; [ aiohttp-cors ];
112113 "canary" = ps: with ps; [ ha-ffmpeg py-canary ];
113− "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa mutagen plexapi plexauth plexwebsocket PyChromecast pyroute2 zeroconf ];
114+ "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa ifaddr mutagen plexapi plexauth plexwebsocket PyChromecast zeroconf ];
114115 "cert_expiry" = ps: with ps; [ ];
115116 "channels" = ps: with ps; [ pychannels ];
116117 "circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook
@@ -156,7 +157,7 @@
156157 "deconz" = ps: with ps; [ pydeconz ];
157158 "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
158159 "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
159− "default_config" = ps: with ps; [ pynacl aiodiscover aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa netdisco pillow pyroute2 scapy sqlalchemy zeroconf ];
160+ "default_config" = ps: with ps; [ pynacl aiodiscover aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa ifaddr netdisco pillow scapy sqlalchemy zeroconf ];
160161 "delijn" = ps: with ps; [ pydelijn ];
161162 "deluge" = ps: with ps; [ deluge-client ];
162163 "demo" = ps: with ps; [ aiohttp-cors ];
@@ -167,7 +168,7 @@
167168 "device_automation" = ps: with ps; [ ];
168169 "device_sun_light_trigger" = ps: with ps; [ aiohttp-cors pillow ];
169170 "device_tracker" = ps: with ps; [ ];
170− "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api pyroute2 zeroconf ];
171+ "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api ifaddr zeroconf ];
171172 "dexcom" = ps: with ps; [ pydexcom ];
172173 "dhcp" = ps: with ps; [ aiodiscover scapy ];
173174 "dht" = ps: with ps; [ ]; # missing inputs: adafruit-circuitpython-dht
@@ -177,7 +178,7 @@
177178 "directv" = ps: with ps; [ ]; # missing inputs: directv
178179 "discogs" = ps: with ps; [ discogs_client ];
179180 "discord" = ps: with ps; [ discordpy ];
180− "discovery" = ps: with ps; [ aiohttp-cors netdisco pyroute2 zeroconf ];
181+ "discovery" = ps: with ps; [ aiohttp-cors ifaddr netdisco zeroconf ];
181182 "dlib_face_detect" = ps: with ps; [ face_recognition ];
182183 "dlib_face_identify" = ps: with ps; [ face_recognition ];
183184 "dlink" = ps: with ps; [ ]; # missing inputs: pyW215
@@ -197,7 +198,7 @@
197198 "dwd_weather_warnings" = ps: with ps; [ dwdwfsapi ];
198199 "dweet" = ps: with ps; [ ]; # missing inputs: dweepy
199200 "dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices
200− "dyson" = ps: with ps; [ aiohttp-cors libpurecool pyroute2 zeroconf ];
201+ "dyson" = ps: with ps; [ aiohttp-cors ifaddr libpurecool zeroconf ];
201202 "eafm" = ps: with ps; [ aioeafm ];
202203 "ebox" = ps: with ps; [ ]; # missing inputs: pyebox
203204 "ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy
@@ -234,7 +235,7 @@
234235 "epson" = ps: with ps; [ ]; # missing inputs: epson-projector
235236 "epsonworkforce" = ps: with ps; [ ]; # missing inputs: epsonprinter
236237 "eq3btsmart" = ps: with ps; [ construct ]; # missing inputs: python-eq3bt
237− "esphome" = ps: with ps; [ aioesphomeapi aiohttp-cors pyroute2 zeroconf ];
238+ "esphome" = ps: with ps; [ aioesphomeapi aiohttp-cors ifaddr zeroconf ];
238239 "essent" = ps: with ps; [ ]; # missing inputs: PyEssent
239240 "etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api
240241 "eufy" = ps: with ps; [ ]; # missing inputs: lakeside
@@ -256,7 +257,7 @@
256257 "fido" = ps: with ps; [ pyfido ];
257258 "file" = ps: with ps; [ ];
258259 "filesize" = ps: with ps; [ ];
259− "filter" = ps: with ps; [ aiohttp-cors sqlalchemy ];
260+ "filter" = ps: with ps; [ sqlalchemy ];
260261 "fints" = ps: with ps; [ fints ];
261262 "fireservicerota" = ps: with ps; [ ]; # missing inputs: pyfireservicerota
262263 "firmata" = ps: with ps; [ pymata-express ];
@@ -264,7 +265,7 @@
264265 "fixer" = ps: with ps; [ fixerio ];
265266 "fleetgo" = ps: with ps; [ ]; # missing inputs: ritassist
266267 "flexit" = ps: with ps; [ pymodbus ]; # missing inputs: pyflexit
267− "flic" = ps: with ps; [ ]; # missing inputs: pyflic-homeassistant
268+ "flic" = ps: with ps; [ ]; # missing inputs: pyflic
268269 "flick_electric" = ps: with ps; [ ]; # missing inputs: PyFlick
269270 "flo" = ps: with ps; [ aioflo ];
270271 "flock" = ps: with ps; [ ];
@@ -282,7 +283,7 @@
282283 "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
283284 "freebox" = ps: with ps; [ freebox-api ];
284285 "freedns" = ps: with ps; [ ];
285− "fritz" = ps: with ps; [ fritzconnection xmltodict ];
286+ "fritz" = ps: with ps; [ fritzconnection ];
286287 "fritzbox" = ps: with ps; [ pyfritzhome ];
287288 "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
288289 "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ];
@@ -291,19 +292,20 @@
291292 "frontier_silicon" = ps: with ps; [ ]; # missing inputs: afsapi
292293 "futurenow" = ps: with ps; [ pyfnip ];
293294 "garadget" = ps: with ps; [ ];
294− "garmin_connect" = ps: with ps; [ ]; # missing inputs: garminconnect
295+ "garages_amsterdam" = ps: with ps; [ garages-amsterdam ];
296+ "garmin_connect" = ps: with ps; [ ]; # missing inputs: garminconnect_aio
295297 "gc100" = ps: with ps; [ ]; # missing inputs: python-gc100
296− "gdacs" = ps: with ps; [ ]; # missing inputs: aio_georss_gdacs
298+ "gdacs" = ps: with ps; [ aio-georss-gdacs ];
297299 "generic" = ps: with ps; [ ];
298− "generic_thermostat" = ps: with ps; [ ];
300+ "generic_thermostat" = ps: with ps; [ sqlalchemy ];
299301 "geniushub" = ps: with ps; [ ]; # missing inputs: geniushub-client
300302 "geo_json_events" = ps: with ps; [ geojson-client ];
301303 "geo_location" = ps: with ps; [ ];
302− "geo_rss_events" = ps: with ps; [ ]; # missing inputs: georss_generic_client
304+ "geo_rss_events" = ps: with ps; [ georss-generic-client ];
303305 "geofency" = ps: with ps; [ aiohttp-cors ];
304306 "geonetnz_quakes" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_quakes
305307 "geonetnz_volcano" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_volcano
306− "gios" = ps: with ps; [ ]; # missing inputs: gios
308+ "gios" = ps: with ps; [ gios ];
307309 "github" = ps: with ps; [ PyGithub ];
308310 "gitlab_ci" = ps: with ps; [ python-gitlab ];
309311 "gitter" = ps: with ps; [ ]; # missing inputs: gitterpy
@@ -311,7 +313,7 @@
311313 "gntp" = ps: with ps; [ gntp ];
312314 "goalfeed" = ps: with ps; [ ]; # missing inputs: pysher
313315 "goalzero" = ps: with ps; [ ]; # missing inputs: goalzero
314− "gogogate2" = ps: with ps; [ ]; # missing inputs: gogogate2-api
316+ "gogogate2" = ps: with ps; [ ismartgate ];
315317 "google" = ps: with ps; [ google-api-python-client httplib2 oauth2client ];
316318 "google_assistant" = ps: with ps; [ aiohttp-cors ];
317319 "google_cloud" = ps: with ps; [ google-cloud-texttospeech ];
@@ -329,7 +331,7 @@
329331 "greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor
330332 "greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality
331333 "group" = ps: with ps; [ ];
332− "growatt_server" = ps: with ps; [ ]; # missing inputs: growattServer
334+ "growatt_server" = ps: with ps; [ growattserver ];
333335 "gstreamer" = ps: with ps; [ ]; # missing inputs: gstreamer-player
334336 "gtfs" = ps: with ps; [ pygtfs ];
335337 "guardian" = ps: with ps; [ aioguardian ];
@@ -348,15 +350,15 @@
348350 "hikvisioncam" = ps: with ps; [ ]; # missing inputs: hikvision
349351 "hisense_aehw4a1" = ps: with ps; [ ]; # missing inputs: pyaehw4a1
350352 "history" = ps: with ps; [ aiohttp-cors sqlalchemy ];
351− "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ];
353+ "history_stats" = ps: with ps; [ sqlalchemy ];
352354 "hitron_coda" = ps: with ps; [ ];
353355 "hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi
354356 "hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
355357 "home_connect" = ps: with ps; [ aiohttp-cors homeconnect ];
356358 "home_plus_control" = ps: with ps; [ aiohttp-cors homepluscontrol ];
357359 "homeassistant" = ps: with ps; [ ];
358− "homekit" = ps: with ps; [ HAP-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg pyroute2 zeroconf ];
359− "homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors pyroute2 zeroconf ];
360+ "homekit" = ps: with ps; [ hap-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg ifaddr zeroconf ];
361+ "homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors ifaddr zeroconf ];
360362 "homematic" = ps: with ps; [ pyhomematic ];
361363 "homematicip_cloud" = ps: with ps; [ homematicip ];
362364 "homeworks" = ps: with ps; [ ]; # missing inputs: pyhomeworks
@@ -382,7 +384,7 @@
382384 "idteck_prox" = ps: with ps; [ ]; # missing inputs: rfk101py
383385 "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
384386 "iglo" = ps: with ps; [ ]; # missing inputs: iglo
385− "ign_sismologia" = ps: with ps; [ ]; # missing inputs: georss_ign_sismologia_client
387+ "ign_sismologia" = ps: with ps; [ georss-ign-sismologia-client ];
386388 "ihc" = ps: with ps; [ defusedxml ]; # missing inputs: ihcsdk
387389 "image" = ps: with ps; [ aiohttp-cors pillow ];
388390 "image_processing" = ps: with ps; [ aiohttp-cors ];
@@ -400,7 +402,7 @@
400402 "intent" = ps: with ps; [ aiohttp-cors ];
401403 "intent_script" = ps: with ps; [ ];
402404 "intesishome" = ps: with ps; [ pyintesishome ];
403− "ios" = ps: with ps; [ aiohttp-cors pyroute2 zeroconf ];
405+ "ios" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ];
404406 "iota" = ps: with ps; [ ]; # missing inputs: pyota
405407 "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
406408 "ipma" = ps: with ps; [ ]; # missing inputs: pyipma
@@ -430,6 +432,7 @@
430432 "kodi" = ps: with ps; [ pykodi ];
431433 "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected
432434 "kostal_plenticore" = ps: with ps; [ ]; # missing inputs: kostal_plenticore
435+ "kraken" = ps: with ps; [ ]; # missing inputs: krakenex pykrakenapi
433436 "kulersky" = ps: with ps; [ ]; # missing inputs: pykulersky
434437 "kwb" = ps: with ps; [ ]; # missing inputs: pykwb
435438 "lacrosse" = ps: with ps; [ pylacrosse ];
@@ -438,12 +441,11 @@
438441 "lastfm" = ps: with ps; [ pylast ];
439442 "launch_library" = ps: with ps; [ ]; # missing inputs: pylaunches
440443 "lcn" = ps: with ps; [ pypck ];
441− "lg_netcast" = ps: with ps; [ ]; # missing inputs: pylgnetcast-homeassistant
444+ "lg_netcast" = ps: with ps; [ ]; # missing inputs: pylgnetcast
442445 "lg_soundbar" = ps: with ps; [ ]; # missing inputs: temescal
443446 "life360" = ps: with ps; [ ]; # missing inputs: life360
444447 "lifx" = ps: with ps; [ aiolifx aiolifx-effects ];
445448 "lifx_cloud" = ps: with ps; [ ];
446− "lifx_legacy" = ps: with ps; [ ]; # missing inputs: liffylights
447449 "light" = ps: with ps; [ ];
448450 "lightwave" = ps: with ps; [ ]; # missing inputs: lightwave
449451 "limitlessled" = ps: with ps; [ limitlessled ];
@@ -498,6 +500,7 @@
498500 "met_eireann" = ps: with ps; [ pymeteireann ];
499501 "meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance-api
500502 "meteoalarm" = ps: with ps; [ ]; # missing inputs: meteoalertapi
503+ "meteoclimatic" = ps: with ps; [ ]; # missing inputs: pymeteoclimatic
501504 "metoffice" = ps: with ps; [ ]; # missing inputs: datapoint
502505 "mfi" = ps: with ps; [ ]; # missing inputs: mficlient
503506 "mhz19" = ps: with ps; [ ]; # missing inputs: pmsensor
@@ -540,8 +543,8 @@
540543 "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt pymysensors ];
541544 "mystrom" = ps: with ps; [ aiohttp-cors python-mystrom ];
542545 "mythicbeastsdns" = ps: with ps; [ ]; # missing inputs: mbddns
543− "n26" = ps: with ps; [ ]; # missing inputs: n26
544546 "nad" = ps: with ps; [ nad-receiver ];
547+ "nam" = ps: with ps; [ ]; # missing inputs: nettigo-air-monitor
545548 "namecheapdns" = ps: with ps; [ defusedxml ];
546549 "nanoleaf" = ps: with ps; [ pynanoleaf ];
547550 "neato" = ps: with ps; [ aiohttp-cors pybotvac ];
@@ -554,6 +557,7 @@
554557 "netgear" = ps: with ps; [ ]; # missing inputs: pynetgear
555558 "netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
556559 "netio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pynetio
560+ "network" = ps: with ps; [ aiohttp-cors ifaddr ];
557561 "neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
558562 "nexia" = ps: with ps; [ nexia ];
559563 "nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
@@ -583,7 +587,7 @@
583587 "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
584588 "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
585589 "obihai" = ps: with ps; [ pyobihai ];
586− "octoprint" = ps: with ps; [ aiohttp-cors netdisco pyroute2 zeroconf ];
590+ "octoprint" = ps: with ps; [ aiohttp-cors ifaddr netdisco zeroconf ];
587591 "oem" = ps: with ps; [ ]; # missing inputs: oemthermostat
588592 "ohmconnect" = ps: with ps; [ defusedxml ];
589593 "ombi" = ps: with ps; [ ]; # missing inputs: pyombi
@@ -664,7 +668,7 @@
664668 "pyload" = ps: with ps; [ ];
665669 "python_script" = ps: with ps; [ restrictedpython ];
666670 "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
667− "qld_bushfire" = ps: with ps; [ ]; # missing inputs: georss_qld_bushfire_alert_client
671+ "qld_bushfire" = ps: with ps; [ georss-qld-bushfire-alert-client ];
668672 "qnap" = ps: with ps; [ ]; # missing inputs: qnapstats
669673 "qrcode" = ps: with ps; [ pillow ]; # missing inputs: pyzbar
670674 "quantum_gateway" = ps: with ps; [ ]; # missing inputs: quantum-gateway
@@ -701,7 +705,7 @@
701705 "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
702706 "roku" = ps: with ps; [ rokuecp ];
703707 "roomba" = ps: with ps; [ roombapy ];
704− "roon" = ps: with ps; [ pyroon ];
708+ "roon" = ps: with ps; [ roonapi ];
705709 "route53" = ps: with ps; [ boto3 ];
706710 "rova" = ps: with ps; [ ]; # missing inputs: rova
707711 "rpi_camera" = ps: with ps; [ ];
@@ -715,10 +719,10 @@
715719 "ruckus_unleashed" = ps: with ps; [ pyruckus ];
716720 "russound_rio" = ps: with ps; [ ]; # missing inputs: russound_rio
717721 "russound_rnet" = ps: with ps; [ ]; # missing inputs: russound
718− "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco pyroute2 zeroconf ]; # missing inputs: pysabnzbd
722+ "sabnzbd" = ps: with ps; [ aiohttp-cors ifaddr netdisco zeroconf ]; # missing inputs: pysabnzbd
719723 "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa pillow ];
720724 "saj" = ps: with ps; [ ]; # missing inputs: pysaj
721− "samsungtv" = ps: with ps; [ samsungctl samsungtvws ];
725+ "samsungtv" = ps: with ps; [ samsungctl samsungtvws wakeonlan ];
722726 "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
723727 "scene" = ps: with ps; [ ];
724728 "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
@@ -732,7 +736,7 @@
732736 "sense" = ps: with ps; [ ]; # missing inputs: sense_energy
733737 "sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat
734738 "sensibo" = ps: with ps; [ ]; # missing inputs: pysensibo
735− "sensor" = ps: with ps; [ ];
739+ "sensor" = ps: with ps; [ sqlalchemy ];
736740 "sentry" = ps: with ps; [ sentry-sdk ];
737741 "serial" = ps: with ps; [ pyserial-asyncio ];
738742 "serial_pm" = ps: with ps; [ ]; # missing inputs: pmsensor
@@ -746,6 +750,7 @@
746750 "shodan" = ps: with ps; [ shodan ];
747751 "shopping_list" = ps: with ps; [ aiohttp-cors ];
748752 "sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31
753+ "sia" = ps: with ps; [ ]; # missing inputs: pysiaalarm
749754 "sigfox" = ps: with ps; [ ];
750755 "sighthound" = ps: with ps; [ pillow simplehound ];
751756 "signal_messenger" = ps: with ps; [ ]; # missing inputs: pysignalclirestapi
@@ -785,18 +790,17 @@
785790 "songpal" = ps: with ps; [ ]; # missing inputs: python-songpal
786791 "sonos" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
787792 "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp
788− "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch pyroute2 zeroconf ];
793+ "soundtouch" = ps: with ps; [ aiohttp-cors ifaddr libsoundtouch zeroconf ];
789794 "spaceapi" = ps: with ps; [ aiohttp-cors ];
790795 "spc" = ps: with ps; [ ]; # missing inputs: pyspcwebgw
791796 "speedtestdotnet" = ps: with ps; [ speedtest-cli ];
792797 "spider" = ps: with ps; [ ]; # missing inputs: spiderpy
793798 "splunk" = ps: with ps; [ ]; # missing inputs: hass_splunk
794− "spotcrime" = ps: with ps; [ ]; # missing inputs: spotcrime
795799 "spotify" = ps: with ps; [ aiohttp-cors spotipy ];
796800 "sql" = ps: with ps; [ sqlalchemy ];
797801 "squeezebox" = ps: with ps; [ pysqueezebox ];
798802 "srp_energy" = ps: with ps; [ ]; # missing inputs: srpenergy
799− "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml netdisco pyroute2 zeroconf ];
803+ "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr netdisco zeroconf ];
800804 "starline" = ps: with ps; [ ]; # missing inputs: starline
801805 "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
802806 "startca" = ps: with ps; [ xmltodict ];
@@ -821,11 +825,13 @@
821825 "switchbot" = ps: with ps; [ pyswitchbot ];
822826 "switcher_kis" = ps: with ps; [ aioswitcher ];
823827 "switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate
828+ "syncthing" = ps: with ps; [ aiosyncthing ];
824829 "syncthru" = ps: with ps; [ url-normalize ]; # missing inputs: pysyncthru
825830 "synology_chat" = ps: with ps; [ ];
826831 "synology_dsm" = ps: with ps; [ ]; # missing inputs: synologydsm-api
827832 "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
828833 "syslog" = ps: with ps; [ ];
834+ "system_bridge" = ps: with ps; [ aiohttp-cors ifaddr systembridge zeroconf ];
829835 "system_health" = ps: with ps; [ aiohttp-cors ];
830836 "system_log" = ps: with ps; [ aiohttp-cors ];
831837 "systemmonitor" = ps: with ps; [ psutil ];
@@ -933,11 +939,12 @@
933939 "vultr" = ps: with ps; [ vultr ];
934940 "w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32
935941 "wake_on_lan" = ps: with ps; [ wakeonlan ];
942+ "wallbox" = ps: with ps; [ ]; # missing inputs: wallbox
936943 "waqi" = ps: with ps; [ waqiasync ];
937944 "water_heater" = ps: with ps; [ ];
938945 "waterfurnace" = ps: with ps; [ waterfurnace ];
939946 "watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf
940− "watson_tts" = ps: with ps; [ ]; # missing inputs: ibm-watson
947+ "watson_tts" = ps: with ps; [ ibm-watson ];
941948 "waze_travel_time" = ps: with ps; [ WazeRouteCalculator ];
942949 "weather" = ps: with ps; [ ];
943950 "webhook" = ps: with ps; [ aiohttp-cors ];
@@ -964,7 +971,7 @@
964971 "xbox_live" = ps: with ps; [ xboxapi ];
965972 "xeoma" = ps: with ps; [ pyxeoma ];
966973 "xiaomi" = ps: with ps; [ ha-ffmpeg ];
967− "xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors netdisco pyroute2 zeroconf ];
974+ "xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors ifaddr netdisco zeroconf ];
968975 "xiaomi_miio" = ps: with ps; [ construct python-miio ];
969976 "xiaomi_tv" = ps: with ps; [ pymitv ];
970977 "xmpp" = ps: with ps; [ slixmpp ];
@@ -980,10 +987,10 @@
980987 "zabbix" = ps: with ps; [ ]; # missing inputs: py-zabbix
981988 "zamg" = ps: with ps; [ ];
982989 "zengge" = ps: with ps; [ ]; # missing inputs: zengge
983− "zeroconf" = ps: with ps; [ aiohttp-cors pyroute2 zeroconf ];
990+ "zeroconf" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ];
984991 "zerproc" = ps: with ps; [ pyzerproc ];
985992 "zestimate" = ps: with ps; [ xmltodict ];
986− "zha" = ps: with ps; [ aiohttp-cors bellows pyroute2 pyserial-asyncio pyserial zeroconf zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
993+ "zha" = ps: with ps; [ aiohttp-cors bellows ifaddr pyserial-asyncio pyserial zeroconf zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
987994 "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
988995 "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
989996 "zodiac" = ps: with ps; [ ];
pkgs/servers/home-assistant/default.nix+43−4
@@ -3,6 +3,7 @@
33, fetchFromGitHub
44, python3
55, inetutils
6+, tzdata
67, nixosTests
78
89# Look up dependencies of specified components in component-packages.nix
@@ -21,7 +22,31 @@
2122
2223let
2324 defaultOverrides = [
24− # Override the version of some packages pinned in Home Assistant's setup.py
25+ # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
26+
27+ # https://github.com/NixOS/nixpkgs/pull/125414
28+ (mkOverride "flask" "2.0.1" "0mcgwq7b4qd99mf5bsvs3wphchxarf8kgil4hwww3blj31xjak0w")
29+ (mkOverride "itsdangerous" "2.0.1" "1w6gfb2zhbcmrfj6digwzw1z68w6zg1q87rm6la2m412zil4swly")
30+ (mkOverride "jinja2" "3.0.1" "197ms1wimxql650245v63wkv04n8bicj549wfhp51bx68x5lhgvh")
31+ (mkOverride "markupsafe" "2.0.1" "02k2ynmqvvd0z0gakkf8s4idyb606r7zgga41jrkhqmigy06fk2r")
32+ (self: super: {
33+ werkzeug = super.werkzeug.overridePythonAttrs (oldAttrs: rec {
34+ version = "2.0.1";
35+ src = oldAttrs.src.override {
36+ inherit version;
37+ sha256 = "0hlwawnn8c41f254qify5jnjj8xb97n294h09bqimzqhs0qdpq8x";
38+ };
39+ checkInputs = oldAttrs.checkInputs ++ [ python3.pkgs.pytest-xprocess ];
40+ pytestFlagsArray = [ "-m 'not filterwarnings'" ];
41+ });
42+ })
43+ (mkOverride "flask-restful" "0.3.9" "0gm5dz088v3d2k1dkcp9b3nnqpkk0fp2jly870hijj2xhc5nbv6c")
44+ (self: super: {
45+ debugpy = super.debugpy.overridePythonAttrs (oldAttrs: rec {
46+ # tests fail with flask/werkezug>=2.0
47+ doCheck = false;
48+ });
49+ })
2550
2651 # Pinned due to API changes in iaqualink>=2.0, remove after
2752 # https://github.com/home-assistant/core/pull/48137 was merged
@@ -43,6 +68,7 @@ let
4368 pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
4469 version = "1.7.1";
4570 src = oldAttrs.src.override {
71+ inherit version;
4672 sha256 = "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd";
4773 };
4874 disabledTests = [
@@ -155,7 +181,7 @@ let
155181 extraBuildInputs = extraPackages py.pkgs;
156182
157183 # Don't forget to run parse-requirements.py after updating
158− hassVersion = "2021.5.5";
184+ hassVersion = "2021.6.3";
159185
160186in with py.pkgs; buildPythonApplication rec {
161187 pname = "homeassistant";
@@ -174,7 +200,7 @@ in with py.pkgs; buildPythonApplication rec {
174200 owner = "home-assistant";
175201 repo = "core";
176202 rev = version;
177− sha256 = "1vdxygjik1ay58xgyr1rk12cgy63raqi4fldnd4mlhs4i21c7ff8";
203+ sha256 = "0n0g5kgyc9vhncdfi66lr9i42631rsigv2hzmnfal5jxgblh5736";
178204 };
179205
180206 # leave this in, so users don't have to constantly update their downstream patch handling
@@ -183,7 +209,8 @@ in with py.pkgs; buildPythonApplication rec {
183209
184210 postPatch = ''
185211 substituteInPlace setup.py \
186− --replace "awesomeversion==21.2.3" "awesomeversion" \
212+ --replace "attrs==21.2.0" "attrs" \
213+ --replace "awesomeversion==21.4.0" "awesomeversion" \
187214 --replace "bcrypt==3.1.7" "bcrypt" \
188215 --replace "cryptography==3.3.2" "cryptography" \
189216 --replace "pip>=8.0.3,<20.3" "pip" \
@@ -215,6 +242,8 @@ in with py.pkgs; buildPythonApplication rec {
215242 voluptuous
216243 voluptuous-serialize
217244 yarl
245+ ] ++ lib.optionals (pythonOlder "3.9") [
246+ backports-zoneinfo
218247 ] ++ componentBuildInputs ++ extraBuildInputs;
219248
220249 makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";
@@ -277,6 +306,7 @@ in with py.pkgs; buildPythonApplication rec {
277306 "blackbird"
278307 "blueprint"
279308 "bluetooth_le_tracker"
309+ "bosch_shc"
280310 "braviatv"
281311 "broadlink"
282312 "brother"
@@ -359,6 +389,8 @@ in with py.pkgs; buildPythonApplication rec {
359389 "geo_location"
360390 "geofency"
361391 "glances"
392+ "gios"
393+ "gogogate2"
362394 "google"
363395 "google_assistant"
364396 "google_domains"
@@ -369,6 +401,7 @@ in with py.pkgs; buildPythonApplication rec {
369401 "gpslogger"
370402 "graphite"
371403 "group"
404+ "growatt_server"
372405 "guardian"
373406 "harmony"
374407 "hassio"
@@ -610,6 +643,7 @@ in with py.pkgs; buildPythonApplication rec {
610643 "uvc"
611644 "vacuum"
612645 "velbus"
646+ "venstar"
613647 "vera"
614648 "verisure"
615649 "version"
@@ -681,6 +715,8 @@ in with py.pkgs; buildPythonApplication rec {
681715 "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_require_auth"
682716 # prometheus/test_init.py: Spurious AssertionError regarding humidifier_target_humidity_percent metric
683717 "--deselect tests/components/prometheus/test_init.py::test_view"
718+ # smhi/test_init.py: Tries to fetch data from the network: socket.gaierror: [Errno -2] Name or service not known
719+ "--deselect tests/components/smhi/test_init.py::test_remove_entry"
684720 # tests are located in tests/
685721 "tests"
686722 # dynamically add packages required for component tests
@@ -725,6 +761,9 @@ in with py.pkgs; buildPythonApplication rec {
725761 # put ping binary into PATH, e.g. for wake_on_lan tests
726762 export PATH=${inetutils}/bin:$PATH
727763
764+ # set up zoneinfo data for backports-zoneinfo in pvpc_hourly_pricing tests
765+ export PYTHONTZPATH="${tzdata}/share/zoneinfo"
766+
728767 # error out when component test directory is missing, otherwise hidden by xdist execution :(
729768 for component in ${lib.concatStringsSep " " (map lib.escapeShellArg componentTests)}; do
730769 test -d "tests/components/$component" || {
pkgs/servers/home-assistant/frontend.nix+2−2
@@ -4,11 +4,11 @@ buildPythonPackage rec {
44 # the frontend version corresponding to a specific home-assistant version can be found here
55 # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
66 pname = "home-assistant-frontend";
7− version = "20210504.0";
7+ version = "20210603.0";
88
99 src = fetchPypi {
1010 inherit pname version;
11− sha256 = "sha256-rNdqflWT8bmGHtAGGfq4xVxDcnK+EZU9qejRWQPJmUI=";
11+ sha256 = "sha256-2UhbtaxEcOkD9Z5g9gZs+QjuVLXZGCEcmKoxRtIEYxw=";
1212 };
1313
1414 # there is nothing to strip in this package
pkgs/servers/home-assistant/parse-requirements.py+1
@@ -104,6 +104,7 @@ def dump_packages() -> Dict[str, Dict[str, str]]:
104104 "-qa",
105105 "-A",
106106 PKG_SET,
107+ "--arg", "config", "{ allowAliases = false; }",
107108 "--json",
108109 ]
109110 )
pkgs/top-level/python-aliases.nix+1
@@ -36,6 +36,7 @@ mapAliases ({
3636 smart_open = smart-open; # added 2021-03-14
3737 google_api_python_client = google-api-python-client; # added 2021-03-19
3838 googleapis_common_protos = googleapis-common-protos; # added 2021-03-19
39+ HAP-python = hap-python; # added 2021-06-01
3940 MechanicalSoup = mechanicalsoup; # added 2021-06-01
4041 setuptools_scm = setuptools-scm; # added 2021-06-03
4142})
pkgs/top-level/python-packages.nix+11−3
@@ -1124,6 +1124,8 @@ in {
11241124 enablePython = true;
11251125 });
11261126
1127+ boschshcpy = callPackage ../development/python-modules/boschshcpy { };
1128+
11271129 boto3 = callPackage ../development/python-modules/boto3 { };
11281130
11291131 boto = callPackage ../development/python-modules/boto { };
@@ -2786,6 +2788,8 @@ in {
27862788
27872789 gin-config = callPackage ../development/python-modules/gin-config { };
27882790
2791+ gios = callPackage ../development/python-modules/gios { };
2792+
27892793 gipc = callPackage ../development/python-modules/gipc { };
27902794
27912795 git-annex-adapter =
@@ -3017,6 +3021,8 @@ in {
30173021
30183022 gremlinpython = callPackage ../development/python-modules/gremlinpython { };
30193023
3024+ growattserver = callPackage ../development/python-modules/growattserver { };
3025+
30203026 grip = callPackage ../development/python-modules/grip { };
30213027
30223028 grpc_google_iam_v1 = callPackage ../development/python-modules/grpc_google_iam_v1 { };
@@ -3104,7 +3110,7 @@ in {
31043110
31053111 handout = callPackage ../development/python-modules/handout { };
31063112
3107− HAP-python = callPackage ../development/python-modules/HAP-python { };
3113+ hap-python = callPackage ../development/python-modules/hap-python { };
31083114
31093115 hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
31103116
@@ -3476,6 +3482,8 @@ in {
34763482
34773483 iso3166 = callPackage ../development/python-modules/iso3166 { };
34783484
3485+ ismartgate = callPackage ../development/python-modules/ismartgate { };
3486+
34793487 iso-639 = callPackage ../development/python-modules/iso-639 { };
34803488
34813489 iso8601 = callPackage ../development/python-modules/iso8601 { };
@@ -6257,8 +6265,6 @@ in {
62576265
62586266 pyro-ppl = callPackage ../development/python-modules/pyro-ppl { };
62596267
6260− pyroon = callPackage ../development/python-modules/pyroon { };
6261−
62626268 pyroute2 = callPackage ../development/python-modules/pyroute2 { };
62636269
62646270 pyroute2-core = callPackage ../development/python-modules/pyroute2-core { };
@@ -7391,6 +7397,8 @@ in {
73917397
73927398 roombapy = callPackage ../development/python-modules/roombapy { };
73937399
7400+ roonapi = callPackage ../development/python-modules/roonapi { };
7401+
73947402 ronin = callPackage ../development/python-modules/ronin { };
73957403
73967404 rope = callPackage ../development/python-modules/rope { };