nixpkgs/pkgs/servers/home-assistant/component-packages.nix
2021-04-24 20:22:21 +02:00

990 lines
53 KiB
Nix

# Generated by parse-requirements.py
# Do not edit!
{
version = "2021.4.6";
components = {
"abode" = ps: with ps; [ abodepy ];
"accuweather" = ps: with ps; [ accuweather ];
"acer_projector" = ps: with ps; [ pyserial ];
"acmeda" = ps: with ps; [ aiopulse ];
"actiontec" = ps: with ps; [ ];
"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; [ ];
"airly" = ps: with ps; [ airly ];
"airnow" = ps: with ps; [ pyairnow ];
"airvisual" = ps: with ps; [ pyairvisual ];
"aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect
"alarm_control_panel" = ps: with ps; [ ];
"alarmdecoder" = ps: with ps; [ adext ];
"alert" = ps: with ps; [ ];
"alexa" = ps: with ps; [ aiohttp-cors ];
"almond" = ps: with ps; [ aiohttp-cors pyalmond ];
"alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage
"amazon_polly" = ps: with ps; [ boto3 ];
"ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ];
"ambient_station" = ps: with ps; [ aioambient ];
"amcrest" = ps: with ps; [ amcrest ha-ffmpeg ];
"ampio" = ps: with ps; [ ]; # missing inputs: asmog
"analytics" = ps: with ps; [ aiohttp-cors ];
"android_ip_webcam" = ps: with ps; [ pydroid-ipcam ];
"androidtv" = ps: with ps; [ adb-shell androidtv pure-python-adb ];
"anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant
"anthemav" = ps: with ps; [ ]; # missing inputs: anthemav
"apache_kafka" = ps: with ps; [ aiokafka ];
"apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess
"api" = ps: with ps; [ aiohttp-cors ];
"apns" = ps: with ps; [ ]; # missing inputs: apns2
"apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv zeroconf ];
"apprise" = ps: with ps; [ apprise ];
"aprs" = ps: with ps; [ geopy ]; # missing inputs: aprslib
"aqualogic" = ps: with ps; [ aqualogic ];
"aquostv" = ps: with ps; [ ]; # missing inputs: sharp_aquos_rc
"arcam_fmj" = ps: with ps; [ ]; # missing inputs: arcam-fmj
"arduino" = ps: with ps; [ ]; # missing inputs: PyMata
"arest" = ps: with ps; [ ];
"arlo" = ps: with ps; [ ha-ffmpeg pyarlo ];
"arris_tg2492lg" = ps: with ps; [ ]; # missing inputs: arris-tg2492lg
"aruba" = ps: with ps; [ pexpect ];
"arwn" = ps: with ps; [ aiohttp-cors paho-mqtt ];
"asterisk_cdr" = ps: with ps; [ ]; # missing inputs: asterisk_mbox
"asterisk_mbox" = ps: with ps; [ ]; # missing inputs: asterisk_mbox
"asuswrt" = ps: with ps; [ aioasuswrt ];
"atag" = ps: with ps; [ ]; # missing inputs: pyatag
"aten_pe" = ps: with ps; [ atenpdu ];
"atome" = ps: with ps; [ ]; # missing inputs: pyatome
"august" = ps: with ps; [ yalexs ];
"aurora" = ps: with ps; [ auroranoaa ];
"aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy
"auth" = ps: with ps; [ aiohttp-cors ];
"automation" = ps: with ps; [ aiohttp-cors ];
"avea" = ps: with ps; [ avea ];
"avion" = ps: with ps; [ avion ];
"awair" = ps: with ps; [ python-awair ];
"aws" = ps: with ps; [ aiobotocore ];
"axis" = ps: with ps; [ aiohttp-cors axis paho-mqtt ];
"azure_devops" = ps: with ps; [ ]; # missing inputs: aioazuredevops
"azure_event_hub" = ps: with ps; [ ]; # missing inputs: azure-eventhub
"azure_service_bus" = ps: with ps; [ azure-servicebus ];
"baidu" = ps: with ps; [ ]; # missing inputs: baidu-aip
"bayesian" = ps: with ps; [ ];
"bbb_gpio" = ps: with ps; [ ]; # missing inputs: Adafruit_BBIO
"bbox" = ps: with ps; [ ]; # missing inputs: pybbox
"beewi_smartclim" = ps: with ps; [ ]; # missing inputs: beewi_smartclim
"bh1750" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense
"binary_sensor" = ps: with ps; [ ];
"bitcoin" = ps: with ps; [ blockchain ];
"bizkaibus" = ps: with ps; [ ]; # missing inputs: bizkaibus
"blackbird" = ps: with ps; [ pyblackbird ];
"blebox" = ps: with ps; [ ]; # missing inputs: blebox_uniapi
"blink" = ps: with ps; [ ]; # missing inputs: blinkpy
"blinksticklight" = ps: with ps; [ BlinkStick ];
"blinkt" = ps: with ps; [ ]; # missing inputs: blinkt
"blockchain" = ps: with ps; [ ]; # missing inputs: python-blockchain-api
"bloomsky" = ps: with ps; [ ];
"blueprint" = ps: with ps; [ ];
"bluesound" = ps: with ps; [ xmltodict ];
"bluetooth_le_tracker" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
"bluetooth_tracker" = ps: with ps; [ bt_proximity pybluez ];
"bme280" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense
"bme680" = ps: with ps; [ bme680 smbus-cffi ];
"bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
"bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected
"bond" = ps: with ps; [ ]; # missing inputs: bond-api
"braviatv" = ps: with ps; [ bravia-tv ];
"broadlink" = ps: with ps; [ broadlink ];
"brother" = ps: with ps; [ brother ];
"brottsplatskartan" = ps: with ps; [ brottsplatskartan ];
"browser" = ps: with ps; [ ];
"brunt" = ps: with ps; [ ]; # missing inputs: brunt
"bsblan" = ps: with ps; [ bsblan ];
"bt_home_hub_5" = ps: with ps; [ ]; # missing inputs: bthomehub5-devicelist
"bt_smarthub" = ps: with ps; [ ]; # missing inputs: btsmarthub_devicelist
"buienradar" = ps: with ps; [ ]; # missing inputs: buienradar
"caldav" = ps: with ps; [ caldav ];
"calendar" = ps: with ps; [ aiohttp-cors ];
"camera" = ps: with ps; [ aiohttp-cors ];
"canary" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: py-canary
"cast" = ps: with ps; [ aiohttp-cors hass-nabucasa mutagen plexapi plexauth plexwebsocket PyChromecast zeroconf ];
"cert_expiry" = ps: with ps; [ ];
"channels" = ps: with ps; [ pychannels ];
"circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook
"cisco_ios" = ps: with ps; [ pexpect ];
"cisco_mobility_express" = ps: with ps; [ ciscomobilityexpress ];
"cisco_webex_teams" = ps: with ps; [ webexteamssdk ];
"citybikes" = ps: with ps; [ ];
"clementine" = ps: with ps; [ ]; # missing inputs: python-clementine-remote
"clickatell" = ps: with ps; [ ];
"clicksend" = ps: with ps; [ ];
"clicksend_tts" = ps: with ps; [ ];
"climacell" = ps: with ps; [ 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
"color_extractor" = ps: with ps; [ ]; # missing inputs: colorthief
"comed_hourly_pricing" = ps: with ps; [ ];
"comfoconnect" = ps: with ps; [ pycomfoconnect ];
"command_line" = ps: with ps; [ ];
"concord232" = ps: with ps; [ ]; # missing inputs: concord232
"config" = ps: with ps; [ aiohttp-cors ];
"configurator" = ps: with ps; [ ];
"control4" = ps: with ps; [ ]; # missing inputs: pyControl4
"conversation" = ps: with ps; [ aiohttp-cors ];
"coolmaster" = ps: with ps; [ ]; # missing inputs: pycoolmasternet-async
"coronavirus" = ps: with ps; [ coronavirus ];
"counter" = ps: with ps; [ ];
"cover" = ps: with ps; [ ];
"cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy
"cpuspeed" = ps: with ps; [ py-cpuinfo ];
"cups" = ps: with ps; [ pycups ];
"currencylayer" = ps: with ps; [ ];
"daikin" = ps: with ps; [ pydaikin ];
"danfoss_air" = ps: with ps; [ pydanfossair ];
"darksky" = ps: with ps; [ python-forecastio ];
"datadog" = ps: with ps; [ datadog ];
"ddwrt" = ps: with ps; [ ];
"debugpy" = ps: with ps; [ debugpy ];
"deconz" = ps: with ps; [ pydeconz ];
"decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
"decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
"default_config" = ps: with ps; [ pynacl aiodiscover 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 ];
"denon" = ps: with ps; [ ];
"denonavr" = ps: with ps; [ denonavr getmac ];
"derivative" = ps: with ps; [ ];
"deutsche_bahn" = ps: with ps; [ schiene ];
"device_automation" = ps: with ps; [ ];
"device_sun_light_trigger" = ps: with ps; [ aiohttp-cors pillow ];
"device_tracker" = ps: with ps; [ ];
"devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api zeroconf ];
"dexcom" = ps: with ps; [ pydexcom ];
"dhcp" = ps: with ps; [ aiodiscover scapy ];
"dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT
"dialogflow" = ps: with ps; [ aiohttp-cors ];
"digital_ocean" = ps: with ps; [ digital-ocean ];
"digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
"directv" = ps: with ps; [ ]; # missing inputs: directv
"discogs" = ps: with ps; [ discogs_client ];
"discord" = ps: with ps; [ discordpy ];
"discovery" = ps: with ps; [ aiohttp-cors netdisco zeroconf ];
"dlib_face_detect" = ps: with ps; [ face_recognition ];
"dlib_face_identify" = ps: with ps; [ face_recognition ];
"dlink" = ps: with ps; [ ]; # missing inputs: pyW215
"dlna_dmr" = ps: with ps; [ async-upnp-client ];
"dnsip" = ps: with ps; [ aiodns ];
"dominos" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pizzapi
"doods" = ps: with ps; [ pillow ]; # missing inputs: pydoods
"doorbird" = ps: with ps; [ aiohttp-cors ]; # missing inputs: doorbirdpy
"dovado" = ps: with ps; [ ]; # missing inputs: dovado
"downloader" = ps: with ps; [ ];
"dsmr" = ps: with ps; [ dsmr-parser ];
"dsmr_reader" = ps: with ps; [ aiohttp-cors paho-mqtt ];
"dte_energy_bridge" = ps: with ps; [ ];
"dublin_bus_transport" = ps: with ps; [ ];
"duckdns" = ps: with ps; [ ];
"dunehd" = ps: with ps; [ ]; # missing inputs: pdunehd
"dwd_weather_warnings" = ps: with ps; [ dwdwfsapi ];
"dweet" = ps: with ps; [ ]; # missing inputs: dweepy
"dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices
"dyson" = ps: with ps; [ aiohttp-cors libpurecool zeroconf ];
"eafm" = ps: with ps; [ aioeafm ];
"ebox" = ps: with ps; [ ]; # missing inputs: pyebox
"ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy
"ecoal_boiler" = ps: with ps; [ ]; # missing inputs: ecoaliface
"ecobee" = ps: with ps; [ ]; # missing inputs: python-ecobee-api
"econet" = ps: with ps; [ pyeconet ];
"ecovacs" = ps: with ps; [ ]; # missing inputs: sucks
"eddystone_temperature" = ps: with ps; [ construct ]; # missing inputs: beacontools[scan]
"edimax" = ps: with ps; [ pyedimax ];
"edl21" = ps: with ps; [ ]; # missing inputs: pysml
"ee_brightbox" = ps: with ps; [ ]; # missing inputs: eebrightbox
"efergy" = ps: with ps; [ ];
"egardia" = ps: with ps; [ pythonegardia ];
"eight_sleep" = ps: with ps; [ pyeight ];
"elgato" = ps: with ps; [ ]; # missing inputs: elgato
"eliqonline" = ps: with ps; [ ]; # missing inputs: eliqonline
"elkm1" = ps: with ps; [ ]; # missing inputs: elkm1-lib
"elv" = ps: with ps; [ ]; # missing inputs: pypca
"emby" = ps: with ps; [ pyemby ];
"emoncms" = ps: with ps; [ ];
"emoncms_history" = ps: with ps; [ ];
"emulated_hue" = ps: with ps; [ aiohttp-cors ];
"emulated_kasa" = ps: with ps; [ ]; # missing inputs: sense_energy
"emulated_roku" = ps: with ps; [ ]; # missing inputs: emulated_roku
"enigma2" = ps: with ps; [ openwebifpy ];
"enocean" = ps: with ps; [ ]; # missing inputs: enocean
"enphase_envoy" = ps: with ps; [ ]; # missing inputs: envoy_reader
"entur_public_transport" = ps: with ps; [ ]; # missing inputs: enturclient
"environment_canada" = ps: with ps; [ ]; # missing inputs: env_canada
"envirophat" = ps: with ps; [ smbus-cffi ]; # missing inputs: envirophat
"envisalink" = ps: with ps; [ pyenvisalink ];
"ephember" = ps: with ps; [ ]; # missing inputs: pyephember
"epson" = ps: with ps; [ ]; # missing inputs: epson-projector
"epsonworkforce" = ps: with ps; [ ]; # missing inputs: epsonprinter
"eq3btsmart" = ps: with ps; [ construct ]; # missing inputs: python-eq3bt
"esphome" = ps: with ps; [ aioesphomeapi aiohttp-cors zeroconf ];
"essent" = ps: with ps; [ ]; # missing inputs: PyEssent
"etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api
"eufy" = ps: with ps; [ ]; # missing inputs: lakeside
"everlights" = ps: with ps; [ pyeverlights ];
"evohome" = ps: with ps; [ evohome-async ];
"ezviz" = ps: with ps; [ pyezviz ];
"faa_delays" = ps: with ps; [ faadelays ];
"facebook" = ps: with ps; [ ];
"facebox" = ps: with ps; [ ];
"fail2ban" = ps: with ps; [ ];
"familyhub" = ps: with ps; [ ]; # missing inputs: python-family-hub-local
"fan" = ps: with ps; [ ];
"fastdotcom" = ps: with ps; [ ]; # missing inputs: fastdotcom
"feedreader" = ps: with ps; [ feedparser ];
"ffmpeg" = ps: with ps; [ ha-ffmpeg ];
"ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
"ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
"fibaro" = ps: with ps; [ ]; # missing inputs: fiblary3
"fido" = ps: with ps; [ pyfido ];
"file" = ps: with ps; [ ];
"filesize" = ps: with ps; [ ];
"filter" = ps: with ps; [ aiohttp-cors sqlalchemy ];
"fints" = ps: with ps; [ fints ];
"fireservicerota" = ps: with ps; [ ]; # missing inputs: pyfireservicerota
"firmata" = ps: with ps; [ pymata-express ];
"fitbit" = ps: with ps; [ aiohttp-cors fitbit ];
"fixer" = ps: with ps; [ fixerio ];
"fleetgo" = ps: with ps; [ ]; # missing inputs: ritassist
"flexit" = ps: with ps; [ pymodbus ]; # missing inputs: pyflexit
"flic" = ps: with ps; [ ]; # missing inputs: pyflic-homeassistant
"flick_electric" = ps: with ps; [ ]; # missing inputs: PyFlick
"flo" = ps: with ps; [ aioflo ];
"flock" = ps: with ps; [ ];
"flume" = ps: with ps; [ pyflume ];
"flunearyou" = ps: with ps; [ pyflunearyou ];
"flux" = ps: with ps; [ ];
"flux_led" = ps: with ps; [ flux-led ];
"folder" = ps: with ps; [ ];
"folder_watcher" = ps: with ps; [ watchdog ];
"foobot" = ps: with ps; [ ]; # missing inputs: foobot_async
"forked_daapd" = ps: with ps; [ ]; # missing inputs: pyforked-daapd pylibrespot-java
"fortios" = ps: with ps; [ fortiosapi ];
"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; [ freebox-api ];
"freedns" = ps: with ps; [ ];
"fritz" = ps: with ps; [ fritzconnection ];
"fritzbox" = ps: with ps; [ pyfritzhome ];
"fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
"fritzbox_netmonitor" = ps: with ps; [ fritzconnection ];
"fronius" = ps: with ps; [ ]; # missing inputs: pyfronius
"frontend" = ps: with ps; [ aiohttp-cors pillow ];
"frontier_silicon" = ps: with ps; [ ]; # missing inputs: afsapi
"futurenow" = ps: with ps; [ pyfnip ];
"garadget" = ps: with ps; [ ];
"garmin_connect" = ps: with ps; [ ]; # missing inputs: garminconnect
"gc100" = ps: with ps; [ ]; # missing inputs: python-gc100
"gdacs" = ps: with ps; [ ]; # missing inputs: aio_georss_gdacs
"geizhals" = ps: with ps; [ ]; # missing inputs: geizhals
"generic" = ps: with ps; [ ];
"generic_thermostat" = ps: with ps; [ ];
"geniushub" = ps: with ps; [ ]; # missing inputs: geniushub-client
"geo_json_events" = ps: with ps; [ geojson-client ];
"geo_location" = ps: with ps; [ ];
"geo_rss_events" = ps: with ps; [ ]; # missing inputs: georss_generic_client
"geofency" = ps: with ps; [ aiohttp-cors ];
"geonetnz_quakes" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_quakes
"geonetnz_volcano" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_volcano
"gios" = ps: with ps; [ ]; # missing inputs: gios
"github" = ps: with ps; [ PyGithub ];
"gitlab_ci" = ps: with ps; [ python-gitlab ];
"gitter" = ps: with ps; [ ]; # missing inputs: gitterpy
"glances" = ps: with ps; [ glances-api ];
"gntp" = ps: with ps; [ gntp ];
"goalfeed" = ps: with ps; [ ]; # missing inputs: pysher
"goalzero" = ps: with ps; [ ]; # missing inputs: goalzero
"gogogate2" = ps: with ps; [ ]; # missing inputs: gogogate2-api
"google" = ps: with ps; [ google-api-python-client httplib2 oauth2client ];
"google_assistant" = ps: with ps; [ aiohttp-cors ];
"google_cloud" = ps: with ps; [ google-cloud-texttospeech ];
"google_domains" = ps: with ps; [ ];
"google_maps" = ps: with ps; [ ]; # missing inputs: locationsharinglib
"google_pubsub" = ps: with ps; [ google-cloud-pubsub ];
"google_translate" = ps: with ps; [ gtts ];
"google_travel_time" = ps: with ps; [ googlemaps ];
"google_wifi" = ps: with ps; [ ];
"gpmdp" = ps: with ps; [ websocket_client ];
"gpsd" = ps: with ps; [ gps3 ];
"gpslogger" = ps: with ps; [ aiohttp-cors ];
"graphite" = ps: with ps; [ ];
"gree" = ps: with ps; [ ]; # missing inputs: greeclimate
"greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor
"greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality
"group" = ps: with ps; [ ];
"growatt_server" = ps: with ps; [ ]; # missing inputs: growattServer
"gstreamer" = ps: with ps; [ ]; # missing inputs: gstreamer-player
"gtfs" = ps: with ps; [ ]; # missing inputs: pygtfs
"guardian" = ps: with ps; [ aioguardian ];
"habitica" = ps: with ps; [ ]; # missing inputs: habitipy
"hangouts" = ps: with ps; [ ]; # missing inputs: hangups
"harman_kardon_avr" = ps: with ps; [ ]; # missing inputs: hkavr
"harmony" = ps: with ps; [ aioharmony ];
"hassio" = ps: with ps; [ aiohttp-cors pillow ];
"haveibeenpwned" = ps: with ps; [ ];
"hddtemp" = ps: with ps; [ ];
"hdmi_cec" = ps: with ps; [ pycec ];
"heatmiser" = ps: with ps; [ ]; # missing inputs: heatmiserV3
"heos" = ps: with ps; [ ]; # missing inputs: pyheos
"here_travel_time" = ps: with ps; [ ]; # missing inputs: herepy
"hikvision" = ps: with ps; [ ]; # missing inputs: pyhik
"hikvisioncam" = ps: with ps; [ ]; # missing inputs: hikvision
"hisense_aehw4a1" = ps: with ps; [ ]; # missing inputs: pyaehw4a1
"history" = ps: with ps; [ aiohttp-cors sqlalchemy ];
"history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ];
"hitron_coda" = ps: with ps; [ ];
"hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi
"hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
"home_connect" = ps: with ps; [ aiohttp-cors homeconnect ];
"home_plus_control" = ps: with ps; [ aiohttp-cors homepluscontrol ];
"homeassistant" = ps: with ps; [ ];
"homekit" = ps: with ps; [ HAP-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg zeroconf ];
"homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors zeroconf ];
"homematic" = ps: with ps; [ pyhomematic ];
"homematicip_cloud" = ps: with ps; [ homematicip ];
"homeworks" = ps: with ps; [ ]; # missing inputs: pyhomeworks
"honeywell" = ps: with ps; [ ]; # missing inputs: somecomfort
"horizon" = ps: with ps; [ ]; # missing inputs: horimote
"hp_ilo" = ps: with ps; [ python-hpilo ];
"html5" = ps: with ps; [ aiohttp-cors pywebpush ];
"http" = ps: with ps; [ aiohttp-cors ];
"htu21d" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense
"huawei_lte" = ps: with ps; [ getmac stringcase url-normalize ]; # missing inputs: huawei-lte-api
"huawei_router" = ps: with ps; [ ];
"hue" = ps: with ps; [ aiohue ];
"huisbaasje" = ps: with ps; [ ]; # missing inputs: huisbaasje-client
"humidifier" = ps: with ps; [ ];
"hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi
"hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti
"hydrawise" = ps: with ps; [ hydrawiser ];
"hyperion" = ps: with ps; [ hyperion-py ];
"iammeter" = ps: with ps; [ ]; # missing inputs: iammeter
"iaqualink" = ps: with ps; [ iaqualink ];
"icloud" = ps: with ps; [ pyicloud ];
"idteck_prox" = ps: with ps; [ ]; # missing inputs: rfk101py
"ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
"iglo" = ps: with ps; [ ]; # missing inputs: iglo
"ign_sismologia" = ps: with ps; [ ]; # missing inputs: georss_ign_sismologia_client
"ihc" = ps: with ps; [ defusedxml ]; # missing inputs: ihcsdk
"image" = ps: with ps; [ aiohttp-cors pillow ];
"image_processing" = ps: with ps; [ aiohttp-cors ];
"imap" = ps: with ps; [ aioimaplib ];
"imap_email_content" = ps: with ps; [ ];
"incomfort" = ps: with ps; [ incomfort-client ];
"influxdb" = ps: with ps; [ influxdb-client influxdb ];
"input_boolean" = ps: with ps; [ ];
"input_datetime" = ps: with ps; [ ];
"input_number" = ps: with ps; [ ];
"input_select" = ps: with ps; [ ];
"input_text" = ps: with ps; [ ];
"insteon" = ps: with ps; [ pyinsteon ];
"integration" = ps: with ps; [ ];
"intent" = ps: with ps; [ aiohttp-cors ];
"intent_script" = ps: with ps; [ ];
"intesishome" = ps: with ps; [ pyintesishome ];
"ios" = ps: with ps; [ aiohttp-cors zeroconf ];
"iota" = ps: with ps; [ ]; # missing inputs: pyota
"iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
"ipma" = ps: with ps; [ ]; # missing inputs: pyipma
"ipp" = ps: with ps; [ pyipp ];
"iqvia" = ps: with ps; [ numpy pyiqvia ];
"irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
"islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator
"iss" = ps: with ps; [ ]; # missing inputs: pyiss
"isy994" = ps: with ps; [ ]; # missing inputs: pyisy
"itach" = ps: with ps; [ ]; # missing inputs: pyitachip2ir
"itunes" = ps: with ps; [ ];
"izone" = ps: with ps; [ ]; # missing inputs: python-izone
"jewish_calendar" = ps: with ps; [ ]; # missing inputs: hdate
"joaoapps_join" = ps: with ps; [ ]; # missing inputs: python-join-api
"juicenet" = ps: with ps; [ ]; # missing inputs: python-juicenet
"kaiterra" = ps: with ps; [ ]; # missing inputs: kaiterra-async-client
"kankun" = ps: with ps; [ ];
"keba" = ps: with ps; [ ]; # missing inputs: keba-kecontact
"keenetic_ndms2" = ps: with ps; [ ]; # missing inputs: ndms2_client
"kef" = ps: with ps; [ aiokef getmac ];
"keyboard" = ps: with ps; [ ]; # missing inputs: pyuserinput
"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; [ pykodi ];
"konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected
"kulersky" = ps: with ps; [ ]; # missing inputs: pykulersky
"kwb" = ps: with ps; [ ]; # missing inputs: pykwb
"lacrosse" = ps: with ps; [ pylacrosse ];
"lametric" = ps: with ps; [ ]; # missing inputs: lmnotify
"lannouncer" = ps: with ps; [ ];
"lastfm" = ps: with ps; [ pylast ];
"launch_library" = ps: with ps; [ ]; # missing inputs: pylaunches
"lcn" = ps: with ps; [ pypck ];
"lg_netcast" = ps: with ps; [ ]; # missing inputs: pylgnetcast-homeassistant
"lg_soundbar" = ps: with ps; [ ]; # missing inputs: temescal
"life360" = ps: with ps; [ ]; # missing inputs: life360
"lifx" = ps: with ps; [ aiolifx aiolifx-effects ];
"lifx_cloud" = ps: with ps; [ ];
"lifx_legacy" = ps: with ps; [ ]; # missing inputs: liffylights
"light" = ps: with ps; [ ];
"lightwave" = ps: with ps; [ ]; # missing inputs: lightwave
"limitlessled" = ps: with ps; [ limitlessled ];
"linksys_smart" = ps: with ps; [ ];
"linode" = ps: with ps; [ linode-api ];
"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; [ pylitterbot ];
"llamalab_automate" = ps: with ps; [ ];
"local_file" = ps: with ps; [ ];
"local_ip" = ps: with ps; [ ];
"locative" = ps: with ps; [ aiohttp-cors ];
"lock" = ps: with ps; [ ];
"logbook" = ps: with ps; [ aiohttp-cors pillow sqlalchemy ];
"logentries" = ps: with ps; [ ];
"logger" = ps: with ps; [ ];
"logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg ]; # missing inputs: logi_circle
"london_air" = ps: with ps; [ ];
"london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status
"loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy
"lovelace" = ps: with ps; [ ];
"luci" = ps: with ps; [ openwrt-luci-rpc ];
"luftdaten" = ps: with ps; [ luftdaten ];
"lupusec" = ps: with ps; [ ]; # missing inputs: lupupy
"lutron" = ps: with ps; [ pylutron ];
"lutron_caseta" = ps: with ps; [ 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
"manual" = ps: with ps; [ ];
"manual_mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
"map" = ps: with ps; [ aiohttp-cors pillow ];
"marytts" = ps: with ps; [ ]; # missing inputs: speak2mary
"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 ];
"media_source" = ps: with ps; [ aiohttp-cors ];
"mediaroom" = ps: with ps; [ pymediaroom ];
"melcloud" = ps: with ps; [ ]; # missing inputs: pymelcloud
"melissa" = ps: with ps; [ ]; # missing inputs: py-melissa-climate
"meraki" = ps: with ps; [ aiohttp-cors ];
"message_bird" = ps: with ps; [ ]; # missing inputs: messagebird
"met" = ps: with ps; [ pymetno ];
"meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance-api
"meteoalarm" = ps: with ps; [ ]; # missing inputs: meteoalertapi
"metoffice" = ps: with ps; [ ]; # missing inputs: datapoint
"mfi" = ps: with ps; [ ]; # missing inputs: mficlient
"mhz19" = ps: with ps; [ ]; # missing inputs: pmsensor
"microsoft" = ps: with ps; [ ]; # missing inputs: pycsspeechtts
"microsoft_face" = ps: with ps; [ aiohttp-cors ];
"microsoft_face_detect" = ps: with ps; [ aiohttp-cors ];
"microsoft_face_identify" = ps: with ps; [ aiohttp-cors ];
"miflora" = ps: with ps; [ bluepy ]; # missing inputs: miflora
"mikrotik" = ps: with ps; [ librouteros ];
"mill" = ps: with ps; [ ]; # missing inputs: millheater
"min_max" = ps: with ps; [ ];
"minecraft_server" = ps: with ps; [ aiodns getmac mcstatus ];
"minio" = ps: with ps; [ minio ];
"mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt
"mjpeg" = ps: with ps; [ ];
"mobile_app" = ps: with ps; [ pynacl aiohttp-cors emoji hass-nabucasa pillow ];
"mochad" = ps: with ps; [ ]; # missing inputs: pymochad
"modbus" = ps: with ps; [ pymodbus ];
"modem_callerid" = ps: with ps; [ ]; # missing inputs: basicmodem
"mold_indicator" = ps: with ps; [ ];
"monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
"moon" = ps: with ps; [ ];
"motion_blinds" = ps: with ps; [ ]; # missing inputs: motionblinds
"mpchc" = ps: with ps; [ ];
"mpd" = ps: with ps; [ mpd2 ];
"mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
"mqtt_eventstream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
"mqtt_json" = ps: with ps; [ aiohttp-cors paho-mqtt ];
"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 ];
"mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt pymysensors ];
"mystrom" = ps: with ps; [ aiohttp-cors python-mystrom ];
"mythicbeastsdns" = ps: with ps; [ ]; # missing inputs: mbddns
"n26" = ps: with ps; [ ]; # missing inputs: n26
"nad" = ps: with ps; [ nad-receiver ];
"namecheapdns" = ps: with ps; [ defusedxml ];
"nanoleaf" = ps: with ps; [ pynanoleaf ];
"neato" = ps: with ps; [ aiohttp-cors pybotvac ];
"nederlandse_spoorwegen" = ps: with ps; [ ]; # missing inputs: nsapi
"nello" = ps: with ps; [ ]; # missing inputs: pynello
"ness_alarm" = ps: with ps; [ ]; # missing inputs: nessclient
"nest" = ps: with ps; [ aiohttp-cors ha-ffmpeg python-nest ]; # missing inputs: google-nest-sdm
"netatmo" = ps: with ps; [ aiohttp-cors hass-nabucasa pyatmo ];
"netdata" = ps: with ps; [ netdata ];
"netgear" = ps: with ps; [ ]; # missing inputs: pynetgear
"netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
"netio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pynetio
"neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
"nexia" = ps: with ps; [ nexia ];
"nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
"nextcloud" = ps: with ps; [ ]; # missing inputs: nextcloudmonitor
"nfandroidtv" = ps: with ps; [ ];
"nightscout" = ps: with ps; [ ]; # missing inputs: py-nightscout
"niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control
"nilu" = ps: with ps; [ ]; # missing inputs: niluclient
"nissan_leaf" = ps: with ps; [ ]; # missing inputs: pycarwings2
"nmap_tracker" = ps: with ps; [ getmac python-nmap ];
"nmbs" = ps: with ps; [ ]; # missing inputs: pyrail
"no_ip" = ps: with ps; [ ];
"noaa_tides" = ps: with ps; [ ]; # missing inputs: noaa-coops
"norway_air" = ps: with ps; [ pymetno ];
"notify" = ps: with ps; [ ];
"notify_events" = ps: with ps; [ ]; # missing inputs: notify-events
"notion" = ps: with ps; [ aionotion ];
"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
"nuki" = ps: with ps; [ pynuki ];
"numato" = ps: with ps; [ ]; # missing inputs: numato-gpio
"number" = ps: with ps; [ ];
"nut" = ps: with ps; [ ]; # missing inputs: pynut2
"nws" = ps: with ps; [ pynws ];
"nx584" = ps: with ps; [ ]; # missing inputs: pynx584
"nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
"oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
"obihai" = ps: with ps; [ ]; # missing inputs: pyobihai
"octoprint" = ps: with ps; [ aiohttp-cors netdisco zeroconf ];
"oem" = ps: with ps; [ ]; # missing inputs: oemthermostat
"ohmconnect" = ps: with ps; [ defusedxml ];
"ombi" = ps: with ps; [ ]; # missing inputs: pyombi
"omnilogic" = ps: with ps; [ omnilogic ];
"onboarding" = ps: with ps; [ aiohttp-cors pillow ];
"ondilo_ico" = ps: with ps; [ aiohttp-cors ondilo ];
"onewire" = ps: with ps; [ ]; # missing inputs: pi1wire pyownet
"onkyo" = ps: with ps; [ onkyo-eiscp ];
"onvif" = ps: with ps; [ ha-ffmpeg zeep ]; # missing inputs: WSDiscovery onvif-zeep-async
"openalpr_cloud" = ps: with ps; [ ];
"openalpr_local" = ps: with ps; [ ];
"opencv" = ps: with ps; [ numpy ]; # missing inputs: opencv-python-headless
"openerz" = ps: with ps; [ openerz-api ];
"openevse" = ps: with ps; [ ]; # missing inputs: openevsewifi
"openexchangerates" = ps: with ps; [ ];
"opengarage" = ps: with ps; [ ]; # missing inputs: open-garage
"openhardwaremonitor" = ps: with ps; [ ];
"openhome" = ps: with ps; [ openhomedevice ];
"opensensemap" = ps: with ps; [ opensensemap-api ];
"opensky" = ps: with ps; [ ];
"opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw
"openuv" = ps: with ps; [ pyopenuv ];
"openweathermap" = ps: with ps; [ pyowm ];
"opnsense" = ps: with ps; [ pyopnsense ];
"opple" = ps: with ps; [ ]; # missing inputs: pyoppleio
"orangepi_gpio" = ps: with ps; [ ]; # missing inputs: OPi.GPIO
"oru" = ps: with ps; [ ]; # missing inputs: oru
"orvibo" = ps: with ps; [ orvibo ];
"osramlightify" = ps: with ps; [ ]; # missing inputs: lightify
"otp" = ps: with ps; [ pyotp ];
"ovo_energy" = ps: with ps; [ ]; # missing inputs: ovoenergy
"owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt ];
"ozw" = ps: with ps; [ aiohttp-cors paho-mqtt python-openzwave-mqtt ];
"panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta
"panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera
"pandora" = ps: with ps; [ pexpect ];
"panel_custom" = ps: with ps; [ aiohttp-cors pillow ];
"panel_iframe" = ps: with ps; [ aiohttp-cors pillow ];
"pcal9535a" = ps: with ps; [ ]; # missing inputs: pcal9535a
"pencom" = ps: with ps; [ ]; # missing inputs: pencompy
"persistent_notification" = ps: with ps; [ ];
"person" = ps: with ps; [ aiohttp-cors pillow ];
"philips_js" = ps: with ps; [ ]; # missing inputs: ha-philipsjs
"pi4ioe5v9xxxx" = ps: with ps; [ ]; # missing inputs: pi4ioe5v9xxxx
"pi_hole" = ps: with ps; [ hole ];
"picotts" = ps: with ps; [ ];
"piglow" = ps: with ps; [ ]; # missing inputs: piglow
"pilight" = ps: with ps; [ ]; # missing inputs: pilight
"ping" = ps: with ps; [ icmplib ];
"pioneer" = ps: with ps; [ ];
"pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2
"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 ];
"plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
"pocketcasts" = ps: with ps; [ ]; # missing inputs: pycketcasts
"point" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pypoint
"poolsense" = ps: with ps; [ poolsense ];
"powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall
"profiler" = ps: with ps; [ guppy3 objgraph pyprof2calltree ];
"progettihwsw" = ps: with ps; [ ]; # missing inputs: progettihwsw
"proliphix" = ps: with ps; [ ]; # missing inputs: proliphix
"prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ];
"prowl" = ps: with ps; [ ];
"proximity" = ps: with ps; [ ];
"proxmoxve" = ps: with ps; [ proxmoxer ];
"proxy" = ps: with ps; [ pillow ];
"ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen
"pulseaudio_loopback" = ps: with ps; [ pulsectl ];
"push" = ps: with ps; [ aiohttp-cors ];
"pushbullet" = ps: with ps; [ pushbullet ];
"pushover" = ps: with ps; [ pushover-complete ];
"pushsafer" = ps: with ps; [ ];
"pvoutput" = ps: with ps; [ jsonpath xmltodict ];
"pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc
"pyload" = ps: with ps; [ ];
"python_script" = ps: with ps; [ restrictedpython ];
"qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
"qld_bushfire" = ps: with ps; [ ]; # missing inputs: georss_qld_bushfire_alert_client
"qnap" = ps: with ps; [ ]; # missing inputs: qnapstats
"qrcode" = ps: with ps; [ pillow ]; # missing inputs: pyzbar
"quantum_gateway" = ps: with ps; [ ]; # missing inputs: quantum-gateway
"qvr_pro" = ps: with ps; [ ]; # missing inputs: pyqvrpro
"qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch
"rachio" = ps: with ps; [ aiohttp-cors hass-nabucasa rachiopy ];
"radarr" = ps: with ps; [ ];
"radiotherm" = ps: with ps; [ radiotherm ];
"rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird
"raincloud" = ps: with ps; [ ]; # missing inputs: raincloudy
"rainforest_eagle" = ps: with ps; [ ]; # missing inputs: eagle200_reader uEagle
"rainmachine" = ps: with ps; [ regenmaschine ];
"random" = ps: with ps; [ ];
"raspihats" = ps: with ps; [ smbus-cffi ]; # missing inputs: raspihats
"raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client
"recollect_waste" = ps: with ps; [ aiorecollect ];
"recorder" = ps: with ps; [ sqlalchemy ];
"recswitch" = ps: with ps; [ ]; # missing inputs: pyrecswitch
"reddit" = ps: with ps; [ praw ];
"rejseplanen" = ps: with ps; [ ]; # missing inputs: rjpl
"remember_the_milk" = ps: with ps; [ httplib2 ]; # missing inputs: RtmAPI
"remote" = ps: with ps; [ ];
"remote_rpi_gpio" = ps: with ps; [ ]; # missing inputs: gpiozero
"repetier" = ps: with ps; [ ]; # missing inputs: pyrepetier
"rest" = ps: with ps; [ jsonpath xmltodict ];
"rest_command" = ps: with ps; [ ];
"rflink" = ps: with ps; [ ]; # missing inputs: rflink
"rfxtrx" = ps: with ps; [ ]; # missing inputs: pyRFXtrx
"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; [ rokuecp ];
"roomba" = ps: with ps; [ roombapy ];
"roon" = ps: with ps; [ ]; # missing inputs: roonapi
"route53" = ps: with ps; [ boto3 ];
"rova" = ps: with ps; [ ]; # missing inputs: rova
"rpi_camera" = ps: with ps; [ ];
"rpi_gpio" = ps: with ps; [ ]; # missing inputs: RPi.GPIO
"rpi_gpio_pwm" = ps: with ps; [ ]; # missing inputs: pwmled
"rpi_pfio" = ps: with ps; [ ]; # missing inputs: pifacecommon pifacedigitalio
"rpi_power" = ps: with ps; [ ]; # missing inputs: rpi-bad-power
"rpi_rf" = ps: with ps; [ ]; # missing inputs: rpi-rf
"rss_feed_template" = ps: with ps; [ aiohttp-cors ];
"rtorrent" = ps: with ps; [ ];
"ruckus_unleashed" = ps: with ps; [ pyruckus ];
"russound_rio" = ps: with ps; [ ]; # missing inputs: russound_rio
"russound_rnet" = ps: with ps; [ ]; # missing inputs: russound
"sabnzbd" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: pysabnzbd
"safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa pillow ];
"saj" = ps: with ps; [ ]; # missing inputs: pysaj
"samsungtv" = ps: with ps; [ samsungctl samsungtvws ];
"satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
"scene" = ps: with ps; [ ];
"schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
"scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict ];
"screenlogic" = ps: with ps; [ screenlogicpy ];
"script" = ps: with ps; [ ];
"scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
"search" = ps: with ps; [ aiohttp-cors ];
"season" = ps: with ps; [ ephem ];
"sendgrid" = ps: with ps; [ sendgrid ];
"sense" = ps: with ps; [ ]; # missing inputs: sense_energy
"sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat
"sensibo" = ps: with ps; [ ]; # missing inputs: pysensibo
"sensor" = ps: with ps; [ ];
"sentry" = ps: with ps; [ sentry-sdk ];
"serial" = ps: with ps; [ pyserial-asyncio ];
"serial_pm" = ps: with ps; [ ]; # missing inputs: pmsensor
"sesame" = ps: with ps; [ ]; # missing inputs: pysesame2
"seven_segments" = ps: with ps; [ pillow ];
"seventeentrack" = ps: with ps; [ ]; # missing inputs: py17track
"sharkiq" = ps: with ps; [ sharkiqpy ];
"shell_command" = ps: with ps; [ ];
"shelly" = ps: with ps; [ aioshelly ];
"shiftr" = ps: with ps; [ paho-mqtt ];
"shodan" = ps: with ps; [ shodan ];
"shopping_list" = ps: with ps; [ aiohttp-cors ];
"sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31
"sigfox" = ps: with ps; [ ];
"sighthound" = ps: with ps; [ pillow simplehound ];
"signal_messenger" = ps: with ps; [ ]; # missing inputs: pysignalclirestapi
"simplepush" = ps: with ps; [ ]; # missing inputs: simplepush
"simplisafe" = ps: with ps; [ simplisafe-python ];
"simulated" = ps: with ps; [ ];
"sinch" = ps: with ps; [ ]; # missing inputs: clx-sdk-xms
"sisyphus" = ps: with ps; [ ]; # missing inputs: sisyphus-control
"sky_hub" = ps: with ps; [ ]; # missing inputs: pyskyqhub
"skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
"skybell" = ps: with ps; [ skybellpy ];
"slack" = ps: with ps; [ slackclient ];
"sleepiq" = ps: with ps; [ sleepyq ];
"slide" = ps: with ps; [ ]; # missing inputs: goslide-api
"sma" = ps: with ps; [ pysma ];
"smappee" = ps: with ps; [ aiohttp-cors pysmappee ];
"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; [ smhi-pkg ];
"sms" = ps: with ps; [ python-gammu ];
"smtp" = ps: with ps; [ ];
"snapcast" = ps: with ps; [ snapcast ];
"snips" = ps: with ps; [ aiohttp-cors paho-mqtt ];
"snmp" = ps: with ps; [ pysnmp ];
"sochain" = ps: with ps; [ ]; # missing inputs: python-sochain-api
"socialblade" = ps: with ps; [ ]; # missing inputs: socialbladeclient
"solaredge" = ps: with ps; [ solaredge stringcase ];
"solaredge_local" = ps: with ps; [ ]; # missing inputs: solaredge-local
"solarlog" = ps: with ps; [ ]; # missing inputs: sunwatcher
"solax" = ps: with ps; [ solax ];
"soma" = ps: with ps; [ pysoma ];
"somfy" = ps: with ps; [ aiohttp-cors pymfy ];
"somfy_mylink" = ps: with ps; [ ]; # missing inputs: somfy-mylink-synergy
"sonarr" = ps: with ps; [ ]; # missing inputs: sonarr
"songpal" = ps: with ps; [ ]; # missing inputs: python-songpal
"sonos" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
"sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp
"soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf ];
"spaceapi" = ps: with ps; [ aiohttp-cors ];
"spc" = ps: with ps; [ ]; # missing inputs: pyspcwebgw
"speedtestdotnet" = ps: with ps; [ speedtest-cli ];
"spider" = ps: with ps; [ ]; # missing inputs: spiderpy
"splunk" = ps: with ps; [ ]; # missing inputs: hass_splunk
"spotcrime" = ps: with ps; [ ]; # missing inputs: spotcrime
"spotify" = ps: with ps; [ aiohttp-cors spotipy ];
"sql" = ps: with ps; [ sqlalchemy ];
"squeezebox" = ps: with ps; [ pysqueezebox ];
"srp_energy" = ps: with ps; [ ]; # missing inputs: srpenergy
"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 ];
"statistics" = ps: with ps; [ sqlalchemy ];
"statsd" = ps: with ps; [ statsd ];
"steam_online" = ps: with ps; [ ]; # missing inputs: steamodd
"stiebel_eltron" = ps: with ps; [ pymodbus ]; # missing inputs: pystiebeleltron
"stookalert" = ps: with ps; [ ]; # missing inputs: stookalert
"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; [ ];
"supla" = ps: with ps; [ ]; # missing inputs: asyncpysupla
"surepetcare" = ps: with ps; [ surepy ];
"swiss_hydrological_data" = ps: with ps; [ swisshydrodata ];
"swiss_public_transport" = ps: with ps; [ python-opendata-transport ];
"swisscom" = ps: with ps; [ ];
"switch" = ps: with ps; [ ];
"switchbot" = ps: with ps; [ pyswitchbot ];
"switcher_kis" = ps: with ps; [ aioswitcher ];
"switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate
"syncthru" = ps: with ps; [ url-normalize ]; # missing inputs: pysyncthru
"synology_chat" = ps: with ps; [ ];
"synology_dsm" = ps: with ps; [ ]; # missing inputs: synologydsm-api
"synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
"syslog" = ps: with ps; [ ];
"system_health" = ps: with ps; [ aiohttp-cors ];
"system_log" = ps: with ps; [ aiohttp-cors ];
"systemmonitor" = ps: with ps; [ psutil ];
"tado" = ps: with ps; [ python-tado ];
"tag" = ps: with ps; [ ];
"tahoma" = ps: with ps; [ tahoma-api ];
"tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
"tankerkoenig" = ps: with ps; [ pytankerkoenig ];
"tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff
"tasmota" = ps: with ps; [ aiohttp-cors hatasmota paho-mqtt ];
"tautulli" = ps: with ps; [ ]; # missing inputs: pytautulli
"tcp" = ps: with ps; [ ];
"ted5000" = ps: with ps; [ xmltodict ];
"telegram" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ];
"telegram_bot" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ];
"tellduslive" = ps: with ps; [ tellduslive ];
"tellstick" = ps: with ps; [ ]; # missing inputs: tellcore-net tellcore-py
"telnet" = ps: with ps; [ ];
"temper" = ps: with ps; [ ]; # missing inputs: temperusb
"template" = ps: with ps; [ ];
"tensorflow" = ps: with ps; [ numpy pillow tensorflow ]; # missing inputs: pycocotools tf-models-official
"tesla" = ps: with ps; [ teslajsonpy ];
"tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac
"thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke
"thethingsnetwork" = ps: with ps; [ ];
"thingspeak" = ps: with ps; [ ]; # missing inputs: thingspeak
"thinkingcleaner" = ps: with ps; [ ]; # missing inputs: pythinkingcleaner
"thomson" = ps: with ps; [ ];
"threshold" = ps: with ps; [ ];
"tibber" = ps: with ps; [ ]; # missing inputs: pyTibber
"tikteck" = ps: with ps; [ ]; # missing inputs: tikteck
"tile" = ps: with ps; [ pytile ];
"time_date" = ps: with ps; [ ];
"timer" = ps: with ps; [ ];
"tmb" = ps: with ps; [ tmb ];
"tod" = ps: with ps; [ ];
"todoist" = ps: with ps; [ todoist ];
"tof" = ps: with ps; [ ]; # missing inputs: RPi.GPIO VL53L1X2
"tomato" = ps: with ps; [ ];
"toon" = ps: with ps; [ aiohttp-cors hass-nabucasa toonapi ];
"torque" = ps: with ps; [ aiohttp-cors ];
"totalconnect" = ps: with ps; [ ]; # missing inputs: total_connect_client
"touchline" = ps: with ps; [ ]; # missing inputs: pytouchline
"tplink" = ps: with ps; [ pyhs100 ];
"tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected
"traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar
"trace" = ps: with ps; [ ];
"trackr" = ps: with ps; [ ]; # missing inputs: pytrackr
"tradfri" = ps: with ps; [ ]; # missing inputs: pytradfri[async]
"trafikverket_train" = ps: with ps; [ pytrafikverket ];
"trafikverket_weatherstation" = ps: with ps; [ pytrafikverket ];
"transmission" = ps: with ps; [ transmissionrpc ];
"transport_nsw" = ps: with ps; [ ]; # missing inputs: PyTransportNSW
"travisci" = ps: with ps; [ ]; # missing inputs: TravisPy
"trend" = ps: with ps; [ numpy ];
"tts" = ps: with ps; [ aiohttp-cors mutagen ];
"tuya" = ps: with ps; [ tuyaha ];
"twentemilieu" = ps: with ps; [ twentemilieu ];
"twilio" = ps: with ps; [ aiohttp-cors twilio ];
"twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
"twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
"twinkly" = ps: with ps; [ twinkly-client ];
"twitch" = ps: with ps; [ python-twitch-client ];
"twitter" = ps: with ps; [ twitterapi ];
"ubus" = ps: with ps; [ openwrt-ubus-rpc ];
"ue_smart_radio" = ps: with ps; [ ];
"uk_transport" = ps: with ps; [ ];
"unifi" = ps: with ps; [ aiounifi ];
"unifi_direct" = ps: with ps; [ pexpect ];
"unifiled" = ps: with ps; [ unifiled ];
"universal" = ps: with ps; [ ];
"upb" = ps: with ps; [ ]; # missing inputs: upb_lib
"upc_connect" = ps: with ps; [ connect-box ];
"upcloud" = ps: with ps; [ ]; # missing inputs: upcloud-api
"updater" = ps: with ps; [ distro ];
"upnp" = ps: with ps; [ async-upnp-client ];
"uptime" = ps: with ps; [ ];
"uptimerobot" = ps: with ps; [ ]; # missing inputs: pyuptimerobot
"uscis" = ps: with ps; [ ]; # missing inputs: uscisstatus
"usgs_earthquakes_feed" = ps: with ps; [ geojson-client ];
"utility_meter" = ps: with ps; [ ];
"uvc" = ps: with ps; [ uvcclient ];
"vacuum" = ps: with ps; [ ];
"vallox" = ps: with ps; [ ]; # missing inputs: vallox-websocket-api
"vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp
"velbus" = ps: with ps; [ python-velbus ];
"velux" = ps: with ps; [ pyvlx ];
"venstar" = ps: with ps; [ venstarcolortouch ];
"vera" = ps: with ps; [ pyvera ];
"verisure" = ps: with ps; [ vsure ];
"versasense" = ps: with ps; [ ]; # missing inputs: pyversasense
"version" = ps: with ps; [ pyhaversion ];
"vesync" = ps: with ps; [ pyvesync ];
"viaggiatreno" = ps: with ps; [ ];
"vicare" = ps: with ps; [ pyvicare ];
"vilfo" = ps: with ps; [ ]; # missing inputs: vilfo-api-client
"vivotek" = ps: with ps; [ ]; # missing inputs: libpyvivotek
"vizio" = ps: with ps; [ pyvizio ];
"vlc" = ps: with ps; [ python-vlc ];
"vlc_telnet" = ps: with ps; [ ]; # missing inputs: python-telnet-vlc
"voicerss" = ps: with ps; [ ];
"volkszaehler" = ps: with ps; [ volkszaehler ];
"volumio" = ps: with ps; [ pyvolumio ];
"volvooncall" = ps: with ps; [ ]; # missing inputs: volvooncall
"vultr" = ps: with ps; [ vultr ];
"w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32
"wake_on_lan" = ps: with ps; [ wakeonlan ];
"waqi" = ps: with ps; [ waqiasync ];
"water_heater" = ps: with ps; [ ];
"waterfurnace" = ps: with ps; [ waterfurnace ];
"watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf
"watson_tts" = ps: with ps; [ ]; # missing inputs: ibm-watson
"waze_travel_time" = ps: with ps; [ WazeRouteCalculator ];
"weather" = ps: with ps; [ ];
"webhook" = ps: with ps; [ aiohttp-cors ];
"webostv" = ps: with ps; [ aiopylgtv ];
"websocket_api" = ps: with ps; [ aiohttp-cors ];
"wemo" = ps: with ps; [ pywemo ];
"whois" = ps: with ps; [ python-whois ];
"wiffi" = ps: with ps; [ wiffi ];
"wilight" = ps: with ps; [ pywilight ];
"wink" = ps: with ps; [ aiohttp-cors pubnubsub-handler python-wink ];
"wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy
"withings" = ps: with ps; [ aiohttp-cors ]; # missing inputs: withings-api
"wled" = ps: with ps; [ wled ];
"wolflink" = ps: with ps; [ ]; # missing inputs: wolf_smartset
"workday" = ps: with ps; [ holidays ];
"worldclock" = ps: with ps; [ ];
"worldtidesinfo" = ps: with ps; [ ];
"worxlandroid" = ps: with ps; [ ];
"wsdot" = ps: with ps; [ ];
"wunderground" = ps: with ps; [ ];
"x10" = ps: with ps; [ ];
"xbee" = ps: with ps; [ ]; # missing inputs: xbee-helper
"xbox" = ps: with ps; [ aiohttp-cors ]; # missing inputs: xbox-webapi
"xbox_live" = ps: with ps; [ xboxapi ];
"xeoma" = ps: with ps; [ pyxeoma ];
"xiaomi" = ps: with ps; [ ha-ffmpeg ];
"xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors netdisco zeroconf ];
"xiaomi_miio" = ps: with ps; [ construct python-miio ];
"xiaomi_tv" = ps: with ps; [ pymitv ];
"xmpp" = ps: with ps; [ slixmpp ];
"xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client
"yale_smart_alarm" = ps: with ps; [ yalesmartalarmclient ];
"yamaha" = ps: with ps; [ rxv ];
"yamaha_musiccast" = ps: with ps; [ ]; # missing inputs: pymusiccast
"yandex_transport" = ps: with ps; [ ]; # missing inputs: aioymaps
"yandextts" = ps: with ps; [ ];
"yeelight" = ps: with ps; [ yeelight ];
"yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
"yi" = ps: with ps; [ aioftp ha-ffmpeg ];
"zabbix" = ps: with ps; [ ]; # missing inputs: py-zabbix
"zamg" = ps: with ps; [ ];
"zengge" = ps: with ps; [ ]; # missing inputs: zengge
"zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
"zerproc" = ps: with ps; [ pyzerproc ];
"zestimate" = ps: with ps; [ xmltodict ];
"zha" = ps: with ps; [ aiohttp-cors bellows pyserial-asyncio pyserial zeroconf zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
"zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
"ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
"zodiac" = ps: with ps; [ ];
"zone" = ps: with ps; [ ];
"zoneminder" = ps: with ps; [ zm-py ];
"zwave" = ps: with ps; [ aiohttp-cors homeassistant-pyozw paho-mqtt pydispatcher python-openzwave-mqtt ];
"zwave_js" = ps: with ps; [ aiohttp-cors zwave-js-server-python ];
};
}