nixos-configs/devices/homie/modules/home-assistant/docs/functions.nix
matt1432 57f8ce5803
All checks were successful
Discord / discord commits (push) Has been skipped
feat(hass): add voice command to set timers
2024-09-16 22:54:18 -04:00

90 lines
2.2 KiB
Nix

# I use nix2yaml from ../default.nix to convert to to YAML and place it in the functions of extended_ollama_conversation
[
{
function = {
name = "execute_service";
type = "native";
};
spec = {
name = "execute_services";
description = "Use this function to execute service of devices in Home Assistant.";
parameters = {
type = "object";
properties.list = {
type = "array";
items = {
type = "object";
properties = {
entity_id = {
description = "The entity_id retrieved from available devices. It must start with domain, followed by dot character.";
type = "string";
};
service = {
description = "The service to be called";
type = "string";
};
};
required = ["entity_id" "service"];
};
};
};
};
}
{
function = {
type = "script";
sequence = [
{
service = "script.assist_TimerStart";
data.duration = builtins.concatStringsSep "" [
''{% if not hours %} {% set hours = "0" %} {% endif %}''
''{% if not minutes %} {% set minutes = "0" %} {% endif %}''
''{% if not seconds %} {% set seconds = "0" %} {% endif %}''
''{{ hours | int(default=0) }}:{{ minutes | int(default=0) }}:{{ seconds | int(default=0) }}''
];
target.entity_id = "timer.assist_timer1";
}
];
};
spec = {
name = "timer_start";
description = "Use this function to start a timer in Home Assistant.";
parameters = {
type = "object";
properties = {
hours = {
type = "string";
description = "The amount of hours the timer should run for.";
};
minutes = {
type = "string";
description = "The amount of minutes the timer should run for.";
};
seconds = {
type = "string";
description = "The amount of seconds the timer should run for.";
};
};
required = [];
};
};
}
]