Merge pull request #54541 from dotlambda/home-assistant-0.86
home-assistant: 0.85.1 -> 0.86.4
This commit is contained in:
commit
7003a28916
5 changed files with 152 additions and 62 deletions
|
@ -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";
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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; [ ];
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 ];
|
||||
|
|
Loading…
Reference in a new issue