From 11d964f6666814bcc3e94d0b829ee4a525c8b282 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 3 Mar 2021 22:21:01 +0100 Subject: [PATCH] home-assistant: 2021.2.3 -> 2021.3.0 --- .../home-assistant/component-packages.nix | 29 ++++++++++++------- pkgs/servers/home-assistant/default.nix | 26 ++++++++++++----- pkgs/servers/home-assistant/frontend.nix | 4 +-- 3 files changed, 39 insertions(+), 20 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 042246db04b..e9788f69954 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2021.2.3"; + version = "2021.3.0"; components = { "abode" = ps: with ps; [ abodepy ]; "accuweather" = ps: with ps; [ accuweather ]; @@ -12,6 +12,7 @@ "adguard" = ps: with ps; [ adguardhome ]; "ads" = ps: with ps; [ pyads ]; "advantage_air" = ps: with ps; [ advantage-air ]; + "aemet" = ps: with ps; [ ]; # missing inputs: AEMET-OpenData "aftership" = ps: with ps; [ pyaftership ]; "agent_dvr" = ps: with ps; [ agent-py ]; "air_quality" = ps: with ps; [ ]; @@ -120,13 +121,13 @@ "clickatell" = ps: with ps; [ ]; "clicksend" = ps: with ps; [ ]; "clicksend_tts" = ps: with ps; [ ]; + "climacell" = ps: with ps; [ ]; # missing inputs: pyclimacell "climate" = ps: with ps; [ ]; "cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; "cloudflare" = ps: with ps; [ pycfdns ]; "cmus" = ps: with ps; [ ]; # missing inputs: pycmus "co2signal" = ps: with ps; [ ]; # missing inputs: co2signal "coinbase" = ps: with ps; [ ]; # missing inputs: coinbase - "coinmarketcap" = ps: with ps; [ coinmarketcap ]; "color_extractor" = ps: with ps; [ ]; # missing inputs: colorthief "comed_hourly_pricing" = ps: with ps; [ ]; "comfoconnect" = ps: with ps; [ ]; # missing inputs: pycomfoconnect @@ -142,7 +143,6 @@ "cover" = ps: with ps; [ ]; "cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy "cpuspeed" = ps: with ps; [ py-cpuinfo ]; - "crimereports" = ps: with ps; [ ]; # missing inputs: crimereports "cups" = ps: with ps; [ pycups ]; "currencylayer" = ps: with ps; [ ]; "daikin" = ps: with ps; [ pydaikin ]; @@ -154,7 +154,7 @@ "deconz" = ps: with ps; [ ]; # missing inputs: pydeconz "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi - "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ]; + "default_config" = ps: with ps; [ pynacl aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ]; "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn "deluge" = ps: with ps; [ deluge-client ]; "demo" = ps: with ps; [ aiohttp-cors ]; @@ -238,6 +238,7 @@ "everlights" = ps: with ps; [ pyeverlights ]; "evohome" = ps: with ps; [ ]; # missing inputs: evohome-async "ezviz" = ps: with ps; [ ]; # missing inputs: pyezviz + "faa_delays" = ps: with ps; [ faadelays ]; "facebook" = ps: with ps; [ ]; "facebox" = ps: with ps; [ ]; "fail2ban" = ps: with ps; [ ]; @@ -276,7 +277,7 @@ "foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam "foursquare" = ps: with ps; [ aiohttp-cors ]; "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms - "freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: aiofreepybox + "freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: freebox-api "freedns" = ps: with ps; [ ]; "fritz" = ps: with ps; [ fritzconnection ]; "fritzbox" = ps: with ps; [ pyfritzhome ]; @@ -421,6 +422,7 @@ "keyboard_remote" = ps: with ps; [ aionotify evdev ]; "kira" = ps: with ps; [ pykira ]; "kiwi" = ps: with ps; [ ]; # missing inputs: kiwiki-client + "kmtronic" = ps: with ps; [ pykmtronic ]; "knx" = ps: with ps; [ xknx ]; "kodi" = ps: with ps; [ ]; # missing inputs: pykodi "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected @@ -446,6 +448,7 @@ "linux_battery" = ps: with ps; [ batinfo ]; "lirc" = ps: with ps; [ ]; # missing inputs: python-lirc "litejet" = ps: with ps; [ ]; # missing inputs: pylitejet + "litterrobot" = ps: with ps; [ ]; # missing inputs: pylitterbot "llamalab_automate" = ps: with ps; [ ]; "local_file" = ps: with ps; [ ]; "local_ip" = ps: with ps; [ ]; @@ -466,6 +469,7 @@ "lutron_caseta" = ps: with ps; [ ]; # missing inputs: aiolip pylutron-caseta "lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12 "lyft" = ps: with ps; [ ]; # missing inputs: lyft_rides + "lyric" = ps: with ps; [ aiohttp-cors aiolyric ]; "magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed "mailbox" = ps: with ps; [ aiohttp-cors ]; "mailgun" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymailgunner @@ -476,6 +480,7 @@ "mastodon" = ps: with ps; [ ]; # missing inputs: Mastodon.py "matrix" = ps: with ps; [ matrix-client ]; "maxcube" = ps: with ps; [ ]; # missing inputs: maxcube-api + "mazda" = ps: with ps; [ pymazda ]; "mcp23017" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-mcp230xx "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ]; "media_player" = ps: with ps; [ aiohttp-cors ]; @@ -519,7 +524,9 @@ "mqtt_room" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "mqtt_statestream" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "msteams" = ps: with ps; [ pymsteams ]; + "mullvad" = ps: with ps; [ mullvad-api ]; "mvglive" = ps: with ps; [ PyMVGLive ]; + "my" = ps: with ps; [ aiohttp-cors pillow ]; "mychevy" = ps: with ps; [ ]; # missing inputs: mychevy "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi "myq" = ps: with ps; [ pymyq ]; @@ -560,7 +567,6 @@ "nsw_fuel_station" = ps: with ps; [ ]; # missing inputs: nsw-fuel-api-client "nsw_rural_fire_service_feed" = ps: with ps; [ ]; # missing inputs: aio_geojson_nsw_rfs_incidents "nuheat" = ps: with ps; [ ]; # missing inputs: nuheat - "nuimo_controller" = ps: with ps; [ ]; # missing inputs: --only-binary=all nuimo "nuki" = ps: with ps; [ pynuki ]; "numato" = ps: with ps; [ ]; # missing inputs: numato-gpio "number" = ps: with ps; [ ]; @@ -622,7 +628,7 @@ "ping" = ps: with ps; [ icmplib ]; "pioneer" = ps: with ps; [ ]; "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2 - "plaato" = ps: with ps; [ aiohttp-cors ]; + "plaato" = ps: with ps; [ aiohttp-cors hass-nabucasa pyplaato ]; "plant" = ps: with ps; [ sqlalchemy ]; "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket ]; "plugwise" = ps: with ps; [ plugwise ]; @@ -682,6 +688,7 @@ "ring" = ps: with ps; [ ha-ffmpeg ring-doorbell ]; "ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api "risco" = ps: with ps; [ pyrisco ]; + "rituals_perfume_genie" = ps: with ps; [ pyrituals ]; "rmvtransport" = ps: with ps; [ PyRMVtransport ]; "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API "roku" = ps: with ps; [ ]; # missing inputs: rokuecp @@ -749,6 +756,7 @@ "smart_meter_texas" = ps: with ps; [ ]; # missing inputs: smart-meter-texas "smarthab" = ps: with ps; [ ]; # missing inputs: smarthab "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: pysmartapp pysmartthings + "smarttub" = ps: with ps; [ python-smarttub ]; "smarty" = ps: with ps; [ ]; # missing inputs: pysmarty "smhi" = ps: with ps; [ ]; # missing inputs: smhi-pkg "sms" = ps: with ps; [ python-gammu ]; @@ -780,7 +788,7 @@ "sql" = ps: with ps; [ sqlalchemy ]; "squeezebox" = ps: with ps; [ pysqueezebox ]; "srp_energy" = ps: with ps; [ ]; # missing inputs: srpenergy - "ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf ]; + "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml netdisco zeroconf ]; "starline" = ps: with ps; [ ]; # missing inputs: starline "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank "startca" = ps: with ps; [ xmltodict ]; @@ -792,6 +800,7 @@ "stream" = ps: with ps; [ aiohttp-cors av ]; "streamlabswater" = ps: with ps; [ ]; # missing inputs: streamlabswater "stt" = ps: with ps; [ aiohttp-cors ]; + "subaru" = ps: with ps; [ subarulink ]; "suez_water" = ps: with ps; [ ]; # missing inputs: pysuez "sun" = ps: with ps; [ ]; "supervisord" = ps: with ps; [ ]; @@ -805,7 +814,6 @@ "switcher_kis" = ps: with ps; [ aioswitcher ]; "switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate "syncthru" = ps: with ps; [ url-normalize ]; # missing inputs: pysyncthru - "synology" = ps: with ps; [ ]; # missing inputs: py-synology "synology_chat" = ps: with ps; [ ]; "synology_dsm" = ps: with ps; [ ]; # missing inputs: synologydsm-api "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm @@ -873,7 +881,7 @@ "twinkly" = ps: with ps; [ twinkly-client ]; "twitch" = ps: with ps; [ python-twitch-client ]; "twitter" = ps: with ps; [ twitterapi ]; - "ubus" = ps: with ps; [ ]; + "ubus" = ps: with ps; [ openwrt-ubus-rpc ]; "ue_smart_radio" = ps: with ps; [ ]; "uk_transport" = ps: with ps; [ ]; "unifi" = ps: with ps; [ aiounifi ]; @@ -946,7 +954,6 @@ "xbox" = ps: with ps; [ aiohttp-cors ]; # missing inputs: xbox-webapi "xbox_live" = ps: with ps; [ xboxapi ]; "xeoma" = ps: with ps; [ pyxeoma ]; - "xfinity" = ps: with ps; [ ]; # missing inputs: xfinity-gateway "xiaomi" = ps: with ps; [ ha-ffmpeg ]; "xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors netdisco zeroconf ]; "xiaomi_miio" = ps: with ps; [ construct python-miio ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index f7e0face11a..108e2b578ae 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -61,14 +61,14 @@ let extraBuildInputs = extraPackages py.pkgs; # Don't forget to run parse-requirements.py after updating - hassVersion = "2021.2.3"; + hassVersion = "2021.3.0"; in with py.pkgs; buildPythonApplication rec { pname = "homeassistant"; version = assert (componentPackages.version == hassVersion); hassVersion; # check REQUIRED_PYTHON_VER in homeassistant/const.py - disabled = pythonOlder "3.7.1"; + disabled = pythonOlder "3.8"; # don't try and fail to strip 6600+ python files, it takes minutes! dontStrip = true; @@ -80,7 +80,7 @@ in with py.pkgs; buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = version; - sha256 = "0s1jcd94wwvmvzq86w8s9dwfvnmjs9l661z9pc6kwgagggjjgd8c"; + sha256 = "19hdsnzrkkw1fihccmfjsgcg1m7l22a19sbmlh2dy272ckbnhj9r"; }; # leave this in, so users don't have to constantly update their downstream patch handling @@ -88,15 +88,15 @@ in with py.pkgs; buildPythonApplication rec { postPatch = '' substituteInPlace setup.py \ + --replace "aiohttp==3.7.4" "aiohttp>=3.7.3" \ --replace "attrs==19.3.0" "attrs>=19.3.0" \ --replace "bcrypt==3.1.7" "bcrypt>=3.1.7" \ - --replace "awesomeversion==21.2.2" "awesomeversion>=21.2.2" \ - --replace "cryptography==3.2" "cryptography" \ + --replace "cryptography==3.3.2" "cryptography" \ --replace "httpx==0.16.1" "httpx>=0.16.1" \ + --replace "jinja2>=2.11.3" "jinja2>=2.11.2" \ --replace "pip>=8.0.3,<20.3" "pip" \ - --replace "pytz>=2020.5" "pytz>=2020.4" \ + --replace "pytz>=2021.1" "pytz>=2020.5" \ --replace "pyyaml==5.4.1" "pyyaml" \ - --replace "requests==2.25.1" "requests>=2.25.0" \ --replace "ruamel.yaml==0.15.100" "ruamel.yaml>=0.15.100" substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"' ''; @@ -177,6 +177,7 @@ in with py.pkgs; buildPythonApplication rec { "emulated_hue" "esphome" "fan" + "faa_delays" "ffmpeg" "file" "filesize" @@ -195,6 +196,7 @@ in with py.pkgs; buildPythonApplication rec { "hddtemp" "history" "history_stats" + "homekit_controller" "homeassistant" "html5" "http" @@ -211,6 +213,7 @@ in with py.pkgs; buildPythonApplication rec { "intent" "intent_script" "ipp" + "kmtronic" "light" "local_file" "local_ip" @@ -221,6 +224,7 @@ in with py.pkgs; buildPythonApplication rec { "lovelace" "manual" "manual_mqtt" + "mazda" "media_player" "media_source" "met" @@ -232,6 +236,7 @@ in with py.pkgs; buildPythonApplication rec { "mqtt_json" "mqtt_room" "mqtt_statestream" + "mullvad" "notify" "number" "ozw" @@ -239,6 +244,7 @@ in with py.pkgs; buildPythonApplication rec { "panel_iframe" "persistent_notification" "person" + "plaato" "prometheus" "proximity" "push" @@ -247,6 +253,7 @@ in with py.pkgs; buildPythonApplication rec { "recorder" "rest" "rest_command" + "rituals_perfume_genie" "rmvtransport" "rss_feed_template" "safe_mode" @@ -257,6 +264,7 @@ in with py.pkgs; buildPythonApplication rec { "shopping_list" "simulated" "sensor" + "smarttub" "smtp" "sql" "ssdp" @@ -313,12 +321,16 @@ in with py.pkgs; buildPythonApplication rec { disabledTests = [ # AssertionError: assert 1 == 0 + "test_error_posted_as_event" "test_merge" # ModuleNotFoundError: No module named 'pyqwikswitch' "test_merge_id_schema" # keyring.errors.NoKeyringError: No recommended backend was available. "test_secrets_from_unrelated_fails" "test_secrets_credstash" + # generic/test_camera.py: AssertionError: 500 == 200 + "test_fetching_without_verify_ssl" + "test_fetching_url_with_verify_ssl" ]; preCheck = '' diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index 812f4d096ce..ac660d87aef 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -4,11 +4,11 @@ buildPythonPackage rec { # the frontend version corresponding to a specific home-assistant version can be found here # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json pname = "home-assistant-frontend"; - version = "20210127.7"; + version = "20210302.3"; src = fetchPypi { inherit pname version; - sha256 = "sha256-N+n1DI1oZ/j+GydH+Du21zTNA6leW4YBri7cAMvAac4="; + sha256 = "sha256-VJVYGg3xJC6npxYWw2h0Rb4jaeriOksN1NvAWVQzK50="; }; # there is nothing to strip in this package