about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix366
-rw-r--r--pkgs/servers/home-assistant/default.nix82
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rw-r--r--pkgs/servers/home-assistant/tests.nix37
4 files changed, 369 insertions, 120 deletions
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 79e14605bde9f..189c09afa42f2 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,13 +2,12 @@
 # Do not edit!
 
 {
-  version = "2023.1.7";
+  version = "2023.2.0";
   components = {
     "3_day_blinds" = ps: with ps; [
     ];
     "abode" = ps: with ps; [
-      abodepy
-    ];
+    ]; # missing inputs: jaraco.abode
     "accuweather" = ps: with ps; [
       accuweather
     ];
@@ -57,7 +56,10 @@
       airthings-cloud
     ];
     "airthings_ble" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       airthings-ble
       bleak-retry-connector
       bleak
@@ -65,13 +67,16 @@
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "airtouch4" = ps: with ps; [
       airtouch4pyapi
@@ -99,10 +104,6 @@
       pyturbojpeg
       aiohttp-cors
     ];
-    "almond" = ps: with ps; [
-      aiohttp-cors
-      pyalmond
-    ];
     "alpha_vantage" = ps: with ps; [
       alpha-vantage
     ];
@@ -148,6 +149,8 @@
     ]; # missing inputs: anel_pwrctrl-homeassistant
     "anthemav" = ps: with ps; [
     ]; # missing inputs: anthemav
+    "anwb_energie" = ps: with ps; [
+    ];
     "apache_kafka" = ps: with ps; [
       aiokafka
     ];
@@ -183,7 +186,10 @@
     "aquostv" = ps: with ps; [
     ]; # missing inputs: sharp_aquos_rc
     "aranet" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       aranet4
       bleak-retry-connector
       bleak
@@ -191,13 +197,16 @@
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "arcam_fmj" = ps: with ps; [
       arcam-fmj
@@ -332,7 +341,10 @@
     "bloomsky" = ps: with ps; [
     ];
     "bluemaestro" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluemaestro-ble
@@ -340,13 +352,16 @@
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "blueprint" = ps: with ps; [
     ];
@@ -369,21 +384,49 @@
       pyudev
       sqlalchemy
     ];
+    "bluetooth_adapters" = ps: with ps; [
+      aioesphomeapi
+      aiohttp-cors
+      aioruuvigateway
+      aioshelly
+      bleak-retry-connector
+      bleak
+      bluetooth-adapters
+      bluetooth-auto-recovery
+      bluetooth-data-tools
+      dbus-fast
+      esphome-dashboard-api
+      fnvhash
+      home-assistant-frontend
+      ifaddr
+      janus
+      pillow
+      pyserial
+      pyudev
+      sqlalchemy
+      zeroconf
+    ];
     "bluetooth_le_tracker" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "bluetooth_tracker" = ps: with ps; [
       bt-proximity
@@ -435,7 +478,10 @@
       btsmarthub_devicelist
     ];
     "bthome" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
@@ -443,13 +489,16 @@
       bluetooth-data-tools
       bthome-ble
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "bticino" = ps: with ps; [
     ];
@@ -557,6 +606,8 @@
     ];
     "conversation" = ps: with ps; [
       aiohttp-cors
+      hassil
+      home-assistant-intents
     ];
     "coolmaster" = ps: with ps; [
       pycoolmasternet-async
@@ -631,7 +682,9 @@
       dbus-fast
       fnvhash
       hass-nabucasa
+      hassil
       home-assistant-frontend
+      home-assistant-intents
       ifaddr
       janus
       pillow
@@ -650,8 +703,8 @@
     ];
     "demo" = ps: with ps; [
       aiohttp-cors
-      fnvhash
-      sqlalchemy
+      hassil
+      home-assistant-intents
     ];
     "denon" = ps: with ps; [
     ];
@@ -871,11 +924,15 @@
       ifaddr
       sqlalchemy
     ];
+    "energie_vanons" = ps: with ps; [
+    ];
     "energy" = ps: with ps; [
       aiohttp-cors
       fnvhash
       sqlalchemy
     ];
+    "energyzero" = ps: with ps; [
+    ]; # missing inputs: energyzero
     "enigma2" = ps: with ps; [
       openwebifpy
     ];
