Merge branch 'develop' into feature/dataset-customization

This commit is contained in:
Alex O'Connell
2024-02-17 19:55:07 -05:00
16 changed files with 598 additions and 163 deletions

View File

@@ -144,6 +144,8 @@ See [docs/Backend Configuration.md](/docs/Backend%20Configuration.md) for more i
**Installing llama-cpp-python for local model usage**:
In order to run a model directly as part of your Home Assistant installation, you will need to install one of the pre-build wheels because there are no existing musllinux wheels for the package. Compatible wheels for x86_x64 and arm64 are provided in the [dist](./dist) folder. Copy the `*.whl` files to the `custom_components/llama_conversation/` folder. They will be installed while setting up the component.
NOTE: Home Assistant recently moved from Python 3.11 to Python 3.12. If you are using HA 2024.1.4 and prior, use the `cp311` wheels and if you are using HA 2024.2.1 or newer then use the `cp312` wheels.
**Setting up the Llama.cpp backend with a model from HuggingFace**:
You need the following settings to configure the local backend from HuggingFace:
1. Model Name: the name of the model in the form `repo/model-name`. The repo MUST contain a GGUF quantized model.

View File

@@ -9,34 +9,19 @@ import requests
import re
import os
import json
import webcolors
import voluptuous as vol
from collections.abc import Iterable
import homeassistant.components.conversation as ha_conversation
from homeassistant.components.conversation import ConversationInput, ConversationResult, AbstractConversationAgent
from homeassistant.components.conversation.const import DOMAIN as CONVERSATION_DOMAIN
from homeassistant.components.homeassistant.exposed_entities import (
async_should_expose,
)
from homeassistant.components.homeassistant.exposed_entities import async_should_expose
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_PORT, CONF_SSL, MATCH_ALL
from homeassistant.core import (
HomeAssistant,
ServiceCall,
ServiceResponse,
SupportsResponse,
)
from homeassistant.exceptions import (
ConfigEntryNotReady,
HomeAssistantError,
TemplateError,
)
from homeassistant.helpers import config_validation as cv, intent, selector, template
from homeassistant.helpers.typing import ConfigType
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady, ConfigEntryError, TemplateError
from homeassistant.helpers import config_validation as cv, intent, template
from homeassistant.util import ulid
from .utils import closest_color, flatten_vol_schema, install_llama_cpp_python
from .const import (
CONF_CHAT_MODEL,
CONF_MAX_TOKENS,
@@ -165,34 +150,6 @@ async def async_migrate_entry(hass, config_entry: ConfigEntry):
return True
def closest_color(requested_color):
min_colors = {}
for key, name in webcolors.CSS3_HEX_TO_NAMES.items():
r_c, g_c, b_c = webcolors.hex_to_rgb(key)
rd = (r_c - requested_color[0]) ** 2
gd = (g_c - requested_color[1]) ** 2
bd = (b_c - requested_color[2]) ** 2
min_colors[(rd + gd + bd)] = name
return min_colors[min(min_colors.keys())]
def flatten_schema(schema):
flattened = []
def _flatten(current_schema, prefix=''):
if isinstance(current_schema, vol.Schema):
if isinstance(current_schema.schema, vol.validators._WithSubValidators):
for subval in current_schema.schema.validators:
_flatten(subval, prefix)
elif isinstance(current_schema.schema, dict):
for key, val in current_schema.schema.items():
_flatten(val, prefix + str(key) + '/')
elif isinstance(current_schema, vol.validators._WithSubValidators):
for subval in current_schema.validators:
_flatten(subval, prefix)
elif callable(current_schema):
flattened.append(prefix[:-1] if prefix else prefix)
_flatten(schema)
return flattened
class LLaMAAgent(AbstractConversationAgent):
"""Local LLaMA conversation agent."""
@@ -459,7 +416,7 @@ class LLaMAAgent(AbstractConversationAgent):
all_services = []
for domain in domains:
for name, service in service_dict.get(domain, {}).items():
args = flatten_schema(service.schema)
args = flatten_vol_schema(service.schema)
args_to_expose = set(args).intersection(extra_attributes_to_expose)
all_services.append(f"{domain}.{name}({','.join(args_to_expose)})")
formatted_services = ", ".join(all_services)
@@ -488,7 +445,16 @@ class LocalLLaMAAgent(LLaMAAgent):
raise Exception(f"Model was not found at '{self.model_path}'!")
# don't import it until now because the wheel is installed by config_flow.py
module = importlib.import_module("llama_cpp")
try:
module = importlib.import_module("llama_cpp")
except ModuleNotFoundError:
# attempt to re-install llama-cpp-python if it was uninstalled for some reason
install_result = install_llama_cpp_python(self.hass.config.config_dir)
if not install_result == True:
raise ConfigEntryError("llama-cpp-python was not installed on startup and re-installing it led to an error!")
module = importlib.import_module("llama_cpp")
Llama = getattr(module, "Llama")
LlamaGrammar = getattr(module, "LlamaGrammar")

View File

@@ -1,24 +1,18 @@
"""Config flow for Local LLaMA Conversation integration."""
from __future__ import annotations
import time
import os
import sys
import logging
import requests
import platform
from types import MappingProxyType
from typing import Any
from abc import ABC, abstractmethod
from importlib.metadata import version
from huggingface_hub import hf_hub_download, HfFileSystem
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.core import HomeAssistant
from homeassistant.requirements import pip_kwargs
from homeassistant.util.package import install_package, is_installed
from homeassistant.const import CONF_HOST, CONF_PORT, CONF_SSL
from homeassistant.data_entry_flow import (
AbortFlow,
@@ -37,6 +31,7 @@ from homeassistant.helpers.selector import (
TextSelectorConfig,
)
from .utils import download_model_from_hf, install_llama_cpp_python
from .const import (
CONF_CHAT_MODEL,
CONF_MAX_TOKENS,
@@ -167,62 +162,6 @@ def STEP_REMOTE_SETUP_DATA_SCHEMA(backend_type: str, *, host=None, port=None, ss
}
)
def download_model_from_hf(
model_name: str, quantization_type: str, storage_folder: str
):
try:
fs = HfFileSystem()
potential_files = [ f for f in fs.glob(f"{model_name}/*.gguf") ]
wanted_file = [f for f in potential_files if (f".{quantization_type.lower()}." in f or f".{quantization_type.upper()}." in f)]
if len(wanted_file) != 1:
raise Exception(f"The quantization '{quantization_type}' does not exist in the HF repo for {model_name}")
os.makedirs(storage_folder, exist_ok=True)
return hf_hub_download(
repo_id=model_name,
repo_type="model",
filename=wanted_file[0].removeprefix(model_name + "/"),
resume_download=True,
cache_dir=storage_folder,
)
except Exception as ex:
return ex
def install_llama_cpp_python(config_dir: str):
try:
platform_suffix = platform.machine()
if platform_suffix == "arm64":
platform_suffix = "aarch64"
folder = os.path.dirname(__file__)
potential_wheels = sorted([ path for path in os.listdir(folder) if path.endswith(f"{platform_suffix}.whl") ], reverse=True)
if len(potential_wheels) == 0:
# someone who is better at async can figure out why this is necessary
time.sleep(0.5)
if is_installed("llama-cpp-python"):
_LOGGER.info("llama-cpp-python is already installed")
return True
return Exception("missing_wheels")
latest_wheel = potential_wheels[0]
latest_version = latest_wheel.split("-")[1]
if not is_installed("llama-cpp-python") or version("llama-cpp-python") != latest_version:
_LOGGER.info("Installing llama-cpp-python from wheel")
_LOGGER.debug(f"Wheel location: {latest_wheel}")
return install_package(os.path.join(folder, latest_wheel), pip_kwargs(config_dir))
else:
# someone who is better at async can figure out why this is necessary
time.sleep(0.5)
_LOGGER.info("llama-cpp-python is already installed")
return True
except Exception as ex:
_LOGGER.exception("Install failed!")
return ex
class BaseLlamaConversationConfigFlow(FlowHandler, ABC):
"""Represent the base config flow for Z-Wave JS."""

View File

@@ -7,7 +7,7 @@
"missing_model_file": "The provided file does not exist.",
"other_existing_local": "Another model is already loaded locally. Please unload it or configure a remote model.",
"unknown": "Unexpected error",
"missing_wheels": "Llama.cpp is not installed and could not find any wheels to install!",
"missing_wheels": "Llama.cpp is not installed and could not find any wheels to install! See the logs for more information.",
"pip_wheel_error": "Pip returned an error while installing the wheel!"
},
"progress": {

View File

@@ -0,0 +1,104 @@
import time
import os
import sys
import platform
import logging
import voluptuous as vol
import webcolors
from importlib.metadata import version
from huggingface_hub import hf_hub_download, HfFileSystem
from homeassistant.requirements import pip_kwargs
from homeassistant.util.package import install_package, is_installed
_LOGGER = logging.getLogger(__name__)
def closest_color(requested_color):
min_colors = {}
for key, name in webcolors.CSS3_HEX_TO_NAMES.items():
r_c, g_c, b_c = webcolors.hex_to_rgb(key)
rd = (r_c - requested_color[0]) ** 2
gd = (g_c - requested_color[1]) ** 2
bd = (b_c - requested_color[2]) ** 2
min_colors[(rd + gd + bd)] = name
return min_colors[min(min_colors.keys())]
def flatten_vol_schema(schema):
flattened = []
def _flatten(current_schema, prefix=''):
if isinstance(current_schema, vol.Schema):
if isinstance(current_schema.schema, vol.validators._WithSubValidators):
for subval in current_schema.schema.validators:
_flatten(subval, prefix)
elif isinstance(current_schema.schema, dict):
for key, val in current_schema.schema.items():
_flatten(val, prefix + str(key) + '/')
elif isinstance(current_schema, vol.validators._WithSubValidators):
for subval in current_schema.validators:
_flatten(subval, prefix)
elif callable(current_schema):
flattened.append(prefix[:-1] if prefix else prefix)
_flatten(schema)
return flattened
def download_model_from_hf(model_name: str, quantization_type: str, storage_folder: str):
try:
fs = HfFileSystem()
potential_files = [ f for f in fs.glob(f"{model_name}/*.gguf") ]
wanted_file = [f for f in potential_files if (f".{quantization_type.lower()}." in f or f".{quantization_type.upper()}." in f)]
if len(wanted_file) != 1:
raise Exception(f"The quantization '{quantization_type}' does not exist in the HF repo for {model_name}")
os.makedirs(storage_folder, exist_ok=True)
return hf_hub_download(
repo_id=model_name,
repo_type="model",
filename=wanted_file[0].removeprefix(model_name + "/"),
resume_download=True,
cache_dir=storage_folder,
)
except Exception as ex:
return ex
def install_llama_cpp_python(config_dir: str):
try:
platform_suffix = platform.machine()
if platform_suffix == "arm64":
platform_suffix = "aarch64"
folder = os.path.dirname(__file__)
potential_wheels = sorted([ path for path in os.listdir(folder) if path.endswith(f"{platform_suffix}.whl") ], reverse=True)
potential_wheels = [ wheel for wheel in potential_wheels if f"cp{sys.version_info.major}{sys.version_info.minor}" in wheel ]
if len(potential_wheels) == 0:
# someone who is better at async can figure out why this is necessary
time.sleep(0.5)
if is_installed("llama-cpp-python"):
_LOGGER.info("llama-cpp-python is already installed")
return True
_LOGGER.error(
"Error installing llama-cpp-python. Could not find any wheels that match the following filters. " + \
f"platform: {platform_suffix}, python version: {sys.version_info.major}.{sys.version_info.minor}. " + \
"If you recently updated Home Assistant, then you may need to use a different wheel than previously. " + \
"Make sure that the correct .whl file is located in config/custom_components/llama_conversation/*"
)
return Exception("missing_wheels")
latest_wheel = potential_wheels[0]
latest_version = latest_wheel.split("-")[1]
if not is_installed("llama-cpp-python") or version("llama-cpp-python") != latest_version:
_LOGGER.info("Installing llama-cpp-python from wheel")
_LOGGER.debug(f"Wheel location: {latest_wheel}")
return install_package(os.path.join(folder, latest_wheel), pip_kwargs(config_dir))
else:
# someone who is better at async can figure out why this is necessary
time.sleep(0.5)
_LOGGER.info("llama-cpp-python is already installed")
return True
except Exception as ex:
_LOGGER.exception("Install failed!")
return ex

View File

@@ -8,7 +8,7 @@ import re
from dataclasses import dataclass
from datasets import load_dataset, concatenate_datasets
from difflib import SequenceMatcher
from typing import Final, Any, Callable
from typing import Final, Any, Callable, Optional
from tqdm import tqdm
import webcolors
@@ -53,6 +53,7 @@ class DeviceType:
name: str
possible_states: list[(str, float)]
services: dict[str, list]
random_parameter_generator: Optional[dict[str, Callable]]
def get_all_services(self, extra_exposed_attributes):
result = []
@@ -60,6 +61,9 @@ class DeviceType:
args = set(extra_exposed_attributes).intersection(self.services[service])
result.append(f"{self.name}.{service}({','.join(args)})")
return result
def get_random_parameter(self, param_name):
return self.random_parameter_generator[param_name]()
def get_random_state(self, extra_exposed_attributes=[]):
states = [ x[0] for x in self.possible_states ]
@@ -78,17 +82,21 @@ class LightDeviceType(DeviceType):
"turn_off": [],
"toggle": []
},
random_parameter_generator={
"rgb_color": lambda: (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
"brightness": lambda: random.randint(0, 100),
}
)
def get_random_state(self, extra_exposed_attributes=[]):
state = super().get_random_state(extra_exposed_attributes=extra_exposed_attributes)
if random.random() < 0.5 and "rgb_color" in extra_exposed_attributes:
random_rgb = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
random_rgb = self.get_random_parameter("rgb_color")
state = state + ";" + closest_color(random_rgb) + " " + str(random_rgb)
if random.random() < 0.7 and "brightness" in extra_exposed_attributes:
state = state + ";" + str(random.randint(0, 100)) + "%"
state = state + ";" + self.get_random_parameter("brightness") + "%"
return state
@@ -103,6 +111,13 @@ class ClimateDeviceType(DeviceType):
"set_fan_mode": ["fan_mode"],
"set_hvac_mode": ["hvac_mode"],
"set_preset_mode": ["preset_mode"]
},
random_parameter_generator={
"fan_mode": lambda: random.choice(["On Low", "On High", "Auto Low", "Auto High", "Off"]),
"temp_f": lambda: random.randint(60, 80),
"temp_c": lambda: random.randint(15, 25),
"humidity": lambda: random.randint(10, 90),
"preset_mode": lambda: random.choice(["home", "eco", "away", "auto"])
})
def get_random_state(self, extra_exposed_attributes=[]):
@@ -110,47 +125,24 @@ class ClimateDeviceType(DeviceType):
state = random.choice(["heat", "cool", "heat_cool", "off", "auto", "fan_only"])
if "fan_mode" in extra_exposed_attributes:
state = state + ";" + random.choice(["On Low", "On High", "Auto Low", "Auto High", "Off"])
state = state + ";" + self.get_random_parameter("fan_mode")
if "temperature" in extra_exposed_attributes:
if random.random() > 0.5:
state = state + ";" + str(random.randint(60, 80)) + "F"
state = state + ";" + str(self.get_random_parameter("temp_f")) + "F"
else:
state = state + ";" + str(random.randint(15, 25)) + "C"
state = state + ";" + str(self.get_random_parameter("temp_c")) + "C"
if "humidity" in extra_exposed_attributes:
state = state + ";" + str(random.randint(10, 90)) + "%"
state = state + ";" + str(self.get_random_parameter("humidity")) + "%"
if "preset_mode" in extra_exposed_attributes:
if random.random() < 0.8 and "preset_mode" in extra_exposed_attributes:
# if it is not "on a preset" then don't add the mode
random_mode = random.choice(["home", "eco", "away", "auto", None, None, None])
if random_mode:
state = state + ";" + random_mode
state = state + ";" + self.get_random_parameter("preset_mode")
return state
class TimerDeviceType(DeviceType):
def __init__(self):
super().__init__(
name="timer",
possible_states=[
(STATE_IDLE, 0.2),
(STATE_ACTIVE, 0.6),
(STATE_PAUSED, 0.1),
],
services={
"start": ["duration"],
"pause": [],
"cancel": [],
},
)
def get_random_state(self, extra_exposed_attributes=[]):
state = super().get_random_state(extra_exposed_attributes=extra_exposed_attributes)
if random.random() < 0.5 and "rgb_color" in extra_exposed_attributes:
random_rgb = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
state = state + ";" + closest_color(random_rgb) + " " + str(random_rgb)
return state
with open("piles/pile_of_durations.csv") as f:
reader = csv.DictReader(f)
pile_of_durations = { x["duration"]: x["english_name"] for x in reader }
with open("piles/pile_of_media_names.csv") as f:
pile_of_media_names = [ x.strip() for x in f.readlines() ]
@@ -178,8 +170,11 @@ class MediaPlayerDeviceType(DeviceType):
"media_stop": [],
"media_next_track": [],
"media_previous_track": []
},
random_parameter_generator={
"media_title": lambda: random.choice(pile_of_media_names),
"volume_level": lambda: str(round(random.random(), 2)),
})
def get_random_state(self, extra_exposed_attributes=[]):
state = super().get_random_state(extra_exposed_attributes=extra_exposed_attributes)
@@ -278,7 +273,22 @@ SUPPORTED_DEVICES = {
"return_to_base": [],
},
),
"timer": TimerDeviceType(),
"timer": DeviceType(
name="timer",
possible_states=[
(STATE_IDLE, 0.2),
(STATE_ACTIVE, 0.6),
(STATE_PAUSED, 0.1),
],
services={
"start": ["duration"],
"pause": [],
"cancel": [],
},
random_parameter_generator={
"duration": lambda: random.choice(pile_of_durations.keys()),
}
),
}
stacks_of_device_names = { x: [] for x in SUPPORTED_DEVICES.keys() }
@@ -482,6 +492,8 @@ def generate_templated_example(template: dict, language: str, persona: str, max_
extra_exposed_attributes.append("humidity")
if "<fan_mode>" in question_template and "fan_mode" not in extra_exposed_attributes:
extra_exposed_attributes.append("fan_mode")
if "<duration>" in question_template and "duration" not in extra_exposed_attributes:
extra_exposed_attributes.append("duration")
state = SUPPORTED_DEVICES[device_dict["type"]].get_random_state(extra_exposed_attributes=extra_exposed_attributes)
device_name = device_dict["device_name"]
@@ -534,52 +546,62 @@ def generate_templated_example(template: dict, language: str, persona: str, max_
service_calls.append({ "service": service, "target_device": device_dict["device_name"] })
if any(["climate" in service for service in service_names ]):
climate_device_type = SUPPORTED_DEVICES["climate"]
if "<hvac_mode>" in question:
hvac_mode = random.choice(["heat", "cool", "heat_cool", "off", "auto", "fan_only"])
hvac_mode = climate_device_type.get_random_parameter("hvac_mode")
question = question.replace("<hvac_mode>", hvac_mode)
answer = answer.replace("<hvac_mode>", hvac_mode)
service_calls = [ { **call, "hvac_mode": hvac_mode} for call in service_calls ]
if "<fan_mode>" in question:
fan_mode = random.choice(["On Low", "On High", "Auto Low", "Auto High", "Off"])
fan_mode = climate_device_type.get_random_parameter("fan_mode")
question = question.replace("<fan_mode>", fan_mode)
answer = answer.replace("<fan_mode>", fan_mode)
service_calls = [ { **call, "fan_mode": fan_mode} for call in service_calls ]
if "<temp_f>" in question:
temp_f = random.randint(60, 80)
temp_f = climate_device_type.get_random_parameter("temp_f")
question = question.replace("<temp_f>", str(temp_f))
answer = answer.replace("<temp_f>", str(temp_f))
service_calls = [ { **call, "temperature": temp_f} for call in service_calls ]
if "<temp_c>" in question:
temp_c = random.randint(15, 25)
temp_c = climate_device_type.get_random_parameter("temp_c")
question = question.replace("<temp_c>", str(temp_c))
answer = answer.replace("<temp_c>", str(temp_c))
service_calls = [ { **call, "temperature": temp_c} for call in service_calls ]
if "<humidity>" in question:
humidity = random.randint(0, 20) * 5
humidity = climate_device_type.get_random_parameter("humidity")
question = question.replace("<humidity>", str(humidity))
answer = answer.replace("<humidity>", str(humidity))
service_calls = [ { **call, "humidity": humidity} for call in service_calls ]
if any(["light" in service for service in service_names ]):
light_device_type = SUPPORTED_DEVICES["light"]
if "<brightness>" in question:
brightness = random.randint(0, 100)
brightness = light_device_type.get_random_parameter("brightness")
question = question.replace("<brightness>", str(brightness))
answer = answer.replace("<brightness>", str(brightness))
service_calls = [ { **call, "brightness": round(brightness / 100, 2) } for call in service_calls ]
if "<color>" in question:
random_rgb = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
random_rgb = light_device_type.get_random_parameter("rgb_color")
random_rgb_name = closest_color(random_rgb)
actual_random_rgb = webcolors.name_to_rgb(random_rgb_name)
actual_random_rgb = (actual_random_rgb.red, actual_random_rgb.green, actual_random_rgb.blue)
question = question.replace("<color>", str(random_rgb_name))
answer = answer.replace("<color>", str(random_rgb_name))
service_calls = [ { **call, "rgb_color": str(actual_random_rgb) } for call in service_calls ]
if any(["timer" in service for service in service_names ]):
timer_device_type = SUPPORTED_DEVICES["timer"]
if "<duration>" in question:
duration = timer_device_type.get_random_state("duration")
duration_name = pile_of_durations[duration]
question = question.replace("<duration>", duration_name)
answer = answer.replace("<duration>", duration_name)
service_calls = [ { **call, "duration": str(duration) } for call in service_calls ]
return {
"states": device_list,

View File

@@ -344,4 +344,310 @@ switch.turn_on,master_suite,Set the master suite to nighttime mode.
switch.turn_on,roof_deck,Engage the roof deck lighting.
switch.turn_on,wine_cellar,Illuminate the wine cellar.
switch.turn_on,gym_ceiling,Light up the gym ceiling lights.
switch.turn_on,front_lawn,Activate the front lawn spotlights.
switch.turn_on,front_lawn,Activate the front lawn spotlights.
vacuum.kitchen,Please turn on the kitchen vacuum.,start
vacuum.living_room,Could you please activate the living room vacuum?,start
vacuum.dining_room,The dining room vacuum needs to be started.,start
vacuum.bedroom1,Let's start the vacuum in bedroom one.,start
vacuum.bedroom2,Can you please turn on the vacuum for bedroom two?,start
vacuum.study,The study vacuum should be activated.,start
vacuum.library,May I ask you to start the library vacuum?,start
vacuum.office,Please initiate the office vacuum.,start
vacuum.entrance_hall,Could you please turn on the entrance hall vacuum?,start
vacuum.sunroom,The sunroom vacuum needs to be started.,start
vacuum.patio,Let's activate the patio vacuum.,start
vacuum.garage,"Can we clean up the garage, please?",start
vacuum.workshop,May I request you to turn on the workshop vacuum?,start
vacuum.utility_room,Please clean the utility room.,start
vacuum.mud_room,Could you please clean up the mud room?,start
vacuum.powder_room,The powder room needs to be cleaned.,start
vacuum.hallway,Let's turn on the hallway vacuum.,start
vacuum.staircase,Can we please start the staircase vacuum?,start
vacuum.balcony,May I ask you to clean the balcony?,start
vacuum.roof_deck,Please roof deck is dirty.,start
vacuum.attic,Let's start the attic vacuum.,start
vacuum.basement,"Can we turn on the basement vacuum, please?",start
vacuum.pool_area,The pool area vacuum needs to be started.,start
vacuum.garden,Could you please activate the garden vacuum?,start
vacuum.terrace,May I request you to start the terrace vacuum?,start
vacuum.porch,Please initiate the porch vacuum.,start
vacuum.shed,"Can we turn on the shed vacuum, please?",start
vacuum.workshop2,The second workshop is pretty dirty right now.,start
vacuum.studio,May I ask you to start the studio vacuum?,start
vacuum.greenhouse,Please initiate the greenhouse vacuum.,start
vacuum.potting_shed,"Can we turn on the potting shed vacuum, please?",start
vacuum.summer_house,The summer house vacuum needs to be started.,start
vacuum.garage2,Let's start the second garage vacuum.,start
vacuum.tool_shed,May I request you to activate the tool shed vacuum?,start
vacuum.barn,Could we please turn on the barn vacuum?,start
vacuum.wine_cellar,The wine cellar should be cleaned.,start
vacuum.storage_room,Let's initiate the storage room cleanup.,start
vacuum.greenhouse2,May I ask you to activate the second greenhouse vacuum?,start
vacuum.boat_house,Please turn on the boat house vacuum.,start
vacuum.marina,Could we please start the marina vacuum?,start
vacuum.bb8,Turn on BB8.,start
vacuum.c3po,Can you start C3PO?,start
vacuum.hal,Please turn on Hal.,start
vacuum.r2d2,Can you tell R2D2 to clean up?,start
todo.groceries,Add milk to my groceries list.,add_item
todo.household_supplies,Could you please add eggs to my household supplies list?,add_item
todo.electronics,I would like you to add a new printer to the electronics list.,add_item
todo.clothing,Kindly add a shirt to the clothing list for me.,add_item
todo.office_supplies,Could you please add paper clips to the office supplies list?,add_item
todo.personal_care,I would appreciate it if you could add toothpaste to my personal care list.,add_item
todo.technology,I'd like you to add a new phone to the technology list.,add_item
todo.gifts,Could you please add a gift card to the gifts list?,add_item
todo.books,I would like you to add a novel to the books list.,add_item
todo.music,Could you please add Halsey's new album to my music list?,add_item
todo.movies,Could you kindly add Batman Begins to the movies list for me?,add_item
todo.travel,I would appreciate it if you could add Scotland to the travel list.,add_item
todo.education,I'd like you to add a language course to the education list.,add_item
todo.health,Could you please add a doctor's appointment to my health list?,add_item
todo.finance,"I would like you to add ""Pay Power Bill"" to the finance list.",add_item
todo.shopping_list,Could you please add bread to the shopping list?,add_item
todo.household_supplies_list,"Could you kindly add a ""Walnut Credenza"" to the projects list?",add_item
todo.electronics_list,I would like you to add a new laptop to the electronics list.,add_item
todo.clothing_list,Kindly add pants to the clothing list for me.,add_item
todo.office_supplies_list,Could you please add staples to the office supplies list?,add_item
todo.personal_care_list,I would appreciate it if you could add razorblades to my personal care list.,add_item
todo.technology_list,I'd like you to add a new computer to the technology list.,add_item
todo.gifts_list,Could you please add a socks to the gifts list?,add_item
todo.books_list,"I would like you to add ""Treasure Island"" to the books list.",add_item
todo.music_list,Could you please add Taylor Swift's new album to my music list?,add_item
todo.movies_list,Could you kindly add Pulp Fiction to the movies list for me?,add_item
todo.travel_list,I would appreciate it if you could add Japan to the travel list.,add_item
todo.education_list,I'd like you to add a language course to the education list.,add_item
todo.health_list,Could you please add a doctor's appointment to my health list?,add_item
todo.finance_list,"I would like you to add ""Pay Phone Bill"" to the finance list.",add_item
todo.grocery_list,"Could you please add ""Vinegar"" to the shopping list?",add_item
todo.projects,"Could you kindly add a ""Maple Bench"" to the projects list?",add_item
input_select.nature_sounds,"Could you set the nature sounds to ""thunderstorm"", please?",select_option
input_select.people,"Can you set the people select to ""John""?",select_option
input_select.who_cooks,Can you change who cooks to Paulus please?,select_option
input_select.living_room_scene,Change the living room scene to Movie Time.,select_option
input_select.alarm_status,"Set the alarm status to ""Armed"".",select_option
input_select.roof_light_preset,"Change the roof light preset to ""Candy Cane"".",select_option
input_select.roof_light_preset,"Please set ""Halloween"" for the roof light preset"".",select_option
input_select.roof_light_preset,"Turn the roof light preset to ""Twinkle"".",select_option
input_select.nature_sounds,"Turn ""off"" the nature sounds.",select_option
input_select.nature_sounds,"Set nature sounds to ""Windy Mountain"".",select_option
timer.pomodoro,Please set my pomodoro timer for 20 minutes.,start
timer.kitchen,Turn on the kitchen timer for 8 minutes.,start
timer.work,Set the work timer for 10 minutes.,start
timer.laundry,Start the laundry timer for an hour.,start
timer.cooking,Set a 30 second cooking timer.,start
timer.pomodoro,Cancel the pomodoro timer.,cancel
timer.kitchen,Please stop my kitchen timer.,cancel
timer.work,Turn off the work timer.,cancel
timer.laundry,Please shut off the laundry timer.,cancel
timer.cooking,The cooking timer is no longer needed.,cancel
light.bar_light,Please switch off the bar light,turn_off
light.bar_light,Turn off bar light,turn_off
light.bar_light,Turn off the bar light,turn_off
light.dining_room_light,Deactivate dining room light,turn_off
light.dining_room_light,Shut off dining room light,turn_off
light.dining_room_light,Toggle the dining room light,turn_off
light.front_light,Can we power down the front light?,turn_off
light.front_light,Can we turn down the front light?,turn_off
light.front_light,Can you turn off the lights on the front?,turn_off
light.gym_light,Can you shut off the gym light?,turn_off
light.gym_light,Can you turn off the gym light?,turn_off
light.gym_light,Could we turn off the gym lights?,turn_off
light.island_light,Could you disable the island light,turn_off
light.island_light,Deactivate the island light,turn_off
light.island_light,Deactivate the island area lighting.,turn_off
light.kitchen_light,Deactivate the kitchen light,turn_off
light.kitchen_light,Deactivate the lights at the kitchen.,turn_off
light.kitchen_light,Disable the lights in the kitchen.,turn_off
light.living_room_light,living room light off,turn_off
light.living_room_light,Disable the living room lights.,turn_off
light.living_room_light,Please disable the living room light.,turn_off
light.main_basement_light,Please extinguish the main basement light,turn_off
light.main_basement_light,Please power down the lights in the main basement.,turn_off
light.main_basement_light,Please switch off the main basement light,turn_off
light.man_cave_light,Please switch off the man cave area lights.,turn_off
light.man_cave_light,Please turn off the man cave lights.,turn_off
light.man_cave_light,Please turn off the man cave light.,turn_off
light.master_bedroom_light,Power off the lights in the master bedroom.,turn_off
light.master_bedroom_light,Set the master bedroom lights to off.,turn_off
light.master_bedroom_light,Shut down the master bedroom lights.,turn_off
light.pool_table_light,Shut down the pool table light,turn_off
light.pool_table_light,Switch off the pool table light,turn_off
light.pool_table_light,Switch off the pool table light please,turn_off
light.pool_table_light,Switch off the pool table light now,turn_off
light.pool_table_light,Switch off the pool table lights,turn_off
light.pool_table_light,Switch off the light in the pool table,turn_off
light.pool_table_light,Switch off the pool table light,turn_off
light.pool_table_light,Turn off the pool table light,turn_off
light.pool_table_light,Turn off the pool table light please,turn_off
light.pool_table_light,Turn off the pool table light now,turn_off
light.pool_table_light,You can turn off the pool table light now,turn_off
light.pool_table_light,Turn off the pool table lights.,turn_off
light.pool_table_light,Turn off the pool table light please.,turn_off
light.pool_table_light,Turn off the pool table light,turn_off
light.pool_table_light,Turn off the light in the pool table.,turn_off
light.pool_table_light,Turn off the pool table light,turn_off
light.pool_table_light,Turn off the light in the pool table,turn_off
light.pool_table_light,Turn the pool table light off,turn_off
light.porch_light,Please switch off the porch light,turn_off
light.porch_light,Turn off porch light,turn_off
light.porch_light,Turn off the porch light,turn_off
light.porch_light,Deactivate porch light,turn_off
light.porch_light,Shut off porch light,turn_off
light.porch_light,Toggle the porch light,turn_off
light.porch_light,Can we power down the porch light?,turn_off
light.porch_light,Can we turn down the porch light?,turn_off
light.porch_light,Can you turn off the lights on the porch?,turn_off
light.porch_light,Can you shut off the porch light?,turn_off
light.porch_light,Can you turn off the porch light?,turn_off
light.porch_light,Could we turn off the porch lights?,turn_off
light.porch_light,Could you disable the porch light,turn_off
light.porch_light,Deactivate the porch light,turn_off
light.porch_light,Deactivate the porch area lighting.,turn_off
light.porch_light,Deactivate the porch light,turn_off
light.porch_light,Deactivate the light on the porch,turn_off
light.porch_light,Deactivate the porch light,turn_off
light.porch_light,Deactivate the porch light,turn_off
light.porch_light,Deactivate the porch light,turn_off
light.porch_light,Deactivate the lights at the porch.,turn_off
light.porch_light,Disable the lights in the porch.,turn_off
light.porch_light,porch light off,turn_off
light.porch_light,Disable the porch lights.,turn_off
light.porch_light,Please disable the porch light.,turn_off
light.porch_light,Please extinguish the porch light,turn_off
light.porch_light,Please power down the lights in the porch.,turn_off
light.porch_light,Please switch off the porch light,turn_off
light.porch_light,Please switch off the porch area lights.,turn_off
light.porch_light,Please turn off the porch lights.,turn_off
light.porch_light,Please turn off the porch light.,turn_off
light.porch_light,Power off the lights in the porch.,turn_off
light.porch_light,Set the porch lights to off.,turn_off
light.porch_light,Shut down the porch lights.,turn_off
light.porch_light,Shut down the porch light,turn_off
light.porch_light,Switch off the porch light,turn_off
light.porch_light,Switch off the porch light please,turn_off
light.porch_light,Switch off the porch light now,turn_off
light.porch_light,Switch off the porch lights,turn_off
light.porch_light,Switch off the light in the porch,turn_off
light.porch_light,Switch off the porch light,turn_off
light.porch_light,Turn off the porch light,turn_off
light.porch_light,Turn off the porch light please,turn_off
light.porch_light,Turn off the porch light now,turn_off
light.porch_light,You can turn off the porch light now,turn_off
light.porch_light,Turn off the porch lights.,turn_off
light.porch_light,Turn off the porch light please.,turn_off
light.porch_light,Turn off the porch light,turn_off
light.porch_light,Turn off the light in the porch.,turn_off
light.porch_light,Turn off the porch light,turn_off
light.porch_light,Turn off the light in the porch,turn_off
light.porch_light,Turn the porch light off,turn_off
light.shower_light,Please switch off the shower light,turn_off
light.shower_light,Turn off shower light,turn_off
light.shower_light,Turn off the shower light,turn_off
light.shower_light,Deactivate shower light,turn_off
light.shower_light,Shut off shower light,turn_off
light.stair_light,stair light off,turn_off
light.stair_light,Disable the stair lights.,turn_off
light.stair_light,Shut off stairwell light,turn_off
light.stair_light,Toggle the stairwell light,turn_off
light.stair_light,Can we power down the stairwell light?,turn_off
light.roof_light,Please switch off the roof light,turn_off
light.roof_light,Turn off roof light,turn_off
light.roof_light,Turn off the roof light,turn_off
light.walkway_light,Shut down the walkway lights.,turn_off
light.walkway_light,Turn off the walkway light,turn_off
light.walkway_light,Turn the walkway light off,turn_off
light.Bobs_lamp,Please switch off Bob's light,turn_off
light.janets_lamp,Turn off Janet's light,turn_off
light.ruths_lamp,Please switch off Ruth's lamp,turn_off
light.colins_lamp,Turn off Colin's lamp,turn_off
light.neenas_lamp,Turn off Neena's lamp,turn_off
light.roberts_lamp,Deactivate Robert's lamp,turn_off
light.paulus_lamp,Shut off Paulus' lamp,turn_off
light.peters_lamp,Toggle Peter's lamp,turn_off
light.angelas_lamp,Can we power down Angela's lamp?,turn_off
light.entry_lamp,Please switch off entry lamp,turn_off
light.entry_lamp,Turn off entry lamp,turn_off
light.entry_lamp,Please extinguish entryway lamp,turn_off
light.entry_lamp,Please switch off entryway lamp,turn_off
light.entry_lamp,Please switch off entryway area lamps.,turn_off
light.entry_lamp,Deactivate entrance light,turn_off
light.bar_light,Illuminate the light in my bar.,turn_on
light.bar_light,Illuminate the bar.,turn_on
light.bar_light,Bar light on,turn_on
light.bar_light,Light up the bar.,turn_on
light.dining_room_light,Activate the lights in the dining room,turn_on
light.dining_room_light,Enable the dining room light please,turn_on
light.dining_room_light,Engage the lights in the dining room.,turn_on
light.front_light,Activate the front light please,turn_on
light.front_light,Please activate the front light,turn_on
light.front_light,Activate the front light now,turn_on
light.gym_light,Turn on the gym light please,turn_on
light.gym_light,Turn the gym light on,turn_on
light.gym_light,gym light on,turn_on
light.island_light,Turn the island light on,turn_on
light.island_light,island light on,turn_on
light.island_light,Switch on the island light,turn_on
light.kitchen_light,kitchen light on,turn_on
light.kitchen_light,Switch on the kitchen light,turn_on
light.kitchen_light,Hey can you turn on the kitchen light,turn_on
light.living_room_light,Turn on the living room lights.,turn_on
light.living_room_light,Turn on the living room lights please.,turn_on
light.living_room_light,Please turn on the living room lights.,turn_on
light.living_room_light,Turn on the living room lighting.,turn_on
light.main_basement_light,Turn on the main basement light,turn_on
light.main_basement_light,Turn on main basement light,turn_on
light.man_cave_light,Activate the man cave man cave light.,turn_on
light.man_cave_light,Activate the lights in the man cave,turn_on
light.man_cave_light,Could you light up the man cave?,turn_on
light.man_cave_light,Enable the man cave light,turn_on
light.master_bedroom_light,Could you illuminate the master bedroom,turn_on
light.pool_table_bar_light,pool table bar light on,turn_on
light.pool_table_bar_light,Switch on the pool table bar light,turn_on
light.pool_table_bar_light,Can you turn on the pool table bar light?,turn_on
light.pool_table_light,Enable the pool table light please,turn_on
light.porch_light,Turn on porch light,turn_on
light.porch_light,Can you turn on the porch light?,turn_on
light.porch_light,Could you turn on the porch light please?,turn_on
light.shower_light,Turn on the shower light,turn_on
light.shower_light,Turn on shower light,turn_on
light.shower_light,Activate the shower light,turn_on
light.shower_light,Could you illuminate the shower please,turn_on
light.shower_light,Turn on the lights at the shower,turn_on
light.shower_light,Light up the shower please,turn_on
light.shower_light,Turn on the shower light please,turn_on
light.shower_light,Turn the shower light on,turn_on
light.shower_light,shower light on,turn_on
light.stair_light,Activate the stair light please,turn_on
light.stair_light,Please activate the stair light,turn_on
light.stair_light,Can you light up the stairwell please?,turn_on
light.stair_light,Please activate the stairwell light,turn_on
light.stair_light,Please switch on the stairwell area light,turn_on
light.roof_light,Please turn on the roof light.,turn_on
light.roof_light,Switch on the roof light please,turn_on
light.roof_light,Can you turn on the light in the roof?,turn_on
light.walkway_light,Please activate the walkway light,turn_on
light.walkway_light,Please switch on the walkway area light,turn_on
light.walkway_light,Turn on the walkway lighting.,turn_on
light.freds_lamp,Turn on Fred's light,turn_on
light.colins_lamp,Turn on Colin's light,turn_on
light.roberts_lamp,Activate Robert's light,turn_on
light.pierres_lamp,Turn on Pierre's light please,turn_on
light.jennifers_lamp,Turn Jenn's light on,turn_on
light.julias_lamp,Julia's light on,turn_on
light.neenas_lamp,Switch on Neena's light,turn_on
light.patricks_lamp,Can you turn on Patrick's light?,turn_on
light.sams_lamp,Light up Sam's.,turn_on
light.johns_lamp,Brighten up John's light.,turn_on
light.jordans_lamp,Engage Jordan's lighting.,turn_on
light.lebrons_lamp,Light up Lebron's lights.,turn_on
light.angies_lamp,Can you turn on Angie's lamp?,turn_on
light.louis_lamp,Could you turn on Louis' lamp please?,turn_on
light.katniss_lamp,Could you enable Katniss' lamp,turn_on
light.waynes_lamp,Enable Wayne's lamp,turn_on
light.samuels_lamp,Enable Samuel's lamp please,turn_on
light.entry_lamp,Turn on entry lamp,turn_on
light.entry_lamp,Please activate entryway lamp,turn_on
light.entry_lamp,Please switch on entryway area lamp,turn_on
light.entry_lamp,Turn on entrance light,turn_on
light.entry_lamp,Turn on entrance lighting.,turn_on
1 service_name device_name english_phrase
344 switch.turn_on roof_deck Engage the roof deck lighting.
345 switch.turn_on wine_cellar Illuminate the wine cellar.
346 switch.turn_on gym_ceiling Light up the gym ceiling lights.
347 switch.turn_on front_lawn Activate the front lawn spotlights.
348 vacuum.kitchen Please turn on the kitchen vacuum. start
349 vacuum.living_room Could you please activate the living room vacuum? start
350 vacuum.dining_room The dining room vacuum needs to be started. start
351 vacuum.bedroom1 Let's start the vacuum in bedroom one. start
352 vacuum.bedroom2 Can you please turn on the vacuum for bedroom two? start
353 vacuum.study The study vacuum should be activated. start
354 vacuum.library May I ask you to start the library vacuum? start
355 vacuum.office Please initiate the office vacuum. start
356 vacuum.entrance_hall Could you please turn on the entrance hall vacuum? start
357 vacuum.sunroom The sunroom vacuum needs to be started. start
358 vacuum.patio Let's activate the patio vacuum. start
359 vacuum.garage Can we clean up the garage, please? start
360 vacuum.workshop May I request you to turn on the workshop vacuum? start
361 vacuum.utility_room Please clean the utility room. start
362 vacuum.mud_room Could you please clean up the mud room? start
363 vacuum.powder_room The powder room needs to be cleaned. start
364 vacuum.hallway Let's turn on the hallway vacuum. start
365 vacuum.staircase Can we please start the staircase vacuum? start
366 vacuum.balcony May I ask you to clean the balcony? start
367 vacuum.roof_deck Please roof deck is dirty. start
368 vacuum.attic Let's start the attic vacuum. start
369 vacuum.basement Can we turn on the basement vacuum, please? start
370 vacuum.pool_area The pool area vacuum needs to be started. start
371 vacuum.garden Could you please activate the garden vacuum? start
372 vacuum.terrace May I request you to start the terrace vacuum? start
373 vacuum.porch Please initiate the porch vacuum. start
374 vacuum.shed Can we turn on the shed vacuum, please? start
375 vacuum.workshop2 The second workshop is pretty dirty right now. start
376 vacuum.studio May I ask you to start the studio vacuum? start
377 vacuum.greenhouse Please initiate the greenhouse vacuum. start
378 vacuum.potting_shed Can we turn on the potting shed vacuum, please? start
379 vacuum.summer_house The summer house vacuum needs to be started. start
380 vacuum.garage2 Let's start the second garage vacuum. start
381 vacuum.tool_shed May I request you to activate the tool shed vacuum? start
382 vacuum.barn Could we please turn on the barn vacuum? start
383 vacuum.wine_cellar The wine cellar should be cleaned. start
384 vacuum.storage_room Let's initiate the storage room cleanup. start
385 vacuum.greenhouse2 May I ask you to activate the second greenhouse vacuum? start
386 vacuum.boat_house Please turn on the boat house vacuum. start
387 vacuum.marina Could we please start the marina vacuum? start
388 vacuum.bb8 Turn on BB8. start
389 vacuum.c3po Can you start C3PO? start
390 vacuum.hal Please turn on Hal. start
391 vacuum.r2d2 Can you tell R2D2 to clean up? start
392 todo.groceries Add milk to my groceries list. add_item
393 todo.household_supplies Could you please add eggs to my household supplies list? add_item
394 todo.electronics I would like you to add a new printer to the electronics list. add_item
395 todo.clothing Kindly add a shirt to the clothing list for me. add_item
396 todo.office_supplies Could you please add paper clips to the office supplies list? add_item
397 todo.personal_care I would appreciate it if you could add toothpaste to my personal care list. add_item
398 todo.technology I'd like you to add a new phone to the technology list. add_item
399 todo.gifts Could you please add a gift card to the gifts list? add_item
400 todo.books I would like you to add a novel to the books list. add_item
401 todo.music Could you please add Halsey's new album to my music list? add_item
402 todo.movies Could you kindly add Batman Begins to the movies list for me? add_item
403 todo.travel I would appreciate it if you could add Scotland to the travel list. add_item
404 todo.education I'd like you to add a language course to the education list. add_item
405 todo.health Could you please add a doctor's appointment to my health list? add_item
406 todo.finance I would like you to add "Pay Power Bill" to the finance list. add_item
407 todo.shopping_list Could you please add bread to the shopping list? add_item
408 todo.household_supplies_list Could you kindly add a "Walnut Credenza" to the projects list? add_item
409 todo.electronics_list I would like you to add a new laptop to the electronics list. add_item
410 todo.clothing_list Kindly add pants to the clothing list for me. add_item
411 todo.office_supplies_list Could you please add staples to the office supplies list? add_item
412 todo.personal_care_list I would appreciate it if you could add razorblades to my personal care list. add_item
413 todo.technology_list I'd like you to add a new computer to the technology list. add_item
414 todo.gifts_list Could you please add a socks to the gifts list? add_item
415 todo.books_list I would like you to add "Treasure Island" to the books list. add_item
416 todo.music_list Could you please add Taylor Swift's new album to my music list? add_item
417 todo.movies_list Could you kindly add Pulp Fiction to the movies list for me? add_item
418 todo.travel_list I would appreciate it if you could add Japan to the travel list. add_item
419 todo.education_list I'd like you to add a language course to the education list. add_item
420 todo.health_list Could you please add a doctor's appointment to my health list? add_item
421 todo.finance_list I would like you to add "Pay Phone Bill" to the finance list. add_item
422 todo.grocery_list Could you please add "Vinegar" to the shopping list? add_item
423 todo.projects Could you kindly add a "Maple Bench" to the projects list? add_item
424 input_select.nature_sounds Could you set the nature sounds to "thunderstorm", please? select_option
425 input_select.people Can you set the people select to "John"? select_option
426 input_select.who_cooks Can you change who cooks to Paulus please? select_option
427 input_select.living_room_scene Change the living room scene to Movie Time. select_option
428 input_select.alarm_status Set the alarm status to "Armed". select_option
429 input_select.roof_light_preset Change the roof light preset to "Candy Cane". select_option
430 input_select.roof_light_preset Please set "Halloween" for the roof light preset". select_option
431 input_select.roof_light_preset Turn the roof light preset to "Twinkle". select_option
432 input_select.nature_sounds Turn "off" the nature sounds. select_option
433 input_select.nature_sounds Set nature sounds to "Windy Mountain". select_option
434 timer.pomodoro Please set my pomodoro timer for 20 minutes. start
435 timer.kitchen Turn on the kitchen timer for 8 minutes. start
436 timer.work Set the work timer for 10 minutes. start
437 timer.laundry Start the laundry timer for an hour. start
438 timer.cooking Set a 30 second cooking timer. start
439 timer.pomodoro Cancel the pomodoro timer. cancel
440 timer.kitchen Please stop my kitchen timer. cancel
441 timer.work Turn off the work timer. cancel
442 timer.laundry Please shut off the laundry timer. cancel
443 timer.cooking The cooking timer is no longer needed. cancel
444 light.bar_light Please switch off the bar light turn_off
445 light.bar_light Turn off bar light turn_off
446 light.bar_light Turn off the bar light turn_off
447 light.dining_room_light Deactivate dining room light turn_off
448 light.dining_room_light Shut off dining room light turn_off
449 light.dining_room_light Toggle the dining room light turn_off
450 light.front_light Can we power down the front light? turn_off
451 light.front_light Can we turn down the front light? turn_off
452 light.front_light Can you turn off the lights on the front? turn_off
453 light.gym_light Can you shut off the gym light? turn_off
454 light.gym_light Can you turn off the gym light? turn_off
455 light.gym_light Could we turn off the gym lights? turn_off
456 light.island_light Could you disable the island light turn_off
457 light.island_light Deactivate the island light turn_off
458 light.island_light Deactivate the island area lighting. turn_off
459 light.kitchen_light Deactivate the kitchen light turn_off
460 light.kitchen_light Deactivate the lights at the kitchen. turn_off
461 light.kitchen_light Disable the lights in the kitchen. turn_off
462 light.living_room_light living room light off turn_off
463 light.living_room_light Disable the living room lights. turn_off
464 light.living_room_light Please disable the living room light. turn_off
465 light.main_basement_light Please extinguish the main basement light turn_off
466 light.main_basement_light Please power down the lights in the main basement. turn_off
467 light.main_basement_light Please switch off the main basement light turn_off
468 light.man_cave_light Please switch off the man cave area lights. turn_off
469 light.man_cave_light Please turn off the man cave lights. turn_off
470 light.man_cave_light Please turn off the man cave light. turn_off
471 light.master_bedroom_light Power off the lights in the master bedroom. turn_off
472 light.master_bedroom_light Set the master bedroom lights to off. turn_off
473 light.master_bedroom_light Shut down the master bedroom lights. turn_off
474 light.pool_table_light Shut down the pool table light turn_off
475 light.pool_table_light Switch off the pool table light turn_off
476 light.pool_table_light Switch off the pool table light please turn_off
477 light.pool_table_light Switch off the pool table light now turn_off
478 light.pool_table_light Switch off the pool table lights turn_off
479 light.pool_table_light Switch off the light in the pool table turn_off
480 light.pool_table_light Switch off the pool table light turn_off
481 light.pool_table_light Turn off the pool table light turn_off
482 light.pool_table_light Turn off the pool table light please turn_off
483 light.pool_table_light Turn off the pool table light now turn_off
484 light.pool_table_light You can turn off the pool table light now turn_off
485 light.pool_table_light Turn off the pool table lights. turn_off
486 light.pool_table_light Turn off the pool table light please. turn_off
487 light.pool_table_light Turn off the pool table light turn_off
488 light.pool_table_light Turn off the light in the pool table. turn_off
489 light.pool_table_light Turn off the pool table light turn_off
490 light.pool_table_light Turn off the light in the pool table turn_off
491 light.pool_table_light Turn the pool table light off turn_off
492 light.porch_light Please switch off the porch light turn_off
493 light.porch_light Turn off porch light turn_off
494 light.porch_light Turn off the porch light turn_off
495 light.porch_light Deactivate porch light turn_off
496 light.porch_light Shut off porch light turn_off
497 light.porch_light Toggle the porch light turn_off
498 light.porch_light Can we power down the porch light? turn_off
499 light.porch_light Can we turn down the porch light? turn_off
500 light.porch_light Can you turn off the lights on the porch? turn_off
501 light.porch_light Can you shut off the porch light? turn_off
502 light.porch_light Can you turn off the porch light? turn_off
503 light.porch_light Could we turn off the porch lights? turn_off
504 light.porch_light Could you disable the porch light turn_off
505 light.porch_light Deactivate the porch light turn_off
506 light.porch_light Deactivate the porch area lighting. turn_off
507 light.porch_light Deactivate the porch light turn_off
508 light.porch_light Deactivate the light on the porch turn_off
509 light.porch_light Deactivate the porch light turn_off
510 light.porch_light Deactivate the porch light turn_off
511 light.porch_light Deactivate the porch light turn_off
512 light.porch_light Deactivate the lights at the porch. turn_off
513 light.porch_light Disable the lights in the porch. turn_off
514 light.porch_light porch light off turn_off
515 light.porch_light Disable the porch lights. turn_off
516 light.porch_light Please disable the porch light. turn_off
517 light.porch_light Please extinguish the porch light turn_off
518 light.porch_light Please power down the lights in the porch. turn_off
519 light.porch_light Please switch off the porch light turn_off
520 light.porch_light Please switch off the porch area lights. turn_off
521 light.porch_light Please turn off the porch lights. turn_off
522 light.porch_light Please turn off the porch light. turn_off
523 light.porch_light Power off the lights in the porch. turn_off
524 light.porch_light Set the porch lights to off. turn_off
525 light.porch_light Shut down the porch lights. turn_off
526 light.porch_light Shut down the porch light turn_off
527 light.porch_light Switch off the porch light turn_off
528 light.porch_light Switch off the porch light please turn_off
529 light.porch_light Switch off the porch light now turn_off
530 light.porch_light Switch off the porch lights turn_off
531 light.porch_light Switch off the light in the porch turn_off
532 light.porch_light Switch off the porch light turn_off
533 light.porch_light Turn off the porch light turn_off
534 light.porch_light Turn off the porch light please turn_off
535 light.porch_light Turn off the porch light now turn_off
536 light.porch_light You can turn off the porch light now turn_off
537 light.porch_light Turn off the porch lights. turn_off
538 light.porch_light Turn off the porch light please. turn_off
539 light.porch_light Turn off the porch light turn_off
540 light.porch_light Turn off the light in the porch. turn_off
541 light.porch_light Turn off the porch light turn_off
542 light.porch_light Turn off the light in the porch turn_off
543 light.porch_light Turn the porch light off turn_off
544 light.shower_light Please switch off the shower light turn_off
545 light.shower_light Turn off shower light turn_off
546 light.shower_light Turn off the shower light turn_off
547 light.shower_light Deactivate shower light turn_off
548 light.shower_light Shut off shower light turn_off
549 light.stair_light stair light off turn_off
550 light.stair_light Disable the stair lights. turn_off
551 light.stair_light Shut off stairwell light turn_off
552 light.stair_light Toggle the stairwell light turn_off
553 light.stair_light Can we power down the stairwell light? turn_off
554 light.roof_light Please switch off the roof light turn_off
555 light.roof_light Turn off roof light turn_off
556 light.roof_light Turn off the roof light turn_off
557 light.walkway_light Shut down the walkway lights. turn_off
558 light.walkway_light Turn off the walkway light turn_off
559 light.walkway_light Turn the walkway light off turn_off
560 light.Bobs_lamp Please switch off Bob's light turn_off
561 light.janets_lamp Turn off Janet's light turn_off
562 light.ruths_lamp Please switch off Ruth's lamp turn_off
563 light.colins_lamp Turn off Colin's lamp turn_off
564 light.neenas_lamp Turn off Neena's lamp turn_off
565 light.roberts_lamp Deactivate Robert's lamp turn_off
566 light.paulus_lamp Shut off Paulus' lamp turn_off
567 light.peters_lamp Toggle Peter's lamp turn_off
568 light.angelas_lamp Can we power down Angela's lamp? turn_off
569 light.entry_lamp Please switch off entry lamp turn_off
570 light.entry_lamp Turn off entry lamp turn_off
571 light.entry_lamp Please extinguish entryway lamp turn_off
572 light.entry_lamp Please switch off entryway lamp turn_off
573 light.entry_lamp Please switch off entryway area lamps. turn_off
574 light.entry_lamp Deactivate entrance light turn_off
575 light.bar_light Illuminate the light in my bar. turn_on
576 light.bar_light Illuminate the bar. turn_on
577 light.bar_light Bar light on turn_on
578 light.bar_light Light up the bar. turn_on
579 light.dining_room_light Activate the lights in the dining room turn_on
580 light.dining_room_light Enable the dining room light please turn_on
581 light.dining_room_light Engage the lights in the dining room. turn_on
582 light.front_light Activate the front light please turn_on
583 light.front_light Please activate the front light turn_on
584 light.front_light Activate the front light now turn_on
585 light.gym_light Turn on the gym light please turn_on
586 light.gym_light Turn the gym light on turn_on
587 light.gym_light gym light on turn_on
588 light.island_light Turn the island light on turn_on
589 light.island_light island light on turn_on
590 light.island_light Switch on the island light turn_on
591 light.kitchen_light kitchen light on turn_on
592 light.kitchen_light Switch on the kitchen light turn_on
593 light.kitchen_light Hey can you turn on the kitchen light turn_on
594 light.living_room_light Turn on the living room lights. turn_on
595 light.living_room_light Turn on the living room lights please. turn_on
596 light.living_room_light Please turn on the living room lights. turn_on
597 light.living_room_light Turn on the living room lighting. turn_on
598 light.main_basement_light Turn on the main basement light turn_on
599 light.main_basement_light Turn on main basement light turn_on
600 light.man_cave_light Activate the man cave man cave light. turn_on
601 light.man_cave_light Activate the lights in the man cave turn_on
602 light.man_cave_light Could you light up the man cave? turn_on
603 light.man_cave_light Enable the man cave light turn_on
604 light.master_bedroom_light Could you illuminate the master bedroom turn_on
605 light.pool_table_bar_light pool table bar light on turn_on
606 light.pool_table_bar_light Switch on the pool table bar light turn_on
607 light.pool_table_bar_light Can you turn on the pool table bar light? turn_on
608 light.pool_table_light Enable the pool table light please turn_on
609 light.porch_light Turn on porch light turn_on
610 light.porch_light Can you turn on the porch light? turn_on
611 light.porch_light Could you turn on the porch light please? turn_on
612 light.shower_light Turn on the shower light turn_on
613 light.shower_light Turn on shower light turn_on
614 light.shower_light Activate the shower light turn_on
615 light.shower_light Could you illuminate the shower please turn_on
616 light.shower_light Turn on the lights at the shower turn_on
617 light.shower_light Light up the shower please turn_on
618 light.shower_light Turn on the shower light please turn_on
619 light.shower_light Turn the shower light on turn_on
620 light.shower_light shower light on turn_on
621 light.stair_light Activate the stair light please turn_on
622 light.stair_light Please activate the stair light turn_on
623 light.stair_light Can you light up the stairwell please? turn_on
624 light.stair_light Please activate the stairwell light turn_on
625 light.stair_light Please switch on the stairwell area light turn_on
626 light.roof_light Please turn on the roof light. turn_on
627 light.roof_light Switch on the roof light please turn_on
628 light.roof_light Can you turn on the light in the roof? turn_on
629 light.walkway_light Please activate the walkway light turn_on
630 light.walkway_light Please switch on the walkway area light turn_on
631 light.walkway_light Turn on the walkway lighting. turn_on
632 light.freds_lamp Turn on Fred's light turn_on
633 light.colins_lamp Turn on Colin's light turn_on
634 light.roberts_lamp Activate Robert's light turn_on
635 light.pierres_lamp Turn on Pierre's light please turn_on
636 light.jennifers_lamp Turn Jenn's light on turn_on
637 light.julias_lamp Julia's light on turn_on
638 light.neenas_lamp Switch on Neena's light turn_on
639 light.patricks_lamp Can you turn on Patrick's light? turn_on
640 light.sams_lamp Light up Sam's. turn_on
641 light.johns_lamp Brighten up John's light. turn_on
642 light.jordans_lamp Engage Jordan's lighting. turn_on
643 light.lebrons_lamp Light up Lebron's lights. turn_on
644 light.angies_lamp Can you turn on Angie's lamp? turn_on
645 light.louis_lamp Could you turn on Louis' lamp please? turn_on
646 light.katniss_lamp Could you enable Katniss' lamp turn_on
647 light.waynes_lamp Enable Wayne's lamp turn_on
648 light.samuels_lamp Enable Samuel's lamp please turn_on
649 light.entry_lamp Turn on entry lamp turn_on
650 light.entry_lamp Please activate entryway lamp turn_on
651 light.entry_lamp Please switch on entryway area lamp turn_on
652 light.entry_lamp Turn on entrance light turn_on
653 light.entry_lamp Turn on entrance lighting. turn_on

View File

@@ -241,4 +241,34 @@ media_player,idle;<volume>,"Is <device_name> active right now?","<device_name> i
media_player,playing;<media>;<volume>,"What's on <device_name> at the moment?","<device_name> is currently playing <media> at volume <volume>."
media_player,paused;<media>;<volume>,"I forgot what I paused on <device_name>, can you remind me?","You paused <media> on <device_name>, and the volume is set to <volume>."
media_player,idle;<volume>,"Is <device_name> turned off or on?","<device_name> is on but idle, with volume at <volume>."
media_player,playing;<media>;<volume>,"I'd like to know what's playing on <device_name>.","Currently, <media> is playing on <device_name> at volume level <volume>."
media_player,playing;<media>;<volume>,"I'd like to know what's playing on <device_name>.","Currently, <media> is playing on <device_name> at volume level <volume>."
vacuum,cleaning,Is the <device_name> vacuum running right now?,The vacuum is running.
vacuum,cleaning,Is the <device_name> vacuum on?,It is. Your home is currently being cleaned.
vacuum,cleaning,Is <device_name> cleaning?,"Yes, <device_name> is currently vacuuming."
vacuum,cleaning,What is the <device_name> vacuum doing right now?,The <device_name> vacuum is currently cleaning the house.
vacuum,cleaning,What is <device_name> doing right now?,<device_name> is currently cleaning.
vacuum,docked,What is the <device_name> vacuum doing right now?,The <device_name> vacuum is currently docked.
vacuum,docked,What is <device_name> doing right now?,<device_name> is currently docked.
vacuum,docked,Is <device_name> on its base right now?,"Yes, <device_name> is at its base."
vacuum,docked,Where is the <device_name> vacuum?,On its dock at the moment.
vacuum,paused,What is the <device_name> vacuum doing right now?,The <device_name> vacuum is paused.
vacuum,paused,What is <device_name> doing right now?,<device_name> is paused.
vacuum,idle,What is the <device_name> vacuum doing right now?,The <device_name> vacuum is stopped.
vacuum,idle,What is <device_name> doing right now?,<device_name> is stopped.
vacuum,error,What is the <device_name> vacuum doing right now?,The <device_name> vacuum is stuck or having issues that need to be corrected.
vacuum,error,What is <device_name> doing right now?,<device_name> is stuck or having issues.
todo,1,How many items on on my <device_name> right now?,There is currently 1 item on your <device_name>.
todo,2,How many things are on the <device_name> at the moment?,There are 2 things on the <device_name> currently.
todo,3,What is the current number of items on your <device_name>?,"Yes, there are currently 3 items on your <device_name>."
todo,4,How many objects are there on the <device_name> presently?,"Yes, there are 4 objects presently on the <device_name>."
todo,5,Could you tell me how many pieces there are on the <device_name> at this time?,I can tell you that there are 5 pieces on the <device_name> at this time.
todo,6,What's the count of items on the <device_name> now?,The count of items on the <device_name> now is 6.
todo,7,How many units can be found on my <device_name> at the present moment?,You will find 7 units on my <device_name> at the present moment.
todo,8,Could you inform me as to how many articles are located on the <device_name> right now?,I'd be happy to inform you that there are 8 articles located on the <device_name> right now.
todo,9,Is it possible for you to disclose how many components there are on the <device_name> currently?,It is possible for me to disclose that there are 9 components on the <device_name> currently.
todo,10,May I ask for the quantity of items on the <device_name> at present?,The quantity of items on the <device_name> is currently 10.
todo,11,Would you be able to tell me how many things there are on the <device_name> now?,"Yes, I can tell you that there are 11 things on the <device_name> now."
todo,12,Can you enlighten me as to the number of items on the <device_name>?,I'd be pleased to enlighten you that there are 12 items on the <device_name>.
timer,active;<duration>;<remaining>,How much time left on the <device_name>?,The <device_name> is set for <duration>. There is currently <remaining> remaining.
timer,active;<duration>;<remaining>,How long before the <device_name> goes off?,The <device_name> will go off in <remaining>.
timer,active;<duration>;<remaining>,When is the <device_name> set to go off?,The <device_name> is set for <duration> and will go off in <remaining>.
1 device_type state english_phrase assistant_response
241 media_player playing;<media>;<volume> What's on <device_name> at the moment? <device_name> is currently playing <media> at volume <volume>.
242 media_player paused;<media>;<volume> I forgot what I paused on <device_name>, can you remind me? You paused <media> on <device_name>, and the volume is set to <volume>.
243 media_player idle;<volume> Is <device_name> turned off or on? <device_name> is on but idle, with volume at <volume>.
244 media_player playing;<media>;<volume> I'd like to know what's playing on <device_name>. Currently, <media> is playing on <device_name> at volume level <volume>.
245 vacuum cleaning Is the <device_name> vacuum running right now? The vacuum is running.
246 vacuum cleaning Is the <device_name> vacuum on? It is. Your home is currently being cleaned.
247 vacuum cleaning Is <device_name> cleaning? Yes, <device_name> is currently vacuuming.
248 vacuum cleaning What is the <device_name> vacuum doing right now? The <device_name> vacuum is currently cleaning the house.
249 vacuum cleaning What is <device_name> doing right now? <device_name> is currently cleaning.
250 vacuum docked What is the <device_name> vacuum doing right now? The <device_name> vacuum is currently docked.
251 vacuum docked What is <device_name> doing right now? <device_name> is currently docked.
252 vacuum docked Is <device_name> on its base right now? Yes, <device_name> is at its base.
253 vacuum docked Where is the <device_name> vacuum? On its dock at the moment.
254 vacuum paused What is the <device_name> vacuum doing right now? The <device_name> vacuum is paused.
255 vacuum paused What is <device_name> doing right now? <device_name> is paused.
256 vacuum idle What is the <device_name> vacuum doing right now? The <device_name> vacuum is stopped.
257 vacuum idle What is <device_name> doing right now? <device_name> is stopped.
258 vacuum error What is the <device_name> vacuum doing right now? The <device_name> vacuum is stuck or having issues that need to be corrected.
259 vacuum error What is <device_name> doing right now? <device_name> is stuck or having issues.
260 todo 1 How many items on on my <device_name> right now? There is currently 1 item on your <device_name>.
261 todo 2 How many things are on the <device_name> at the moment? There are 2 things on the <device_name> currently.
262 todo 3 What is the current number of items on your <device_name>? Yes, there are currently 3 items on your <device_name>.
263 todo 4 How many objects are there on the <device_name> presently? Yes, there are 4 objects presently on the <device_name>.
264 todo 5 Could you tell me how many pieces there are on the <device_name> at this time? I can tell you that there are 5 pieces on the <device_name> at this time.
265 todo 6 What's the count of items on the <device_name> now? The count of items on the <device_name> now is 6.
266 todo 7 How many units can be found on my <device_name> at the present moment? You will find 7 units on my <device_name> at the present moment.
267 todo 8 Could you inform me as to how many articles are located on the <device_name> right now? I'd be happy to inform you that there are 8 articles located on the <device_name> right now.
268 todo 9 Is it possible for you to disclose how many components there are on the <device_name> currently? It is possible for me to disclose that there are 9 components on the <device_name> currently.
269 todo 10 May I ask for the quantity of items on the <device_name> at present? The quantity of items on the <device_name> is currently 10.
270 todo 11 Would you be able to tell me how many things there are on the <device_name> now? Yes, I can tell you that there are 11 things on the <device_name> now.
271 todo 12 Can you enlighten me as to the number of items on the <device_name>? I'd be pleased to enlighten you that there are 12 items on the <device_name>.
272 timer active;<duration>;<remaining> How much time left on the <device_name>? The <device_name> is set for <duration>. There is currently <remaining> remaining.
273 timer active;<duration>;<remaining> How long before the <device_name> goes off? The <device_name> will go off in <remaining>.
274 timer active;<duration>;<remaining> When is the <device_name> set to go off? The <device_name> is set for <duration> and will go off in <remaining>.

View File

@@ -218,4 +218,61 @@ light,turn_on,"Can <device_name> be <color> now?",8
light,turn_on,"Let's have <device_name> in <color>.",8
light,turn_on,"I'd like <device_name> to change to <color>.",8
light,turn_on,"Can <device_name> display a <color> light?",8
light,turn_on,"Set <device_name> color to <color>",8
light,turn_on,"Set <device_name> color to <color>",8
vacuum,start,"Start cleaning with <device_name>.",2
vacuum,start,"Begin vacuuming with <device_name>.",2
vacuum,start,"Activate <device_name> to clean.",2
vacuum,start,"Could you please start <device_name>?",2
vacuum,start,"Hey, get <device_name> going, would you?",2
vacuum,stop,"Stop <device_name>'s operation.",2
vacuum,stop,"Please halt <device_name>'s current task",2
vacuum,stop,"Please stop <device_name>",2
vacuum,stop,"Can you make <device_name> stop?",2
vacuum,stop,"Stop <device_name> from cleaning.",2
vacuum,pause,"Freeze <device_name>'s current task.",2
vacuum,pause,"Would you mind pausing <device_name> for a moment?",2
vacuum,pause,"Hey, can we put <device_name> on pause, please?",2
vacuum,pause,"Pause the <device_name> cleaning.",2
vacuum,pause,"Pause <device_name>",2
vacuum,return_to_base,"Send <device_name> back to its base.".2
vacuum,return_to_base,"Please send <device_name> back to its base, if you would.",2
vacuum,return_to_base,"Time to head home, <device_name>. Can you call it back?",2
vacuum,return_to_base,"Direct <device_name> to dock.",2
vacuum,return_to_base,"Return <device_name> to its charging station.",2
todo,add_item,"Please add <item> to my <device_name>.",8
todo,add_item,"Can you add <item> to the <device_name>?",8
todo,add_item,"I need <item> added to my <device_name>.",8
todo,add_item,"Go ahead and add <item> to the <device_name>.",8
todo,add_item,"Could you please input <item> into my <device_name>?",8
todo,add_item,"Kindly insert <item> onto the <device_name>.",8
todo,add_item,"May I request that <item> be included in the <device_name>?",8
todo,add_item,"It would be much appreciated if <item> could be put on the <device_name>.",8
todo,add_item,"Shall we append <item> to my <device_name>?",8
todo,add_item,""Let's add <item> to the <device_name>",8
todo,add_item,"Could you place <item> onto my <device_name>?",8
todo,add_item,"Will you be so kind as to incorporate <item> into the <device_name>?",8
todo,add_item,"Is it possible to include <item> in the <device_name>?",8
todo,add_item,"Could we add <item> to my <device_name>?",8
input_select,select_option,"Set <device_name> to <option>.",8
input_select,select_option,"Can you please modify <device_name> and select the <option>?",8
input_select,select_option,"I'd like to request that <device_name> be configured with the setting <option>.",8
input_select,select_option,"May I kindly ask you to set the configuration of <device_name> to <option>?",8
input_select,select_option,"Please adjust the settings of <device_name> and choose the <option>.",8
input_select,select_option,"Could we please change the mode of <device_name> to <option>?",8
input_select,select_option,"Set the <option> on <device_name>.",8
input_select,select_option,"I'd appreciate if you could update the settings for <device_name> and set it to the <option>.",8
input_select,select_option,"May we make the following adjustment: configure <device_name> with the <option>?",8
input_select,select_option,"Could you please make sure that <device_name> utilizes the setting <option>?",8
input_select,select_option,"I'd like to request your assistance in setting <device_name> to <option>.",8
input_select,select_option,"Set <device_name> to the <option> mode.",8
input_select,select_option,"Can we please alter the configuration of <device_name> and select the <option>?",8
timer,start,"Please set my <device_name> for <duration>.",8
timer,start,"Turn on the <device_name> timer for <duration>.",8
timer,start,"Set the <device_name> for <duration>.",8
timer,start,"Start the <device_name> timer for <duration>.",8
timer,start,"Set a <duration> <device_name>.",8
timer,cancel,"Cancel the <device_name> timer.",8
timer,cancel,"Please stop my <device_name>.",8
timer,cancel,"Turn off the <device_name>.",8
timer,cancel,"Please shut off the <device_name> timer.",8
timer,cancel,"The <device_name> is no longer needed.",8
Can't render this file because it contains an unexpected character in line 138 and column 17.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

11
dist/run_docker.sh vendored
View File

@@ -1,6 +1,15 @@
#!/bin/bash
VERSION_TO_BUILD="v0.2.42"
# make python11 wheels
docker run -it --rm \
--entrypoint bash \
-v $(pwd):/tmp/dist \
homeassistant/home-assistant /tmp/dist/make_wheel.sh v0.2.38
homeassistant/home-assistant:2023.12.4 /tmp/dist/make_wheel.sh $VERSION_TO_BUILD
# make python 12 wheels
docker run -it --rm \
--entrypoint bash \
-v $(pwd):/tmp/dist \
homeassistant/home-assistant:2024.2.1 /tmp/dist/make_wheel.sh $VERSION_TO_BUILD