feat(home-assistant): setup assist pipeline with wyoming

Also switch to unstable home-assistant.
This commit is contained in:
Felix Schröter 2023-07-12 20:52:16 +02:00
parent 09f7db14c3
commit c31a727501
Signed by: felschr
GPG key ID: 671E39E6744C807D
2 changed files with 42 additions and 33 deletions

View file

@ -1,10 +1,14 @@
{ config, pkgs, ... }: { config, pkgs, inputs, ... }:
with pkgs;
let port = config.services.home-assistant.config.http.server_port; let port = config.services.home-assistant.config.http.server_port;
in { in {
imports = [ ./esphome.nix ]; disabledModules = [ "services/home-automation/home-assistant.nix" ];
imports = [
"${inputs.nixpkgs-unstable}/nixos/modules/services/home-automation/home-assistant.nix"
./wyoming.nix
./esphome.nix
];
# just installed for ConBee firmware updates # just installed for ConBee firmware updates
# TODO deconz package is currently broken # TODO deconz package is currently broken
@ -26,10 +30,13 @@ in {
services.home-assistant = { services.home-assistant = {
enable = true; enable = true;
package = pkgs.unstable.home-assistant;
openFirewall = true; openFirewall = true;
extraComponents = [ extraComponents = [
"default_config" "default_config"
"otp" "otp"
"assist_pipeline"
"wyoming"
"esphome" "esphome"
"homekit_controller" "homekit_controller"
"fritz" "fritz"
@ -65,6 +72,7 @@ in {
database_path = "/var/lib/hass/zigbee.db"; database_path = "/var/lib/hass/zigbee.db";
zigpy_config = { ota = { ikea_provider = true; }; }; zigpy_config = { ota = { ikea_provider = true; }; };
}; };
conversation = { intents = { }; };
alarm_control_panel = [{ alarm_control_panel = [{
platform = "manual"; platform = "manual";
code = "!secret alarm_code"; code = "!secret alarm_code";

View file

@ -1,38 +1,39 @@
{ inputs, ... }: { pkgs, inputs, ... }:
{ {
# TODO they don't exist, so not disabling them
/* disabledModules = [
"services/audio/wyoming/piper.nix"
"services/audio/wyoming/faster-whisper.nix"
];
*/
# TODO fails with infinite recursion, why?
# TODO perhaps because of the `pkgs.unstable` override?
imports = [ imports = [
"${inputs.nixpkgs-unstable}/nixos/modules/services/audio/wyoming/piper.nix" "${inputs.nixpkgs-unstable}/nixos/modules/services/audio/wyoming/piper.nix"
"${inputs.nixpkgs-unstable}/nixos/modules/services/audio/wyoming/faster-whisper.nix" "${inputs.nixpkgs-unstable}/nixos/modules/services/audio/wyoming/faster-whisper.nix"
]; ];
/* services.wyoming.piper.servers = { nixpkgs.overlays = [
(final: prev: {
inherit (pkgs.unstable) wyoming-piper wyoming-faster-whisper piper-tts;
})
];
services.wyoming.piper = {
servers = {
"en" = { "en" = {
enable = true; enable = true;
voice = "en_GB-alba-medium"; # see https://github.com/rhasspy/rhasspy3/blob/master/programs/tts/piper/script/download.py
voice = "en-gb-southern_english_female-low";
uri = "tcp://0.0.0.0:10200"; uri = "tcp://0.0.0.0:10200";
speaker = 0; speaker = 0;
}; };
}; };
};
services.wyoming.faster-whisper.servers = { services.wyoming.faster-whisper = {
"tiny-en" = { servers = {
"en" = {
enable = true; enable = true;
# see https://github.com/rhasspy/rhasspy3/blob/master/programs/asr/faster-whisper/script/download.py
model = "tiny-int8"; model = "tiny-int8";
language = "en"; language = "en";
uri = "tcp://0.0.0.0:10300"; uri = "tcp://0.0.0.0:10300";
device = "cpu"; device = "cpu";
}; };
}; };
*/ };
} }