@@ -903,7 +960,10 @@
     "epsonworkforce" = ps: with ps; [
     ]; # missing inputs: epsonprinter
     "eq3btsmart" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
@@ -911,13 +971,16 @@
       bluetooth-data-tools
       construct
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ]; # missing inputs: python-eq3bt
     "escea" = ps: with ps; [
       pescea
@@ -931,6 +994,7 @@
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
       ifaddr
@@ -945,6 +1009,28 @@
     ]; # missing inputs: python-etherscan-api
     "eufy" = ps: with ps; [
     ]; # missing inputs: lakeside
+    "eufylife_ble" = ps: with ps; [
+      aioesphomeapi
+      aiohttp-cors
+      aioruuvigateway
+      aioshelly
+      bleak-retry-connector
+      bleak
+      bluetooth-adapters
+      bluetooth-auto-recovery
+      bluetooth-data-tools
+      dbus-fast
+      esphome-dashboard-api
+      fnvhash
+      home-assistant-frontend
+      ifaddr
+      janus
+      pillow
+      pyserial
+      pyudev
+      sqlalchemy
+      zeroconf
+    ]; # missing inputs: eufylife_ble_client
     "everlights" = ps: with ps; [
       pyeverlights
     ];
@@ -1008,6 +1094,8 @@
     "fints" = ps: with ps; [
       fints
     ];
+    "fire_tv" = ps: with ps; [
+    ];
     "fireservicerota" = ps: with ps; [
       pyfireservicerota
     ];
@@ -1025,21 +1113,27 @@
       fixerio
     ];
     "fjaraskupan" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fjaraskupan
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "fleetgo" = ps: with ps; [
       ritassist
@@ -1241,6 +1335,12 @@
     ];
     "google_domains" = ps: with ps; [
     ];
+    "google_mail" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      google-api-python-client
+      sqlalchemy
+    ];
     "google_maps" = ps: with ps; [
       locationsharinglib
     ];
@@ -1262,21 +1362,27 @@
     "google_wifi" = ps: with ps; [
     ];
     "govee_ble" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       govee-ble
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "gpsd" = ps: with ps; [
       gps3
@@ -1478,14 +1584,18 @@
       zeroconf
     ];
     "homekit_controller" = ps: with ps; [
+      aioesphomeapi
       aiohomekit
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
       ifaddr
@@ -1509,7 +1619,7 @@
       pyhomeworks
     ];
     "honeywell" = ps: with ps; [
-      somecomfort
+      aiosomecomfort
     ];
     "horizon" = ps: with ps; [
     ]; # missing inputs: horimote
@@ -1560,21 +1670,27 @@
       iaqualink
     ];
     "ibeacon" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
       ibeacon-ble
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "icloud" = ps: with ps; [
       pyicloud
@@ -1602,6 +1718,7 @@
       pillow
     ];
     "imap" = ps: with ps; [
+      aiohttp-cors
       aioimaplib
     ];
     "imap_email_content" = ps: with ps; [
@@ -1614,21 +1731,27 @@
       influxdb
     ];
     "inkbird" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       inkbird-ble
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "input_boolean" = ps: with ps; [
     ];
@@ -1741,21 +1864,27 @@
       getmac
     ];
     "kegtron" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       kegtron-ble
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "keyboard" = ps: with ps; [
     ]; # missing inputs: pyuserinput
