diff --git a/pkgs/development/python-modules/google-nest-sdm/default.nix b/pkgs/development/python-modules/google-nest-sdm/default.nix new file mode 100644 index 000000000000..befc07ca37df --- /dev/null +++ b/pkgs/development/python-modules/google-nest-sdm/default.nix @@ -0,0 +1,51 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchFromGitHub +, google-auth +, google-auth-oauthlib +, google-cloud-pubsub +, pythonOlder +, requests_oauthlib +, pytest-aiohttp +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "google-nest-sdm"; + version = "0.4.0"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "allenporter"; + repo = "python-google-nest-sdm"; + rev = version; + sha256 = "sha256-mm1FhR10asxJI8MQfQipqmQbHQfO3z49jpnnrz38Clo="; + }; + + propagatedBuildInputs = [ + aiohttp + google-auth + google-auth-oauthlib + google-cloud-pubsub + requests_oauthlib + ]; + + checkInputs = [ + pytest-aiohttp + pytestCheckHook + ]; + + pythonImportsCheck = [ + "google_nest_sdm" + ]; + + meta = with lib; { + description = "Python module for Google Nest Device Access using the Smart Device Management API"; + homepage = "https://github.com/allenporter/python-google-nest-sdm"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/python-google-nest/default.nix b/pkgs/development/python-modules/python-google-nest/default.nix new file mode 100644 index 000000000000..a1e612e1f74e --- /dev/null +++ b/pkgs/development/python-modules/python-google-nest/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, requests_oauthlib +}: + +buildPythonPackage rec { + pname = "python-google-nest"; + version = "5.1.1"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "y3BOhorVkJ3rFPifNOopLMqk6y1fHX5vxHGiqWvWHhE="; + }; + + propagatedBuildInputs = [ + requests_oauthlib + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "nest" + ]; + + meta = with lib; { + description = "Python API and command line tool for talking to Nest thermostats"; + homepage = "https://github.com/axlan/python-nest/"; + license = licenses.cc-by-nc-sa-30; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index a5526e92015d..4367f423cce9 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -560,7 +560,7 @@ "neato" = ps: with ps; [ aiohttp-cors pybotvac ]; "nederlandse_spoorwegen" = ps: with ps; [ nsapi ]; "ness_alarm" = ps: with ps; [ nessclient ]; - "nest" = ps: with ps; [ aiohttp-cors ha-ffmpeg python-nest ]; # missing inputs: google-nest-sdm + "nest" = ps: with ps; [ aiohttp-cors google-nest-sdm ha-ffmpeg python-nest ]; "netatmo" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa pyatmo ]; "netdata" = ps: with ps; [ netdata ]; "netgear" = ps: with ps; [ ]; # missing inputs: pynetgear diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 0ee7fcd6b315..0f2142d1370a 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -537,6 +537,7 @@ in with py.pkgs; buildPythonApplication rec { "namecheapdns" "neato" "ness_alarm" + "nest" "netatmo" "nexia" "nightscout" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index cf57747ccbf0..bca527f6db07 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3278,6 +3278,8 @@ in { google-i18n-address = callPackage ../development/python-modules/google-i18n-address { }; + google-nest-sdm = callPackage ../development/python-modules/google-nest-sdm { }; + googlemaps = callPackage ../development/python-modules/googlemaps { }; google-pasta = callPackage ../development/python-modules/google-pasta { }; @@ -5843,6 +5845,8 @@ in { python-glanceclient = callPackage ../development/python-modules/python-glanceclient { }; + python-google-nest = callPackage ../development/python-modules/python-google-nest { }; + python-heatclient = callPackage ../development/python-modules/python-heatclient { }; python-ipmi = callPackage ../development/python-modules/python-ipmi { };