···321 <link linkend="opt-programs.pantheon-tweaks.enable">programs.pantheon-tweaks</link>.
322 </para>
323 </listitem>
324+ <listitem>
325+ <para>
326+ <link xlink:href="https://github.com/DanielOgorchock/joycond">joycond</link>,
327+ a service that uses <literal>hid-nintendo</literal> to provide
328+ nintendo joycond pairing and better nintendo switch pro
329+ controller support.
330+ </para>
331+ </listitem>
332 </itemizedlist>
333 </section>
334 <section xml:id="sec-release-21.11-incompatibilities">
+2
nixos/doc/manual/release-notes/rl-2111.section.md
···99100- [pantheon-tweaks](https://github.com/pantheon-tweaks/pantheon-tweaks), an unofficial system settings panel for Pantheon. Available as [programs.pantheon-tweaks](#opt-programs.pantheon-tweaks.enable).
10100102## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
103104- The `security.wrappers` option now requires to always specify an owner, group and whether the setuid/setgid bit should be set.
···99100- [pantheon-tweaks](https://github.com/pantheon-tweaks/pantheon-tweaks), an unofficial system settings panel for Pantheon. Available as [programs.pantheon-tweaks](#opt-programs.pantheon-tweaks.enable).
101102+- [joycond](https://github.com/DanielOgorchock/joycond), a service that uses `hid-nintendo` to provide nintendo joycond pairing and better nintendo switch pro controller support.
103+104## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
105106- The `security.wrappers` option now requires to always specify an owner, group and whether the setuid/setgid bit should be set.
···2# Do not edit!
34{
5- version = "2021.9.7";
6 components = {
7 "abode" = ps: with ps; [ abodepy ];
8 "accuweather" = ps: with ps; [ accuweather ];
···19 "air_quality" = ps: with ps; [ ];
20 "airly" = ps: with ps; [ airly ];
21 "airnow" = ps: with ps; [ pyairnow ];
022 "airtouch4" = ps: with ps; [ ]; # missing inputs: airtouch4pyapi
23 "airvisual" = ps: with ps; [ pyairvisual ];
24 "aladdin_connect" = ps: with ps; [ aladdin-connect ];
···30 "alpha_vantage" = ps: with ps; [ alpha-vantage ];
31 "amazon_polly" = ps: with ps; [ boto3 ];
32 "ambee" = ps: with ps; [ ambee ];
033 "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ];
34 "ambient_station" = ps: with ps; [ aioambient ];
35 "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ];
···43 "apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess
44 "api" = ps: with ps; [ aiohttp-cors ];
45 "apns" = ps: with ps; [ ]; # missing inputs: apns2
46- "apple_tv" = ps: with ps; [ aiohttp-cors ifaddr netdisco pyatv zeroconf ];
47 "apprise" = ps: with ps; [ apprise ];
48 "aprs" = ps: with ps; [ aprslib geopy ];
49 "aqualogic" = ps: with ps; [ aqualogic ];
···149 "cover" = ps: with ps; [ ];
150 "cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy
151 "cpuspeed" = ps: with ps; [ py-cpuinfo ];
0152 "cups" = ps: with ps; [ pycups ];
153 "currencylayer" = ps: with ps; [ ];
154 "daikin" = ps: with ps; [ pydaikin ];
···160 "deconz" = ps: with ps; [ pydeconz ];
161 "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
162 "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
163- "default_config" = ps: with ps; [ pynacl pyturbojpeg aiodiscover aiohttp-cors async-upnp-client defusedxml emoji hass-nabucasa home-assistant-frontend ifaddr pillow pyserial pyudev scapy sqlalchemy zeroconf ];
164 "delijn" = ps: with ps; [ pydelijn ];
165 "deluge" = ps: with ps; [ deluge-client ];
166 "demo" = ps: with ps; [ aiohttp-cors ];
···185 "dlib_face_detect" = ps: with ps; [ face_recognition ];
186 "dlib_face_identify" = ps: with ps; [ face_recognition ];
187 "dlink" = ps: with ps; [ ]; # missing inputs: pyW215
188- "dlna_dmr" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr ];
189 "dnsip" = ps: with ps; [ aiodns ];
190 "dominos" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pizzapi
191 "doods" = ps: with ps; [ pillow pydoods ];
···213 "edimax" = ps: with ps; [ pyedimax ];
214 "edl21" = ps: with ps; [ pysml ];
215 "ee_brightbox" = ps: with ps; [ eebrightbox ];
216- "efergy" = ps: with ps; [ ];
217 "egardia" = ps: with ps; [ pythonegardia ];
218 "eight_sleep" = ps: with ps; [ pyeight ];
219 "elgato" = ps: with ps; [ elgato ];
···224 "emoncms" = ps: with ps; [ ];
225 "emoncms_history" = ps: with ps; [ ];
226 "emonitor" = ps: with ps; [ aioemonitor ];
227- "emulated_hue" = ps: with ps; [ aiohttp-cors ];
228 "emulated_kasa" = ps: with ps; [ sense-energy ];
229 "emulated_roku" = ps: with ps; [ aiohttp-cors emulated-roku ifaddr ];
230 "energy" = ps: with ps; [ aiohttp-cors sqlalchemy ];
···527 "mobile_app" = ps: with ps; [ pynacl pyturbojpeg aiohttp-cors emoji hass-nabucasa pillow ];
528 "mochad" = ps: with ps; [ ]; # missing inputs: pymochad
529 "modbus" = ps: with ps; [ pymodbus ];
530- "modem_callerid" = ps: with ps; [ ]; # missing inputs: basicmodem
531 "modern_forms" = ps: with ps; [ aiomodernforms ];
532 "mold_indicator" = ps: with ps; [ ];
533 "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
···555 "nad" = ps: with ps; [ nad-receiver ];
556 "nam" = ps: with ps; [ nettigo-air-monitor ];
557 "namecheapdns" = ps: with ps; [ defusedxml ];
558- "nanoleaf" = ps: with ps; [ pynanoleaf ];
559 "neato" = ps: with ps; [ aiohttp-cors pybotvac ];
560 "nederlandse_spoorwegen" = ps: with ps; [ nsapi ];
561 "nello" = ps: with ps; [ pynello ];
···802 "somfy_mylink" = ps: with ps; [ somfy-mylink-synergy ];
803 "sonarr" = ps: with ps; [ sonarr ];
804 "songpal" = ps: with ps; [ python-songpal ];
805- "sonos" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr plexapi plexauth plexwebsocket soco zeroconf ];
806 "sony_projector" = ps: with ps; [ pysdcp ];
807 "soundtouch" = ps: with ps; [ aiohttp-cors ifaddr libsoundtouch zeroconf ];
808 "spaceapi" = ps: with ps; [ aiohttp-cors ];
···814 "sql" = ps: with ps; [ sqlalchemy ];
815 "squeezebox" = ps: with ps; [ pysqueezebox ];
816 "srp_energy" = ps: with ps; [ srpenergy ];
817- "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr zeroconf ];
818 "starline" = ps: with ps; [ starline ];
819 "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
820 "startca" = ps: with ps; [ xmltodict ];
···867 "temper" = ps: with ps; [ ]; # missing inputs: temperusb
868 "template" = ps: with ps; [ ];
869 "tensorflow" = ps: with ps; [ numpy pillow pycocotools tensorflow ]; # missing inputs: tf-models-official
870- "tesla" = ps: with ps; [ teslajsonpy ];
871 "tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac
872 "thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke
873 "thethingsnetwork" = ps: with ps; [ ];
···889 "torque" = ps: with ps; [ aiohttp-cors ];
890 "totalconnect" = ps: with ps; [ total-connect-client ];
891 "touchline" = ps: with ps; [ ]; # missing inputs: pytouchline
892- "tplink" = ps: with ps; [ pyhs100 ];
893 "tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected
894 "traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar
895 "trace" = ps: with ps; [ ];
896- "trackr" = ps: with ps; [ ]; # missing inputs: pytrackr
897 "tractive" = ps: with ps; [ aiotractive ];
898 "tradfri" = ps: with ps; [ pytradfri ];
899 "trafikverket_train" = ps: with ps; [ pytrafikverket ];
900 "trafikverket_weatherstation" = ps: with ps; [ pytrafikverket ];
901 "transmission" = ps: with ps; [ transmissionrpc ];
902- "transport_nsw" = ps: with ps; [ ]; # missing inputs: PyTransportNSW
903 "travisci" = ps: with ps; [ ]; # missing inputs: TravisPy
904 "trend" = ps: with ps; [ numpy ];
905 "tts" = ps: with ps; [ aiohttp-cors mutagen ];
906- "tuya" = ps: with ps; [ tuyaha ];
907 "twentemilieu" = ps: with ps; [ twentemilieu ];
908 "twilio" = ps: with ps; [ aiohttp-cors twilio ];
909 "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
···922 "upc_connect" = ps: with ps; [ connect-box ];
923 "upcloud" = ps: with ps; [ upcloud-api ];
924 "updater" = ps: with ps; [ ];
925- "upnp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr zeroconf ];
926 "uptime" = ps: with ps; [ ];
927 "uptimerobot" = ps: with ps; [ ]; # missing inputs: pyuptimerobot
928 "usb" = ps: with ps; [ aiohttp-cors pyserial pyudev ];
···933 "vacuum" = ps: with ps; [ ];
934 "vallox" = ps: with ps; [ ]; # missing inputs: vallox-websocket-api
935 "vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp
936- "velbus" = ps: with ps; [ python-velbus ];
937 "velux" = ps: with ps; [ pyvlx ];
938 "venstar" = ps: with ps; [ venstarcolortouch ];
939 "vera" = ps: with ps; [ pyvera ];
···961 "waterfurnace" = ps: with ps; [ waterfurnace ];
962 "watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf
963 "watson_tts" = ps: with ps; [ ibm-watson ];
0964 "waze_travel_time" = ps: with ps; [ wazeroutecalculator ];
965 "weather" = ps: with ps; [ ];
966 "webhook" = ps: with ps; [ aiohttp-cors ];
967 "webostv" = ps: with ps; [ aiopylgtv ];
968 "websocket_api" = ps: with ps; [ aiohttp-cors ];
969 "wemo" = ps: with ps; [ pywemo ];
0970 "whois" = ps: with ps; [ python-whois ];
971 "wiffi" = ps: with ps; [ wiffi ];
972 "wilight" = ps: with ps; [ pywilight ];
···993 "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client
994 "yale_smart_alarm" = ps: with ps; [ yalesmartalarmclient ];
995 "yamaha" = ps: with ps; [ rxv ];
996- "yamaha_musiccast" = ps: with ps; [ aiohttp-cors aiomusiccast async-upnp-client defusedxml ifaddr zeroconf ];
997 "yandex_transport" = ps: with ps; [ aioymaps ];
998 "yandextts" = ps: with ps; [ ];
999 "yeelight" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr yeelight ];
···1006 "zeroconf" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ];
1007 "zerproc" = ps: with ps; [ pyzerproc ];
1008 "zestimate" = ps: with ps; [ xmltodict ];
1009- "zha" = ps: with ps; [ aiohttp-cors bellows ifaddr pyserial-asyncio pyserial pyudev zeroconf zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
1010 "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
1011 "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
1012 "zodiac" = ps: with ps; [ ];
1013 "zone" = ps: with ps; [ ];
1014 "zoneminder" = ps: with ps; [ zm-py ];
1015- "zwave" = ps: with ps; [ aiohttp-cors homeassistant-pyozw paho-mqtt pydispatcher python-openzwave-mqtt ];
1016 "zwave_js" = ps: with ps; [ aiohttp-cors pyserial pyudev zwave-js-server-python ];
1017 };
1018}
···2# Do not edit!
34{
5+ version = "2021.10.0";
6 components = {
7 "abode" = ps: with ps; [ abodepy ];
8 "accuweather" = ps: with ps; [ accuweather ];
···19 "air_quality" = ps: with ps; [ ];
20 "airly" = ps: with ps; [ airly ];
21 "airnow" = ps: with ps; [ pyairnow ];
22+ "airthings" = ps: with ps; [ ]; # missing inputs: airthings_cloud
23 "airtouch4" = ps: with ps; [ ]; # missing inputs: airtouch4pyapi
24 "airvisual" = ps: with ps; [ pyairvisual ];
25 "aladdin_connect" = ps: with ps; [ aladdin-connect ];
···31 "alpha_vantage" = ps: with ps; [ alpha-vantage ];
32 "amazon_polly" = ps: with ps; [ boto3 ];
33 "ambee" = ps: with ps; [ ambee ];
34+ "amberelectric" = ps: with ps; [ amberelectric ];
35 "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ];
36 "ambient_station" = ps: with ps; [ aioambient ];
37 "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ];
···45 "apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess
46 "api" = ps: with ps; [ aiohttp-cors ];
47 "apns" = ps: with ps; [ ]; # missing inputs: apns2
48+ "apple_tv" = ps: with ps; [ pyatv ];
49 "apprise" = ps: with ps; [ apprise ];
50 "aprs" = ps: with ps; [ aprslib geopy ];
51 "aqualogic" = ps: with ps; [ aqualogic ];
···151 "cover" = ps: with ps; [ ];
152 "cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy
153 "cpuspeed" = ps: with ps; [ py-cpuinfo ];
154+ "crownstone" = ps: with ps; [ aiohttp-cors pyserial pyudev ]; # missing inputs: crownstone-cloud crownstone-sse crownstone-uart
155 "cups" = ps: with ps; [ pycups ];
156 "currencylayer" = ps: with ps; [ ];
157 "daikin" = ps: with ps; [ pydaikin ];
···163 "deconz" = ps: with ps; [ pydeconz ];
164 "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
165 "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
166+ "default_config" = ps: with ps; [ pynacl pyturbojpeg aiodiscover aiohttp-cors async-upnp-client emoji hass-nabucasa home-assistant-frontend ifaddr pillow pyserial pyudev scapy sqlalchemy zeroconf ];
167 "delijn" = ps: with ps; [ pydelijn ];
168 "deluge" = ps: with ps; [ deluge-client ];
169 "demo" = ps: with ps; [ aiohttp-cors ];
···188 "dlib_face_detect" = ps: with ps; [ face_recognition ];
189 "dlib_face_identify" = ps: with ps; [ face_recognition ];
190 "dlink" = ps: with ps; [ ]; # missing inputs: pyW215
191+ "dlna_dmr" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr zeroconf ];
192 "dnsip" = ps: with ps; [ aiodns ];
193 "dominos" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pizzapi
194 "doods" = ps: with ps; [ pillow pydoods ];
···216 "edimax" = ps: with ps; [ pyedimax ];
217 "edl21" = ps: with ps; [ pysml ];
218 "ee_brightbox" = ps: with ps; [ eebrightbox ];
219+ "efergy" = ps: with ps; [ ]; # missing inputs: pyefergy
220 "egardia" = ps: with ps; [ pythonegardia ];
221 "eight_sleep" = ps: with ps; [ pyeight ];
222 "elgato" = ps: with ps; [ elgato ];
···227 "emoncms" = ps: with ps; [ ];
228 "emoncms_history" = ps: with ps; [ ];
229 "emonitor" = ps: with ps; [ aioemonitor ];
230+ "emulated_hue" = ps: with ps; [ aiohttp-cors ifaddr ];
231 "emulated_kasa" = ps: with ps; [ sense-energy ];
232 "emulated_roku" = ps: with ps; [ aiohttp-cors emulated-roku ifaddr ];
233 "energy" = ps: with ps; [ aiohttp-cors sqlalchemy ];
···530 "mobile_app" = ps: with ps; [ pynacl pyturbojpeg aiohttp-cors emoji hass-nabucasa pillow ];
531 "mochad" = ps: with ps; [ ]; # missing inputs: pymochad
532 "modbus" = ps: with ps; [ pymodbus ];
533+ "modem_callerid" = ps: with ps; [ aiohttp-cors phone-modem pyserial pyudev ];
534 "modern_forms" = ps: with ps; [ aiomodernforms ];
535 "mold_indicator" = ps: with ps; [ ];
536 "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
···558 "nad" = ps: with ps; [ nad-receiver ];
559 "nam" = ps: with ps; [ nettigo-air-monitor ];
560 "namecheapdns" = ps: with ps; [ defusedxml ];
561+ "nanoleaf" = ps: with ps; [ aionanoleaf ];
562 "neato" = ps: with ps; [ aiohttp-cors pybotvac ];
563 "nederlandse_spoorwegen" = ps: with ps; [ nsapi ];
564 "nello" = ps: with ps; [ pynello ];
···805 "somfy_mylink" = ps: with ps; [ somfy-mylink-synergy ];
806 "sonarr" = ps: with ps; [ sonarr ];
807 "songpal" = ps: with ps; [ python-songpal ];
808+ "sonos" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr plexapi plexauth plexwebsocket soco zeroconf ];
809 "sony_projector" = ps: with ps; [ pysdcp ];
810 "soundtouch" = ps: with ps; [ aiohttp-cors ifaddr libsoundtouch zeroconf ];
811 "spaceapi" = ps: with ps; [ aiohttp-cors ];
···817 "sql" = ps: with ps; [ sqlalchemy ];
818 "squeezebox" = ps: with ps; [ pysqueezebox ];
819 "srp_energy" = ps: with ps; [ srpenergy ];
820+ "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr zeroconf ];
821 "starline" = ps: with ps; [ starline ];
822 "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
823 "startca" = ps: with ps; [ xmltodict ];
···870 "temper" = ps: with ps; [ ]; # missing inputs: temperusb
871 "template" = ps: with ps; [ ];
872 "tensorflow" = ps: with ps; [ numpy pillow pycocotools tensorflow ]; # missing inputs: tf-models-official
0873 "tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac
874 "thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke
875 "thethingsnetwork" = ps: with ps; [ ];
···891 "torque" = ps: with ps; [ aiohttp-cors ];
892 "totalconnect" = ps: with ps; [ total-connect-client ];
893 "touchline" = ps: with ps; [ ]; # missing inputs: pytouchline
894+ "tplink" = ps: with ps; [ aiohttp-cors ifaddr python-kasa ];
895 "tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected
896 "traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar
897 "trace" = ps: with ps; [ ];
0898 "tractive" = ps: with ps; [ aiotractive ];
899 "tradfri" = ps: with ps; [ pytradfri ];
900 "trafikverket_train" = ps: with ps; [ pytrafikverket ];
901 "trafikverket_weatherstation" = ps: with ps; [ pytrafikverket ];
902 "transmission" = ps: with ps; [ transmissionrpc ];
903+ "transport_nsw" = ps: with ps; [ pytransportnsw ];
904 "travisci" = ps: with ps; [ ]; # missing inputs: TravisPy
905 "trend" = ps: with ps; [ numpy ];
906 "tts" = ps: with ps; [ aiohttp-cors mutagen ];
907+ "tuya" = ps: with ps; [ tuya-iot-py-sdk ];
908 "twentemilieu" = ps: with ps; [ twentemilieu ];
909 "twilio" = ps: with ps; [ aiohttp-cors twilio ];
910 "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
···923 "upc_connect" = ps: with ps; [ connect-box ];
924 "upcloud" = ps: with ps; [ upcloud-api ];
925 "updater" = ps: with ps; [ ];
926+ "upnp" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr zeroconf ];
927 "uptime" = ps: with ps; [ ];
928 "uptimerobot" = ps: with ps; [ ]; # missing inputs: pyuptimerobot
929 "usb" = ps: with ps; [ aiohttp-cors pyserial pyudev ];
···934 "vacuum" = ps: with ps; [ ];
935 "vallox" = ps: with ps; [ ]; # missing inputs: vallox-websocket-api
936 "vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp
937+ "velbus" = ps: with ps; [ velbus-aio ];
938 "velux" = ps: with ps; [ pyvlx ];
939 "venstar" = ps: with ps; [ venstarcolortouch ];
940 "vera" = ps: with ps; [ pyvera ];
···962 "waterfurnace" = ps: with ps; [ waterfurnace ];
963 "watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf
964 "watson_tts" = ps: with ps; [ ibm-watson ];
965+ "watttime" = ps: with ps; [ aiowatttime ];
966 "waze_travel_time" = ps: with ps; [ wazeroutecalculator ];
967 "weather" = ps: with ps; [ ];
968 "webhook" = ps: with ps; [ aiohttp-cors ];
969 "webostv" = ps: with ps; [ aiopylgtv ];
970 "websocket_api" = ps: with ps; [ aiohttp-cors ];
971 "wemo" = ps: with ps; [ pywemo ];
972+ "whirlpool" = ps: with ps; [ whirlpool-sixth-sense ];
973 "whois" = ps: with ps; [ python-whois ];
974 "wiffi" = ps: with ps; [ wiffi ];
975 "wilight" = ps: with ps; [ pywilight ];
···996 "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client
997 "yale_smart_alarm" = ps: with ps; [ yalesmartalarmclient ];
998 "yamaha" = ps: with ps; [ rxv ];
999+ "yamaha_musiccast" = ps: with ps; [ aiohttp-cors aiomusiccast async-upnp-client ifaddr zeroconf ];
1000 "yandex_transport" = ps: with ps; [ aioymaps ];
1001 "yandextts" = ps: with ps; [ ];
1002 "yeelight" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr yeelight ];
···1009 "zeroconf" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ];
1010 "zerproc" = ps: with ps; [ pyzerproc ];
1011 "zestimate" = ps: with ps; [ xmltodict ];
1012+ "zha" = ps: with ps; [ aiohttp-cors bellows ifaddr pyserial-asyncio pyserial pyudev zeroconf zha-quirks zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
1013 "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
1014 "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
1015 "zodiac" = ps: with ps; [ ];
1016 "zone" = ps: with ps; [ ];
1017 "zoneminder" = ps: with ps; [ zm-py ];
1018+ "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ];
1019 "zwave_js" = ps: with ps; [ aiohttp-cors pyserial pyudev zwave-js-server-python ];
1020 };
1021}
+7-35
pkgs/servers/home-assistant/default.nix
···2122let
23 defaultOverrides = [
24- # Pinned due to API changes in async-upnp-client>=0.20.0, remove after
25- (self: super: {
26- async-upnp-client = super.async-upnp-client.overridePythonAttrs (oldAttrs: rec {
27- version = "0.20.0";
28- src = fetchFromGitHub {
29- owner = "StevenLooman";
30- repo = "async_upnp_client";
31- rev = "v${version}";
32- sha256 = "sha256-jxYGOljV7tcsiAgpOhbXj7g7AwyP1kDDC83PiHG6ZFg=";
33- };
34- });
35- })
36-37 # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
38 (mkOverride "python-slugify" "4.0.1" "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270")
39···52 });
53 })
5455- # Pinned due to API changes in pyjwt>=2.0
56- (self: super: {
57- pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
58- version = "1.7.1";
59- src = oldAttrs.src.override {
60- inherit version;
61- sha256 = "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd";
62- };
63- disabledTests = [
64- "test_ec_verify_should_return_false_if_signature_invalid"
65- ];
66- });
67- })
68-69- # Pinned due to API changes in pylast 4.2.1
70- (mkOverride "pylast" "4.2.0"
71- "0zd0dn2l738ndz62vpa751z0ldnm91dcz9zzbvxv53r08l0s9yf3")
72-73 # Pinned due to API changes in pyruckus>0.12
74 (self: super: {
75 pyruckus = super.pyruckus.overridePythonAttrs (oldAttrs: rec {
···145 extraBuildInputs = extraPackages py.pkgs;
146147 # Don't forget to run parse-requirements.py after updating
148- hassVersion = "2021.9.7";
149150in with py.pkgs; buildPythonApplication rec {
151 pname = "homeassistant";
···162 owner = "home-assistant";
163 repo = "core";
164 rev = version;
165- sha256 = "1vcdnxh671iqhlbf6811j537by2i03fhryp9r9x77477y2y0xd6k";
166 };
167168 # leave this in, so users don't have to constantly update their downstream patch handling
···337 "ecobee"
338 "econet"
339 "ee_brightbox"
340- "efergy"
341 "elgato"
342 "elkm1"
343 "emonitor"
···681 "trace"
682 "tradfri"
683 "transmission"
0684 "trend"
685 "tts"
686 "tuya"
···800 "--deselect tests/components/wemo/test_sensor.py::TestInsightTodayEnergy::test_state_unavailable"
801 "--deselect tests/components/wemo/test_sensor.py::TestInsightCurrentPower::test_state_unavailable"
802 # tado/test_climate.py: Tries to connect to my.tado.com
803- "--deselect tests/components/tado/test_climate.py::test_air_con["
804 # helpers/test_system_info.py: AssertionError: assert 'Unknown' == 'Home Assistant Container'
805 "--deselect tests/helpers/test_system_info.py::test_container_installationtype"
806 # tests are located in tests/
···813 "tests/components"
814 # pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
815 "tests/auth/mfa_modules/test_notify.py"
000816 ];
817818 disabledTests = [
···2122let
23 defaultOverrides = [
000000000000024 # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
25 (mkOverride "python-slugify" "4.0.1" "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270")
26···39 });
40 })
4100000000000000000042 # Pinned due to API changes in pyruckus>0.12
43 (self: super: {
44 pyruckus = super.pyruckus.overridePythonAttrs (oldAttrs: rec {
···114 extraBuildInputs = extraPackages py.pkgs;
115116 # Don't forget to run parse-requirements.py after updating
117+ hassVersion = "2021.10.0";
118119in with py.pkgs; buildPythonApplication rec {
120 pname = "homeassistant";
···131 owner = "home-assistant";
132 repo = "core";
133 rev = version;
134+ sha256 = "0m54ynx0i4a6wljg6d9i6xa79c15cqah5cgaswgrbaxhjw5q78iv";
135 };
136137 # leave this in, so users don't have to constantly update their downstream patch handling
···306 "ecobee"
307 "econet"
308 "ee_brightbox"
0309 "elgato"
310 "elkm1"
311 "emonitor"
···649 "trace"
650 "tradfri"
651 "transmission"
652+ "transport_nsw"
653 "trend"
654 "tts"
655 "tuya"
···769 "--deselect tests/components/wemo/test_sensor.py::TestInsightTodayEnergy::test_state_unavailable"
770 "--deselect tests/components/wemo/test_sensor.py::TestInsightCurrentPower::test_state_unavailable"
771 # tado/test_climate.py: Tries to connect to my.tado.com
772+ "--deselect tests/components/tado/test_climate.py::test_air_con"
773 # helpers/test_system_info.py: AssertionError: assert 'Unknown' == 'Home Assistant Container'
774 "--deselect tests/helpers/test_system_info.py::test_container_installationtype"
775 # tests are located in tests/
···782 "tests/components"
783 # pyotp since v2.4.0 complains about the short mock keys, hass pins v2.3.0
784 "tests/auth/mfa_modules/test_notify.py"
785+ # emulated_hue/test_upnp.py: Tries to establish the public ipv4 address
786+ "tests/components/emulated_hue/test_upnp.py"
787+788 ];
789790 disabledTests = [
+2-2
pkgs/servers/home-assistant/frontend.nix
···4 # the frontend version corresponding to a specific home-assistant version can be found here
5 # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
6 pname = "home-assistant-frontend";
7- version = "20210830.0";
89 src = fetchPypi {
10 inherit pname version;
11- sha256 = "sha256-4sNCnYFQ4IjmMPj7axgienZUMDo+GwTJ38cEf0iZzJI=";
12 };
1314 # there is nothing to strip in this package
···4 # the frontend version corresponding to a specific home-assistant version can be found here
5 # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
6 pname = "home-assistant-frontend";
7+ version = "20211006.0";
89 src = fetchPypi {
10 inherit pname version;
11+ sha256 = "sha256-rlscTHqa1TMsIVW7kWFGR/feak0XewDRkybpo8dPXj0=";
12 };
1314 # there is nothing to strip in this package