@@ -1765,24 +1894,34 @@
     ];
     "keymitt_ble" = ps: with ps; [
       pymicrobot
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "kira" = ps: with ps; [
       pykira
     ];
+    "kitchen_sink" = ps: with ps; [
+      fnvhash
+      sqlalchemy
+    ];
     "kiwi" = ps: with ps; [
       kiwiki-client
     ];
@@ -1801,7 +1940,8 @@
       konnected
     ];
     "kostal_plenticore" = ps: with ps; [
-    ]; # missing inputs: kostal_plenticore
+      pykoplenti
+    ];
     "kraken" = ps: with ps; [
       krakenex
       pykrakenapi
@@ -1845,22 +1985,50 @@
     "lcn" = ps: with ps; [
       pypck
     ];
+    "ld2410_ble" = ps: with ps; [
+      aioesphomeapi
+      aiohttp-cors
+      aioruuvigateway
+      aioshelly
+      bleak-retry-connector
+      bleak
+      bluetooth-adapters
+      bluetooth-auto-recovery
+      bluetooth-data-tools
+      dbus-fast
+      esphome-dashboard-api
+      fnvhash
+      home-assistant-frontend
+      ifaddr
+      janus
+      pillow
+      pyserial
+      pyudev
+      sqlalchemy
+      zeroconf
+    ]; # missing inputs: ld2410-ble
     "led_ble" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       led-ble
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "legrand" = ps: with ps; [
     ];
@@ -2052,20 +2220,26 @@
     "melissa" = ps: with ps; [
     ]; # missing inputs: py-melissa-climate
     "melnor" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ]; # missing inputs: melnor-bluetooth
     "meraki" = ps: with ps; [
       aiohttp-cors
@@ -2109,6 +2283,8 @@
     ];
     "miflora" = ps: with ps; [
     ];
+    "mijndomein_energie" = ps: with ps; [
+    ];
     "mikrotik" = ps: with ps; [
       librouteros
     ];
@@ -2131,21 +2307,27 @@
     "mjpeg" = ps: with ps; [
     ];
     "moat" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       moat-ble
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "mobile_app" = ps: with ps; [
       pynacl
@@ -2153,6 +2335,8 @@
       aiohttp-cors
       fnvhash
       hass-nabucasa
+      hassil
+      home-assistant-intents
       pillow
       sqlalchemy
     ];
@@ -2180,6 +2364,28 @@
     ]; # missing inputs: pymonoprice
     "moon" = ps: with ps; [
     ];
+    "mopeka" = ps: with ps; [
+      aioesphomeapi
+      aiohttp-cors
+      aioruuvigateway
+      aioshelly
+      bleak-retry-connector
+      bleak
+      bluetooth-adapters
+      bluetooth-auto-recovery
+      bluetooth-data-tools
+      dbus-fast
+      esphome-dashboard-api
+      fnvhash
+      home-assistant-frontend
+      ifaddr
+      janus
+      pillow
+      pyserial
+      pyudev
+      sqlalchemy
+      zeroconf
+    ]; # missing inputs: mopeka_iot_ble
     "motion_blinds" = ps: with ps; [
       aiohttp-cors
       fnvhash
@@ -2457,9 +2663,13 @@
     "open_meteo" = ps: with ps; [
       open-meteo
     ];
-    "openalpr_cloud" = ps: with ps; [
+    "openai_conversation" = ps: with ps; [
+      aiohttp-cors
+      hassil
+      home-assistant-intents
+      openai
     ];
-    "openalpr_local" = ps: with ps; [
+    "openalpr_cloud" = ps: with ps; [
     ];
     "opencv" = ps: with ps; [
       numpy
@@ -2502,21 +2712,27 @@
       pyoppleio
     ];
     "oralb" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       oralb-ble
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "oru" = ps: with ps; [
     ]; # missing inputs: oru
@@ -2525,6 +2741,14 @@
     ];
     "osramlightify" = ps: with ps; [
     ]; # missing inputs: lightify
+    "otbr" = ps: with ps; [
+      aiohttp-cors
+      fnvhash
+      home-assistant-frontend
+      janus
+      pillow
+      sqlalchemy
+    ]; # missing inputs: python-otbr-api
     "otp" = ps: with ps; [
       pyotp
     ];
@@ -2703,21 +2927,27 @@
     "qbittorrent" = ps: with ps; [
     ]; # missing inputs: python-qbittorrent
     "qingping" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       qingping-ble
       sqlalchemy
+      zeroconf
     ];
     "qld_bushfire" = ps: with ps; [
       georss-qld-bushfire-alert-client
@@ -2813,6 +3043,7 @@
       renault-api
     ];
     "reolink" = ps: with ps; [
+      aiohttp-cors
       reolink-aio
     ];
     "repairs" = ps: with ps; [
@@ -2896,23 +3127,48 @@
     ]; # missing inputs: russound_rio
     "russound_rnet" = ps: with ps; [
     ]; # missing inputs: russound
+    "ruuvi_gateway" = ps: with ps; [
+      aiohttp-cors
+      aioruuvigateway
+      bleak-retry-connector
+      bleak
+      bluetooth-adapters
+      bluetooth-auto-recovery
+      bluetooth-data-tools
+      dbus-fast
+      fnvhash
+      home-assistant-frontend
+      janus
+      pillow
+      pyserial
+      pyudev
+      sqlalchemy
+    ];
     "ruuvitag_ble" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       ruuvitag-ble
       sqlalchemy
+      zeroconf
     ];
