diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-06-30 13:44:37 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-06-30 13:44:37 +0000 |
commit | 16f676d6bbd4f930b0017ccb20cebe5a29e17545 (patch) | |
tree | 0d554b4f16bdef502035b743457fc29ffcc5e7f7 /nixpkgs/pkgs/servers/home-assistant | |
parent | e7caacc4c122b7641bb66a4c2595289347a4996c (diff) | |
parent | 3a8d7958a610cd3fec3a6f424480f91a1b259185 (diff) | |
download | nixlib-16f676d6bbd4f930b0017ccb20cebe5a29e17545.tar nixlib-16f676d6bbd4f930b0017ccb20cebe5a29e17545.tar.gz nixlib-16f676d6bbd4f930b0017ccb20cebe5a29e17545.tar.bz2 nixlib-16f676d6bbd4f930b0017ccb20cebe5a29e17545.tar.lz nixlib-16f676d6bbd4f930b0017ccb20cebe5a29e17545.tar.xz nixlib-16f676d6bbd4f930b0017ccb20cebe5a29e17545.tar.zst nixlib-16f676d6bbd4f930b0017ccb20cebe5a29e17545.zip |
Merge commit '3a8d7958a610cd3fec3a6f424480f91a1b259185'
Diffstat (limited to 'nixpkgs/pkgs/servers/home-assistant')
-rw-r--r-- | nixpkgs/pkgs/servers/home-assistant/cli.nix | 18 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/home-assistant/component-packages.nix | 56 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/home-assistant/default.nix | 89 |
3 files changed, 105 insertions, 58 deletions
diff --git a/nixpkgs/pkgs/servers/home-assistant/cli.nix b/nixpkgs/pkgs/servers/home-assistant/cli.nix index 9b678a5071dd..baa418776c5b 100644 --- a/nixpkgs/pkgs/servers/home-assistant/cli.nix +++ b/nixpkgs/pkgs/servers/home-assistant/cli.nix @@ -4,11 +4,11 @@ python3.pkgs.buildPythonApplication rec { pname = "homeassistant-cli"; - version = "0.9.3"; + version = "0.9.4"; src = python3.pkgs.fetchPypi { inherit pname version; - sha256 = "18h6bc99skzb0a1pffb6lr2z04928srrcz1w2zy66bndasic5yfs"; + sha256 = "03kiyqpp3zf8rg30d12h4fapihh0rqwpv5p8jfxb3iq0chfmjx2f"; }; postPatch = '' @@ -30,11 +30,13 @@ python3.pkgs.buildPythonApplication rec { tabulate ]; - postInstall = '' - mkdir -p "$out/share/bash-completion/completions" "$out/share/zsh/site-functions" - $out/bin/hass-cli completion bash > "$out/share/bash-completion/completions/hass-cli" - $out/bin/hass-cli completion zsh > "$out/share/zsh/site-functions/_hass-cli" - ''; + # Completion needs to be ported to work with click > 8.0 + # https://github.com/home-assistant-ecosystem/home-assistant-cli/issues/367 + #postInstall = '' + # mkdir -p "$out/share/bash-completion/completions" "$out/share/zsh/site-functions" + # $out/bin/hass-cli completion bash > "$out/share/bash-completion/completions/hass-cli" + # $out/bin/hass-cli completion zsh > "$out/share/zsh/site-functions/_hass-cli" + #''; checkInputs = with python3.pkgs; [ pytestCheckHook @@ -43,7 +45,7 @@ python3.pkgs.buildPythonApplication rec { meta = with lib; { description = "Command-line tool for Home Assistant"; - homepage = "https://github.com/home-assistant/home-assistant-cli"; + homepage = "https://github.com/home-assistant-ecosystem/home-assistant-cli"; changelog = "https://github.com/home-assistant-ecosystem/home-assistant-cli/releases/tag/${version}"; license = licenses.asl20; maintainers = teams.home-assistant.members; diff --git a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix index d85d877ca444..f4f599117153 100644 --- a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix +++ b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2021.6.5"; + version = "2021.6.6"; components = { "abode" = ps: with ps; [ abodepy ]; "accuweather" = ps: with ps; [ accuweather ]; @@ -25,7 +25,7 @@ "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 + "alpha_vantage" = ps: with ps; [ alpha-vantage ]; "amazon_polly" = ps: with ps; [ boto3 ]; "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ]; "ambient_station" = ps: with ps; [ aioambient ]; @@ -79,7 +79,7 @@ "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 + "bizkaibus" = ps: with ps; [ bizkaibus ]; "blackbird" = ps: with ps; [ pyblackbird ]; "blebox" = ps: with ps; [ blebox-uniapi ]; "blink" = ps: with ps; [ blinkpy ]; @@ -348,12 +348,12 @@ "here_travel_time" = ps: with ps; [ herepy ]; "hikvision" = ps: with ps; [ ]; # missing inputs: pyhik "hikvisioncam" = ps: with ps; [ ]; # missing inputs: hikvision - "hisense_aehw4a1" = ps: with ps; [ ]; # missing inputs: pyaehw4a1 + "hisense_aehw4a1" = ps: with ps; [ pyaehw4a1 ]; "history" = ps: with ps; [ aiohttp-cors sqlalchemy ]; "history_stats" = ps: with ps; [ sqlalchemy ]; "hitron_coda" = ps: with ps; [ ]; "hive" = ps: with ps; [ pyhiveapi ]; - "hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16 + "hlk_sw16" = ps: with ps; [ hlk-sw16 ]; "home_connect" = ps: with ps; [ aiohttp-cors homeconnect ]; "home_plus_control" = ps: with ps; [ aiohttp-cors homepluscontrol ]; "homeassistant" = ps: with ps; [ ]; @@ -362,19 +362,19 @@ "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 + "honeywell" = ps: with ps; [ 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_lte" = ps: with ps; [ getmac huawei-lte-api stringcase url-normalize ]; "huawei_router" = ps: with ps; [ ]; "hue" = ps: with ps; [ aiohue ]; - "huisbaasje" = ps: with ps; [ ]; # missing inputs: huisbaasje-client + "huisbaasje" = ps: with ps; [ huisbaasje-client ]; "humidifier" = ps: with ps; [ ]; "hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi - "hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti + "hvv_departures" = ps: with ps; [ pygti ]; "hydrawise" = ps: with ps; [ hydrawiser ]; "hyperion" = ps: with ps; [ hyperion-py ]; "ialarm" = ps: with ps; [ pyialarm ]; @@ -411,17 +411,17 @@ "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail "islamic_prayer_times" = ps: with ps; [ prayer-times-calculator ]; "iss" = ps: with ps; [ ]; # missing inputs: pyiss - "isy994" = ps: with ps; [ ]; # missing inputs: pyisy + "isy994" = ps: with ps; [ pyisy ]; "itach" = ps: with ps; [ ]; # missing inputs: pyitachip2ir "itunes" = ps: with ps; [ ]; - "izone" = ps: with ps; [ ]; # missing inputs: python-izone + "izone" = ps: with ps; [ python-izone ]; "jewish_calendar" = ps: with ps; [ hdate ]; "joaoapps_join" = ps: with ps; [ ]; # missing inputs: python-join-api - "juicenet" = ps: with ps; [ ]; # missing inputs: python-juicenet + "juicenet" = ps: with ps; [ 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 + "keenetic_ndms2" = ps: with ps; [ ndms2-client ]; "kef" = ps: with ps; [ aiokef getmac ]; "keyboard" = ps: with ps; [ ]; # missing inputs: pyuserinput "keyboard_remote" = ps: with ps; [ aionotify evdev ]; @@ -430,13 +430,13 @@ "kmtronic" = ps: with ps; [ pykmtronic ]; "knx" = ps: with ps; [ xknx ]; "kodi" = ps: with ps; [ pykodi ]; - "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected + "konnected" = ps: with ps; [ aiohttp-cors konnected ]; "kostal_plenticore" = ps: with ps; [ ]; # missing inputs: kostal_plenticore - "kraken" = ps: with ps; [ ]; # missing inputs: krakenex pykrakenapi + "kraken" = ps: with ps; [ krakenex pykrakenapi ]; "kulersky" = ps: with ps; [ pykulersky ]; "kwb" = ps: with ps; [ ]; # missing inputs: pykwb "lacrosse" = ps: with ps; [ pylacrosse ]; - "lametric" = ps: with ps; [ ]; # missing inputs: lmnotify + "lametric" = ps: with ps; [ lmnotify ]; "lannouncer" = ps: with ps; [ ]; "lastfm" = ps: with ps; [ pylast ]; "launch_library" = ps: with ps; [ ]; # missing inputs: pylaunches @@ -561,7 +561,7 @@ "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 + "nextcloud" = ps: with ps; [ nextcloudmonitor ]; "nfandroidtv" = ps: with ps; [ ]; "nightscout" = ps: with ps; [ ]; # missing inputs: py-nightscout "niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control @@ -695,7 +695,7 @@ "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 + "rflink" = ps: with ps; [ 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 @@ -750,7 +750,7 @@ "shodan" = ps: with ps; [ shodan ]; "shopping_list" = ps: with ps; [ aiohttp-cors ]; "sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31 - "sia" = ps: with ps; [ ]; # missing inputs: pysiaalarm + "sia" = ps: with ps; [ pysiaalarm ]; "sigfox" = ps: with ps; [ ]; "sighthound" = ps: with ps; [ pillow simplehound ]; "signal_messenger" = ps: with ps; [ ]; # missing inputs: pysignalclirestapi @@ -799,9 +799,9 @@ "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 + "srp_energy" = ps: with ps; [ srpenergy ]; "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml ifaddr netdisco zeroconf ]; - "starline" = ps: with ps; [ ]; # missing inputs: starline + "starline" = ps: with ps; [ starline ]; "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank "startca" = ps: with ps; [ xmltodict ]; "statistics" = ps: with ps; [ sqlalchemy ]; @@ -826,9 +826,9 @@ "switcher_kis" = ps: with ps; [ aioswitcher ]; "switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate "syncthing" = ps: with ps; [ aiosyncthing ]; - "syncthru" = ps: with ps; [ url-normalize ]; # missing inputs: pysyncthru + "syncthru" = ps: with ps; [ pysyncthru url-normalize ]; "synology_chat" = ps: with ps; [ ]; - "synology_dsm" = ps: with ps; [ ]; # missing inputs: synologydsm-api + "synology_dsm" = ps: with ps; [ synologydsm-api ]; "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm "syslog" = ps: with ps; [ ]; "system_bridge" = ps: with ps; [ aiohttp-cors ifaddr systembridge zeroconf ]; @@ -873,14 +873,14 @@ "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 + "totalconnect" = ps: with ps; [ 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] + "tradfri" = ps: with ps; [ pytradfri ]; "trafikverket_train" = ps: with ps; [ pytrafikverket ]; "trafikverket_weatherstation" = ps: with ps; [ pytrafikverket ]; "transmission" = ps: with ps; [ transmissionrpc ]; @@ -903,9 +903,9 @@ "unifi_direct" = ps: with ps; [ pexpect ]; "unifiled" = ps: with ps; [ unifiled ]; "universal" = ps: with ps; [ ]; - "upb" = ps: with ps; [ ]; # missing inputs: upb_lib + "upb" = ps: with ps; [ upb-lib ]; "upc_connect" = ps: with ps; [ connect-box ]; - "upcloud" = ps: with ps; [ ]; # missing inputs: upcloud-api + "upcloud" = ps: with ps; [ upcloud-api ]; "updater" = ps: with ps; [ distro ]; "upnp" = ps: with ps; [ async-upnp-client ]; "uptime" = ps: with ps; [ ]; @@ -927,7 +927,7 @@ "vesync" = ps: with ps; [ pyvesync ]; "viaggiatreno" = ps: with ps; [ ]; "vicare" = ps: with ps; [ pyvicare ]; - "vilfo" = ps: with ps; [ ]; # missing inputs: vilfo-api-client + "vilfo" = ps: with ps; [ vilfo-api-client ]; "vivotek" = ps: with ps; [ ]; # missing inputs: libpyvivotek "vizio" = ps: with ps; [ pyvizio ]; "vlc" = ps: with ps; [ python-vlc ]; diff --git a/nixpkgs/pkgs/servers/home-assistant/default.nix b/nixpkgs/pkgs/servers/home-assistant/default.nix index f6263022d860..c86258d4a85a 100644 --- a/nixpkgs/pkgs/servers/home-assistant/default.nix +++ b/nixpkgs/pkgs/servers/home-assistant/default.nix @@ -23,27 +23,16 @@ let defaultOverrides = [ # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt - # https://github.com/NixOS/nixpkgs/pull/125414 - (mkOverride "flask" "2.0.1" "0mcgwq7b4qd99mf5bsvs3wphchxarf8kgil4hwww3blj31xjak0w") - (mkOverride "itsdangerous" "2.0.1" "1w6gfb2zhbcmrfj6digwzw1z68w6zg1q87rm6la2m412zil4swly") - (mkOverride "jinja2" "3.0.1" "197ms1wimxql650245v63wkv04n8bicj549wfhp51bx68x5lhgvh") - (mkOverride "markupsafe" "2.0.1" "02k2ynmqvvd0z0gakkf8s4idyb606r7zgga41jrkhqmigy06fk2r") + # Pinned due to API changes in aiopvpc>=2.2.0, remove after 2021.7.0 (self: super: { - werkzeug = super.werkzeug.overridePythonAttrs (oldAttrs: rec { - version = "2.0.1"; - src = oldAttrs.src.override { - inherit version; - sha256 = "0hlwawnn8c41f254qify5jnjj8xb97n294h09bqimzqhs0qdpq8x"; + aiopvpc = super.aiopvpc.overridePythonAttrs (oldAttr: rec { + version = "2.1.2"; + src = fetchFromGitHub { + owner = "azogue"; + repo = "aiopvpc"; + rev = "v${version}"; + sha256 = "0s8ki46dh39kw6qvsjcfcxa0gblyi33m3hry137kbi4lw5ws6qhr"; }; - checkInputs = oldAttrs.checkInputs ++ [ python3.pkgs.pytest-xprocess ]; - pytestFlagsArray = [ "-m 'not filterwarnings'" ]; - }); - }) - (mkOverride "flask-restful" "0.3.9" "0gm5dz088v3d2k1dkcp9b3nnqpkk0fp2jly870hijj2xhc5nbv6c") - (self: super: { - debugpy = super.debugpy.overridePythonAttrs (oldAttrs: rec { - # tests fail with flask/werkezug>=2.0 - doCheck = false; }); }) @@ -81,6 +70,32 @@ let (mkOverride "ring-doorbell" "0.6.2" "fbd537722a27b3b854c26506d894b7399bb8dc57ff36083285971227a2d46560") + # Pinned due to API changes in pyatmo>=5.1.0 + (self: super: { + pyatmo = super.pyatmo.overridePythonAttrs (oldAttrs: rec { + version = "5.0.1"; + src = fetchFromGitHub { + owner = "jabesq"; + repo = "pyatmo"; + rev = "v${version}"; + sha256 = "0can9v602iqfn0l01fd7gr63qzvcngfm0qka4s1x0pldh6avxmfh"; + }; + }); + }) + + # Pinned due to API changes in pyatv>=0.8.0 + (self: super: { + pyatv = super.pyatv.overridePythonAttrs (olAttrs: rec { + version = "0.7.7"; + src = fetchFromGitHub { + owner = "postlund"; + repo = "pyatv"; + rev = "v${version}"; + sha256 = "sha256-dPnh8XZN7ZVR2rYNnj7GSYXW5I2GNQwD/KRDTgs2AtI="; + }; + }); + }) + # Pinned due to API changes in pyflunearyou>=2.0 (self: super: { pyflunearyou = super.pyflunearyou.overridePythonAttrs (oldAttrs: rec { @@ -134,6 +149,8 @@ let }); }) + (mkOverride "pysma" "0.4.3" "sha256-vriMnJFS7yfTyDT1f4sx1xEBTQjqc4ZHmkdHp1vcd+Q=") + # Pinned due to API changes in eebrightbox>=0.0.5 (self: super: { eebrightbox = super.eebrightbox.overridePythonAttrs (oldAttrs: rec { @@ -180,7 +197,7 @@ let extraBuildInputs = extraPackages py.pkgs; # Don't forget to run parse-requirements.py after updating - hassVersion = "2021.6.5"; + hassVersion = "2021.6.6"; in with py.pkgs; buildPythonApplication rec { pname = "homeassistant"; @@ -197,7 +214,7 @@ in with py.pkgs; buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = version; - sha256 = "1cp294hy35k9hjbp8iqmaf1m5qbbkh3jwf92ym49waw8di5a5wvh"; + sha256 = "0r8l2qya9pdl65kq3xrnb1vhmbnxm3bj12hn1wyxmw56l8m9l5d5"; }; # leave this in, so users don't have to constantly update their downstream patch handling @@ -238,6 +255,8 @@ in with py.pkgs; buildPythonApplication rec { voluptuous voluptuous-serialize yarl + # Not in setup.py, but used in homeassistant/util/package.py + setuptools ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ] ++ componentBuildInputs ++ extraBuildInputs; @@ -442,9 +461,11 @@ in with py.pkgs; buildPythonApplication rec { "hddtemp" "heos" "here_travel_time" + "hisense_aehw4a1" "history" "history_stats" "hive" + "hlk_sw16" "home_connect" "home_plus_control" "homeassistant" @@ -452,15 +473,20 @@ in with py.pkgs; buildPythonApplication rec { "homekit_controller" "homematic" "homematicip_cloud" + "honeywell" "html5" "http" + "huawei_lte" "hue" + "huisbaasje" "humidifier" + "hvv_departures" "hyperion" "ialarm" "iaqualink" "icloud" "ifttt" + "ign_sismologia" "image" "image_processing" "imap_email_content" @@ -479,11 +505,17 @@ in with py.pkgs; buildPythonApplication rec { "ipp" "iqvia" "islamic_prayer_times" + "isy994" + "izone" "jewish_calendar" + "juicenet" + "keenetic_ndms2" "kira" "kmtronic" "knx" "kodi" + "konnected" + "kraken" "kulersky" "lastfm" "lcn" @@ -592,6 +624,7 @@ in with py.pkgs; buildPythonApplication rec { "remote" "rest" "rest_command" + "rflink" "ring" "risco" "rituals_perfume_genie" @@ -615,6 +648,7 @@ in with py.pkgs; buildPythonApplication rec { "shell_command" "shelly" "shopping_list" + "sia" "sigfox" "sighthound" "simplisafe" @@ -639,7 +673,9 @@ in with py.pkgs; buildPythonApplication rec { "spotify" "sql" "squeezebox" + "srp_energy" "ssdp" + "starline" "startca" "statistics" "statsd" @@ -650,6 +686,9 @@ in with py.pkgs; buildPythonApplication rec { "surepetcare" "switch" "switcher_kis" + "syncthing" + "syncthru" + "synology_dsm" "system_health" "system_log" "tado" @@ -659,7 +698,8 @@ in with py.pkgs; buildPythonApplication rec { "telegram" "tellduslive" "template" - "tesla" + # disable tesla comonent tests while typer is incompatible with click>=8.0 + # "tesla" "threshold" "tibber" "tile" @@ -668,8 +708,10 @@ in with py.pkgs; buildPythonApplication rec { "tod" "tomato" "toon" + "totalconnect" "tplink" "trace" + "tradfri" "transmission" "trend" "tts" @@ -682,6 +724,8 @@ in with py.pkgs; buildPythonApplication rec { "unifi" "unifi_direct" "universal" + "upb" + "upcloud" "updater" "upnp" "uptime" @@ -695,6 +739,7 @@ in with py.pkgs; buildPythonApplication rec { "verisure" "version" "vesync" + "vilfo" "vizio" "voicerss" "volumio" |