Merge pull request #54541 from dotlambda/home-assistant-0.86

home-assistant: 0.85.1 -> 0.86.4
This commit is contained in:
Peter Hoeg 2019-02-06 09:02:28 +08:00 committed by GitHub
commit 7003a28916
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 152 additions and 62 deletions

View file

@ -6,9 +6,18 @@ let
cfg = config.services.home-assistant;
# cfg.config != null can be assumed here
configFile = pkgs.writeText "configuration.json"
configJSON = pkgs.writeText "configuration.json"
(builtins.toJSON (if cfg.applyDefaultConfig then
(lib.recursiveUpdate defaultConfig cfg.config) else cfg.config));
(recursiveUpdate defaultConfig cfg.config) else cfg.config));
configFile = pkgs.runCommand "configuration.yaml" { } ''
${pkgs.remarshal}/bin/json2yaml -i ${configJSON} -o $out
'';
lovelaceConfigJSON = pkgs.writeText "ui-lovelace.json"
(builtins.toJSON cfg.lovelaceConfig);
lovelaceConfigFile = pkgs.runCommand "ui-lovelace.yaml" { } ''
${pkgs.remarshal}/bin/json2yaml -i ${lovelaceConfigJSON} -o $out
'';
availableComponents = pkgs.home-assistant.availableComponents;
@ -45,6 +54,8 @@ let
defaultConfig = {
homeassistant.time_zone = config.time.timeZone;
http.server_port = (toString cfg.port);
} // optionalAttrs (cfg.lovelaceConfig != null) {
lovelace.mode = "yaml";
};
in {
@ -99,6 +110,53 @@ in {
'';
};
configWritable = mkOption {
default = false;
type = types.bool;
description = ''
Whether to make <filename>configuration.yaml</filename> writable.
This only has an effect if <option>config</option> is set.
This will allow you to edit it from Home Assistant's web interface.
However, bear in mind that it will be overwritten at every start of the service.
'';
};
lovelaceConfig = mkOption {
default = null;
type = with types; nullOr attrs;
# from https://www.home-assistant.io/lovelace/yaml-mode/
example = literalExample ''
{
title = "My Awesome Home";
views = [ {
title = "Example";
cards = [ {
type = "markdown";
title = "Lovelace";
content = "Welcome to your **Lovelace UI**.";
} ];
} ];
}
'';
description = ''
Your <filename>ui-lovelace.yaml</filename> as a Nix attribute set.
Setting this option will automatically add
<literal>lovelace.mode = "yaml";</literal> to your <option>config</option>.
Beware that setting this option will delete your previous <filename>ui-lovelace.yaml</filename>
'';
};
lovelaceConfigWritable = mkOption {
default = false;
type = types.bool;
description = ''
Whether to make <filename>ui-lovelace.yaml</filename> writable.
This only has an effect if <option>lovelaceConfig</option> is set.
This will allow you to edit it from Home Assistant's web interface.
However, bear in mind that it will be overwritten at every start of the service.
'';
};
package = mkOption {
default = pkgs.home-assistant;
defaultText = "pkgs.home-assistant";
@ -144,12 +202,17 @@ in {
systemd.services.home-assistant = {
description = "Home Assistant";
after = [ "network.target" ];
preStart = lib.optionalString (cfg.config != null) ''
config=${cfg.configDir}/configuration.yaml
rm -f $config
${pkgs.remarshal}/bin/json2yaml -i ${configFile} -o $config
chmod 444 $config
'';
preStart = optionalString (cfg.config != null) (if cfg.configWritable then ''
cp --no-preserve=mode ${configFile} "${cfg.configDir}/configuration.yaml"
'' else ''
rm -f "${cfg.configDir}/configuration.yaml"
ln -s ${configFile} "${cfg.configDir}/configuration.yaml"
'') + optionalString (cfg.lovelaceConfig != null) (if cfg.lovelaceConfigWritable then ''
cp --no-preserve=mode ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
'' else ''
rm -f "${cfg.configDir}/ui-lovelace.yaml"
ln -s ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
'');
serviceConfig = {
ExecStart = "${package}/bin/hass --config '${cfg.configDir}'";
User = "hass";

View file

@ -50,6 +50,18 @@ in {
}
];
};
lovelaceConfig = {
title = "My Awesome Home";
views = [ {
title = "Example";
cards = [ {
type = "markdown";
title = "Lovelace";
content = "Welcome to your **Lovelace UI**.";
} ];
} ];
};
lovelaceConfigWritable = true;
};
};
};
@ -59,8 +71,10 @@ in {
$hass->waitForUnit("home-assistant.service");
# The config is specified using a Nix attribute set,
# but then converted from JSON to YAML
$hass->succeed("test -f ${configDir}/configuration.yaml");
# converted from JSON to YAML, and linked to the config dir
$hass->succeed("test -L ${configDir}/configuration.yaml");
# The lovelace config is copied because lovelaceConfigWritable = true
$hass->succeed("test -f ${configDir}/ui-lovelace.yaml");
# Check that Home Assistant's web interface and API can be reached
$hass->waitForOpenPort(8123);

View file

@ -2,7 +2,7 @@
# Do not edit!
{
version = "0.85.1";
version = "0.86.4";
components = {
"abode" = ps: with ps; [ ];
"ads" = ps: with ps; [ ];
@ -21,17 +21,16 @@
"alarm_control_panel.egardia" = ps: with ps; [ ];
"alarm_control_panel.elkm1" = ps: with ps; [ ];
"alarm_control_panel.envisalink" = ps: with ps; [ ];
"alarm_control_panel.homekit_controller" = ps: with ps; [ ];
"alarm_control_panel.homematicip_cloud" = ps: with ps; [ ];
"alarm_control_panel.ialarm" = ps: with ps; [ ];
"alarm_control_panel.ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
"alarm_control_panel.lupusec" = ps: with ps; [ ];
"alarm_control_panel.manual" = ps: with ps; [ ];
"alarm_control_panel.manual_mqtt" = ps: with ps; [ paho-mqtt ];
"alarm_control_panel.mqtt" = ps: with ps; [ paho-mqtt ];
"alarm_control_panel.ness_alarm" = ps: with ps; [ ];
"alarm_control_panel.nx584" = ps: with ps; [ ];
"alarm_control_panel.satel_integra" = ps: with ps; [ ];
"alarm_control_panel.simplisafe" = ps: with ps; [ ];
"alarm_control_panel.spc" = ps: with ps; [ ];
"alarm_control_panel.totalconnect" = ps: with ps; [ ];
"alarm_control_panel.verisure" = ps: with ps; [ ];
@ -71,6 +70,7 @@
"automation.sun" = ps: with ps; [ ];
"automation.template" = ps: with ps; [ ];
"automation.time" = ps: with ps; [ ];
"automation.time_pattern" = ps: with ps; [ ];
"automation.webhook" = ps: with ps; [ aiohttp-cors ];
"automation.zone" = ps: with ps; [ ];
"axis" = ps: with ps; [ ];
@ -92,7 +92,6 @@
"binary_sensor.bmw_connected_drive" = ps: with ps; [ ];
"binary_sensor.command_line" = ps: with ps; [ ];
"binary_sensor.concord232" = ps: with ps; [ ];
"binary_sensor.deconz" = ps: with ps; [ ];
"binary_sensor.demo" = ps: with ps; [ ];
"binary_sensor.digital_ocean" = ps: with ps; [ digital-ocean ];
"binary_sensor.ecobee" = ps: with ps; [ ];
@ -100,7 +99,6 @@
"binary_sensor.eight_sleep" = ps: with ps; [ ];
"binary_sensor.enocean" = ps: with ps; [ ];
"binary_sensor.envisalink" = ps: with ps; [ ];
"binary_sensor.esphome" = ps: with ps; [ ];
"binary_sensor.ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
"binary_sensor.ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
"binary_sensor.fibaro" = ps: with ps; [ ];
@ -117,12 +115,11 @@
"binary_sensor.iss" = ps: with ps; [ ];
"binary_sensor.isy994" = ps: with ps; [ ];
"binary_sensor.knx" = ps: with ps; [ ];
"binary_sensor.konnected" = ps: with ps; [ aiohttp-cors netdisco ];
"binary_sensor.konnected" = ps: with ps; [ aiohttp-cors ];
"binary_sensor.linode" = ps: with ps; [ linode-api ];
"binary_sensor.lupusec" = ps: with ps; [ ];
"binary_sensor.maxcube" = ps: with ps; [ ];
"binary_sensor.modbus" = ps: with ps; [ ];
"binary_sensor.mqtt" = ps: with ps; [ paho-mqtt ];
"binary_sensor.mychevy" = ps: with ps; [ ];
"binary_sensor.mysensors" = ps: with ps; [ ];
"binary_sensor.mystrom" = ps: with ps; [ aiohttp-cors ];
@ -132,14 +129,12 @@
"binary_sensor.nx584" = ps: with ps; [ ];
"binary_sensor.octoprint" = ps: with ps; [ ];
"binary_sensor.opentherm_gw" = ps: with ps; [ ];
"binary_sensor.openuv" = ps: with ps; [ ];
"binary_sensor.pilight" = ps: with ps; [ ];
"binary_sensor.ping" = ps: with ps; [ ];
"binary_sensor.point" = ps: with ps; [ ];
"binary_sensor.qwikswitch" = ps: with ps; [ ];
"binary_sensor.rachio" = ps: with ps; [ ];
"binary_sensor.raincloud" = ps: with ps; [ ];
"binary_sensor.rainmachine" = ps: with ps; [ ];
"binary_sensor.random" = ps: with ps; [ ];
"binary_sensor.raspihats" = ps: with ps; [ ];
"binary_sensor.rest" = ps: with ps; [ ];
@ -174,7 +169,6 @@
"binary_sensor.wirelesstag" = ps: with ps; [ ];
"binary_sensor.workday" = ps: with ps; [ ];
"binary_sensor.xiaomi_aqara" = ps: with ps; [ ];
"binary_sensor.zha" = ps: with ps; [ ];
"binary_sensor.zigbee" = ps: with ps; [ ];
"binary_sensor.zwave" = ps: with ps; [ ];
"blink" = ps: with ps; [ ];
@ -204,7 +198,6 @@
"camera.local_file" = ps: with ps; [ ];
"camera.logi_circle" = ps: with ps; [ ];
"camera.mjpeg" = ps: with ps; [ ];
"camera.mqtt" = ps: with ps; [ paho-mqtt ];
"camera.neato" = ps: with ps; [ pybotvac ];
"camera.nest" = ps: with ps; [ ];
"camera.netatmo" = ps: with ps; [ ];
@ -247,7 +240,6 @@
"climate.melissa" = ps: with ps; [ ];
"climate.mill" = ps: with ps; [ ];
"climate.modbus" = ps: with ps; [ ];
"climate.mqtt" = ps: with ps; [ paho-mqtt ];
"climate.mysensors" = ps: with ps; [ ];
"climate.nest" = ps: with ps; [ ];
"climate.netatmo" = ps: with ps; [ ];
@ -301,20 +293,18 @@
"cover.aladdin_connect" = ps: with ps; [ ];
"cover.brunt" = ps: with ps; [ ];
"cover.command_line" = ps: with ps; [ ];
"cover.deconz" = ps: with ps; [ ];
"cover.demo" = ps: with ps; [ ];
"cover.esphome" = ps: with ps; [ ];
"cover.fibaro" = ps: with ps; [ ];
"cover.garadget" = ps: with ps; [ ];
"cover.gogogate2" = ps: with ps; [ ];
"cover.group" = ps: with ps; [ ];
"cover.homekit_controller" = ps: with ps; [ ];
"cover.homematic" = ps: with ps; [ pyhomematic ];
"cover.insteon" = ps: with ps; [ ];
"cover.isy994" = ps: with ps; [ ];
"cover.knx" = ps: with ps; [ ];
"cover.lutron" = ps: with ps; [ ];
"cover.lutron_caseta" = ps: with ps; [ ];
"cover.mqtt" = ps: with ps; [ paho-mqtt ];
"cover.myq" = ps: with ps; [ ];
"cover.mysensors" = ps: with ps; [ ];
"cover.opengarage" = ps: with ps; [ ];
@ -337,9 +327,16 @@
"daikin.const" = ps: with ps; [ ];
"datadog" = ps: with ps; [ datadog ];
"deconz" = ps: with ps; [ ];
"deconz.binary_sensor" = ps: with ps; [ ];
"deconz.config_flow" = ps: with ps; [ ];
"deconz.const" = ps: with ps; [ ];
"deconz.cover" = ps: with ps; [ ];
"deconz.deconz_device" = ps: with ps; [ ];
"deconz.gateway" = ps: with ps; [ ];
"deconz.light" = ps: with ps; [ ];
"deconz.scene" = ps: with ps; [ ];
"deconz.sensor" = ps: with ps; [ ];
"deconz.switch" = ps: with ps; [ ];
"demo" = ps: with ps; [ aiohttp-cors ];
"device_sun_light_trigger" = ps: with ps; [ ];
"device_tracker" = ps: with ps; [ ];
@ -358,7 +355,6 @@
"device_tracker.demo" = ps: with ps; [ ];
"device_tracker.freebox" = ps: with ps; [ ];
"device_tracker.fritz" = ps: with ps; [ fritzconnection ];
"device_tracker.geofency" = ps: with ps; [ aiohttp-cors ];
"device_tracker.google_maps" = ps: with ps; [ ];
"device_tracker.googlehome" = ps: with ps; [ ];
"device_tracker.gpslogger" = ps: with ps; [ aiohttp-cors ];
@ -419,26 +415,33 @@
"emulated_hue" = ps: with ps; [ aiohttp-cors ];
"emulated_hue.hue_api" = ps: with ps; [ ];
"emulated_hue.upnp" = ps: with ps; [ ];
"emulated_roku" = ps: with ps; [ ];
"emulated_roku.binding" = ps: with ps; [ ];
"emulated_roku.config_flow" = ps: with ps; [ ];
"emulated_roku.const" = ps: with ps; [ ];
"enocean" = ps: with ps; [ ];
"envisalink" = ps: with ps; [ ];
"esphome" = ps: with ps; [ ];
"esphome.binary_sensor" = ps: with ps; [ ];
"esphome.config_flow" = ps: with ps; [ ];
"esphome.cover" = ps: with ps; [ ];
"esphome.fan" = ps: with ps; [ ];
"esphome.light" = ps: with ps; [ ];
"esphome.sensor" = ps: with ps; [ ];
"esphome.switch" = ps: with ps; [ ];
"eufy" = ps: with ps; [ ];
"evohome" = ps: with ps; [ ];
"fan" = ps: with ps; [ ];
"fan.comfoconnect" = ps: with ps; [ ];
"fan.demo" = ps: with ps; [ ];
"fan.dyson" = ps: with ps; [ ];
"fan.esphome" = ps: with ps; [ ];
"fan.insteon" = ps: with ps; [ ];
"fan.isy994" = ps: with ps; [ ];
"fan.mqtt" = ps: with ps; [ paho-mqtt ];
"fan.template" = ps: with ps; [ ];
"fan.tuya" = ps: with ps; [ ];
"fan.wemo" = ps: with ps; [ ];
"fan.wink" = ps: with ps; [ ];
"fan.xiaomi_miio" = ps: with ps; [ construct ];
"fan.zha" = ps: with ps; [ ];
"fan.zwave" = ps: with ps; [ ];
"feedreader" = ps: with ps; [ feedparser ];
"ffmpeg" = ps: with ps; [ ha-ffmpeg ];
@ -456,6 +459,7 @@
"geo_location.nsw_rural_fire_service_feed" = ps: with ps; [ ];
"geo_location.usgs_earthquakes_feed" = ps: with ps; [ ];
"geofency" = ps: with ps; [ aiohttp-cors ];
"geofency.device_tracker" = ps: with ps; [ aiohttp-cors ];
"goalfeed" = ps: with ps; [ ];
"google" = ps: with ps; [ google_api_python_client httplib2 oauth2client ];
"google_assistant" = ps: with ps; [ aiohttp-cors ];
@ -465,6 +469,7 @@
"google_assistant.smart_home" = ps: with ps; [ ];
"google_assistant.trait" = ps: with ps; [ ];
"google_domains" = ps: with ps; [ ];
"gpslogger" = ps: with ps; [ aiohttp-cors ];
"graphite" = ps: with ps; [ ];
"greeneye_monitor" = ps: with ps; [ ];
"group" = ps: with ps; [ ];
@ -512,6 +517,7 @@
"hue.config_flow" = ps: with ps; [ ];
"hue.const" = ps: with ps; [ ];
"hue.errors" = ps: with ps; [ ];
"hue.light" = ps: with ps; [ aiohue ];
"hydrawise" = ps: with ps; [ ];
"idteck_prox" = ps: with ps; [ ];
"ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
@ -550,7 +556,7 @@
"keyboard_remote" = ps: with ps; [ evdev ];
"kira" = ps: with ps; [ ];
"knx" = ps: with ps; [ ];
"konnected" = ps: with ps; [ aiohttp-cors netdisco ];
"konnected" = ps: with ps; [ aiohttp-cors ];
"lametric" = ps: with ps; [ ];
"lcn" = ps: with ps; [ ];
"lifx" = ps: with ps; [ ];
@ -560,13 +566,11 @@
"light.avion" = ps: with ps; [ ];
"light.blinksticklight" = ps: with ps; [ BlinkStick ];
"light.blinkt" = ps: with ps; [ ];
"light.deconz" = ps: with ps; [ ];
"light.decora" = ps: with ps; [ ];
"light.decora_wifi" = ps: with ps; [ ];
"light.demo" = ps: with ps; [ ];
"light.elkm1" = ps: with ps; [ ];
"light.enocean" = ps: with ps; [ ];
"light.esphome" = ps: with ps; [ ];
"light.eufy" = ps: with ps; [ ];
"light.fibaro" = ps: with ps; [ ];
"light.flux_led" = ps: with ps; [ ];
@ -578,7 +582,6 @@
"light.homematic" = ps: with ps; [ pyhomematic ];
"light.homematicip_cloud" = ps: with ps; [ ];
"light.homeworks" = ps: with ps; [ ];
"light.hue" = ps: with ps; [ aiohue ];
"light.hyperion" = ps: with ps; [ ];
"light.iglo" = ps: with ps; [ ];
"light.ihc" = ps: with ps; [ defusedxml ];
@ -595,7 +598,6 @@
"light.lutron_caseta" = ps: with ps; [ ];
"light.lw12wifi" = ps: with ps; [ ];
"light.mochad" = ps: with ps; [ ];
"light.mqtt" = ps: with ps; [ paho-mqtt ];
"light.mysensors" = ps: with ps; [ ];
"light.mystrom" = ps: with ps; [ ];
"light.nanoleaf_aurora" = ps: with ps; [ nanoleaf ];
@ -629,23 +631,23 @@
"light.yeelight" = ps: with ps; [ ];
"light.yeelightsunflower" = ps: with ps; [ ];
"light.zengge" = ps: with ps; [ ];
"light.zha" = ps: with ps; [ ];
"light.zigbee" = ps: with ps; [ ];
"light.zwave" = ps: with ps; [ ];
"lightwave" = ps: with ps; [ ];
"linode" = ps: with ps; [ linode-api ];
"lirc" = ps: with ps; [ ];
"litejet" = ps: with ps; [ ];
"locative" = ps: with ps; [ aiohttp-cors ];
"lock" = ps: with ps; [ ];
"lock.abode" = ps: with ps; [ ];
"lock.august" = ps: with ps; [ ];
"lock.bmw_connected_drive" = ps: with ps; [ ];
"lock.demo" = ps: with ps; [ ];
"lock.homekit_controller" = ps: with ps; [ ];
"lock.homematic" = ps: with ps; [ pyhomematic ];
"lock.isy994" = ps: with ps; [ ];
"lock.kiwi" = ps: with ps; [ ];
"lock.lockitron" = ps: with ps; [ ];
"lock.mqtt" = ps: with ps; [ paho-mqtt ];
"lock.nello" = ps: with ps; [ ];
"lock.nuki" = ps: with ps; [ ];
"lock.sesame" = ps: with ps; [ ];
@ -673,6 +675,7 @@
"mailbox.asterisk_mbox" = ps: with ps; [ ];
"mailbox.demo" = ps: with ps; [ ];
"mailgun" = ps: with ps; [ aiohttp-cors ];
"mailgun.notify" = ps: with ps; [ aiohttp-cors ];
"map" = ps: with ps; [ ];
"matrix" = ps: with ps; [ matrix-client ];
"maxcube" = ps: with ps; [ ];
@ -713,7 +716,6 @@
"media_player.mpchc" = ps: with ps; [ ];
"media_player.mpd" = ps: with ps; [ mpd2 ];
"media_player.nad" = ps: with ps; [ ];
"media_player.nadtcp" = ps: with ps; [ ];
"media_player.onkyo" = ps: with ps; [ onkyo-eiscp ];
"media_player.openhome" = ps: with ps; [ ];
"media_player.panasonic_bluray" = ps: with ps; [ ];
@ -749,11 +751,22 @@
"mochad" = ps: with ps; [ ];
"modbus" = ps: with ps; [ ];
"mqtt" = ps: with ps; [ paho-mqtt ];
"mqtt.alarm_control_panel" = ps: with ps; [ paho-mqtt ];
"mqtt.binary_sensor" = ps: with ps; [ paho-mqtt ];
"mqtt.camera" = ps: with ps; [ paho-mqtt ];
"mqtt.climate" = ps: with ps; [ paho-mqtt ];
"mqtt.config_flow" = ps: with ps; [ ];
"mqtt.const" = ps: with ps; [ ];
"mqtt.cover" = ps: with ps; [ paho-mqtt ];
"mqtt.discovery" = ps: with ps; [ ];
"mqtt.fan" = ps: with ps; [ paho-mqtt ];
"mqtt.light" = ps: with ps; [ paho-mqtt ];
"mqtt.lock" = ps: with ps; [ paho-mqtt ];
"mqtt.sensor" = ps: with ps; [ paho-mqtt ];
"mqtt.server" = ps: with ps; [ aiohttp-cors hbmqtt ];
"mqtt.subscription" = ps: with ps; [ ];
"mqtt.switch" = ps: with ps; [ paho-mqtt ];
"mqtt.vacuum" = ps: with ps; [ paho-mqtt ];
"mqtt_eventstream" = ps: with ps; [ paho-mqtt ];
"mqtt_statestream" = ps: with ps; [ paho-mqtt ];
"mychevy" = ps: with ps; [ ];
@ -805,7 +818,6 @@
"notify.lametric" = ps: with ps; [ ];
"notify.lannouncer" = ps: with ps; [ ];
"notify.llamalab_automate" = ps: with ps; [ ];
"notify.mailgun" = ps: with ps; [ aiohttp-cors ];
"notify.mastodon" = ps: with ps; [ ];
"notify.matrix" = ps: with ps; [ matrix-client ];
"notify.message_bird" = ps: with ps; [ ];
@ -844,8 +856,10 @@
"onboarding.views" = ps: with ps; [ ];
"opentherm_gw" = ps: with ps; [ ];
"openuv" = ps: with ps; [ ];
"openuv.binary_sensor" = ps: with ps; [ ];
"openuv.config_flow" = ps: with ps; [ ];
"openuv.const" = ps: with ps; [ ];
"openuv.sensor" = ps: with ps; [ ];
"owntracks" = ps: with ps; [ aiohttp-cors libnacl ];
"owntracks.config_flow" = ps: with ps; [ ];
"panel_custom" = ps: with ps; [ aiohttp-cors ];
@ -865,8 +879,11 @@
"rainbird" = ps: with ps; [ ];
"raincloud" = ps: with ps; [ ];
"rainmachine" = ps: with ps; [ ];
"rainmachine.binary_sensor" = ps: with ps; [ ];
"rainmachine.config_flow" = ps: with ps; [ ];
"rainmachine.const" = ps: with ps; [ ];
"rainmachine.sensor" = ps: with ps; [ ];
"rainmachine.switch" = ps: with ps; [ ];
"raspihats" = ps: with ps; [ ];
"recorder" = ps: with ps; [ sqlalchemy ];
"recorder.const" = ps: with ps; [ ];
@ -880,11 +897,13 @@
"remote.harmony" = ps: with ps; [ ];
"remote.itach" = ps: with ps; [ ];
"remote.kira" = ps: with ps; [ ];
"remote.roku" = ps: with ps; [ ];
"remote.xiaomi_miio" = ps: with ps; [ construct ];
"rest_command" = ps: with ps; [ ];
"rflink" = ps: with ps; [ ];
"rfxtrx" = ps: with ps; [ ];
"ring" = ps: with ps; [ ];
"roku" = ps: with ps; [ ];
"route53" = ps: with ps; [ boto3 ];
"rpi_gpio" = ps: with ps; [ ];
"rpi_pfio" = ps: with ps; [ ];
@ -892,7 +911,6 @@
"sabnzbd" = ps: with ps; [ ];
"satel_integra" = ps: with ps; [ ];
"scene" = ps: with ps; [ ];
"scene.deconz" = ps: with ps; [ ];
"scene.elkm1" = ps: with ps; [ ];
"scene.fibaro" = ps: with ps; [ ];
"scene.homeassistant" = ps: with ps; [ ];
@ -956,7 +974,6 @@
"sensor.currencylayer" = ps: with ps; [ ];
"sensor.daikin" = ps: with ps; [ ];
"sensor.darksky" = ps: with ps; [ python-forecastio ];
"sensor.deconz" = ps: with ps; [ ];
"sensor.deluge" = ps: with ps; [ deluge-client ];
"sensor.demo" = ps: with ps; [ ];
"sensor.deutsche_bahn" = ps: with ps; [ ];
@ -985,7 +1002,6 @@
"sensor.entur_public_transport" = ps: with ps; [ ];
"sensor.envirophat" = ps: with ps; [ ];
"sensor.envisalink" = ps: with ps; [ ];
"sensor.esphome" = ps: with ps; [ ];
"sensor.etherscan" = ps: with ps; [ ];
"sensor.fail2ban" = ps: with ps; [ ];
"sensor.fastdotcom" = ps: with ps; [ ];
@ -1068,7 +1084,6 @@
"sensor.mold_indicator" = ps: with ps; [ ];
"sensor.moon" = ps: with ps; [ ];
"sensor.mopar" = ps: with ps; [ ];
"sensor.mqtt" = ps: with ps; [ paho-mqtt ];
"sensor.mqtt_room" = ps: with ps; [ paho-mqtt ];
"sensor.mvglive" = ps: with ps; [ PyMVGLive ];
"sensor.mychevy" = ps: with ps; [ ];
@ -1093,7 +1108,6 @@
"sensor.openhardwaremonitor" = ps: with ps; [ ];
"sensor.opensky" = ps: with ps; [ ];
"sensor.opentherm_gw" = ps: with ps; [ ];
"sensor.openuv" = ps: with ps; [ ];
"sensor.openweathermap" = ps: with ps; [ pyowm ];
"sensor.otp" = ps: with ps; [ pyotp ];
"sensor.pi_hole" = ps: with ps; [ ];
@ -1113,7 +1127,6 @@
"sensor.radarr" = ps: with ps; [ ];
"sensor.rainbird" = ps: with ps; [ ];
"sensor.raincloud" = ps: with ps; [ ];
"sensor.rainmachine" = ps: with ps; [ ];
"sensor.random" = ps: with ps; [ ];
"sensor.rest" = ps: with ps; [ ];
"sensor.rflink" = ps: with ps; [ ];
@ -1220,7 +1233,6 @@
"sensor.zabbix" = ps: with ps; [ ];
"sensor.zamg" = ps: with ps; [ ];
"sensor.zestimate" = ps: with ps; [ xmltodict ];
"sensor.zha" = ps: with ps; [ ];
"sensor.zigbee" = ps: with ps; [ ];
"sensor.zoneminder" = ps: with ps; [ zm-py ];
"sensor.zwave" = ps: with ps; [ ];
@ -1228,6 +1240,7 @@
"shiftr" = ps: with ps; [ paho-mqtt ];
"shopping_list" = ps: with ps; [ aiohttp-cors ];
"simplisafe" = ps: with ps; [ ];
"simplisafe.alarm_control_panel" = ps: with ps; [ ];
"simplisafe.config_flow" = ps: with ps; [ ];
"simplisafe.const" = ps: with ps; [ ];
"sisyphus" = ps: with ps; [ ];
@ -1258,7 +1271,6 @@
"switch.bbb_gpio" = ps: with ps; [ ];
"switch.broadlink" = ps: with ps; [ broadlink ];
"switch.command_line" = ps: with ps; [ ];
"switch.deconz" = ps: with ps; [ ];
"switch.deluge" = ps: with ps; [ deluge-client ];
"switch.demo" = ps: with ps; [ ];
"switch.digital_ocean" = ps: with ps; [ digital-ocean ];
@ -1269,7 +1281,6 @@
"switch.edp_redy" = ps: with ps; [ ];
"switch.elkm1" = ps: with ps; [ ];
"switch.enocean" = ps: with ps; [ ];
"switch.esphome" = ps: with ps; [ ];
"switch.eufy" = ps: with ps; [ ];
"switch.fibaro" = ps: with ps; [ ];
"switch.flux" = ps: with ps; [ ];
@ -1290,7 +1301,7 @@
"switch.isy994" = ps: with ps; [ ];
"switch.kankun" = ps: with ps; [ ];
"switch.knx" = ps: with ps; [ ];
"switch.konnected" = ps: with ps; [ aiohttp-cors netdisco ];
"switch.konnected" = ps: with ps; [ aiohttp-cors ];
"switch.lightwave" = ps: with ps; [ ];
"switch.linode" = ps: with ps; [ linode-api ];
"switch.litejet" = ps: with ps; [ ];
@ -1300,7 +1311,6 @@
"switch.mfi" = ps: with ps; [ ];
"switch.mochad" = ps: with ps; [ ];
"switch.modbus" = ps: with ps; [ ];
"switch.mqtt" = ps: with ps; [ paho-mqtt ];
"switch.mysensors" = ps: with ps; [ ];
"switch.mystrom" = ps: with ps; [ ];
"switch.neato" = ps: with ps; [ pybotvac ];
@ -1313,7 +1323,6 @@
"switch.rachio" = ps: with ps; [ ];
"switch.rainbird" = ps: with ps; [ ];
"switch.raincloud" = ps: with ps; [ ];
"switch.rainmachine" = ps: with ps; [ ];
"switch.raspihats" = ps: with ps; [ ];
"switch.raspyrfm" = ps: with ps; [ ];
"switch.recswitch" = ps: with ps; [ ];
@ -1356,7 +1365,6 @@
"switch.wirelesstag" = ps: with ps; [ ];
"switch.xiaomi_aqara" = ps: with ps; [ ];
"switch.xiaomi_miio" = ps: with ps; [ construct ];
"switch.zha" = ps: with ps; [ ];
"switch.zigbee" = ps: with ps; [ ];
"switch.zoneminder" = ps: with ps; [ zm-py ];
"switch.zwave" = ps: with ps; [ ];
@ -1408,7 +1416,6 @@
"vacuum.demo" = ps: with ps; [ ];
"vacuum.dyson" = ps: with ps; [ ];
"vacuum.ecovacs" = ps: with ps; [ ];
"vacuum.mqtt" = ps: with ps; [ paho-mqtt ];
"vacuum.neato" = ps: with ps; [ pybotvac ];
"vacuum.roomba" = ps: with ps; [ ];
"vacuum.xiaomi_miio" = ps: with ps; [ construct ];
@ -1458,11 +1465,17 @@
"zabbix" = ps: with ps; [ ];
"zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
"zha" = ps: with ps; [ ];
"zha.api" = ps: with ps; [ ];
"zha.binary_sensor" = ps: with ps; [ ];
"zha.config_flow" = ps: with ps; [ ];
"zha.const" = ps: with ps; [ ];
"zha.entities" = ps: with ps; [ ];
"zha.event" = ps: with ps; [ ];
"zha.fan" = ps: with ps; [ ];
"zha.helpers" = ps: with ps; [ ];
"zha.light" = ps: with ps; [ ];
"zha.sensor" = ps: with ps; [ ];
"zha.switch" = ps: with ps; [ ];
"zigbee" = ps: with ps; [ ];
"zone" = ps: with ps; [ ];
"zone.config_flow" = ps: with ps; [ ];

View file

@ -18,16 +18,16 @@ let
defaultOverrides = [
# Override the version of some packages pinned in Home Assistant's setup.py
(mkOverride "aiohttp" "3.5.1"
"c115744b2a0bf666fd8cde52a6d3e9319ffeb486009579743f5adfdcf0bf0773")
(mkOverride "aiohttp" "3.5.4"
"9c4c83f4fa1938377da32bc2d59379025ceeee8e24b89f72fcbccd8ca22dc9bf")
(mkOverride "astral" "1.7.1"
"88086fd2006c946567285286464b2da3294a3b0cbba4410b7008ec2458f82a07")
(mkOverride "async-timeout" "3.0.1"
"0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f")
(mkOverride "attrs" "18.2.0"
"10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69")
(mkOverride "bcrypt" "3.1.4"
"67ed1a374c9155ec0840214ce804616de49c3df9c5bc66740687c1c9b1cd9e8d")
(mkOverride "bcrypt" "3.1.5"
"136243dc44e5bab9b61206bd46fff3018bd80980b1a1dfbab64a22ff5745957f")
(mkOverride "pyjwt" "1.6.4"
"4ee413b357d53fd3fb44704577afac88e72e878716116270d722723d65b42176")
(mkOverride "cryptography" "2.3.1"
@ -38,8 +38,8 @@ let
"7723daf30996db26573176bddcdf5fcb98f66dc70df05c9cb29f2c79b8193245")
(mkOverride "requests" "2.21.0"
"502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e")
(mkOverride "ruamel_yaml" "0.15.81"
"6cbe7273a2e7667cd2ca7b12bec1c715a8259ad80f09c6f12c378f664d29fa5e")
(mkOverride "ruamel_yaml" "0.15.85"
"34af6e2f9787acd3937b55c0279f46adff43124c5d72dced84aab6c89d1a960f")
(mkOverride "voluptuous" "0.11.5"
"567a56286ef82a9d7ae0628c5842f65f516abcb496e74f3f59f1d7b28df314ef")
(mkOverride "voluptuous-serialize" "2.0.0"
@ -87,7 +87,7 @@ let
extraBuildInputs = extraPackages py.pkgs;
# Don't forget to run parse-requirements.py after updating
hassVersion = "0.85.1";
hassVersion = "0.86.4";
in with py.pkgs; buildPythonApplication rec {
pname = "homeassistant";
@ -102,7 +102,7 @@ in with py.pkgs; buildPythonApplication rec {
owner = "home-assistant";
repo = "home-assistant";
rev = version;
sha256 = "0i9s0mgzfs3s6k4vw2zvwgqziz77fghpijrjrxx5nbrmm592h01a";
sha256 = "13yyzcwz44gz6j0fh1awws83p6fmpib9ribm1453qr172knanhjy";
};
propagatedBuildInputs = [

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "home-assistant-frontend";
version = "20190109.1";
version = "20190121.1";
src = fetchPypi {
inherit pname version;
sha256 = "2ca035461c06591dc793c7651ed3f7c17ab3addf5859e89d2f956215433140ba";
sha256 = "7d1e127249dbefd0c8e101d8b178eeae6bf76a0296d8b22ed33759e23ef07856";
};
propagatedBuildInputs = [ user-agents ];