+    "rympro" = ps: with ps; [
+    ]; # missing inputs: pyrympro
     "sabnzbd" = ps: with ps; [
       pysabnzbd
     ];
@@ -2990,20 +3246,26 @@
       pysensibo
     ];
     "sensirion_ble" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ]; # missing inputs: sensirion-ble
     "sensor" = ps: with ps; [
       fnvhash
@@ -3012,38 +3274,50 @@
     "sensorblue" = ps: with ps; [
     ];
     "sensorpro" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sensorpro-ble
       sqlalchemy
+      zeroconf
     ];
     "sensorpush" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sensorpush-ble
       sqlalchemy
+      zeroconf
     ];
     "sentry" = ps: with ps; [
       sentry-sdk
@@ -3068,6 +3342,9 @@
     "seventeentrack" = ps: with ps; [
       py17track
     ];
+    "sfr_box" = ps: with ps; [
+      sfrbox-api
+    ];
     "sharkiq" = ps: with ps; [
       sharkiq
     ];
@@ -3199,21 +3476,27 @@
       pysnmplib
     ];
     "snooz" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pysnooz
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "solaredge" = ps: with ps; [
       solaredge
@@ -3302,6 +3585,8 @@
     ];
     "starlingbank" = ps: with ps; [
     ]; # missing inputs: starlingbank
+    "starlink" = ps: with ps; [
+    ]; # missing inputs: starlink-grpc-core
     "startca" = ps: with ps; [
       xmltodict
     ];
@@ -3329,6 +3614,8 @@
     "stookalert" = ps: with ps; [
       stookalert
     ];
+    "stookwijzer" = ps: with ps; [
+    ]; # missing inputs: stookwijzer
     "stream" = ps: with ps; [
       pyturbojpeg
       aiohttp-cors
@@ -3372,20 +3659,26 @@
     ];
     "switchbot" = ps: with ps; [
       pyswitchbot
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
+      zeroconf
     ];
     "switcher_kis" = ps: with ps; [
       aioswitcher
@@ -3491,40 +3784,52 @@
     "tfiac" = ps: with ps; [
     ]; # missing inputs: pytfiac
     "thermobeacon" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
       thermobeacon-ble
+      zeroconf
     ];
     "thermoplus" = ps: with ps; [
     ];
     "thermopro" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
       thermopro-ble
+      zeroconf
     ];
     "thermoworks_smoke" = ps: with ps; [
       stringcase
@@ -3537,6 +3842,8 @@
     ]; # missing inputs: pythinkingcleaner
     "thomson" = ps: with ps; [
     ];
+    "thread" = ps: with ps; [
+    ];
     "threshold" = ps: with ps; [
     ];
     "tibber" = ps: with ps; [
@@ -3550,21 +3857,27 @@
       pytile
     ];
     "tilt_ble" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
       tilt-ble
+      zeroconf
     ];
     "time_date" = ps: with ps; [
     ];
@@ -3576,7 +3889,7 @@
     "tod" = ps: with ps; [
     ];
     "todoist" = ps: with ps; [
-      todoist
+      todoist-api-python
     ];
     "tolo" = ps: with ps; [
       tololib
@@ -3937,21 +4250,27 @@
       zeroconf
     ];
     "xiaomi_ble" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
       xiaomi-ble
+      zeroconf
     ];
     "xiaomi_miio" = ps: with ps; [
       construct
@@ -3970,21 +4289,27 @@
       yalesmartalarmclient
     ];
     "yalexs_ble" = ps: with ps; [
+      aioesphomeapi
       aiohttp-cors
+      aioruuvigateway
+      aioshelly
       bleak-retry-connector
       bleak
       bluetooth-adapters
       bluetooth-auto-recovery
       bluetooth-data-tools
       dbus-fast
+      esphome-dashboard-api
       fnvhash
       home-assistant-frontend
+      ifaddr
       janus
       pillow
       pyserial
       pyudev
       sqlalchemy
       yalexs-ble
+      zeroconf
     ];
     "yamaha" = ps: with ps; [
       rxv
@@ -4049,6 +4374,8 @@
     "zestimate" = ps: with ps; [
       xmltodict
     ];
+    "zeversolar" = ps: with ps; [
+    ]; # missing inputs: zeversolar
     "zha" = ps: with ps; [
       aiohttp-cors
       bellows
@@ -4100,7 +4427,6 @@
   };
   # components listed in tests/components for which all dependencies are packaged
   supportedComponentsWithTests = [
-    "abode"
     "accuweather"
     "acmeda"
     "adax"
@@ -4123,7 +4449,6 @@
     "alarmdecoder"
     "alert"
     "alexa"
-    "almond"
     "amberelectric"
     "ambiclimate"
     "ambient_station"
@@ -4163,6 +4488,7 @@
     "bluemaestro"
     "blueprint"
     "bluetooth"
+    "bluetooth_adapters"
     "bluetooth_le_tracker"
     "bmw_connected_drive"
     "bond"
@@ -4315,6 +4641,7 @@
     "google_assistant"
     "google_assistant_sdk"
     "google_domains"
+    "google_mail"
     "google_pubsub"
     "google_sheets"
     "google_translate"
@@ -4372,6 +4699,7 @@
     "ign_sismologia"
     "image_processing"
     "image_upload"
+    "imap"
     "imap_email_content"
     "influxdb"
     "inkbird"
@@ -4403,10 +4731,12 @@
     "kegtron"
     "keymitt_ble"
     "kira"
+    "kitchen_sink"
     "kmtronic"
     "knx"
     "kodi"
     "konnected"
+    "kostal_plenticore"
     "kraken"
     "kulersky"
     "lametric"
@@ -4519,6 +4849,7 @@
     "onewire"
     "onvif"
     "open_meteo"
+    "openai_conversation"
     "openalpr_cloud"
     "openerz"
     "openexchangerates"
@@ -4600,6 +4931,7 @@
     "rss_feed_template"
     "rtsp_to_webrtc"
     "ruckus_unleashed"
+    "ruuvi_gateway"
     "ruuvitag_ble"
     "sabnzbd"
     "safe_mode"
@@ -4621,6 +4953,7 @@
     "sentry"
     "senz"
     "seventeentrack"
+    "sfr_box"
     "sharkiq"
     "shell_command"
     "shelly"
@@ -4701,6 +5034,7 @@
     "text"
     "thermobeacon"
     "thermopro"
+    "thread"
     "threshold"
     "tibber"
     "tile"
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 024c023d35052..83607eb7f97a2 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -78,22 +78,6 @@ let
         ];
       });
 
-      caldav = super.caldav.overridePythonAttrs (old: rec {
-        version = "0.9.1";
-        src = fetchFromGitHub {
-          owner = "python-caldav";
-          repo = "caldav";
-          rev = "v${version}";
-          hash = "sha256-Gil0v4pGyp5+TnYPjb8Vk0xTqnQKaeD8Ko/ZWhvkbUk=";
-        };
-        postPatch = ''
-          substituteInPlace setup.py \
-            --replace ", 'xandikos<0.2.4'" "" \
-            --replace ", 'radicale'" ""
-        '';
-        nativeCheckInputs = old.nativeCheckInputs ++ [ self.nose ];
-      });
-
       dsmr-parser = super.dsmr-parser.overridePythonAttrs (oldAttrs: rec {
         version = "0.33";
         src = fetchFromGitHub {
@@ -114,15 +98,6 @@ let
         };
       });
 
-      icalendar = super.icalendar.overridePythonAttrs (oldAttrs: rec {
-        version = "4.1.0";
-        src = self.fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          hash = "sha256-l0i3wC78xD5Y0GFa4JdqxPJl6Q2t7ptPiE3imQXBs5U=";
-        };
-      });
-
       # Pinned due to API changes in 10.0
       mcstatus = super.mcstatus.overridePythonAttrs (oldAttrs: rec {
         version = "9.3.0";
@@ -176,27 +151,6 @@ let
         };
       });
 
-      pymodbus = super.pymodbus.overridePythonAttrs (oldAttrs: rec {
-        version = "2.5.3";
-        src = fetchFromGitHub {
-          owner = "riptideio";
-          repo = "pymodbus";
-          rev= "refs/tags/v${version}";
-          hash = "sha256-pf1TU/imBqNVYdG4XX8fnma8O8kQHuOHu6DT3E/PUk4=";
-        };
-      });
-
-      # Pinned due to API changes in 1.0.24
-      pysensibo = super.pysensibo.overridePythonAttrs (oldAttrs: rec {
-        version = "1.0.22";
-        src = fetchFromGitHub {
-          owner = "andrey-git";
-          repo = "pysensibo";
-          rev = "refs/tags/${version}";
-          hash = "sha256-AUcdKcdoYCg8OgUcFoLLpNK5GQMTg89XCR5CkTfNkcc=";
-        };
-      });
-
       python-slugify = super.python-slugify.overridePythonAttrs (oldAttrs: rec {
         pname = "python-slugify";
         version = "4.0.1";
@@ -206,6 +160,16 @@ let
         };
       });
 
+      pytradfri = super.pytradfri.overridePythonAttrs (oldAttrs: rec {
+        version = "9.0.1";
+        src = fetchFromGitHub {
+          owner = "home-assistant-libs";
+          repo = "pytradfri";
+          rev = "refs/tags/${version}";
+          hash = "sha256-xOdTzG0bF5p1QpkXv2btwrVugQRjSwdAj8bXcC0IoQg=";
+        };
+      });
+
       python-telegram-bot = super.python-telegram-bot.overridePythonAttrs (oldAttrs: rec {
         version = "13.15";
         src = fetchFromGitHub {
@@ -235,25 +199,6 @@ let
         doCheck = false;
       });
 
-      pytradfri = super.pytradfri.overridePythonAttrs (oldAttrs: rec {
-        version = "9.0.0";
-        src = fetchFromGitHub {
-          owner = "home-assistant-libs";
-          repo = "pytradfri";
-          rev = "refs/tags/${version}";
-          hash = "sha256-12ol+2CnoPfkxmDGJJAkoafHGpQuWC4lh0N7lSvx2DE=";
-        };
-      });
-
-      pysoma = super.pysoma.overridePythonAttrs (oldAttrs: rec {
-        version = "0.0.10";
-        src = super.fetchPypi {
-          pname = "pysoma";
-          inherit version;
-          hash = "sha256-sU1qHbAjdIUu0etjate8+U1zvunbw3ddBtDVUU10CuE=";
-        };
-      });
-
       # Pinned due to API changes in 0.3.0
       tailscale = super.tailscale.overridePythonAttrs (oldAttrs: rec {
         version = "0.2.0";
@@ -326,7 +271,7 @@ let
   extraPackagesFile = writeText "home-assistant-packages" (lib.concatMapStringsSep "\n" (pkg: pkg.pname) extraBuildInputs);
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2023.1.7";
+  hassVersion = "2023.2.0";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -334,7 +279,7 @@ in python.pkgs.buildPythonApplication rec {
   format = "pyproject";
 
   # check REQUIRED_PYTHON_VER in homeassistant/const.py
-  disabled = python.pythonOlder "3.9";
+  disabled = python.pythonOlder "3.10";
 
   # don't try and fail to strip 6600+ python files, it takes minutes!
   dontStrip = true;
@@ -344,7 +289,7 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = "refs/tags/${version}";
-    hash = "sha256-z8dTFRs7Tm4WTQcYeHu9jlGbva9yNPhjmQ+CQY+9DN4=";
+    hash = "sha256-tW1tVPJ50DIGIuxJP9nq4+Tw4fiPA+kINSclW7JkJmE=";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
@@ -368,6 +313,7 @@ in python.pkgs.buildPythonApplication rec {
       "ifaddr"
       "orjson"
       "PyJWT"
+      "pyOpenSSL"
       "requests"
       "typing-extensions"
       "yarl"
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 5be1d96b4c3c9..59661f357f8b0 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -4,7 +4,7 @@ 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 = "20230110.0";
+  version = "20230201.0";
   format = "wheel";
 
   src = fetchPypi {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     pname = "home_assistant_frontend";
     dist = "py3";
     python = "py3";
-    hash = "sha256-axtDtkIsTFWV8qtVvpYL4aDE5jbTdX4Qo5V+9taWuNo=";
+    hash = "sha256-CG4I3YI1swiAV02+NXvi9n87dXrTJFlMUcOnB9ebmWk=";
   };
 
   # there is nothing to strip in this package
diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix
index 375f05501a505..75b63ec99a64d 100644
--- a/pkgs/servers/home-assistant/tests.nix
+++ b/pkgs/servers/home-assistant/tests.nix
@@ -34,11 +34,6 @@ let
   };
 
   extraDisabledTestPaths = {
-    tado = [
-      # tado/test_{climate,water_heater}.py: Tries to connect to my.tado.com
-      "tests/components/tado/test_climate.py"
-      "tests/components/tado/test_water_heater.py"
-    ];
   };
 
   extraDisabledTests = {
@@ -46,21 +41,9 @@ let
       # homeassistant.components.roku.media_player:media_player.py:428 Media type music is not supported with format None (mime: audio/x-matroska)
       "test_services_play_media_audio"
     ];
-    rfxtrx = [
-      # bytearrray mismatch
-      "test_rfy_cover"
-    ];
-    zha = [
-      # 'manual_pick_radio_type' == 'choose_serial_port'
-      "test_options_flow_migration_reset_old_adapter"
-    ];
   };
 
   extraPytestFlagsArray = {
-    asuswrt = [
-      # Sandbox network limitations, fails with unexpected error
-      "--deselect tests/components/asuswrt/test_config_flow.py::test_on_connect_failed"
-    ];
     dnsip = [
       # AssertionError: assert <FlowResultType.FORM: 'form'> == <FlowResultTy...create_entry'>
       "--deselect tests/components/dnsip/test_config_flow.py::test_options_flow"
@@ -69,6 +52,9 @@ let
       # Flaky: AssertionError: assert '0.0' == '12.0'
       "--deselect tests/components/history_stats/test_sensor.py::test_end_time_with_microseconds_zeroed"
     ];
+    logbook = [
+      "--deselect tests/components/logbook/test_websocket_api.py::test_recorder_is_far_behind "
+    ];
     modem_callerid = [
       # aioserial mock produces wrong state
       "--deselect tests/components/modem_callerid/test_init.py::test_setup_entry"
@@ -77,20 +63,6 @@ let
       # "TypeError: object Mock can't be used in 'await' expression
       "--deselect tests/components/unifiprotect/test_repairs.py::test_ea_warning_fix"
     ];
-    skybell = [
-      # Sandbox network limitations: Cannot connect to host cloud.myskybell.com:443
-      "--deselect tests/components/skybell/test_config_flow.py::test_flow_user_unknown_error"
-    ];
-    stream = [
-      # Tries to write to /example and gets "Permission denied"
-      "--deselect tests/components/stream/test_recorder.py::test_record_lookback"
-      "--deselect tests/components/stream/test_recorder.py::test_recorder_log"
-      "--deselect tests/components/stream/test_worker.py::test_get_image"
-    ];
-    zha = [
-      # AssertionError: assert 'manual_pick_radio_type' == 'choose_serial_port'
-      "--deselect tests/components/zha/test_config_flow.py::test_options_flow_restarts_running_zha_if_cancelled"
-    ];
   };
 in lib.listToAttrs (map (component: lib.nameValuePair component (
   home-assistant.overridePythonAttrs (old: {
@@ -121,9 +93,6 @@ in lib.listToAttrs (map (component: lib.nameValuePair component (
 
     meta = old.meta // {
       broken = lib.elem component [
-         # all tests are skipped
-         # https://github.com/home-assistant/core/blob/dev/tests/components/homeassistant_hardware/test_silabs_multiprotocol_addon.py#L23
-        "homeassistant_hardware"
       ];
       # upstream only tests on Linux, so do we.
       platforms = lib.platforms.linux;