diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 00000000..070708aa
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,19 @@
+[run]
+include =
+ __init__.py
+ unittests/*
+ test/*
+ ha_client.py
+
+omit =
+ # omit the test folder
+ unittests/test_ha_client.py
+ *mycroft-core/*
+ *.venv*
+ */workspace/test_ha_client.py*
+
+[report]
+omit =
+ */python?.?/*
+ *mycroft-core/*
+ */site-packages/*
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index b9489855..137002bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,14 @@
*.swp
*.pyc
+.idea/misc.xml
+.idea/modules.xml
+.idea/mycroft-homeassistant.iml
+.idea/workspace.xml
+/.pydevproject
+/.project
+.idea/preferred-vcs.xml
+/.idea/vcs.xml
+/venv*
+/test/integrationtests*
+/settings.json
+/skill_developers_testrunner.py
diff --git a/.pep8speaks.yml b/.pep8speaks.yml
new file mode 100644
index 00000000..0b0c9962
--- /dev/null
+++ b/.pep8speaks.yml
@@ -0,0 +1,2 @@
+pycodestyle:
+ max-line-length: 100 # Default is 79 in PEP8
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 00000000..3d0197da
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,12 @@
+language: python
+before_install:
+ - pip install pep8
+ - pip install pytest-cov
+ - pip install python-coveralls
+python:
+ - "3.6"
+script:
+ - pep8 __init__.py
+ - pytest --rootdir=unittests --cov unittests/
+after_success:
+ codecov --token=4984c911-ce8f-4767-a446-7339a16ad840
diff --git a/README.md b/README.md
index aa62f762..2174aa7d 100644
--- a/README.md
+++ b/README.md
@@ -1,46 +1,51 @@
-# Home Assistant Skill for Mycroft
+# Home Assistant
+Awaken your home - Control Home Assistant
-based off the original code from https://github.com/BongoEADGC6/mycroft-home-assistant, spun off my own version since they seem to be inactive.
+## About
+[Home Assistant](https://www.home-assistant.io/) lets you control all your smart devices in a single easy to use interface. This skill uses the open source Home Assistant's APIs to control devices and entities. Control your lights, garage door, thermostats and more using your voice!
-This is a skill to add [Home Assistant](https://home-assistant.io) support to
-[Mycroft](https://mycroft.ai). Currently is supports turning on and off several
-entity types (`light`, `switch`, `scene`, `groups` and `input_boolean`).
+Currently the following entity types are supported: `light`, `switch`, `scene`, `climate`, `groups` and `input_boolean`
-## Support/Help
-You can always find me in the mycroft slack channel here, http://mycroft-ai-slack-invite.herokuapp.com/
+## Examples
+* "Turn on the office light"
+* "Turn off bedroom lights"
+* "Turn on on the AC"
+* "Read bedroom temperature"
-## Installation
+## Credits
+@BongoEADGC6
+@btotharye
+Mycroft AI (@mycroftai)
-Clone the repository into your `~/.mycroft/skills` directory. Then install the
-dependencies inside your mycroft virtual environment:
+## Category
+**IoT**
-If on picroft just skip the workon part and the directory will be /opt/mycroft/skills
-
-```
-cd ~/.mycroft/skills
-git clone https://github.com/btotharye/mycroft-homeassistant HomeAssistantSkill
-workon mycroft
-cd HomeAssistantSkill
-pip install -r requirements.txt
-```
+## Tags
+#homeautomation
+#iot
+#homeassistant
+#smarthome
## Configuration
+This skill utilizes the skillsettings.json file which allows you to configure this skill via home.mycroft.ai after a few minutes of having the skill installed you should see something like below in the https://home.mycroft.ai/#/skill location:
-Add a block to your `~/.mycroft/mycroft.conf` file like this:
+
+
+Fill this out with your appropriate home assistant information and hit save.
+
+You create the Long-Lived Access Token on the user profile page
+
+
-```
- "HomeAssistantSkill": {
- "host": "hass.mylan.net",
- "password": "mysupersecrethasspass",
- "ssl": true|false
- }
-```
-NOTE: SSL support is currently secure as it does verify the cert.
+### Enabling using the conversation component as Fallback
-You will then need to restart mycroft.
+Home-Assistant [supports basic speech based communication](https://www.home-assistant.io/components/conversation/).
+When enabling the setting `Enable conversation component as fallback` on home.mycroft.ai, sentences that were not parsed
+by any skill before (based on matching keywords) will be passed to this conversation component at the local Home-Assistant server.
+Like this, Mycroft will answer default and custom sentences specified in Home-Assistant.
## Usage
@@ -68,32 +73,12 @@ def handle_lighting_intent(self, message):
ha_data = {'entity_id': ha_entity['id']}
```
-
-## Supported Phrases/Entities
-Currently the phrases are:
-* Hey Mycroft, turn on office (turn on the group office)
-* Hey Mycroft, turn on office light (to turn on the light named office)
-* Hey Mycroft, activate Bedtime (Bedtime is an automation)
-* Hey Mycroft, turn on Movietime (Movietime is a scene)
-* Hey Mycroft, ask home asssistant where is/what is something (The something can be a sensor in homeassistant)
-
-
-
## TODO
* Script intents processing
* New intent for opening/closing cover entities
* New intent for locking/unlocking lock entities (with added security?)
* New intent for thermostat values, raising, etc.
- * ...
-
-## Contributing
-
-All contributions welcome:
-
- * Fork
- * Write code
- * Submit merge request
-
-## Licence
+ * New intent to handle multimedia/kodi
-See [`LICENCE`](https://gitlab.com/robconnolly/mycroft-home-assistant/blob/master/LICENSE).
+## In Development
+* Increasing and Decreasing Climate controls
diff --git a/__init__.py b/__init__.py
index 38558f01..74919922 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,197 +1,580 @@
-from os.path import dirname, join
-
from adapt.intent import IntentBuilder
-from mycroft.skills.core import MycroftSkill
-from mycroft.util.log import getLogger
+from mycroft.skills.core import FallbackSkill
+from mycroft.util.format import nice_number
+from mycroft import MycroftSkill, intent_handler
from os.path import dirname, join
-from requests import get, post
-from fuzzywuzzy import fuzz
-import json
+from sys import exc_info
-__author__ = 'robconnolly, btotharye'
-LOGGER = getLogger(__name__)
+from requests.exceptions import (
+ RequestException,
+ Timeout,
+ InvalidURL,
+ URLRequired,
+ SSLError,
+ HTTPError)
+from requests.packages.urllib3.exceptions import MaxRetryError
+from .ha_client import HomeAssistantClient
-class HomeAssistantClient(object):
- def __init__(self, host, password, port=8123, ssl=False):
- self.ssl = ssl
- if self.ssl:
- port=443
- self.url = "https://%s:%d" % (host, port)
- else:
- self.url = "http://%s:%d" % (host, port)
- self.headers = {
- 'x-ha-access': password,
- 'Content-Type': 'application/json'
- }
- def find_entity(self, entity, types):
- if self.ssl:
- req = get("%s/api/states" % self.url, headers=self.headers, verify=True)
- else:
- req = get("%s/api/states" % self.url, headers=self.headers)
-
- if req.status_code == 200:
- best_score = 0
- best_entity = None
- for state in req.json():
- try:
- if state['entity_id'].split(".")[0] in types:
- LOGGER.debug("Entity Data: %s" % state)
- score = fuzz.ratio(entity, state['attributes']['friendly_name'].lower())
- if score > best_score:
- best_score = score
- best_entity = { "id": state['entity_id'],
- "dev_name": state['attributes']['friendly_name'],
- "state": state['state'] }
- except KeyError:
- pass
- return best_entity
- #
- # checking the entity attributes to be used in the response dialog.
- #
- def find_entity_attr(self, entity):
- if self.ssl:
- req = get("%s/api/states" % self.url, headers=self.headers, verify=True)
- else:
- req = get("%s/api/states" % self.url, headers=self.headers)
-
- if req.status_code == 200:
- for attr in req.json():
- if attr['entity_id'] == entity:
- try:
- unit_measurement = attr['attributes']['unit_of_measurement']
- sensor_name = attr['attributes']['friendly_name']
- sensor_state = attr['state']
- return unit_measurement, sensor_name, sensor_state
- except:
- unit_measurement = 'null'
- sensor_name = attr['attributes']['friendly_name']
- sensor_state = attr['state']
- return unit_measurement, sensor_name, sensor_state
-
- return None
-
- def execute_service(self, domain, service, data):
- if self.ssl:
- post("%s/api/services/%s/%s" % (self.url, domain, service), headers=self.headers, data=json.dumps(data), verify=True)
- else:
- post("%s/api/services/%s/%s" % (self.url, domain, service), headers=self.headers, data=json.dumps(data))
+__author__ = 'robconnolly, btotharye, nielstron'
+
+# Timeout time for HA requests
+TIMEOUT = 10
+
+
+class HomeAssistantSkill(FallbackSkill):
-# TODO - Localization
-class HomeAssistantSkill(MycroftSkill):
def __init__(self):
- super(HomeAssistantSkill, self).__init__(name="HomeAssistantSkill")
- self.ha = HomeAssistantClient(self.config.get('host'),
- self.config.get('password'), ssl=self.config.get('ssl', False))
+ MycroftSkill.__init__(self)
+ super().__init__(name="HomeAssistantSkill")
+ self.ha = None
+ self.enable_fallback = False
+
+ def _setup(self, force=False):
+ if self.settings is not None and (force or self.ha is None):
+ ip = self.settings.get('host')
+ token = self.settings.get('token')
+
+ # Check if user filled IP, port and Token in configuration
+ if not ip:
+ self.speak_dialog('homeassistant.error.setup', data={
+ "field": "I.P."})
+ return
+
+ if not token:
+ self.speak_dialog('homeassistant.error.setup', data={
+ "field": "token"})
+ return
+
+ portnumber = self.settings.get('portnum')
+ try:
+ portnumber = int(portnumber)
+ except TypeError:
+ portnumber = 8123
+ except ValueError:
+ # String might be some rubbish (like '')
+ self.speak_dialog('homeassistant.error.setup', data={
+ "field": "port"})
+ return
+
+ self.ha = HomeAssistantClient(
+ ip,
+ token,
+ portnumber,
+ self.settings.get('ssl'),
+ self.settings.get('verify')
+ )
+ if self.ha.connected():
+ # Check if conversation component is loaded at HA-server
+ # and activate fallback accordingly (ha-server/api/components)
+ # TODO: enable other tools like dialogflow
+ conversation_activated = self.ha.find_component(
+ 'conversation'
+ )
+ if conversation_activated:
+ self.enable_fallback = \
+ self.settings.get('enable_fallback')
+
+ def _force_setup(self):
+ self.log.debug('Creating a new HomeAssistant-Client')
+ self._setup(True)
def initialize(self):
+ self.language = self.config_core.get('lang')
self.load_vocab_files(join(dirname(__file__), 'vocab', self.lang))
self.load_regex_files(join(dirname(__file__), 'regex', self.lang))
- self.__build_lighting_intent()
- self.__build_sensor_intent()
self.__build_automation_intent()
+ self.__build_tracker_intent()
- def __build_lighting_intent(self):
- intent = IntentBuilder("LightingIntent").require("LightActionKeyword").require("Action").require("Entity").build()
- # TODO - Locks, Temperature, Identity location
- self.register_intent(intent, self.handle_lighting_intent)
+ # Needs higher priority than general fallback skills
+ self.register_fallback(self.handle_fallback, 2)
+ # Check and then monitor for credential changes
+ self.settings_change_callback = self.on_websettings_changed
+ self._setup()
+
+ def on_websettings_changed(self):
+ # Force a setting refresh after the websettings changed
+ # Otherwise new settings will not be regarded
+ self._force_setup()
def __build_automation_intent(self):
- intent = IntentBuilder("AutomationIntent").require("AutomationActionKeyword").require("Entity").build()
+ intent = IntentBuilder("AutomationIntent").require(
+ "AutomationActionKeyword").require("Entity").build()
self.register_intent(intent, self.handle_automation_intent)
- def __build_sensor_intent(self):
- intent = IntentBuilder("SensorIntent").require("SensorStatusKeyword").require("Entity").build()
- # TODO - Locks, Temperature, Identity location
- self.register_intent(intent, self.handle_sensor_intent)
+ def __build_tracker_intent(self):
+ intent = IntentBuilder("TrackerIntent").require(
+ "DeviceTrackerKeyword").require("Entity").build()
+ # TODO - Identity location, proximity
+ self.register_intent(intent, self.handle_tracker_intent)
+
+ # Try to find an entity on the HAServer
+ # Creates dialogs for errors and speaks them
+ # Returns None if nothing was found
+ # Else returns entity that was found
+ def _find_entity(self, entity, domains):
+ self._setup()
+ if self.ha is None:
+ self.speak_dialog('homeassistant.error.setup')
+ return False
+ # TODO if entity is 'all', 'any' or 'every' turn on
+ # every single entity not the whole group
+ ha_entity = self._handle_client_exception(self.ha.find_entity,
+ entity, domains)
+ if ha_entity is None:
+ self.speak_dialog('homeassistant.device.unknown', data={
+ "dev_name": entity})
+ return ha_entity
+
+ # Routine for entiti availibility check
+ def _check_availability(self, ha_entity):
+ """ Simple routine for checking availability of entity inside
+ Home Assistent. """
+
+ if ha_entity['state'] == 'unavailable':
+ """ Check if state is `unavailable`, if yes, inform user about it. """
+
+ self.speak_dialog('homeassistant.device.unavailable', data={
+ "dev_name": ha_entity['dev_name']})
+ """ Return result to underliing function. """
+ return False
+ return True
+
+ # Calls passed method and catches often occurring exceptions
+ def _handle_client_exception(self, callback, *args, **kwargs):
+ try:
+ return callback(*args, **kwargs)
+ except Timeout:
+ self.speak_dialog('homeassistant.error.offline')
+ except (InvalidURL, URLRequired, MaxRetryError) as e:
+ if e.request is None or e.request.url is None:
+ # There is no url configured
+ self.speak_dialog('homeassistant.error.needurl')
+ else:
+ self.speak_dialog('homeassistant.error.invalidurl', data={
+ 'url': e.request.url})
+ except SSLError:
+ self.speak_dialog('homeassistant.error.ssl')
+ except HTTPError as e:
+ # check if due to wrong password
+ if e.response.status_code == 401:
+ self.speak_dialog('homeassistant.error.wrong_password')
+ else:
+ self.speak_dialog('homeassistant.error.http', data={
+ 'code': e.response.status_code,
+ 'reason': e.response.reason})
+ except (ConnectionError, RequestException) as exception:
+ # TODO find a nice member of any exception to output
+ self.speak_dialog('homeassistant.error', data={
+ 'url': exception.request.url})
- def handle_lighting_intent(self, message):
+ return False
+
+ # Intent handlers
+ @intent_handler('turn.on.intent')
+ def handle_turn_on_intent(self, message):
+ self.log.debug("Turn on intent on entity: "+message.data.get("entity"))
+ message.data["Entity"] = message.data.get("entity")
+ message.data["Action"] = "on"
+ self._handle_turn_actions(message)
+
+ @intent_handler('turn.off.intent')
+ def handle_turn_off_intent(self, message):
+ self.log.debug(message.data)
+ self.log.debug("Turn off intent on entity: "+message.data.get("entity"))
+ message.data["Entity"] = message.data.get("entity")
+ message.data["Action"] = "off"
+ self._handle_turn_actions(message)
+
+ @intent_handler('toggle.intent')
+ def handle_toggle_intent(self, message):
+ self.log.debug("Toggle intent on entity: " + message.data.get("entity"))
+ message.data["Entity"] = message.data.get("entity")
+ message.data["Action"] = "toggle"
+ self._handle_turn_actions(message)
+
+ @intent_handler('sensor.intent')
+ def handle_sensor_intent(self, message):
+ self.log.debug("Turn on intent on entity: "+message.data.get("entity"))
+ message.data["Entity"] = message.data.get("entity")
+ self._handle_sensor(message)
+
+ @intent_handler('set.light.brightness.intent')
+ def handle_light_set_intent(self, message):
+ self.log.debug("Change light intensity: "+message.data.get("entity") \
+ +"to"+message.data.get("brightnessvalue")+"percent")
+ message.data["Entity"] = message.data.get("entity")
+ message.data["Brightnessvalue"] = message.data.get("brightnessvalue")
+ self._handle_light_set(message)
+
+ @intent_handler('increase.light.brightness.intent')
+ def handle_light_increase_intent(self, message):
+ self.log.debug("Increase light intensity: "+message.data.get("entity"))
+ message.data["Entity"] = message.data.get("entity")
+ message.data["Action"] = "up"
+ self._handle_light_adjust(message)
+
+ @intent_handler('decrease.light.brightness.intent')
+ def handle_light_decrease_intent(self, message):
+ self.log.debug("Decrease light intensity: "+message.data.get("entity"))
+ message.data["Entity"] = message.data.get("entity")
+ message.data["Action"] = "down"
+ self._handle_light_adjust(message)
+
+ def _handle_turn_actions(self, message):
+ self.log.debug("Starting Switch Intent")
entity = message.data["Entity"]
action = message.data["Action"]
- LOGGER.debug("Entity: %s" % entity)
- LOGGER.debug("Action: %s" % action)
- ha_entity = self.ha.find_entity(entity, ['group','light', 'switch', 'scene', 'input_boolean'])
- if ha_entity is None:
- #self.speak("Sorry, I can't find the Home Assistant entity %s" % entity)
- self.speak_dialog('homeassistant.device.unknown', data={"dev_name": ha_entity['dev_name']})
+ self.log.debug("Entity: %s" % entity)
+ self.log.debug("Action: %s" % action)
+
+ # Handle turn on/off all intent
+ try:
+ if self.voc_match(entity,"all_lights"):
+ domain = "light"
+ elif self.voc_match(entity,"all_switches"):
+ domain = "switch"
+ else:
+ domain = None
+
+ if domain is not None:
+ ha_entity = {'dev_name': entity}
+ ha_data = {'entity_id': 'all'}
+
+ self.ha.execute_service(domain, "turn_%s" % action, ha_data)
+ self.speak_dialog('homeassistant.device.%s' % action, data=ha_entity)
+ return
+ # TODO: need to figure out, if this indeed throws a KeyError
+ except KeyError:
+ self.log.debug("Not turn on/off all intent")
+ except:
+ self.log.debug("Unexpected error in turn all intent:", exc_info()[0])
+
+ # Hande single entity
+
+ ha_entity = self._find_entity(
+ entity,
+ [
+ 'group',
+ 'light',
+ 'fan',
+ 'switch',
+ 'scene',
+ 'input_boolean',
+ 'climate'
+ ]
+ )
+
+ # Exit if entiti not found or is unavailabe
+ if not ha_entity or not self._check_availability(ha_entity):
return
+
+ self.log.debug("Entity State: %s" % ha_entity['state'])
+
ha_data = {'entity_id': ha_entity['id']}
- if action == "on":
- if ha_entity['state'] == action:
- self.speak_dialog('homeassistant.device.already',\
- data={ "dev_name": ha_entity['dev_name'], 'action': action })
- else:
- self.speak_dialog('homeassistant.device.on', data=ha_entity)
- self.ha.execute_service("homeassistant", "turn_on", ha_data)
- elif action == "off":
- if ha_entity['state'] == action:
- self.speak_dialog('homeassistant.device.already',\
- data={"dev_name": ha_entity['dev_name'], 'action': action })
+ # IDEA: set context for 'turn it off' again or similar
+ # self.set_context('Entity', ha_entity['dev_name'])
+ if ha_entity['state'] == action:
+ self.log.debug("Entity in requested state")
+ self.speak_dialog('homeassistant.device.already', data={
+ "dev_name": ha_entity['dev_name'], 'action': action})
+ elif action == "toggle":
+ self.ha.execute_service("homeassistant", "toggle",
+ ha_data)
+ if(ha_entity['state'] == 'off'):
+ action = 'on'
else:
- self.speak_dialog('homeassistant.device.off', data=ha_entity)
- self.ha.execute_service("homeassistant", "turn_off", ha_data)
- elif action == "dim":
+ action = 'off'
+ self.speak_dialog('homeassistant.device.%s' % action,
+ data=ha_entity)
+ elif action in ["on", "off"]:
+ self.speak_dialog('homeassistant.device.%s' % action,
+ data=ha_entity)
+ self.ha.execute_service("homeassistant", "turn_%s" % action,
+ ha_data)
+ else:
+ self.speak_dialog('homeassistant.error.sorry')
+ return
+
+ def _handle_light_set(self, message):
+ entity = message.data["entity"]
+ try:
+ brightness_req = float(message.data["Brightnessvalue"])
+ if brightness_req > 100 or brightness_req < 0:
+ self.speak_dialog('homeassistant.brightness.badreq')
+ except KeyError:
+ brightness_req = 10.0
+ brightness_value = int(brightness_req / 100 * 255)
+ brightness_percentage = int(brightness_req)
+ self.log.debug("Entity: %s" % entity)
+ self.log.debug("Brightness Value: %s" % brightness_value)
+ self.log.debug("Brightness Percent: %s" % brightness_percentage)
+
+ ha_entity = self._find_entity(entity, ['group', 'light'])
+ # Exit if entiti not found or is unavailabe
+ if not ha_entity or not self._check_availability(ha_entity):
+ return
+
+ ha_data = {'entity_id': ha_entity['id']}
+
+ # IDEA: set context for 'turn it off again' or similar
+ # self.set_context('Entity', ha_entity['dev_name'])
+ # Set values for HA
+ ha_data['brightness'] = brightness_value
+ self.ha.execute_service("light", "turn_on", ha_data)
+ # Set values for mycroft reply
+ ha_data['dev_name'] = ha_entity['dev_name']
+ ha_data['brightness'] = brightness_req
+ self.speak_dialog('homeassistant.brightness.dimmed',
+ data=ha_data)
+
+ return
+
+ @intent_handler('add.item.shopping.list.intent')
+ def handle_shopping_list_intent(self, message):
+ entity = message.data["entity"]
+ ha_data = {'name': entity}
+ self.ha.execute_service("shopping_list", "add_item", ha_data)
+ self.speak_dialog("homeassistant.shopping.list")
+ return
+
+ def _handle_light_adjust(self, message):
+ entity = message.data["Entity"]
+ action = message.data["Action"]
+ brightness_req = 10.0
+ brightness_value = int(brightness_req / 100 * 255)
+ # brightness_percentage = int(brightness_req) # debating use
+ self.log.debug("Entity: %s" % entity)
+ self.log.debug("Brightness Value: %s" % brightness_value)
+
+ # Set the min and max brightness for bulbs. Smart bulbs
+ # use 0-255 integer brightness, while spoken commands will
+ # use 0-100% brightness.
+ min_brightness = 5
+ max_brightness = 255
+
+ ha_entity = self._find_entity(entity, ['group', 'light'])
+ # Exit if entiti not found or is unavailabe
+ if not ha_entity or not self._check_availability(ha_entity):
+ return
+ ha_data = {'entity_id': ha_entity['id']}
+ # IDEA: set context for 'turn it off again' or similar
+ # self.set_context('Entity', ha_entity['dev_name'])
+
+ if action == "down":
if ha_entity['state'] == "off":
- self.speak_dialog('homeassistant.device.off', data={"dev_name": ha_entity['dev_name']})
- self.speak("Can not dim %s. It is off." % ha_entity['dev_name'])
+ self.speak_dialog('homeassistant.brightness.cantdim.off',
+ data=ha_entity)
else:
- #self.speak_dialog('homeassistant.device.off', data=ha_entity)
- self.speak("Dimmed the %s" % ha_entity['dev_name'])
- #self.ha.execute_service("homeassistant", "turn_off", ha_data)
- elif action == "brighten":
+ light_attrs = self.ha.find_entity_attr(ha_entity['id'])
+ if light_attrs['unit_measure'] is None:
+ self.speak_dialog(
+ 'homeassistant.brightness.cantdim.dimmable',
+ data=ha_entity)
+ else:
+ ha_data['brightness'] = light_attrs['unit_measure'] - brightness_value
+ if ha_data['brightness'] < min_brightness:
+ ha_data['brightness'] = min_brightness
+ self.ha.execute_service("homeassistant",
+ "turn_on",
+ ha_data)
+ ha_data['dev_name'] = ha_entity['dev_name']
+ ha_data['brightness'] = round(100 / max_brightness * ha_data['brightness'])
+ self.speak_dialog('homeassistant.brightness.decreased',
+ data=ha_data)
+ elif action == "up":
if ha_entity['state'] == "off":
- self.speak_dialog('homeassistant.device.off', data={"dev_name": ha_entity['dev_name']})
- self.speak("Can not brighten %s. It is off." % ha_entity['dev_name'])
+ self.speak_dialog(
+ 'homeassistant.brightness.cantdim.off',
+ data=ha_entity)
else:
- #self.speak_dialog('homeassistant.device.off', data=ha_entity)
- self.speak("Increased brightness of %s" % ha_entity['dev_name'])
- #self.ha.execute_service("homeassistant", "turn_off", ha_data)
+ light_attrs = self.ha.find_entity_attr(ha_entity['id'])
+ if light_attrs['unit_measure'] is None:
+ self.speak_dialog(
+ 'homeassistant.brightness.cantdim.dimmable',
+ data=ha_entity)
+ else:
+ ha_data['brightness'] = light_attrs['unit_measure'] + brightness_value
+ if ha_data['brightness'] > max_brightness:
+ ha_data['brightness'] = max_brightness
+ self.ha.execute_service("homeassistant",
+ "turn_on",
+ ha_data)
+ ha_data['dev_name'] = ha_entity['dev_name']
+ ha_data['brightness'] = round(100 / max_brightness * ha_data['brightness'])
+ self.speak_dialog('homeassistant.brightness.increased',
+ data=ha_data)
else:
- ##self.speak("I don't know what you want me to do.")
self.speak_dialog('homeassistant.error.sorry')
-
+ return
def handle_automation_intent(self, message):
entity = message.data["Entity"]
- LOGGER.debug("Entity: %s" % entity)
- ha_entity = self.ha.find_entity(entity, ['automation'])
+ self.log.debug("Entity: %s" % entity)
+ ha_entity = self._find_entity(
+ entity,
+ ['automation', 'scene', 'script']
+ )
+
+ # Exit if entiti not found or is unavailabe
+ if not ha_entity or not self._check_availability(ha_entity):
+ return
+
ha_data = {'entity_id': ha_entity['id']}
- if ha_entity is None:
- #self.speak("Sorry, I can't find the Home Assistant entity %s" % entity)
- self.speak_dialog('homeassistant.device.unknown', data={"dev_name": ha_entity['dev_name']})
+
+ # IDEA: set context for 'turn it off again' or similar
+ # self.set_context('Entity', ha_entity['dev_name'])
+
+ self.log.debug("Triggered automation/scene/script: {}".format(ha_data))
+ if "automation" in ha_entity['id']:
+ self.ha.execute_service('automation', 'trigger', ha_data)
+ self.speak_dialog('homeassistant.automation.trigger',
+ data={"dev_name": ha_entity['dev_name']})
+ elif "script" in ha_entity['id']:
+ self.speak_dialog('homeassistant.automation.trigger',
+ data={"dev_name": ha_entity['dev_name']})
+ self.ha.execute_service("homeassistant", "turn_on",
+ data=ha_data)
+ elif "scene" in ha_entity['id']:
+ self.speak_dialog('homeassistant.device.on',
+ data=ha_entity)
+ self.ha.execute_service("homeassistant", "turn_on",
+ data=ha_data)
+
+ def _handle_sensor(self, message):
+ entity = message.data["Entity"]
+ self.log.debug("Entity: %s" % entity)
+
+ ha_entity = self._find_entity(entity, ['sensor', 'switch'])
+ # Exit if entiti not found or is unavailabe
+ if not ha_entity or not self._check_availability(ha_entity):
return
- LOGGER.debug("Triggered automation on: {}".format(ha_data))
- self.ha.execute_service('automation', 'trigger', ha_data)
- self.speak_dialog('homeassistant.automation.trigger', data={"dev_name": ha_entity['dev_name']})
+ entity = ha_entity['id']
+
+ # IDEA: set context for 'read it out again' or similar
+ # self.set_context('Entity', ha_entity['dev_name'])
+
+ unit_measurement = self.ha.find_entity_attr(entity)
+ sensor_unit = unit_measurement.get('unit_measure') or ''
+
+ sensor_name = unit_measurement['name']
+ sensor_state = unit_measurement['state']
+ # extract unit for correct pronounciation
+ # this is fully optional
+ try:
+ from quantulum3 import parser
+ quantulumImport = True
+ except ImportError:
+ quantulumImport = False
+
+ if quantulumImport and unit_measurement != '':
+ quantity = parser.parse((u'{} is {} {}'.format(
+ sensor_name, sensor_state, sensor_unit)))
+ if len(quantity) > 0:
+ quantity = quantity[0]
+ if (quantity.unit.name != "dimensionless" and
+ quantity.uncertainty <= 0.5):
+ sensor_unit = quantity.unit.name
+ sensor_state = quantity.value
+
+ try:
+ value = float(sensor_state)
+ sensor_state = nice_number(value, lang=self.language)
+ except ValueError:
+ pass
+
+ self.speak_dialog('homeassistant.sensor', data={
+ "dev_name": sensor_name,
+ "value": sensor_state,
+ "unit": sensor_unit})
+ # IDEA: Add some context if the person wants to look the unit up
+ # Maybe also change to name
+ # if one wants to look up "outside temperature"
+ # self.set_context("SubjectOfInterest", sensor_unit)
- #
# In progress, still testing.
- #
- def handle_sensor_intent(self, message):
+ # Device location works.
+ # Proximity might be an issue
+ # - overlapping command for directions modules
+ # - (e.g. "How far is x from y?")
+ def handle_tracker_intent(self, message):
entity = message.data["Entity"]
- LOGGER.debug("Entity: %s" % entity)
- ha_entity = self.ha.find_entity(entity, ['sensor', 'device_tracker'])
- if ha_entity is None:
- #self.speak("Sorry, I can't find the Home Assistant entity %s" % entity)
- self.speak_dialog('homeassistant.device.unknown', data={"dev_name": ha_entity['dev_name']})
+ self.log.debug("Entity: %s" % entity)
+
+ ha_entity = self._find_entity(entity, ['device_tracker'])
+ # Exit if entiti not found or is unavailabe
+ if not ha_entity or not self._check_availability(ha_entity):
return
- ha_data = ha_entity
+
+ # IDEA: set context for 'locate it again' or similar
+ # self.set_context('Entity', ha_entity['dev_name'])
+
entity = ha_entity['id']
- unit_measurement = self.ha.find_entity_attr(entity)
- if unit_measurement[0] != 'null':
- sensor_unit = unit_measurement[0]
- sensor_name = unit_measurement[1]
- sensor_state = unit_measurement[2]
- self.speak(('Currently {} is {} {}'.format(sensor_name, sensor_state, sensor_unit)))
- else:
- sensor_name = unit_measurement[1]
- sensor_state = unit_measurement[2]
- self.speak('Currently {} is {}'.format(sensor_name, sensor_state))
+ dev_name = ha_entity['dev_name']
+ dev_location = ha_entity['state']
+ self.speak_dialog('homeassistant.tracker.found',
+ data={'dev_name': dev_name,
+ 'location': dev_location})
+
+ @intent_handler('set.climate.intent')
+ def handle_set_thermostat_intent(self, message):
+ entity = message.data["entity"]
+ self.log.debug("Entity: %s" % entity)
+ self.log.debug("This is the message data: %s" % message.data)
+ temperature = message.data["temp"]
+ self.log.debug("Temperature: %s" % temperature)
+
+ ha_entity = self._find_entity(entity, ['climate'])
+ # Exit if entiti not found or is unavailabe
+ if not ha_entity or not self._check_availability(ha_entity):
+ return
+
+ climate_data = {
+ 'entity_id': ha_entity['id'],
+ 'temperature': temperature
+ }
+ climate_attr = self.ha.find_entity_attr(ha_entity['id'])
+ self.ha.execute_service("climate", "set_temperature",
+ data=climate_data)
+ self.speak_dialog('homeassistant.set.thermostat',
+ data={
+ "dev_name": climate_attr['name'],
+ "value": temperature,
+ "unit": climate_attr['unit_measure']})
+
+ def handle_fallback(self, message):
+ if not self.enable_fallback:
+ return False
+ self._setup()
+ if self.ha is None:
+ self.speak_dialog('homeassistant.error.setup')
+ return False
+ # pass message to HA-server
+ response = self._handle_client_exception(
+ self.ha.engage_conversation,
+ message.data.get('utterance'))
+ if not response:
+ return False
+ # default non-parsing answer: "Sorry, I didn't understand that"
+ answer = response.get('speech')
+ if not answer or answer == "Sorry, I didn't understand that":
+ return False
+
+ asked_question = False
+ # TODO: maybe enable conversation here if server asks sth like
+ # "In which room?" => answer should be directly passed to this skill
+ if answer.endswith("?"):
+ asked_question = True
+ self.speak(answer, expect_response=asked_question)
+ return True
+ def shutdown(self):
+ self.remove_fallback(self.handle_fallback)
+ super(HomeAssistantSkill, self).shutdown()
def stop(self):
pass
diff --git a/dialog/ca-es/homeassistant.automation.trigger.dialog b/dialog/ca-es/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..e693533a
--- /dev/null
+++ b/dialog/ca-es/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+automatització de {{dev_name}} activat.
+{{dev_name}} activat.
+{{dev_name}} s'ha activat.
+{{dev_name}} s'ha activat.
+{{dev_name}} activat.
diff --git a/dialog/ca-es/homeassistant.brightness.badreq.dialog b/dialog/ca-es/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..38923b74
--- /dev/null
+++ b/dialog/ca-es/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+si us plau sol·liciteu un nivell de brillantor entre 0 i 100.
+com de brillant? podeu triar un nivell de 0 a 100.
diff --git a/dialog/ca-es/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/ca-es/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..9668f146
--- /dev/null
+++ b/dialog/ca-es/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+No es pot atenuar {{dev_name}}. No és regulable.
diff --git a/dialog/ca-es/homeassistant.brightness.cantdim.off.dialog b/dialog/ca-es/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..5e37311b
--- /dev/null
+++ b/dialog/ca-es/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+No es pot atenuar {{dev_name}}. Està apagat.
+No es pot atenuar {{dev_name}}. Si us plau, activeu-ho abans.
+{{dev_name}} no es pot atenuar. Només poden estar els dispositius activats.
diff --git a/dialog/ca-es/homeassistant.brightness.decreased.dialog b/dialog/ca-es/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..6b914e72
--- /dev/null
+++ b/dialog/ca-es/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} atenuat al {{brillantor}} per cent.
+{{dev_name}} atenuat.
diff --git a/dialog/ca-es/homeassistant.brightness.dimmed.dialog b/dialog/ca-es/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..fd1931db
--- /dev/null
+++ b/dialog/ca-es/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+La brillantor de {{dev_name}} establit al {{brillantor}} per cent.
diff --git a/dialog/ca-es/homeassistant.brightness.increased.dialog b/dialog/ca-es/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..88a288d1
--- /dev/null
+++ b/dialog/ca-es/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+La brillantor de {{dev_name}} augmentat al {{brillantor}} per cent.
+Brillantor de {{dev_name}} augmentada.
diff --git a/dialog/ca-es/homeassistant.device.already.dialog b/dialog/ca-es/homeassistant.device.already.dialog
new file mode 100644
index 00000000..0eac8443
--- /dev/null
+++ b/dialog/ca-es/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} ja {{action}}.
+No s'han fet canvis a {{dev_name}}.
diff --git a/dialog/ca-es/homeassistant.device.off.dialog b/dialog/ca-es/homeassistant.device.off.dialog
new file mode 100644
index 00000000..cded2c71
--- /dev/null
+++ b/dialog/ca-es/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+{{dev_name}} desactivat.
+{{dev_name}} desactivat.
+{{dev_name}} està desactivat.
diff --git a/dialog/ca-es/homeassistant.device.on.dialog b/dialog/ca-es/homeassistant.device.on.dialog
new file mode 100644
index 00000000..6aa3b160
--- /dev/null
+++ b/dialog/ca-es/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+{{dev_name}} activat.
+{{dev_name}} s'ha activat.
+{{dev_name}} activat.
diff --git a/dialog/ca-es/homeassistant.device.toggle.dialog b/dialog/ca-es/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..5f48017d
--- /dev/null
+++ b/dialog/ca-es/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} commutat.
+{{dev_name}} ha estat commutat.
diff --git a/dialog/ca-es/homeassistant.device.unknown.dialog b/dialog/ca-es/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..1ffae148
--- /dev/null
+++ b/dialog/ca-es/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Ho sento, no puc trobar l'entitat Home Assistant «{{dev_name}}».
+No s'ha trobat l'entitat «{{dev_name}}».
+Ho sento, no s'ha trobat l'entitat «{{dev_name}}».
+Perdoneu, no he pogut trobar "{{dev_name}}".
diff --git a/dialog/ca-es/homeassistant.error.dialog b/dialog/ca-es/homeassistant.error.dialog
new file mode 100644
index 00000000..d15c9f36
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.dialog
@@ -0,0 +1 @@
+Ha fallat l'accés al servidor home assistant en {{url}}.
diff --git a/dialog/ca-es/homeassistant.error.http.dialog b/dialog/ca-es/homeassistant.error.http.dialog
new file mode 100644
index 00000000..c40f7817
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+El servidor home assistant no ha pogut respondre a causa de {{code}} {{reason}}
diff --git a/dialog/ca-es/homeassistant.error.invalidurl.dialog b/dialog/ca-es/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..125de17f
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+L'URL {{url}} no allotja un servidor home assistant vàlid
diff --git a/dialog/ca-es/homeassistant.error.needurl.dialog b/dialog/ca-es/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..d3f8bb6b
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Heu de posar un URL al home del Mycroft.
+Cal que configureu la destresa posant un URL a l'inici del Mycroft.
+Per utilitzar aquesta destresa, poseu un URL a l'inici del Mycroft.
diff --git a/dialog/ca-es/homeassistant.error.offline.dialog b/dialog/ca-es/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..40af00c6
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Sembla que el servidor Home assistant està fora de línia.
+No s'ha pogut arribar al servidor home assistant.
+El servidor home assistant no ha respost.
diff --git a/dialog/ca-es/homeassistant.error.setup.dialog b/dialog/ca-es/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..bb3a4418
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Configureu les configuracions de la destresa de home assistant al home punt mycroft punt ai.
diff --git a/dialog/ca-es/homeassistant.error.sorry.dialog b/dialog/ca-es/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..ec7265d6
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+No sé què vulgueu que faci.
+No s'ha pogut esbrinar com parlar amb l'Home Assistant.
+No entenc què estigueu demanant.
diff --git a/dialog/ca-es/homeassistant.error.ssl.dialog b/dialog/ca-es/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..36ad1f91
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+La configuració de S S L al servidor home assistant no és vàlida.
diff --git a/dialog/ca-es/homeassistant.error.wrong_password.dialog b/dialog/ca-es/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..39950a04
--- /dev/null
+++ b/dialog/ca-es/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+El servidor home assistant no ha acceptat la contrasenya configurada.
diff --git a/dialog/ca-es/homeassistant.sensor.dialog b/dialog/ca-es/homeassistant.sensor.dialog
new file mode 100644
index 00000000..ea618e48
--- /dev/null
+++ b/dialog/ca-es/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Actualment {{dev_name}} és {{value}} {{unit}}.
+{{dev_name}} té l'estat: {{value}} {{unit}}.
+{{dev_name}} està {{value}} {{unit}} en aquest moment.
+{{dev_name}} està {{value}} {{unit}}.
diff --git a/dialog/ca-es/homeassistant.set.thermostat.dialog b/dialog/ca-es/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..4e35f88d
--- /dev/null
+++ b/dialog/ca-es/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+{{dev_name}} s'ha establert correctament a {{value}} {{unit}}.
diff --git a/dialog/ca-es/homeassistant.tracker.found.dialog b/dialog/ca-es/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..16e5ec47
--- /dev/null
+++ b/dialog/ca-es/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+L'última ubicació coneguda de {{dev_name}} és {{location}}.
+{{dev_name}} està en {{location}}.
+{{dev_name}} s'ha detectat a {{location}}.
diff --git a/dialog/cs-cz/homeassistant.automation.trigger.dialog b/dialog/cs-cz/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..1f1c21e2
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+spuštěna automatizace {{dev_name}}.
+spuštěno {{dev_name}}.
+{{dev_name}} byl spuštěn.
+{{dev_name}} byl aktivován.
+aktivován {{dev_name}}.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.brightness.badreq.dialog b/dialog/cs-cz/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..c4371649
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+prosím, požadujet úroveň jasu od 0 do 100.
+jak intenzivně? můžete si vybrat od 0 do 100.
diff --git a/dialog/cs-cz/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/cs-cz/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..309a91dc
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Nemůžu změnit jas {{dev_name}}. Změna jasu není podorovaná.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.brightness.cantdim.off.dialog b/dialog/cs-cz/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..f1bfc1a7
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Nemohu změnit jas {{dev_name}}. Je vypnuté.
+Nemohu změnit jas {{dev_name}}. Nejdříve jej zapněte.
+U {{dev_name}} není možné změnit jas. Jas je možné měnit pouze u zapnutých zařízení.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.brightness.decreased.dialog b/dialog/cs-cz/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..bd4b8475
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} ztlumeno na {{brightness}} procent.
+{{dev_name}} ztlumeno.
diff --git a/dialog/cs-cz/homeassistant.brightness.dimmed.dialog b/dialog/cs-cz/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..7c7813ad
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Intenzita {{dev_name}} nastavena na {{brightness}} procent.
diff --git a/dialog/cs-cz/homeassistant.brightness.increased.dialog b/dialog/cs-cz/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..62215b51
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Zvýšen jas {{dev_name}} na {{brightness}} procent.
+Zvýšen jas {{dev_name}}.
diff --git a/dialog/cs-cz/homeassistant.device.already.dialog b/dialog/cs-cz/homeassistant.device.already.dialog
new file mode 100644
index 00000000..ac4180f1
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} jž {{action}}.
+Neprovedeny žádné změny u {{dev_name}}.
diff --git a/dialog/cs-cz/homeassistant.device.off.dialog b/dialog/cs-cz/homeassistant.device.off.dialog
new file mode 100644
index 00000000..97290338
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.device.off.dialog
@@ -0,0 +1,4 @@
+Vypnuto {{dev_name}}.
+{{dev_name}} vypnuto.
+{{dev_name}} je nyní vypnuto.
+{{dev_name}} bylo vypnuto.
diff --git a/dialog/cs-cz/homeassistant.device.on.dialog b/dialog/cs-cz/homeassistant.device.on.dialog
new file mode 100644
index 00000000..46004f81
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.device.on.dialog
@@ -0,0 +1,4 @@
+Zapnuto {{dev_name}}.
+{{dev_name}} bylo zapnuto.
+{{dev_name}} zapnuto.
+{{dev_name}} je nyní zapnuto.
diff --git a/dialog/cs-cz/homeassistant.device.toggle.dialog b/dialog/cs-cz/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..db354d2c
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+přepnuto {{dev_name}}.
+{{dev_name}} bylo přepnuto.
diff --git a/dialog/cs-cz/homeassistant.device.unavailable.dialog b/dialog/cs-cz/homeassistant.device.unavailable.dialog
new file mode 100644
index 00000000..d0fe790b
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.device.unavailable.dialog
@@ -0,0 +1 @@
+{{dev_name}} je nedostupné.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.device.unknown.dialog b/dialog/cs-cz/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..10ba6e3a
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.device.unknown.dialog
@@ -0,0 +1,3 @@
+Omlouvám se, nepovedlo se mi najít "{{dev_name}}" v Home Assistentu.
+Entita "{{dev_name}}" nebyla nalezena.
+Omluvte mne, nedokázal jsem nalézt "{{dev_name}}".
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.error.dialog b/dialog/cs-cz/homeassistant.error.dialog
new file mode 100644
index 00000000..95d53937
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.dialog
@@ -0,0 +1 @@
+Nepodařilo se připojit k home assistant serveru na adrese {{url}}.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.error.http.dialog b/dialog/cs-cz/homeassistant.error.http.dialog
new file mode 100644
index 00000000..8d0b655d
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+Vyskytla se chyba při připojování k home assistant serveru s chybovým kodem {{code}} {{reason}}
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.error.invalidurl.dialog b/dialog/cs-cz/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..1b7ba1fb
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+Na adrese {{url}} se nenachází home assistant server
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.error.needurl.dialog b/dialog/cs-cz/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..074f9bc3
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.needurl.dialog
@@ -0,0 +1 @@
+Pro používání tohoto skillu musíte vložit Adresu do Mycroft home.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.error.offline.dialog b/dialog/cs-cz/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..7fb1ca96
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Zdá se, že Home Assistant server je offline.
+Nepodařilo se připojit k Home Assistant serveru.
+Home assistant server neodpovídá.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.error.setup.dialog b/dialog/cs-cz/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..66dd1dc4
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Prosím, nakonfigurujte home assistant skill na adrese home tečka mycroft tečka ai, {field} chybí nebo je špatně zadán.
diff --git a/dialog/cs-cz/homeassistant.error.sorry.dialog b/dialog/cs-cz/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..6944fc56
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.sorry.dialog
@@ -0,0 +1,2 @@
+Nerozumím.
+Nerozumím co mám dělat.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.error.ssl.dialog b/dialog/cs-cz/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..3d3b8c22
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+Nastavení S S L na home assistant serveru je neplatné.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.error.wrong_password.dialog b/dialog/cs-cz/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..4d42d62a
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+Home assistant server nepřijal nastavený token.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.sensor.dialog b/dialog/cs-cz/homeassistant.sensor.dialog
new file mode 100644
index 00000000..6f30b41d
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.sensor.dialog
@@ -0,0 +1,3 @@
+Momentálně je {{dev_name}} {{value}} {{unit}}.
+{{dev_name}} má stav: {{value}} {{unit}}.
+{{dev_name}} je {{value}} {{unit}}.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.set.thermostat.dialog b/dialog/cs-cz/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..374411b4
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Úspěšně nastaveno {{dev_name}} na {{value}} {{unit}}.
\ No newline at end of file
diff --git a/dialog/cs-cz/homeassistant.tracker.found.dialog b/dialog/cs-cz/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..4eb95056
--- /dev/null
+++ b/dialog/cs-cz/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+LPoslední známá poloha {{dev_name}} je {{location}}.
+{{dev_name}} je na {{location}}.
+{{dev_name}} byl nalezen na {{location}}.
diff --git a/dialog/da-dk/homeassistant.automation.trigger.dialog b/dialog/da-dk/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..7eb460d9
--- /dev/null
+++ b/dialog/da-dk/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+aktiverede automation {{dev_name}}.
+aktverede {{dev_name}}.
+{{dev_name}} blev aktiveret
+{{dev_name}} blev aktiveret
+aktiverede {{dev_name}}
diff --git a/dialog/da-dk/homeassistant.brightness.badreq.dialog b/dialog/da-dk/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..e87a72ce
--- /dev/null
+++ b/dialog/da-dk/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+venligst anmod om et lysstyrkeniveau mellem 0 og 100.
+hvor lyst? du kan vælge et niveau fra 0 til 100.
diff --git a/dialog/da-dk/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/da-dk/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..c6045f96
--- /dev/null
+++ b/dialog/da-dk/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Kan ikke dæmpe {{dev_name}}. Den kan ikke dæmpes.
diff --git a/dialog/da-dk/homeassistant.brightness.cantdim.off.dialog b/dialog/da-dk/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..14739148
--- /dev/null
+++ b/dialog/da-dk/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Kan ikke dæmpe {{dev_name}}. Den er slukket.
+Kan ikke dæmpe {{dev_name}}. Tænd den først.
+{{dev_name}} kan ikke nedtones. Kun enheder, der er tændt, kan nedtones.
diff --git a/dialog/da-dk/homeassistant.brightness.decreased.dialog b/dialog/da-dk/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..5fc01dac
--- /dev/null
+++ b/dialog/da-dk/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} blev dæmpet til {{brightness}} procent.
+Dæmpede {{dev_name}}
diff --git a/dialog/da-dk/homeassistant.brightness.dimmed.dialog b/dialog/da-dk/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..bbe68f8e
--- /dev/null
+++ b/dialog/da-dk/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Indstil lysstyrken af {{dev_name}} til {{brightness}} procent.
diff --git a/dialog/da-dk/homeassistant.brightness.increased.dialog b/dialog/da-dk/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..4307b3cc
--- /dev/null
+++ b/dialog/da-dk/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Øget lysstyrke på {{dev_name}} til {{brightness}} procent.
+Øget lysstyrke på {{dev_name}}.
diff --git a/dialog/da-dk/homeassistant.device.already.dialog b/dialog/da-dk/homeassistant.device.already.dialog
new file mode 100644
index 00000000..4ee841ce
--- /dev/null
+++ b/dialog/da-dk/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} allerede {{action}}.
+Ingen ændringer foretaget på {{dev_name}}.
diff --git a/dialog/da-dk/homeassistant.device.off.dialog b/dialog/da-dk/homeassistant.device.off.dialog
new file mode 100644
index 00000000..8e7140a9
--- /dev/null
+++ b/dialog/da-dk/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+slået fra {{dev_name}}.
+slået {{dev_name}} fra.
+{{dev_name}} er nu slukket.
diff --git a/dialog/da-dk/homeassistant.device.on.dialog b/dialog/da-dk/homeassistant.device.on.dialog
new file mode 100644
index 00000000..d92937ed
--- /dev/null
+++ b/dialog/da-dk/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+tændt {{dev_name}}.
+{{dev_name}} blev tændt.
+slog {{dev_name}} til.
diff --git a/dialog/da-dk/homeassistant.device.toggle.dialog b/dialog/da-dk/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..0bb6a874
--- /dev/null
+++ b/dialog/da-dk/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+skiftede {{dev_name}}.
+{{dev_name}} blev skiftet.
diff --git a/dialog/da-dk/homeassistant.device.unknown.dialog b/dialog/da-dk/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..fc828180
--- /dev/null
+++ b/dialog/da-dk/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Beklager, jeg kan ikke finde den hjemmeassistente enhed "{{dev_name}}".
+Entitet "{{dev_name}}" kunne ikke findes.
+Beklager, enhed "{{dev_name}}" blev ikke fundet.
+Undskyld, jeg kunne ikke finde "{{dev_name}}".
diff --git a/dialog/da-dk/homeassistant.error.dialog b/dialog/da-dk/homeassistant.error.dialog
new file mode 100644
index 00000000..5df5d782
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.dialog
@@ -0,0 +1 @@
+Adgang til home assistent server på {{url}} mislykkedes.
diff --git a/dialog/da-dk/homeassistant.error.http.dialog b/dialog/da-dk/homeassistant.error.http.dialog
new file mode 100644
index 00000000..cf8c8aa9
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+Home assistant serveren reagere ikke på grund af {{code}} {{reason}}
diff --git a/dialog/da-dk/homeassistant.error.invalidurl.dialog b/dialog/da-dk/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..a3aaeba0
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+Url {{url}} er ikke en gyldig home ssistant server
diff --git a/dialog/da-dk/homeassistant.error.needurl.dialog b/dialog/da-dk/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..a94258c0
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Du skal indtaste en URL i Mycroft home.
+Du skal opsætte denne skill ved at indsætte en URL i Mycroft home.
+For at benytte denne skill, indsæt en URL i Mycroft home.
diff --git a/dialog/da-dk/homeassistant.error.offline.dialog b/dialog/da-dk/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..1d99713e
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Home assistant serveren ser ud til at være offline.
+Kunne ikke nå home assistant serveren.
+Home assistant servren reagerede ikke.
diff --git a/dialog/da-dk/homeassistant.error.setup.dialog b/dialog/da-dk/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..87a3fdae
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Konfigurer venligst home assistant skill indstillinger på home dot mycroft dot a i
diff --git a/dialog/da-dk/homeassistant.error.sorry.dialog b/dialog/da-dk/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..fa928fc5
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Jeg ved ikke, hvad du vil have mig til at gøre.
+Kunne ikke finde ud af, hvordan man snakker med home assistant.
+Jeg forstår ikke, hvad du spørger om.
diff --git a/dialog/da-dk/homeassistant.error.ssl.dialog b/dialog/da-dk/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..9b84c714
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+Konfigurationen for S S L på home assistant serveren er ugyldig.
diff --git a/dialog/da-dk/homeassistant.error.wrong_password.dialog b/dialog/da-dk/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..428c29f0
--- /dev/null
+++ b/dialog/da-dk/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+Hjemme assistant serveren accepterede ikke den konfigurerede adgangskode.
diff --git a/dialog/da-dk/homeassistant.sensor.dialog b/dialog/da-dk/homeassistant.sensor.dialog
new file mode 100644
index 00000000..572320af
--- /dev/null
+++ b/dialog/da-dk/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+I øjeblikket er {{dev_name}} {{value}} {{unit}}.
+{{dev_name}} har tilstandem: {{value}} {{unit}}.
+{{dev_name}} er {{value}} {{unit}} i øjeblikket
+{{dev_name}} er {{værdi}} {{enhed}}.
diff --git a/dialog/da-dk/homeassistant.set.thermostat.dialog b/dialog/da-dk/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..a34d7677
--- /dev/null
+++ b/dialog/da-dk/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Indstillede {{dev_name}} til {{value}} {{unit}} succesfuldt.
diff --git a/dialog/da-dk/homeassistant.tracker.found.dialog b/dialog/da-dk/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..7288a086
--- /dev/null
+++ b/dialog/da-dk/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+Sidste kendte placering af {{dev_name}} er {{location}}.
+{{dev_name}} er på {{location}}.
+{{dev_name}} er blevet registreret på {{location}}.
diff --git a/dialog/de-de/homeassistant.automation.trigger.dialog b/dialog/de-de/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..dacf55f3
--- /dev/null
+++ b/dialog/de-de/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+ausgelöste Automation {{dev_name}}.
+habe {{dev_name}} ausgelöst.
+{{dev_name}} wurde ausgelöst.
+{{dev_name}} wurde aktiviert.
+habe {{dev_name}} aktiviert.
diff --git a/dialog/de-de/homeassistant.brightness.badreq.dialog b/dialog/de-de/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..97797b85
--- /dev/null
+++ b/dialog/de-de/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+Bitte gib eine Helligkeitsstufe zwischen 0 und 100 an.
+wie hell? du kannst eine Stufe zwischen 0 und 100 wählen.
diff --git a/dialog/de-de/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/de-de/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..cc1f9105
--- /dev/null
+++ b/dialog/de-de/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Kann {{dev_name}} nicht dimmen. Es ist nicht dimmbar.
diff --git a/dialog/de-de/homeassistant.brightness.cantdim.off.dialog b/dialog/de-de/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..3e40c8a9
--- /dev/null
+++ b/dialog/de-de/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Kann {{dev_name}} nicht dimmen. Es ist ausgeschaltet.
+Kann {{dev_name}} nicht dimmen. Bitte schalte es vorher an.
+{{dev_name}} kann nicht gedimmt werden. Nur angeschaltete Geräte können gedimmt werden.
diff --git a/dialog/de-de/homeassistant.brightness.decreased.dialog b/dialog/de-de/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..0e6d5b6a
--- /dev/null
+++ b/dialog/de-de/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+Habe {{dev_name}} zu {{brightness}} Prozent gedimmt.
+Habe {{dev_name}} gedimmt.
diff --git a/dialog/de-de/homeassistant.brightness.dimmed.dialog b/dialog/de-de/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..94d0fb4f
--- /dev/null
+++ b/dialog/de-de/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Setze die Helligkeit von {{dev_name}} auf {{brightness}} Prozent.
diff --git a/dialog/de-de/homeassistant.brightness.increased.dialog b/dialog/de-de/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..4350e2c9
--- /dev/null
+++ b/dialog/de-de/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Helligkeit von {{dev_name}} auf {{brightness}} Prozent erhöht.
+Helligkeit von {{dev_name}} erhöht.
diff --git a/dialog/de-de/homeassistant.device.already.dialog b/dialog/de-de/homeassistant.device.already.dialog
new file mode 100644
index 00000000..8fee390e
--- /dev/null
+++ b/dialog/de-de/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} führt bereits die Aktion {{action}} aus.
+{{dev_name}} wurde nicht verändert.
diff --git a/dialog/de-de/homeassistant.device.off.dialog b/dialog/de-de/homeassistant.device.off.dialog
new file mode 100644
index 00000000..4450a430
--- /dev/null
+++ b/dialog/de-de/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+{{dev_name}} abgedreht.
+{dev_name}} wurde ausgeschaltet.
+{{dev_name}} ist jetzt ausgeschaltet.
diff --git a/dialog/de-de/homeassistant.device.on.dialog b/dialog/de-de/homeassistant.device.on.dialog
new file mode 100644
index 00000000..8b0df99e
--- /dev/null
+++ b/dialog/de-de/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+{{dev_name}} angeschaltet.
+{{dev_name}} wurde eingeschalten.
+Habe {{dev_name}} eingeschalten.
diff --git a/dialog/de-de/homeassistant.device.toggle.dialog b/dialog/de-de/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..eba2afe4
--- /dev/null
+++ b/dialog/de-de/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} umgeschaltet.
+{{dev_name}} wurde umgeschalten.
diff --git a/dialog/de-de/homeassistant.device.unavailable.dialog b/dialog/de-de/homeassistant.device.unavailable.dialog
new file mode 100644
index 00000000..4a4ecc1a
--- /dev/null
+++ b/dialog/de-de/homeassistant.device.unavailable.dialog
@@ -0,0 +1 @@
+{dev_name} ist nicht verfügbar.
\ No newline at end of file
diff --git a/dialog/de-de/homeassistant.device.unknown.dialog b/dialog/de-de/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..eedd3a99
--- /dev/null
+++ b/dialog/de-de/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Entschuldigung, ich kann das Home Assistent Element "{{dev_name}}" nicht finden.
+Gerät "{{dev_name}}" ist nicht auffindbar.
+Entschuldigung, das Objekt "{{dev_name}}" wurde nicht gefunden.
+Entschuldigung, ich konnte "{{dev_name}}" nicht finden.
diff --git a/dialog/de-de/homeassistant.error.dialog b/dialog/de-de/homeassistant.error.dialog
new file mode 100644
index 00000000..929eedaa
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.dialog
@@ -0,0 +1 @@
+Zugang zum Home Assistant Server an der Adresse {{url}} ist fehlgeschlagen.
diff --git a/dialog/de-de/homeassistant.error.http.dialog b/dialog/de-de/homeassistant.error.http.dialog
new file mode 100644
index 00000000..ff8eb573
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+Der Home Assistant Server konnte aufgrund des folgenden Fehlers nicht antworten: {{code}} {{reason}}
diff --git a/dialog/de-de/homeassistant.error.invalidurl.dialog b/dialog/de-de/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..05c656f1
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+An der Adresse {{url}} ist kein gültiger Home Assistant Server erreichbar
diff --git a/dialog/de-de/homeassistant.error.needurl.dialog b/dialog/de-de/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..d043e244
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Du musst in Mycroft home eine URL Adresse eintragen
+Du musst den Skill durch Eingabe einer URL Adresse in Mycroft home installieren
+Um diesen Skill zu nutzen, trage eine URL Adresse in Mycroft home ein
diff --git a/dialog/de-de/homeassistant.error.offline.dialog b/dialog/de-de/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..f6a30564
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Der Home Assistant Server scheint offline zu sein.
+Ich kann den Home Assistant Server nicht erreichen.
+Der Home Assistent Server hat nicht geantwortet.
diff --git a/dialog/de-de/homeassistant.error.setup.dialog b/dialog/de-de/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..713dd46f
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Bitte richte den Hone Assistent Skill unter Home Punkt mycroft Punkt AI ein.
diff --git a/dialog/de-de/homeassistant.error.sorry.dialog b/dialog/de-de/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..d5160970
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Ich verstehe nicht was du von mir willst.
+Ich kann nicht feststellen, wie ich mit dem Home Assistant kommunizieren kann.
+Ich verstehe nicht, was du gefragt hast.
diff --git a/dialog/de-de/homeassistant.error.ssl.dialog b/dialog/de-de/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..7c9461d5
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+Die Konfiguration für S S L auf dem Home Assistant Server ist ungültig.
diff --git a/dialog/de-de/homeassistant.error.wrong_password.dialog b/dialog/de-de/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..7469c1ee
--- /dev/null
+++ b/dialog/de-de/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+Der Home Assistant Server hat das eingegebene Passwort nicht akzeptiert.
diff --git a/dialog/de-de/homeassistant.sensor.dialog b/dialog/de-de/homeassistant.sensor.dialog
new file mode 100644
index 00000000..77792f6b
--- /dev/null
+++ b/dialog/de-de/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+{{dev_name}} ist aktuell {{value}} {{unit}}.
+{{dev_name}} hat den Status: {{value}} {{unit}}.
+{{dev_name}} ist im Moment {{value}} {{unit}}.
+{{dev_name}} ist {{value}} {{unit}}.
diff --git a/dialog/de-de/homeassistant.set.thermostat.dialog b/dialog/de-de/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..272075fb
--- /dev/null
+++ b/dialog/de-de/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Ich habe erfolgreich {{dev_name}} auf {{value}} {{unit}} gesetzt.
diff --git a/dialog/de-de/homeassistant.tracker.found.dialog b/dialog/de-de/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..f4890c43
--- /dev/null
+++ b/dialog/de-de/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+Der letzte bekannte Ort von {{dev_name}} ist {{location}}.
+{{dev_name}} ist bei {{location}}.
+{{dev_name}} wurde bei {{location}} gefunden.
diff --git a/dialog/de/homeassistant.automation.trigger.dialog b/dialog/de/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..eb54f1a3
--- /dev/null
+++ b/dialog/de/homeassistant.automation.trigger.dialog
@@ -0,0 +1 @@
+automatisierung {{dev_name}} geschaltet
diff --git a/dialog/de/homeassistant.brightness.badreq.dialog b/dialog/de/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..9fe24732
--- /dev/null
+++ b/dialog/de/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+Bitte wählen sie eine Helligkeit zwischen 0 und 100
+Wie hell bitte? Sie können von 0 bis 100 wählen
diff --git a/dialog/de/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/de/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..9dd13fe4
--- /dev/null
+++ b/dialog/de/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Kann {{dev_name}} nicht dimmen. Es ist nicht dimmbar.
\ No newline at end of file
diff --git a/dialog/de/homeassistant.brightness.cantdim.off.dialog b/dialog/de/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..812263de
--- /dev/null
+++ b/dialog/de/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1 @@
+Kann {{dev_name}} nicht dimmen. Es ist aus.
\ No newline at end of file
diff --git a/dialog/de/homeassistant.brightness.decreased.dialog b/dialog/de/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..71c81567
--- /dev/null
+++ b/dialog/de/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} wurde auf {{brightness}} Prozent gedimmt
+{{dev_name}} wurde gedimmt
\ No newline at end of file
diff --git a/dialog/de/homeassistant.brightness.dimmed.dialog b/dialog/de/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..771e1651
--- /dev/null
+++ b/dialog/de/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+{{dev_name}} wurde auf {{brightness}} Prozent gedimmt
\ No newline at end of file
diff --git a/dialog/de/homeassistant.brightness.increased.dialog b/dialog/de/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..a2d3c223
--- /dev/null
+++ b/dialog/de/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Helligkeit von {{dev_name}} wurde auf {{brightness}} erhöht
+Helligkeit von {{dev_name}} wurde erhöht
\ No newline at end of file
diff --git a/dialog/de/homeassistant.device.already.dialog b/dialog/de/homeassistant.device.already.dialog
new file mode 100644
index 00000000..b9e6e651
--- /dev/null
+++ b/dialog/de/homeassistant.device.already.dialog
@@ -0,0 +1 @@
+{{dev_name}} bereits {{action}}
diff --git a/dialog/de/homeassistant.device.off.dialog b/dialog/de/homeassistant.device.off.dialog
new file mode 100644
index 00000000..046ca409
--- /dev/null
+++ b/dialog/de/homeassistant.device.off.dialog
@@ -0,0 +1 @@
+schalte {{dev_name}} aus
diff --git a/dialog/de/homeassistant.device.on.dialog b/dialog/de/homeassistant.device.on.dialog
new file mode 100644
index 00000000..3f7f01e0
--- /dev/null
+++ b/dialog/de/homeassistant.device.on.dialog
@@ -0,0 +1 @@
+schalte {{dev_name}} ein
diff --git a/dialog/de/homeassistant.device.toggle.dialog b/dialog/de/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..36ae1dcb
--- /dev/null
+++ b/dialog/de/homeassistant.device.toggle.dialog
@@ -0,0 +1 @@
+{{dev_name}} wurde umgeschaltet
diff --git a/dialog/de/homeassistant.device.unknown.dialog b/dialog/de/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..6d7b3f63
--- /dev/null
+++ b/dialog/de/homeassistant.device.unknown.dialog
@@ -0,0 +1 @@
+Die home-assistant komponente {{dev_name}} konnte nicht gefunden werden
diff --git a/dialog/de/homeassistant.error.offline.dialog b/dialog/de/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..55cebf73
--- /dev/null
+++ b/dialog/de/homeassistant.error.offline.dialog
@@ -0,0 +1,2 @@
+Der Homeassistant-Server scheint offline zu sein
+Der Homeassistant-Server ist nicht erreichbar
\ No newline at end of file
diff --git a/dialog/de/homeassistant.error.sorry.dialog b/dialog/de/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..99e7381d
--- /dev/null
+++ b/dialog/de/homeassistant.error.sorry.dialog
@@ -0,0 +1,2 @@
+Ich verstehe deine anfrage nicht
+Keine ahnung was du meinst
\ No newline at end of file
diff --git a/dialog/de/homeassistant.sensor.dialog b/dialog/de/homeassistant.sensor.dialog
new file mode 100644
index 00000000..a4daf8e9
--- /dev/null
+++ b/dialog/de/homeassistant.sensor.dialog
@@ -0,0 +1,3 @@
+Aktuell ist {{dev_name}} auf {{value}} {{unit}}
+{{dev_name}} hat den Wert: {{value}} {{unit}}
+{{dev_name}} ist {{value}} {{unit}}
diff --git a/dialog/de/homeassistant.tracker.found.dialog b/dialog/de/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..5ad94106
--- /dev/null
+++ b/dialog/de/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+letzter bekannter Ort von {{dev_name}} ist {{location}}
+{{dev_name}} ist bei {{location}}
+{{dev_name}} wurde in {{location}} erkannt
diff --git a/dialog/en-us/homeassistant.automation.trigger.dialog b/dialog/en-us/homeassistant.automation.trigger.dialog
index 97f4bba8..8f12041c 100644
--- a/dialog/en-us/homeassistant.automation.trigger.dialog
+++ b/dialog/en-us/homeassistant.automation.trigger.dialog
@@ -1 +1,5 @@
-triggered automation {{dev_name}}
+triggered automation {{dev_name}}.
+triggered {{dev_name}}.
+{{dev_name}} was triggered.
+{{dev_name}} was activated.
+activated {{dev_name}}.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.brightness.badreq.dialog b/dialog/en-us/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..38451663
--- /dev/null
+++ b/dialog/en-us/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+please request a brightness level between 0 and 100.
+how bright? you can choose a level from 0 to 100.
diff --git a/dialog/en-us/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/en-us/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..4569e4e2
--- /dev/null
+++ b/dialog/en-us/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Can not dim {{dev_name}}. It is not dimmable.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.brightness.cantdim.off.dialog b/dialog/en-us/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..2742da10
--- /dev/null
+++ b/dialog/en-us/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Can not dim {{dev_name}}. It is off.
+Can not dim {{dev_name}}. Please turn it on before.
+{{dev_name}} can not be dimmed. Only devices that are turned on can be.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.brightness.decreased.dialog b/dialog/en-us/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..cdad4b36
--- /dev/null
+++ b/dialog/en-us/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+Dimmed {{dev_name}} to {{brightness}} percent.
+Dimmed {{dev_name}}.
diff --git a/dialog/en-us/homeassistant.brightness.dimmed.dialog b/dialog/en-us/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..bf699ff8
--- /dev/null
+++ b/dialog/en-us/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Set the brightness of {{dev_name}} to {{brightness}} percent.
diff --git a/dialog/en-us/homeassistant.brightness.increased.dialog b/dialog/en-us/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..d6e7f5e0
--- /dev/null
+++ b/dialog/en-us/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Increased brightness of {{dev_name}} to {{brightness}} percent.
+Increased brightness of {{dev_name}}.
diff --git a/dialog/en-us/homeassistant.device.already.dialog b/dialog/en-us/homeassistant.device.already.dialog
index 1cf446da..589500b6 100644
--- a/dialog/en-us/homeassistant.device.already.dialog
+++ b/dialog/en-us/homeassistant.device.already.dialog
@@ -1 +1,2 @@
-{{dev_name}} already {{action}}
+{{dev_name}} already {{action}}.
+No changes made to {{dev_name}}.
diff --git a/dialog/en-us/homeassistant.device.off.dialog b/dialog/en-us/homeassistant.device.off.dialog
index 8d10214b..cdda2f98 100644
--- a/dialog/en-us/homeassistant.device.off.dialog
+++ b/dialog/en-us/homeassistant.device.off.dialog
@@ -1 +1,3 @@
-turned off {{dev_name}}
+turned off {{dev_name}}.
+turned {{dev_name}} off.
+{{dev_name}} is now off.
diff --git a/dialog/en-us/homeassistant.device.on.dialog b/dialog/en-us/homeassistant.device.on.dialog
index e9b54b33..cb0f95ec 100644
--- a/dialog/en-us/homeassistant.device.on.dialog
+++ b/dialog/en-us/homeassistant.device.on.dialog
@@ -1 +1,3 @@
-turned on {{dev_name}}
+turned on {{dev_name}}.
+{{dev_name}} was turned on.
+turned {{dev_name}} on.
diff --git a/dialog/en-us/homeassistant.device.toggle.dialog b/dialog/en-us/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..54c4e7d3
--- /dev/null
+++ b/dialog/en-us/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+toggled {{dev_name}}.
+{{dev_name}} was toggled.
diff --git a/dialog/en-us/homeassistant.device.unavailable.dialog b/dialog/en-us/homeassistant.device.unavailable.dialog
new file mode 100644
index 00000000..2b9c6e6b
--- /dev/null
+++ b/dialog/en-us/homeassistant.device.unavailable.dialog
@@ -0,0 +1 @@
+{{dev_name}} is unavailable.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.device.unknown.dialog b/dialog/en-us/homeassistant.device.unknown.dialog
index fb362984..47aec656 100644
--- a/dialog/en-us/homeassistant.device.unknown.dialog
+++ b/dialog/en-us/homeassistant.device.unknown.dialog
@@ -1 +1,4 @@
-Sorry, I can't find the Home Assistant entity {{dev_name}}
+Sorry, I can't find the Home Assistant entity "{{dev_name}}".
+Entity "{{dev_name}}" could not be found.
+Sorry, entity "{{dev_name}}" wasn't found.
+Excuse me, I wasn't able to find "{{dev_name}}".
diff --git a/dialog/en-us/homeassistant.error.dialog b/dialog/en-us/homeassistant.error.dialog
new file mode 100644
index 00000000..edc97250
--- /dev/null
+++ b/dialog/en-us/homeassistant.error.dialog
@@ -0,0 +1 @@
+Access to home assistant server at {{url}} failed.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.error.http.dialog b/dialog/en-us/homeassistant.error.http.dialog
new file mode 100644
index 00000000..5872f7ce
--- /dev/null
+++ b/dialog/en-us/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+The home assistant server failed to respond because of {{code}} {{reason}}
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.error.invalidurl.dialog b/dialog/en-us/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..dac8c4bb
--- /dev/null
+++ b/dialog/en-us/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+The url {{url}} does not host a valid home assistant server
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.error.needurl.dialog b/dialog/en-us/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..001258dd
--- /dev/null
+++ b/dialog/en-us/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+You need to in put a URL in Mycroft home.
+You need to setup the skill by putting a URL in Mycroft home.
+To use this skill, put a URL in Mycroft home.
diff --git a/dialog/en-us/homeassistant.error.offline.dialog b/dialog/en-us/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..aa7819e9
--- /dev/null
+++ b/dialog/en-us/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+The Home assistant server appears to be offline.
+Couldn't reach the home assistant server.
+The home assistant server did not respond.
diff --git a/dialog/en-us/homeassistant.error.setup.dialog b/dialog/en-us/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..b0a45f17
--- /dev/null
+++ b/dialog/en-us/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Please configure the home assistant skill settings at home dot mycroft dot ai, {field} is missing or wrongly set.
diff --git a/dialog/en-us/homeassistant.error.sorry.dialog b/dialog/en-us/homeassistant.error.sorry.dialog
index b77a9865..05a34144 100644
--- a/dialog/en-us/homeassistant.error.sorry.dialog
+++ b/dialog/en-us/homeassistant.error.sorry.dialog
@@ -1,3 +1,3 @@
-I don't know what you want me to do
-Couldn't figure out how to talk to Home Assistant
-I don't understand what you are asking
+I don't know what you want me to do.
+Couldn't figure out how to talk to Home Assistant.
+I don't understand what you are asking.
diff --git a/dialog/en-us/homeassistant.error.ssl.dialog b/dialog/en-us/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..3bac7db6
--- /dev/null
+++ b/dialog/en-us/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+The configuration for S S L on the home assistant server is invalid.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.error.wrong_password.dialog b/dialog/en-us/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..4d1bce8b
--- /dev/null
+++ b/dialog/en-us/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+The home assistant server did not accept the configured token.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.sensor.dialog b/dialog/en-us/homeassistant.sensor.dialog
new file mode 100644
index 00000000..fce3427e
--- /dev/null
+++ b/dialog/en-us/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Currently {{dev_name}} is {{value}} {{unit}}.
+{{dev_name}} has the state: {{value}} {{unit}}.
+{{dev_name}} is {{value}} {{unit}} at the moment.
+{{dev_name}} is {{value}} {{unit}}.
diff --git a/dialog/en-us/homeassistant.set.thermostat.dialog b/dialog/en-us/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..966489d0
--- /dev/null
+++ b/dialog/en-us/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Successfully set {{dev_name}} to {{value}} {{unit}}.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.shopping.list.dialog b/dialog/en-us/homeassistant.shopping.list.dialog
new file mode 100644
index 00000000..b6311183
--- /dev/null
+++ b/dialog/en-us/homeassistant.shopping.list.dialog
@@ -0,0 +1,3 @@
+ok, I have added the item to the list.
+ok, added the item.
+ok done.
\ No newline at end of file
diff --git a/dialog/en-us/homeassistant.tracker.found.dialog b/dialog/en-us/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..e0b729fa
--- /dev/null
+++ b/dialog/en-us/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+Last known location of {{dev_name}} is {{location}}.
+{{dev_name}} is at {{location}}.
+{{dev_name}} has been detected at {{location}}.
diff --git a/dialog/es-es/homeassistant.automation.trigger.dialog b/dialog/es-es/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..a49adf27
--- /dev/null
+++ b/dialog/es-es/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+disparada automatización {{dev_name}}.
+disparado {{dev_name}}.
+Se ha disparado {{dev_name}}.
+Se ha activado {{dev_name}}.
+activado {{dev_name}}.
diff --git a/dialog/es-es/homeassistant.brightness.badreq.dialog b/dialog/es-es/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..8480adf0
--- /dev/null
+++ b/dialog/es-es/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+por favor indica un nivel de brillo entre 0 y 100.
+cómo de brillante? puedes escoger entre 0 y 100.
diff --git a/dialog/es-es/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/es-es/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..4915af65
--- /dev/null
+++ b/dialog/es-es/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+No se puede atenuar {{dev_name}}. No es regulable.
diff --git a/dialog/es-es/homeassistant.brightness.cantdim.off.dialog b/dialog/es-es/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..61fa0a70
--- /dev/null
+++ b/dialog/es-es/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+No se puede atenuar {{dev_name}}. Está apagado.
+No se puede atenuar {{dev_name}}. Enciéndela primero.
+{{dev_name}} no se puede ser atenuar. Sólo se puede en los dispositivos que estén encendidos.
diff --git a/dialog/es-es/homeassistant.brightness.decreased.dialog b/dialog/es-es/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..f683b413
--- /dev/null
+++ b/dialog/es-es/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} atenuado al {{brightness}} por ciento.
+Disparado {{dev_name}}.
diff --git a/dialog/es-es/homeassistant.brightness.dimmed.dialog b/dialog/es-es/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..7eb9a05c
--- /dev/null
+++ b/dialog/es-es/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Establecido nivel de brillo de {{dev_name}} al {{brightness}} por ciento.
diff --git a/dialog/es-es/homeassistant.brightness.increased.dialog b/dialog/es-es/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..364f3f74
--- /dev/null
+++ b/dialog/es-es/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Incrementado brillo de {{dev_name}} al {{brightness}} por ciento.
+Incrementado brillo de {{dev_name}}.
diff --git a/dialog/es-es/homeassistant.device.already.dialog b/dialog/es-es/homeassistant.device.already.dialog
new file mode 100644
index 00000000..8080ae0b
--- /dev/null
+++ b/dialog/es-es/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} ya está {{action}}.
+No se han hecho cambios a {{dev_name}}.
diff --git a/dialog/es-es/homeassistant.device.off.dialog b/dialog/es-es/homeassistant.device.off.dialog
new file mode 100644
index 00000000..9a09994d
--- /dev/null
+++ b/dialog/es-es/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+apagado {{dev_name}}.
+{{dev_name}} apagado.
+{{dev_name}} ahora está apagado.
diff --git a/dialog/es-es/homeassistant.device.on.dialog b/dialog/es-es/homeassistant.device.on.dialog
new file mode 100644
index 00000000..2d077588
--- /dev/null
+++ b/dialog/es-es/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+{{dev_name}} encendido.
+Se ha encendido {{dev_name}}.
+{{dev_name}} encendido.
diff --git a/dialog/es-es/homeassistant.device.toggle.dialog b/dialog/es-es/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..5ab1981e
--- /dev/null
+++ b/dialog/es-es/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+estado de {{dev_name}} conmutado.
+el estado de {{dev_name}} ha sido conmutado.
diff --git a/dialog/es-es/homeassistant.device.unknown.dialog b/dialog/es-es/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..014de219
--- /dev/null
+++ b/dialog/es-es/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Lo siento, no puedo encontrar la entidad Home Assistant llamada "{{dev_name}}".
+No se ha podido encontrar la entidad "{{dev_name}}".
+Lo siento, no encuentro la entidad "{{dev_name}}".
+Disculpa, no puedo encontrar "{{dev_name}}".
diff --git a/dialog/es-es/homeassistant.error.dialog b/dialog/es-es/homeassistant.error.dialog
new file mode 100644
index 00000000..65e74c3e
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.dialog
@@ -0,0 +1 @@
+Ha fallado el acceso al servidor home assistant en {{url}}.
diff --git a/dialog/es-es/homeassistant.error.http.dialog b/dialog/es-es/homeassistant.error.http.dialog
new file mode 100644
index 00000000..5416bc6b
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+El servidor home assistant ha fallado al responder por el error {{code}}, {{reason}}
diff --git a/dialog/es-es/homeassistant.error.invalidurl.dialog b/dialog/es-es/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..c71e3e6b
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+La url {{url}} no contiene un servidor home assistant válido
diff --git a/dialog/es-es/homeassistant.error.needurl.dialog b/dialog/es-es/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..47cbfc3c
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Necesitas poner una URL en Mycroft home.
+Necesitas configurar la habilidad estableciendo una URL en Mycroft home.
+Para usar esta habilidad, establece una URL en Mycroft home.
diff --git a/dialog/es-es/homeassistant.error.offline.dialog b/dialog/es-es/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..d702ca70
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Parece que el servidor Home assistant está apagado.
+No puedo llegar al servidor home assistant.
+El servidor home assistant no responde.
diff --git a/dialog/es-es/homeassistant.error.setup.dialog b/dialog/es-es/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..8af5bf63
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Por favor establece las configuraciones habilidades de de home assistant, en home punto mycroft punto ai.
diff --git a/dialog/es-es/homeassistant.error.sorry.dialog b/dialog/es-es/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..a5d213bc
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+No sé qué es lo que quieres que haga.
+No me las apaño para hablarle al Home Assistant.
+No entiendo qué es lo que me estás preguntando.
diff --git a/dialog/es-es/homeassistant.error.ssl.dialog b/dialog/es-es/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..ee8681d3
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+La configuración S S L para el servidor home assistant es inválida.
diff --git a/dialog/es-es/homeassistant.error.wrong_password.dialog b/dialog/es-es/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..e63edacf
--- /dev/null
+++ b/dialog/es-es/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+El servidor home assistant no acepta la contraseña configurada.
diff --git a/dialog/es-es/homeassistant.sensor.dialog b/dialog/es-es/homeassistant.sensor.dialog
new file mode 100644
index 00000000..b88a8a96
--- /dev/null
+++ b/dialog/es-es/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Actualmente {{dev_name}} está a {{value}} {{unit}}
+{{dev_name}} tiene el estado: {{value}} {{unit}}.
+{{dev_name}} esta a {{value}} {{unit}} en este momento.
+{{dev_name}} a {{value}} {{unit}}.
diff --git a/dialog/es-es/homeassistant.set.thermostat.dialog b/dialog/es-es/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..da10c735
--- /dev/null
+++ b/dialog/es-es/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Establecido con éxito {{dev_name}} a {{value}} {{unit}}.
diff --git a/dialog/es-es/homeassistant.tracker.found.dialog b/dialog/es-es/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..a3bf8c50
--- /dev/null
+++ b/dialog/es-es/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+La última localización de {{dev_name}} es {{location}}.
+{{dev_name}} se encuentra en {{location}}.
+{{dev_name}} ha sido detectado en {{location}}.
diff --git a/dialog/es-lm/homeassistant.automation.trigger.dialog b/dialog/es-lm/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..a49adf27
--- /dev/null
+++ b/dialog/es-lm/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+disparada automatización {{dev_name}}.
+disparado {{dev_name}}.
+Se ha disparado {{dev_name}}.
+Se ha activado {{dev_name}}.
+activado {{dev_name}}.
diff --git a/dialog/es-lm/homeassistant.brightness.badreq.dialog b/dialog/es-lm/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..8480adf0
--- /dev/null
+++ b/dialog/es-lm/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+por favor indica un nivel de brillo entre 0 y 100.
+cómo de brillante? puedes escoger entre 0 y 100.
diff --git a/dialog/es-lm/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/es-lm/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..4915af65
--- /dev/null
+++ b/dialog/es-lm/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+No se puede atenuar {{dev_name}}. No es regulable.
diff --git a/dialog/es-lm/homeassistant.brightness.cantdim.off.dialog b/dialog/es-lm/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..5bb7430d
--- /dev/null
+++ b/dialog/es-lm/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+No se puede atenuar {{dev_name}}. Está apagado.
+No se puede atenuar {{dev_name}}. Enciéndela primero.
+{{dev_name}} no se puede ser atenuar. Sólo se puede en los dispositivos que estén encendidos.
diff --git a/dialog/es-lm/homeassistant.brightness.decreased.dialog b/dialog/es-lm/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..f683b413
--- /dev/null
+++ b/dialog/es-lm/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} atenuado al {{brightness}} por ciento.
+Disparado {{dev_name}}.
diff --git a/dialog/es-lm/homeassistant.brightness.dimmed.dialog b/dialog/es-lm/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..7eb9a05c
--- /dev/null
+++ b/dialog/es-lm/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Establecido nivel de brillo de {{dev_name}} al {{brightness}} por ciento.
diff --git a/dialog/es-lm/homeassistant.brightness.increased.dialog b/dialog/es-lm/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..364f3f74
--- /dev/null
+++ b/dialog/es-lm/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Incrementado brillo de {{dev_name}} al {{brightness}} por ciento.
+Incrementado brillo de {{dev_name}}.
diff --git a/dialog/es-lm/homeassistant.device.already.dialog b/dialog/es-lm/homeassistant.device.already.dialog
new file mode 100644
index 00000000..8080ae0b
--- /dev/null
+++ b/dialog/es-lm/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} ya está {{action}}.
+No se han hecho cambios a {{dev_name}}.
diff --git a/dialog/es-lm/homeassistant.device.off.dialog b/dialog/es-lm/homeassistant.device.off.dialog
new file mode 100644
index 00000000..9a09994d
--- /dev/null
+++ b/dialog/es-lm/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+apagado {{dev_name}}.
+{{dev_name}} apagado.
+{{dev_name}} ahora está apagado.
diff --git a/dialog/es-lm/homeassistant.device.on.dialog b/dialog/es-lm/homeassistant.device.on.dialog
new file mode 100644
index 00000000..2d077588
--- /dev/null
+++ b/dialog/es-lm/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+{{dev_name}} encendido.
+Se ha encendido {{dev_name}}.
+{{dev_name}} encendido.
diff --git a/dialog/es-lm/homeassistant.device.toggle.dialog b/dialog/es-lm/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..5ab1981e
--- /dev/null
+++ b/dialog/es-lm/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+estado de {{dev_name}} conmutado.
+el estado de {{dev_name}} ha sido conmutado.
diff --git a/dialog/es-lm/homeassistant.device.unknown.dialog b/dialog/es-lm/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..014de219
--- /dev/null
+++ b/dialog/es-lm/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Lo siento, no puedo encontrar la entidad Home Assistant llamada "{{dev_name}}".
+No se ha podido encontrar la entidad "{{dev_name}}".
+Lo siento, no encuentro la entidad "{{dev_name}}".
+Disculpa, no puedo encontrar "{{dev_name}}".
diff --git a/dialog/es-lm/homeassistant.error.dialog b/dialog/es-lm/homeassistant.error.dialog
new file mode 100644
index 00000000..65e74c3e
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.dialog
@@ -0,0 +1 @@
+Ha fallado el acceso al servidor home assistant en {{url}}.
diff --git a/dialog/es-lm/homeassistant.error.http.dialog b/dialog/es-lm/homeassistant.error.http.dialog
new file mode 100644
index 00000000..5416bc6b
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+El servidor home assistant ha fallado al responder por el error {{code}}, {{reason}}
diff --git a/dialog/es-lm/homeassistant.error.invalidurl.dialog b/dialog/es-lm/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..c71e3e6b
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+La url {{url}} no contiene un servidor home assistant válido
diff --git a/dialog/es-lm/homeassistant.error.needurl.dialog b/dialog/es-lm/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..47cbfc3c
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Necesitas poner una URL en Mycroft home.
+Necesitas configurar la habilidad estableciendo una URL en Mycroft home.
+Para usar esta habilidad, establece una URL en Mycroft home.
diff --git a/dialog/es-lm/homeassistant.error.offline.dialog b/dialog/es-lm/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..d702ca70
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Parece que el servidor Home assistant está apagado.
+No puedo llegar al servidor home assistant.
+El servidor home assistant no responde.
diff --git a/dialog/es-lm/homeassistant.error.setup.dialog b/dialog/es-lm/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..8af5bf63
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Por favor establece las configuraciones habilidades de de home assistant, en home punto mycroft punto ai.
diff --git a/dialog/es-lm/homeassistant.error.sorry.dialog b/dialog/es-lm/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..a5d213bc
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+No sé qué es lo que quieres que haga.
+No me las apaño para hablarle al Home Assistant.
+No entiendo qué es lo que me estás preguntando.
diff --git a/dialog/es-lm/homeassistant.error.ssl.dialog b/dialog/es-lm/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..dbdfe2e1
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+La configuración S S L para el servidor home assistant es inválida.
diff --git a/dialog/es-lm/homeassistant.error.wrong_password.dialog b/dialog/es-lm/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..e63edacf
--- /dev/null
+++ b/dialog/es-lm/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+El servidor home assistant no acepta la contraseña configurada.
diff --git a/dialog/es-lm/homeassistant.sensor.dialog b/dialog/es-lm/homeassistant.sensor.dialog
new file mode 100644
index 00000000..b88a8a96
--- /dev/null
+++ b/dialog/es-lm/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Actualmente {{dev_name}} está a {{value}} {{unit}}
+{{dev_name}} tiene el estado: {{value}} {{unit}}.
+{{dev_name}} esta a {{value}} {{unit}} en este momento.
+{{dev_name}} a {{value}} {{unit}}.
diff --git a/dialog/es-lm/homeassistant.set.thermostat.dialog b/dialog/es-lm/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..da10c735
--- /dev/null
+++ b/dialog/es-lm/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Establecido con éxito {{dev_name}} a {{value}} {{unit}}.
diff --git a/dialog/es-lm/homeassistant.tracker.found.dialog b/dialog/es-lm/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..a3bf8c50
--- /dev/null
+++ b/dialog/es-lm/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+La última localización de {{dev_name}} es {{location}}.
+{{dev_name}} se encuentra en {{location}}.
+{{dev_name}} ha sido detectado en {{location}}.
diff --git a/dialog/fr-fr/homeassistant.automation.trigger.dialog b/dialog/fr-fr/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..385c64f4
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+automatisation {{dev_name}} activée.
+{{dev_name}} activée.
+{{dev_name}} a été déclanché.
+{{dev_name}} a été activé.
+{{dev_name}} activée.
diff --git a/dialog/fr-fr/homeassistant.brightness.badreq.dialog b/dialog/fr-fr/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..8c85b888
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+merci de demander un niveau de luminosité compris entre 0 et 100.
+lumineux comment ? Je peux choisir une luminosité entre 0 et 100.
diff --git a/dialog/fr-fr/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/fr-fr/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..e2735efd
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Je ne peux pas tamiser {{dev_name}}. L'appareil n'est pas compatible.
diff --git a/dialog/fr-fr/homeassistant.brightness.cantdim.off.dialog b/dialog/fr-fr/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..dea18403
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Je ne peux pas tamiser {{dev_name}}. C'est éteint.
+Je ne peux pas tamiser {{dev_name}}. Il faut l'allumer d'abord.
+{{dev_name}} ne peux pas être (tamisé|baissé). Seuls les équipements activés peuvent l'être.
diff --git a/dialog/fr-fr/homeassistant.brightness.decreased.dialog b/dialog/fr-fr/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..101d49c4
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} tamisé à {{brightness}} pourcent.
+{{dev_name}} (tamisé|baissé).
diff --git a/dialog/fr-fr/homeassistant.brightness.dimmed.dialog b/dialog/fr-fr/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..c3b7843e
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+(règle|met) la luminosité de {{dev_name}} à {{birghtness}} pourcent.
diff --git a/dialog/fr-fr/homeassistant.brightness.increased.dialog b/dialog/fr-fr/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..165156da
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Augmente la luminosité de {{dev_name}} de {{brightness}} pourcent.
+Luminosité de {{dev_name}} augmentée.
diff --git a/dialog/fr-fr/homeassistant.device.already.dialog b/dialog/fr-fr/homeassistant.device.already.dialog
new file mode 100644
index 00000000..d497bf28
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} est déjà {{action}}.
+Aucun changement appliqué à {{dev_name}}.
diff --git a/dialog/fr-fr/homeassistant.device.off.dialog b/dialog/fr-fr/homeassistant.device.off.dialog
new file mode 100644
index 00000000..084fa71d
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+éteint {{dev_name}}.
+(éteint){{dev_name}} .
+{{dev_name}} est maintenant éteint.
diff --git a/dialog/fr-fr/homeassistant.device.on.dialog b/dialog/fr-fr/homeassistant.device.on.dialog
new file mode 100644
index 00000000..a7f3ce5e
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+allume {{dev_name}}.
+{{dev_name}} a été allumé.
+{{dev_name}} allumé.
diff --git a/dialog/fr-fr/homeassistant.device.toggle.dialog b/dialog/fr-fr/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..9ea126a2
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+bascule {{dev_name}}.
+{{dev_name}} a été basculé.
diff --git a/dialog/fr-fr/homeassistant.device.unknown.dialog b/dialog/fr-fr/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..1bab61d9
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Désolé, mais je ne trouve pas l'entité Home Assistant "{{dev_name}}".
+L'entité "{{dev_name}}" ne peut pas être trouvée.
+Désolé, l'entité "{{dev_name}}" n'a pas été trouvée.
+Excusez-moi, je n'ai pas été capable de trouver "{{dev_name}}".
diff --git a/dialog/fr-fr/homeassistant.error.dialog b/dialog/fr-fr/homeassistant.error.dialog
new file mode 100644
index 00000000..9d6b194f
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.dialog
@@ -0,0 +1 @@
+L'accès au serveur home assistant sur {{url}} a échoué.
diff --git a/dialog/fr-fr/homeassistant.error.http.dialog b/dialog/fr-fr/homeassistant.error.http.dialog
new file mode 100644
index 00000000..f88f2bea
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+Le serveur home assistant ne répond pas à cause de {{code}} {{reason}}
diff --git a/dialog/fr-fr/homeassistant.error.invalidurl.dialog b/dialog/fr-fr/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..60f02a1b
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+L'url {{url}} ne pointe pas vers un serveur valide de home assistant
diff --git a/dialog/fr-fr/homeassistant.error.needurl.dialog b/dialog/fr-fr/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..25b17566
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Vous devez saisir une URL dans la page d'accueil de Mycroft
+Vous devez configurer le skill en saisissant une URL dans la page d'accueil de Mycroft.
+Pour utiliser cette skill saisissez une URL dans la page d'accueil de Mycroft
diff --git a/dialog/fr-fr/homeassistant.error.offline.dialog b/dialog/fr-fr/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..2faedf6c
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Le serveur home assistant semble être éteint.
+Impossible de joindre le serveur home assistant.
+Le serveur homme assistant ne répond pas.
diff --git a/dialog/fr-fr/homeassistant.error.setup.dialog b/dialog/fr-fr/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..a0c1c746
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Merci de configurer la compétence home assistant sur home point mycroft point ai.
diff --git a/dialog/fr-fr/homeassistant.error.sorry.dialog b/dialog/fr-fr/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..1864f4e7
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Je ne sais pas ce que vous voulez que je fasse.
+Impossible de comprendre comment parler à Home Assistant.
+Je ne comprends pas ce que vous demandez.
diff --git a/dialog/fr-fr/homeassistant.error.ssl.dialog b/dialog/fr-fr/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..5a01d765
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+La configuration SSL du serveur home assistant n'est pas valide.
diff --git a/dialog/fr-fr/homeassistant.error.wrong_password.dialog b/dialog/fr-fr/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..8db1b6c4
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+Le serveur home assistant n'accepte pas le mot de passe configuré.
diff --git a/dialog/fr-fr/homeassistant.sensor.dialog b/dialog/fr-fr/homeassistant.sensor.dialog
new file mode 100644
index 00000000..86f88deb
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Actuellement {{dev_name}} est à {{value}} {{unit}}.
+{{dev_name}} est à : {{value}} {{unit}}.
+{{dev_name}} est à {{value}} {{unit}} actuellement.
+{{dev_name}} est à {{value}} {{unit}}.
diff --git a/dialog/fr-fr/homeassistant.set.thermostat.dialog b/dialog/fr-fr/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..1a6fb9de
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+{{dev_name}} réglé à {{value}} {{unit}} avec succès.
diff --git a/dialog/fr-fr/homeassistant.tracker.found.dialog b/dialog/fr-fr/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..bf6a6020
--- /dev/null
+++ b/dialog/fr-fr/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+La dernière position connue de {{dev_name}} est {{location}}.
+{{dev_name}} est à {{location}}.
+{{dev_name}} a été détecté à {{location}}.
diff --git a/dialog/gl-es/homeassistant.automation.trigger.dialog b/dialog/gl-es/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..e00adf7c
--- /dev/null
+++ b/dialog/gl-es/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+automatización accionada de {{dev_name}}.
+accionou {{dev_name}}.
+{dev_name}} foi accionado.
+{{dev_name}} foi activado.
+activado {{dev_name}}.
diff --git a/dialog/gl-es/homeassistant.brightness.badreq.dialog b/dialog/gl-es/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..f8d005b3
--- /dev/null
+++ b/dialog/gl-es/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+por favor solicita un nivel de brillo entre 0 e 100.
+canto de brillo? podes escoller un nivel entre 0 e 100.
diff --git a/dialog/gl-es/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/gl-es/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..877d2c50
--- /dev/null
+++ b/dialog/gl-es/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Non podes escurecer {{dev_name}}. Non é regulable.
diff --git a/dialog/gl-es/homeassistant.brightness.cantdim.off.dialog b/dialog/gl-es/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..62d45963
--- /dev/null
+++ b/dialog/gl-es/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Non podes escurecer {{dev_name}}. Está apagado.
+Non pode escurecer {{dev_name}}. Por favor, acéndeo antes.
+{{dev_name}} non pode ser escurecido. Soamente poden ser dispositivos activados.
diff --git a/dialog/gl-es/homeassistant.brightness.decreased.dialog b/dialog/gl-es/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..85c336ec
--- /dev/null
+++ b/dialog/gl-es/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+O {{dev_name}} escurecido ata o {{brightness}} por cento.
+{{dev_name}} escurecido.
diff --git a/dialog/gl-es/homeassistant.brightness.dimmed.dialog b/dialog/gl-es/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..75fbae27
--- /dev/null
+++ b/dialog/gl-es/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Define o brillo de {{dev_name}} ao {{brightness}} por cento.
diff --git a/dialog/gl-es/homeassistant.brightness.increased.dialog b/dialog/gl-es/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..f45fa207
--- /dev/null
+++ b/dialog/gl-es/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Aumenta o brillo de {{dev_name}} ao {{brightness}} por cento.
+Aumentando o brillo de {{dev_name}}.
diff --git a/dialog/gl-es/homeassistant.device.already.dialog b/dialog/gl-es/homeassistant.device.already.dialog
new file mode 100644
index 00000000..5048aae5
--- /dev/null
+++ b/dialog/gl-es/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{dev_name}} xa está {{action}}.
+Ningunha alteración feita en {{dev_name}}.
diff --git a/dialog/gl-es/homeassistant.device.off.dialog b/dialog/gl-es/homeassistant.device.off.dialog
new file mode 100644
index 00000000..e6249f6a
--- /dev/null
+++ b/dialog/gl-es/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+apagando {{dev_name}}.
+apaguei o {{dev_name}} agora.
+{{dev_name}} está agora apagado.
diff --git a/dialog/gl-es/homeassistant.device.on.dialog b/dialog/gl-es/homeassistant.device.on.dialog
new file mode 100644
index 00000000..bb9da086
--- /dev/null
+++ b/dialog/gl-es/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+acendido {{dev_name}}.
+{{dev_name}} acendeuse.
+acendín {{dev_name}} agora.
diff --git a/dialog/gl-es/homeassistant.device.toggle.dialog b/dialog/gl-es/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..9fe2e1f9
--- /dev/null
+++ b/dialog/gl-es/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+accionou {{dev_name}}.
+{dev_name}} foi accionado.
diff --git a/dialog/gl-es/homeassistant.device.unknown.dialog b/dialog/gl-es/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..234ec97d
--- /dev/null
+++ b/dialog/gl-es/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Desculpa, non consigo atopar a entidade do Asistente de Casa "{{dev_name}}".
+A entidade "{{dev_name}}" non foi encontrada.
+Desculpa, a entidade "{{dev_name}}" non foi encontrada.
+Perdoa, non conseguín encontrar "{dev_name}}".
diff --git a/dialog/gl-es/homeassistant.error.dialog b/dialog/gl-es/homeassistant.error.dialog
new file mode 100644
index 00000000..8e745e53
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.dialog
@@ -0,0 +1 @@
+Fallou o acceso ao servidor do asistente de casa en {{url}}.
diff --git a/dialog/gl-es/homeassistant.error.http.dialog b/dialog/gl-es/homeassistant.error.http.dialog
new file mode 100644
index 00000000..c94d1d89
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+O servidor do asistente de casa non respondeu por causa de {{code}} {{reason}}
diff --git a/dialog/gl-es/homeassistant.error.invalidurl.dialog b/dialog/gl-es/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..5cb99606
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+A URL {{url}} non hospeda un servidor de asistente inicial válido
diff --git a/dialog/gl-es/homeassistant.error.needurl.dialog b/dialog/gl-es/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..5c61ea17
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Precisas inserir unha URL na páxina inicial de Mycroft.
+Precisas configurar a habilidade colocando unha URL na páxina principal de Mycroft.
+Para usar esta habilidade, coloca unha URL na páxina principal de Mycroft.
diff --git a/dialog/gl-es/homeassistant.error.offline.dialog b/dialog/gl-es/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..b745ec19
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+O servidor do asistente de casa parece estar apagado.
+Non foi posible alcanzar o servidor do asistente doméstico.
+Non respondeu o asistente doméstico.
diff --git a/dialog/gl-es/homeassistant.error.setup.dialog b/dialog/gl-es/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..7c9273e6
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Por favor, configura a habilidade do asistente doméstico en punto home punto mycroft punto a i.
diff --git a/dialog/gl-es/homeassistant.error.sorry.dialog b/dialog/gl-es/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..5b6db4f8
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Non sei que queres que faga.
+Non foi posible descubrir como falar co Asistente Doméstico
+Non entendo o que me estás preguntando.
diff --git a/dialog/gl-es/homeassistant.error.ssl.dialog b/dialog/gl-es/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..366dcfcd
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+A configuración do S S L no asistente doméstico é inválida
diff --git a/dialog/gl-es/homeassistant.error.wrong_password.dialog b/dialog/gl-es/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..605e9627
--- /dev/null
+++ b/dialog/gl-es/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+O servidor do asistente doméstico non aceptou o contrasinal configurado.
diff --git a/dialog/gl-es/homeassistant.sensor.dialog b/dialog/gl-es/homeassistant.sensor.dialog
new file mode 100644
index 00000000..b3423015
--- /dev/null
+++ b/dialog/gl-es/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Actualmente {{dev_name}} é {{value}} {{unit}}.
+{dev_name}} ten o estado: {{value}} {{unit}}.
+{{dev_name}} é {{value}} {{unit}} neste momento.
+Actualmente {{dev_name}} é {{value}} {{unit}}.
diff --git a/dialog/gl-es/homeassistant.set.thermostat.dialog b/dialog/gl-es/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..27557737
--- /dev/null
+++ b/dialog/gl-es/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Definido exitosamente o {{dev_name}} ata {{value}} {{unit}}.
diff --git a/dialog/gl-es/homeassistant.tracker.found.dialog b/dialog/gl-es/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..e90caf03
--- /dev/null
+++ b/dialog/gl-es/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+A última localización coñecida de {{dev_name}} é {{location}}.
+{{dev_name}} está en {{location}}.
+{{dev_name}} foi detectado en {{location}}.
diff --git a/dialog/it-it/homeassistant.automation.trigger.dialog b/dialog/it-it/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..05e693cc
--- /dev/null
+++ b/dialog/it-it/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+automazione attivata {{dev_name}}.
+attivato{{dev_name}}.
+{{dev_name}} è stato attivato.
+{{dev_name}} è stato attivato.
+attivato {{dev_name}}.
diff --git a/dialog/it-it/homeassistant.brightness.badreq.dialog b/dialog/it-it/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..cb9cc3d1
--- /dev/null
+++ b/dialog/it-it/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+per favore richiedi un livello di luminosità tra 0 e 100.
+quanto luminoso? puoi scegliere un livello da 0 a 100.
diff --git a/dialog/it-it/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/it-it/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..3c6e5012
--- /dev/null
+++ b/dialog/it-it/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Non si può attenuare {{dev_name}}. Non è dimmerabile.
diff --git a/dialog/it-it/homeassistant.brightness.cantdim.off.dialog b/dialog/it-it/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..a4c4e0eb
--- /dev/null
+++ b/dialog/it-it/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Non posso regolare {{dev_name}}. è (spento|spenta).
+Non posso attenuare {{dev_name}}. Prima accendi per favore.
+{{dev_name}} non può essere attenuato. Solo i dispositivi accesi possono esserlo.
diff --git a/dialog/it-it/homeassistant.brightness.decreased.dialog b/dialog/it-it/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..39d8789d
--- /dev/null
+++ b/dialog/it-it/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+Regolato {{dev_name}} al {{brightness}} percento.
+Regolato {{dev_name}}.
diff --git a/dialog/it-it/homeassistant.brightness.dimmed.dialog b/dialog/it-it/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..d8a016f2
--- /dev/null
+++ b/dialog/it-it/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Imposta la luminosità di {{dev_name}} al {{brightness}} percento.
diff --git a/dialog/it-it/homeassistant.brightness.increased.dialog b/dialog/it-it/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..9f788003
--- /dev/null
+++ b/dialog/it-it/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Aumentata la luminosità di {{dev_name}} al {{brightness}} percento.
+Aumentato luminosità di {{dev_name}}.
diff --git a/dialog/it-it/homeassistant.device.already.dialog b/dialog/it-it/homeassistant.device.already.dialog
new file mode 100644
index 00000000..c85abb89
--- /dev/null
+++ b/dialog/it-it/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} già {{action}}.
+Nessuna modifica apportata a {{dev_name}}.
diff --git a/dialog/it-it/homeassistant.device.off.dialog b/dialog/it-it/homeassistant.device.off.dialog
new file mode 100644
index 00000000..4f56461f
--- /dev/null
+++ b/dialog/it-it/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+spento {{dev_name}}.
+{{dev_name}} spento.
+{{dev_name}} è ora spento.
diff --git a/dialog/it-it/homeassistant.device.on.dialog b/dialog/it-it/homeassistant.device.on.dialog
new file mode 100644
index 00000000..10cc6dc3
--- /dev/null
+++ b/dialog/it-it/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+acceso {{dev_name}}.
+{{dev_name}} era acceso.
+{{dev_name}} acceso.
diff --git a/dialog/it-it/homeassistant.device.toggle.dialog b/dialog/it-it/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..a5952610
--- /dev/null
+++ b/dialog/it-it/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+scambia {{dev_name}}.
+{{dev_name}} è stato scambiato.
diff --git a/dialog/it-it/homeassistant.device.unknown.dialog b/dialog/it-it/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..6eacd4e8
--- /dev/null
+++ b/dialog/it-it/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Spiacente, non riesco a trovare l'entità Home Assistant "{{dev_name}}".
+L'entità "{{dev_name}}" non è stata trovata.
+Spiacente, l'entità "{{dev_name}}" non è stata trovata.
+Scusami, non sono stato in grado di trovare "{{dev_name}}".
diff --git a/dialog/it-it/homeassistant.error.dialog b/dialog/it-it/homeassistant.error.dialog
new file mode 100644
index 00000000..db050234
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.dialog
@@ -0,0 +1 @@
+Accesso al server home assistant all'indirizzo {{url}} non riuscito.
diff --git a/dialog/it-it/homeassistant.error.http.dialog b/dialog/it-it/homeassistant.error.http.dialog
new file mode 100644
index 00000000..d3515fb2
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+Il server home assistant non è riuscito a rispondere a causa di {{code}} {{reason}}
diff --git a/dialog/it-it/homeassistant.error.invalidurl.dialog b/dialog/it-it/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..12d9ee11
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+L'indirizzo {{url}} non ospita un server home assistant valido
diff --git a/dialog/it-it/homeassistant.error.needurl.dialog b/dialog/it-it/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..4d374ad7
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Devi inserire un indirizzo URL in Mycroft home.
+Devi organizzare le skill inserendo un indirizzo URL in Mycroft home.
+Per usare questa skill, inserisci un indirizzo URL in Mycroft home.
diff --git a/dialog/it-it/homeassistant.error.offline.dialog b/dialog/it-it/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..614d45ef
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Il server Home Assistant sembra essere offline.
+Impossibile raggiungere il server home assistant.
+Il server home assistant non ha risposto.
diff --git a/dialog/it-it/homeassistant.error.setup.dialog b/dialog/it-it/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..4e38820a
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Si prega di configurare le impostazioni delle abilità di home assistant su home punto mycroft punto ai.
diff --git a/dialog/it-it/homeassistant.error.sorry.dialog b/dialog/it-it/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..432830de
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Non so cosa vuoi che faccia.
+Non riuscivo a capire come parlare con Home Assistant.
+Non capisco cosa stai chiedendo.
diff --git a/dialog/it-it/homeassistant.error.ssl.dialog b/dialog/it-it/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..d49bf882
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+La configurazione SSL sul server home assistant non è valida.
diff --git a/dialog/it-it/homeassistant.error.wrong_password.dialog b/dialog/it-it/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..f5c55e69
--- /dev/null
+++ b/dialog/it-it/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+Il server home assistant non ha accettato la password configurata.
diff --git a/dialog/it-it/homeassistant.sensor.dialog b/dialog/it-it/homeassistant.sensor.dialog
new file mode 100644
index 00000000..cc5491d0
--- /dev/null
+++ b/dialog/it-it/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Attualmente {{dev_name}} è {{value}} {{unit}}.
+{{dev_name}} ha il valore: {{value}} {{unit}}.
+{{dev_name}} è {{value}} {{unit}} al momento.
+{{dev_name}} è {{value}} {{unit}}.
diff --git a/dialog/it-it/homeassistant.set.thermostat.dialog b/dialog/it-it/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..fa76ff1b
--- /dev/null
+++ b/dialog/it-it/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Impostato con successo {{dev_name}} su {{value}} {{unit}}.
diff --git a/dialog/it-it/homeassistant.tracker.found.dialog b/dialog/it-it/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..c17098d1
--- /dev/null
+++ b/dialog/it-it/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+L'ultima posizione nota di {{dev_name}} è {{location}}.
+{{dev_name}} è in {{location}}.
+{{dev_name}} è stato rilevato in {{location}}.
diff --git a/dialog/nl-nl/homeassistant.automation.trigger.dialog b/dialog/nl-nl/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..13cd23a3
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+geactiveerde automatisering
+geactiveerd
+{{dev_name}} was geactiveerd.
+{{dev_name}} was geactiveerd.
+geactiveerd {{dev_name}}.
diff --git a/dialog/nl-nl/homeassistant.brightness.badreq.dialog b/dialog/nl-nl/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..c194eae2
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+Kies een helderheidsniveau tussen 0 en 100 alsjeblieft
+hoe helder? je kan een niveau tussen 0 en 100 kiezen.
diff --git a/dialog/nl-nl/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/nl-nl/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..f5834599
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Kan {{dev_name}} niet dimmen. Het is niet dimbaar.
diff --git a/dialog/nl-nl/homeassistant.brightness.cantdim.off.dialog b/dialog/nl-nl/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..74c6a7ed
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Kan {{dev_name}} niet dimmen. {{dev_name}} staat uit.
+Kan {{dev_name}} niet dimmen. Schakel {{dev_name}} eerst aan alsjeblieft.
+{{dev_name}} is niet dimbaar. Enkel apparaten die aanstaan zijn dimbaar
diff --git a/dialog/nl-nl/homeassistant.brightness.decreased.dialog b/dialog/nl-nl/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..04a2ace2
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} gedimt tot {{brightness}} procent.
+{{dev_name}} gedimd.
diff --git a/dialog/nl-nl/homeassistant.brightness.dimmed.dialog b/dialog/nl-nl/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..9b17bd02
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Zet de helderheid van {{dev_name}} op {{brightness}} procent.
diff --git a/dialog/nl-nl/homeassistant.brightness.increased.dialog b/dialog/nl-nl/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..c557d347
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Verhoog de helderheid van {{dev_name}} naar {{helderheid}} procent.
+Verhoog de helerheid van {{dev_name}}
diff --git a/dialog/nl-nl/homeassistant.device.already.dialog b/dialog/nl-nl/homeassistant.device.already.dialog
new file mode 100644
index 00000000..af137a1c
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} is reeds {{action}}
+Geen veranderingen gemaakt voor {{dev_name}}
diff --git a/dialog/nl-nl/homeassistant.device.off.dialog b/dialog/nl-nl/homeassistant.device.off.dialog
new file mode 100644
index 00000000..5d433d8a
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+{{dev_name}} uitgeschakeld.
+{{dev_name}} uitgeschakeld.
+{{dev_name}} is nu uitgeschakeld.
diff --git a/dialog/nl-nl/homeassistant.device.on.dialog b/dialog/nl-nl/homeassistant.device.on.dialog
new file mode 100644
index 00000000..f4484378
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+{{dev_name}} ingeschakeld.
+{{dev_name}} is ingeschakeld.
+{{dev_name}} ingeschakeld.
diff --git a/dialog/nl-nl/homeassistant.device.toggle.dialog b/dialog/nl-nl/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..8c008e39
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} geschakeld
+{{dev_name}} is geschakeld.
diff --git a/dialog/nl-nl/homeassistant.device.unknown.dialog b/dialog/nl-nl/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..67ed7081
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Sorry, ik kan de Home Assistant {{dev_name}} niet vinden.
+{{dev_name}} kan niet gevonden worden.
+Sorry, {{dev_name}} is niet gevonden.
+Excuses, ik kon {{dev_name}} niet vinden.
diff --git a/dialog/nl-nl/homeassistant.error.dialog b/dialog/nl-nl/homeassistant.error.dialog
new file mode 100644
index 00000000..7c10ac71
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.dialog
@@ -0,0 +1 @@
+Toegang tot home assistant server op {{url}} gefaald.
diff --git a/dialog/nl-nl/homeassistant.error.http.dialog b/dialog/nl-nl/homeassistant.error.http.dialog
new file mode 100644
index 00000000..fdf2ce22
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+Communicatie met de home assistant server is mislukt door {{code}} {{reason}}
diff --git a/dialog/nl-nl/homeassistant.error.invalidurl.dialog b/dialog/nl-nl/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..b5e836f4
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+De url {{url}} heeft geen geldige home assistant server.
diff --git a/dialog/nl-nl/homeassistant.error.needurl.dialog b/dialog/nl-nl/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..61e169f6
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Gelieve een URL in Mycroft home zetten.
+Om de skill te gebruiken, moet je een URL in Mycroft home instellen.
+Om de skill te gebruiken, moet je een URL in Mycroft home instellen.
diff --git a/dialog/nl-nl/homeassistant.error.offline.dialog b/dialog/nl-nl/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..f528340a
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+De Home assistant server lijkt offline te zijn.
+Kon niet verbinden met de home assistant server.
+The home assistant server reageert niet.
diff --git a/dialog/nl-nl/homeassistant.error.setup.dialog b/dialog/nl-nl/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..cc2b5a25
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Configuur de home assistant vaardigheid op home.mycroft.ai
diff --git a/dialog/nl-nl/homeassistant.error.sorry.dialog b/dialog/nl-nl/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..1fb4a717
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Ik weet niet wat je wilt dat ik doe.
+Ik begrijp niet hoe ik met Home Assistant kan communiceren.
+Ik begrijp niet wat jij vraagt.
diff --git a/dialog/nl-nl/homeassistant.error.ssl.dialog b/dialog/nl-nl/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..8eba3b98
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+De S S L configuratie van de home assistant server is ongeldig.
diff --git a/dialog/nl-nl/homeassistant.error.wrong_password.dialog b/dialog/nl-nl/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..1e3a0cbd
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+De home assistant server heeft het ingestelde wachtwoord niet geaccepteerd.
diff --git a/dialog/nl-nl/homeassistant.sensor.dialog b/dialog/nl-nl/homeassistant.sensor.dialog
new file mode 100644
index 00000000..b114dd12
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+{{dev_name}} is momenteel {{value}} {{unit}}
+{{dev_name}} heeft de waarde van: {{value}} {{unit}}.
+{{dev_name}} is op dit moment {{value}} {{unit}}.
+{{dev_name}} is momenteel {{value}} {{unit}}
diff --git a/dialog/nl-nl/homeassistant.set.thermostat.dialog b/dialog/nl-nl/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..6d98be51
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+{{dev_name}} staat nu op {{value}} {{unit}}.
diff --git a/dialog/nl-nl/homeassistant.tracker.found.dialog b/dialog/nl-nl/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..05019e1b
--- /dev/null
+++ b/dialog/nl-nl/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+Laatst geweten van {{dev_name}} is {{location}}.
+{{dev_name}} bevind zich in {{location}}.
+{{dev_name}} is gededecteerd in {{location}}.
diff --git a/dialog/pl-pl/homeassistant.automation.trigger.dialog b/dialog/pl-pl/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..c44bb9b2
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+wywołano automatyzację {{dev_name}}.
+wywołano {{dev_name}}.
+{{dev_name}} został wywołany.
+{{dev_name}} został aktywowany.
+aktywowano {{dev_name}}.
diff --git a/dialog/pl-pl/homeassistant.brightness.badreq.dialog b/dialog/pl-pl/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..78fd3733
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+poziom jasności musi mieścić się między 0 a 100.
+Jak jasno? Możesz wybrać poziom z przedziału od 0 do 100.
diff --git a/dialog/pl-pl/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/pl-pl/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..1096ed35
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Nie mogę przyciemnić {{dev_name}}. To urządzenie nie obsługuje tej funkcji.
diff --git a/dialog/pl-pl/homeassistant.brightness.cantdim.off.dialog b/dialog/pl-pl/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..336b45ea
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Nie mogę przyciemnić {{dev_name}}. Urządzenie jest wyłączone.
+Nie mogę przyciemnić {{dev_name}}. Najpierw musisz włączyć to urządzenie.
+{{dev_name}} nie może być przyciemnione. Tylko włączone urządzenia mogą być ściemniane.
diff --git a/dialog/pl-pl/homeassistant.brightness.decreased.dialog b/dialog/pl-pl/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..00a318af
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+Przyciemniono {{dev_name}} do {{brightness}} procent.
+Ściemniono {{dev_name}}.
diff --git a/dialog/pl-pl/homeassistant.brightness.dimmed.dialog b/dialog/pl-pl/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..d38d9bf4
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Ustaw jasność {{dev_name}} na {{brightness} procent.
diff --git a/dialog/pl-pl/homeassistant.brightness.increased.dialog b/dialog/pl-pl/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..7af657db
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Zwiększono jasność {{dev_name}} do {{brightness}} procent.
+Zwiększono jasność {{dev_name}}.
diff --git a/dialog/pl-pl/homeassistant.device.already.dialog b/dialog/pl-pl/homeassistant.device.already.dialog
new file mode 100644
index 00000000..825ca817
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} już {{action}}.
+Nie zastosowano zmian na {{dev_name}}.
diff --git a/dialog/pl-pl/homeassistant.device.off.dialog b/dialog/pl-pl/homeassistant.device.off.dialog
new file mode 100644
index 00000000..088da4bb
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+wyłączono {{dev_name}}.
+wyłączono {{dev_name}}.
+{{dev_name}} jest teraz wyłączone.
diff --git a/dialog/pl-pl/homeassistant.device.on.dialog b/dialog/pl-pl/homeassistant.device.on.dialog
new file mode 100644
index 00000000..7392432d
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+włączono {{dev_name}}.
+{{dev_name}} został włączony.
+włączono {{dev_name}}.
diff --git a/dialog/pl-pl/homeassistant.device.toggle.dialog b/dialog/pl-pl/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..5a0aac2d
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+przełączono {{dev_name}}.
+{{dev_name}} został przełączony.
diff --git a/dialog/pl-pl/homeassistant.device.unknown.dialog b/dialog/pl-pl/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..488024fa
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Przepraszam, ale nie mogę znaleźć urządzenia "{{dev_name}}" w Homa Assistant.
+Urządzenie "{{dev_name}}" nie może być znalezione.
+Przepraszam, nie mogę znaleźć urządzenia "{{dev_name}}".
+Przepraszam, nie potrafię znaleźć "{{dev_name}}".
diff --git a/dialog/pl-pl/homeassistant.error.dialog b/dialog/pl-pl/homeassistant.error.dialog
new file mode 100644
index 00000000..1487f961
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.dialog
@@ -0,0 +1 @@
+Próba dostępu do serweru Home Assistant się nie powiodła.
diff --git a/dialog/pl-pl/homeassistant.error.http.dialog b/dialog/pl-pl/homeassistant.error.http.dialog
new file mode 100644
index 00000000..3c95241c
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+Serwer Home Assistant wysłał błędną odpowiedź: {{code}} {{reason}}
diff --git a/dialog/pl-pl/homeassistant.error.invalidurl.dialog b/dialog/pl-pl/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..9c6e25c4
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+Nie mogę znaleźć serwera Home Assistant pod adresem {{url}}
diff --git a/dialog/pl-pl/homeassistant.error.needurl.dialog b/dialog/pl-pl/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..e7112dfc
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Musisz dodać adres serwera w Mycroft home.
+Musisz skonfigurować umiejętność dodając adres serwera w Mycroft home.
+Aby użyć tej umiejętności, podaj adres serwera w Mycroft home.
diff --git a/dialog/pl-pl/homeassistant.error.offline.dialog b/dialog/pl-pl/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..eb5e3268
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Serwer Home Assistant wygląda na wyłączony.
+Nie mogę się połączyć z serwerem Home Assistant.
+Serwer Home Assistant nie odpowiedział.
diff --git a/dialog/pl-pl/homeassistant.error.setup.dialog b/dialog/pl-pl/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..3ee40c91
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Skonfiguruj umiejętność Home Assistant na home kropka mycroft kropka ai.
diff --git a/dialog/pl-pl/homeassistant.error.sorry.dialog b/dialog/pl-pl/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..8ae34ac7
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Nie wiem co mam zrobić.
+Nie potrafię się połączyć z Home Assistant.
+Nie rozumiem co mam zrobić.
diff --git a/dialog/pl-pl/homeassistant.error.ssl.dialog b/dialog/pl-pl/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..5bf1b882
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+Konfiguracja S S L w Home Assistant jest nieprawidłowa.
diff --git a/dialog/pl-pl/homeassistant.error.wrong_password.dialog b/dialog/pl-pl/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..66b32933
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+Niepoprawne hasło.
diff --git a/dialog/pl-pl/homeassistant.sensor.dialog b/dialog/pl-pl/homeassistant.sensor.dialog
new file mode 100644
index 00000000..cc2cc305
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Obecnie {{dev_name}} ma {{value}} {{unit}}.
+{{dev_name}} ma stan: {{value}} {{unit}}.
+{{dev_name}} ma {{value}} {{unit}} w tej chwili.
+{{dev_name}} ma {{value}} {{unit}}.
diff --git a/dialog/pl-pl/homeassistant.set.thermostat.dialog b/dialog/pl-pl/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..f71f69ef
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Ustawiono {{value}} {{unit}} dla {{dev_name}}.
diff --git a/dialog/pl-pl/homeassistant.tracker.found.dialog b/dialog/pl-pl/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..73a14e77
--- /dev/null
+++ b/dialog/pl-pl/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+Ostatnia znana lokalizacja {{dev_name}} to {{location}}.
+{{dev_name}} jest w {{location}}.
+{{dev_name}} zostało zlokalizowany w {{location}}.
diff --git a/dialog/pt-br/homeassistant.automation.trigger.dialog b/dialog/pt-br/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..a6841060
--- /dev/null
+++ b/dialog/pt-br/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+automação acionada {{dev_name}}.
+acionou {{dev_name}}.
+{dev_name}} foi acionado.
+{{dev_name}} foi ativado.
+ativado {{dev_name}}.
diff --git a/dialog/pt-br/homeassistant.brightness.badreq.dialog b/dialog/pt-br/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..f6cb3728
--- /dev/null
+++ b/dialog/pt-br/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+Por favor, solicite um nível de brilho entre 0 e 100.
+quão brilhante? você pode escolher um nível de 0 a 100.
diff --git a/dialog/pt-br/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/pt-br/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..d0006d22
--- /dev/null
+++ b/dialog/pt-br/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Não pode escurecer {{dev_name}}. Não é regulável.
diff --git a/dialog/pt-br/homeassistant.brightness.cantdim.off.dialog b/dialog/pt-br/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..696a80c1
--- /dev/null
+++ b/dialog/pt-br/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Não pode escurecer {{dev_name}}. Está desligado.
+Não pode escurecer {{dev_name}}. Por favor, ligue-o antes.
+{{dev_name}} não pode ser esmaecido. Somente dispositivos ativados podem ser.
diff --git a/dialog/pt-br/homeassistant.brightness.decreased.dialog b/dialog/pt-br/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..d0b59e9b
--- /dev/null
+++ b/dialog/pt-br/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+O {{dev_name}} escurecido para {{brightness}} por cento
+Escurecendo {{dev_name}}.
diff --git a/dialog/pt-br/homeassistant.brightness.dimmed.dialog b/dialog/pt-br/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..1b018642
--- /dev/null
+++ b/dialog/pt-br/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Defina o brilho de {{dev_name}} para {{brightness}} por cento.
diff --git a/dialog/pt-br/homeassistant.brightness.increased.dialog b/dialog/pt-br/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..f7943c49
--- /dev/null
+++ b/dialog/pt-br/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Aumente o brilho de {{dev_name}} para {{brightness}} por cento.
+Aumentando o brilho de {{dev_name}}.
diff --git a/dialog/pt-br/homeassistant.device.already.dialog b/dialog/pt-br/homeassistant.device.already.dialog
new file mode 100644
index 00000000..a32da3f8
--- /dev/null
+++ b/dialog/pt-br/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{dev_name}} já está {{action}}.
+Nenhuma alteração feita no {{dev_name}}.
diff --git a/dialog/pt-br/homeassistant.device.off.dialog b/dialog/pt-br/homeassistant.device.off.dialog
new file mode 100644
index 00000000..9d99f815
--- /dev/null
+++ b/dialog/pt-br/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+desligando {{dev_name}}.
+desliguei o {{dev_name}} agora.
+{{dev_name}} está agora desligado.
diff --git a/dialog/pt-br/homeassistant.device.on.dialog b/dialog/pt-br/homeassistant.device.on.dialog
new file mode 100644
index 00000000..551b4f35
--- /dev/null
+++ b/dialog/pt-br/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+ligando {{dev_name}}.
+{{dev_name}} foi ligado.
+liguei {{dev_name}} agora.
diff --git a/dialog/pt-br/homeassistant.device.toggle.dialog b/dialog/pt-br/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..54180414
--- /dev/null
+++ b/dialog/pt-br/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+alternando {{dev_name}}.
+{{dev_name}} foi alternada.
diff --git a/dialog/pt-br/homeassistant.device.unknown.dialog b/dialog/pt-br/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..e8d37185
--- /dev/null
+++ b/dialog/pt-br/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Desculpe, não consigo encontrar a entidade do Assistente de Casa "{{dev_name}}
+A entidade "{{dev_name}}" não foi encontrada.
+Desculpe, a entidade "{{dev_name}}" não foi encontrada.
+Com licença, não consegui encontrar "{dev_name}}".
diff --git a/dialog/pt-br/homeassistant.error.dialog b/dialog/pt-br/homeassistant.error.dialog
new file mode 100644
index 00000000..d867bd3a
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.dialog
@@ -0,0 +1 @@
+O acesso ao servidor do assistente de casa em {{url}} falhou.
diff --git a/dialog/pt-br/homeassistant.error.http.dialog b/dialog/pt-br/homeassistant.error.http.dialog
new file mode 100644
index 00000000..91727bd6
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+O servidor do assistente casa não respondeu por causa de {{code}} {{reason}}
diff --git a/dialog/pt-br/homeassistant.error.invalidurl.dialog b/dialog/pt-br/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..c5864013
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+A URL {{url}} não hospeda um servidor de assistente inicial válido
diff --git a/dialog/pt-br/homeassistant.error.needurl.dialog b/dialog/pt-br/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..3ada974b
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Você precisa inserir uma URL na página inicial do Mycroft.
+Você precisa configurar a habilidade colocando uma URL na página principal do Mycroft.
+Para usar esta habilidade, coloque uma URL na página principal do Mycroft.
diff --git a/dialog/pt-br/homeassistant.error.offline.dialog b/dialog/pt-br/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..9fb18734
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+O servidor do assistente de casa parece estar offline.
+Não foi possível alcançar o servidor do assistente doméstico.
+The home assistant server did not respond.
diff --git a/dialog/pt-br/homeassistant.error.setup.dialog b/dialog/pt-br/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..0134eee5
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Por favor, configure a habilidade do assistente doméstico em ponto home ponto mycroft ponto a i
diff --git a/dialog/pt-br/homeassistant.error.sorry.dialog b/dialog/pt-br/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..51d7b050
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Eu não sei o que você quer que eu faça.
+Não foi possível descobrir como falar com o Home Assistant.
+Eu não entendo o que você está perguntando.
diff --git a/dialog/pt-br/homeassistant.error.ssl.dialog b/dialog/pt-br/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..fdd9921f
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+A configuração do S S L no assistente doméstico é invalida.
diff --git a/dialog/pt-br/homeassistant.error.wrong_password.dialog b/dialog/pt-br/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..6d7625e1
--- /dev/null
+++ b/dialog/pt-br/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+O servidor do assistente doméstico não aceitou a senha configurada.
diff --git a/dialog/pt-br/homeassistant.sensor.dialog b/dialog/pt-br/homeassistant.sensor.dialog
new file mode 100644
index 00000000..df408516
--- /dev/null
+++ b/dialog/pt-br/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+Atualmente {{dev_name}} é {{value}} {{unit}}.
+{{dev_name}} tem o estado: {{value}} {{unit}}.
+{{dev_name}} é {{value}} {{unit}} no momento.
+Atualmente {{dev_name}} é {{value}} {{unit}}.
diff --git a/dialog/pt-br/homeassistant.set.thermostat.dialog b/dialog/pt-br/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..435c6201
--- /dev/null
+++ b/dialog/pt-br/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Definido com sucesso o {{dev_name}} para {{value}} {{unit}}.
diff --git a/dialog/pt-br/homeassistant.tracker.found.dialog b/dialog/pt-br/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..00d6927b
--- /dev/null
+++ b/dialog/pt-br/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+A última localização conhecida de {{dev_name}} é {{location}}.
+{{dev_name}} está em {{location}}.
+{{dev_name}} foi detectado em {{location}}.
diff --git a/dialog/sv-se/homeassistant.automation.trigger.dialog b/dialog/sv-se/homeassistant.automation.trigger.dialog
new file mode 100644
index 00000000..f3f029ed
--- /dev/null
+++ b/dialog/sv-se/homeassistant.automation.trigger.dialog
@@ -0,0 +1,5 @@
+utlöste automationen {{dev_name}}.
+utlöste {{dev_name}}.
+{{dev_name}} har aktiverats.
+{{dev_name}} har aktiverats.
+aktiverade {{dev_name}}.
diff --git a/dialog/sv-se/homeassistant.brightness.badreq.dialog b/dialog/sv-se/homeassistant.brightness.badreq.dialog
new file mode 100644
index 00000000..34373afe
--- /dev/null
+++ b/dialog/sv-se/homeassistant.brightness.badreq.dialog
@@ -0,0 +1,2 @@
+välj en ljusstyrka mellan 0 och 100.
+hur ljust? välj en nivå mellan 0 till 100.
diff --git a/dialog/sv-se/homeassistant.brightness.cantdim.dimmable.dialog b/dialog/sv-se/homeassistant.brightness.cantdim.dimmable.dialog
new file mode 100644
index 00000000..62f80b79
--- /dev/null
+++ b/dialog/sv-se/homeassistant.brightness.cantdim.dimmable.dialog
@@ -0,0 +1 @@
+Kan inte dimma {{dev_name}}. Den är inte dimbar.
diff --git a/dialog/sv-se/homeassistant.brightness.cantdim.off.dialog b/dialog/sv-se/homeassistant.brightness.cantdim.off.dialog
new file mode 100644
index 00000000..53e1b1fc
--- /dev/null
+++ b/dialog/sv-se/homeassistant.brightness.cantdim.off.dialog
@@ -0,0 +1,3 @@
+Kan inte dimma {{dev_name}}. Den är släckt.
+Kan inte dimma{{dev_name}}. Vänligen tänd den först.
+{{dev_name}} kan inte dimmas. Endast enheter som är igång kan det.
diff --git a/dialog/sv-se/homeassistant.brightness.decreased.dialog b/dialog/sv-se/homeassistant.brightness.decreased.dialog
new file mode 100644
index 00000000..74ce5952
--- /dev/null
+++ b/dialog/sv-se/homeassistant.brightness.decreased.dialog
@@ -0,0 +1,2 @@
+Dämpade {{dev_name}} till {{brightness}} procent.
+Dämpade {{dev_name}}.
diff --git a/dialog/sv-se/homeassistant.brightness.dimmed.dialog b/dialog/sv-se/homeassistant.brightness.dimmed.dialog
new file mode 100644
index 00000000..ff7c2c4f
--- /dev/null
+++ b/dialog/sv-se/homeassistant.brightness.dimmed.dialog
@@ -0,0 +1 @@
+Ökar ljusstyrkan på {{dev_name}} till {{brightness}} procent.
diff --git a/dialog/sv-se/homeassistant.brightness.increased.dialog b/dialog/sv-se/homeassistant.brightness.increased.dialog
new file mode 100644
index 00000000..edb99ded
--- /dev/null
+++ b/dialog/sv-se/homeassistant.brightness.increased.dialog
@@ -0,0 +1,2 @@
+Ökar ljusstyrkan på {{dev_name}} till {{brightness}} procent.
+Ökade ljuset på {{dev_name}}.
diff --git a/dialog/sv-se/homeassistant.device.already.dialog b/dialog/sv-se/homeassistant.device.already.dialog
new file mode 100644
index 00000000..f9edc7a9
--- /dev/null
+++ b/dialog/sv-se/homeassistant.device.already.dialog
@@ -0,0 +1,2 @@
+{{dev_name}} är redan {{action}}.
+Inga förändringar gjorda för {{dev_name}}.
diff --git a/dialog/sv-se/homeassistant.device.off.dialog b/dialog/sv-se/homeassistant.device.off.dialog
new file mode 100644
index 00000000..ada96fa6
--- /dev/null
+++ b/dialog/sv-se/homeassistant.device.off.dialog
@@ -0,0 +1,3 @@
+stängde av {{dev_name}}.
+stängde {{dev_name}} av.
+{{dev_name}} är nu av.
diff --git a/dialog/sv-se/homeassistant.device.on.dialog b/dialog/sv-se/homeassistant.device.on.dialog
new file mode 100644
index 00000000..c58402c1
--- /dev/null
+++ b/dialog/sv-se/homeassistant.device.on.dialog
@@ -0,0 +1,3 @@
+slog på {{dev_name}}.
+{{dev_name}} slogs på.
+slog på {{dev_name}}.
diff --git a/dialog/sv-se/homeassistant.device.toggle.dialog b/dialog/sv-se/homeassistant.device.toggle.dialog
new file mode 100644
index 00000000..54366393
--- /dev/null
+++ b/dialog/sv-se/homeassistant.device.toggle.dialog
@@ -0,0 +1,2 @@
+växlade {{dev_name}}.
+{{dev_name}} har aktiverats.
diff --git a/dialog/sv-se/homeassistant.device.unknown.dialog b/dialog/sv-se/homeassistant.device.unknown.dialog
new file mode 100644
index 00000000..956a79cc
--- /dev/null
+++ b/dialog/sv-se/homeassistant.device.unknown.dialog
@@ -0,0 +1,4 @@
+Ursäkta, jag kan inte hitta Home Assistant enheten "{{dev_name}}".
+Enheten "{{dev_name}}" kunde inte hittas.
+Tyvärr, enhet "{{dev_name}}" hittades inte.
+Ursäkta, jag hittade inte "{{dev_name}}".
diff --git a/dialog/sv-se/homeassistant.error.dialog b/dialog/sv-se/homeassistant.error.dialog
new file mode 100644
index 00000000..f0ec7331
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.dialog
@@ -0,0 +1 @@
+Åtkomsten till home assistant servern på {{url}} misslyckades.
diff --git a/dialog/sv-se/homeassistant.error.http.dialog b/dialog/sv-se/homeassistant.error.http.dialog
new file mode 100644
index 00000000..39e414d7
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.http.dialog
@@ -0,0 +1 @@
+Home assistant servern svarade inte på grund av {{code}} {{reason}}
diff --git a/dialog/sv-se/homeassistant.error.invalidurl.dialog b/dialog/sv-se/homeassistant.error.invalidurl.dialog
new file mode 100644
index 00000000..8558f360
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.invalidurl.dialog
@@ -0,0 +1 @@
+Det finns ingen giltig home assistant server på {{url}}
diff --git a/dialog/sv-se/homeassistant.error.needurl.dialog b/dialog/sv-se/homeassistant.error.needurl.dialog
new file mode 100644
index 00000000..450d1979
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.needurl.dialog
@@ -0,0 +1,3 @@
+Du behöver skriva in en URL i Mycroft home.
+Du behöver ställa in skill genom att ange en URL i Mycroft home.
+För att använda denna skill, ange en URL i Mycroft home.
diff --git a/dialog/sv-se/homeassistant.error.offline.dialog b/dialog/sv-se/homeassistant.error.offline.dialog
new file mode 100644
index 00000000..d7030286
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.offline.dialog
@@ -0,0 +1,3 @@
+Home assistant servern verkar vara offline.
+Kunde inte nå home assistant servern.
+Home assistant servern svarade inte.
diff --git a/dialog/sv-se/homeassistant.error.setup.dialog b/dialog/sv-se/homeassistant.error.setup.dialog
new file mode 100644
index 00000000..b72bffb5
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.setup.dialog
@@ -0,0 +1 @@
+Vänligen konfigurera home assistant skill inställningar på home punkt mycroft punkt ai.
diff --git a/dialog/sv-se/homeassistant.error.sorry.dialog b/dialog/sv-se/homeassistant.error.sorry.dialog
new file mode 100644
index 00000000..c7d5e9cb
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.sorry.dialog
@@ -0,0 +1,3 @@
+Jag vet inte vad du vill att jag ska göra.
+Kunde inte lista ut hur jag skall kommunicera med Home Assistant.
+Jag förstår inte vad du frågar.
diff --git a/dialog/sv-se/homeassistant.error.ssl.dialog b/dialog/sv-se/homeassistant.error.ssl.dialog
new file mode 100644
index 00000000..0b06624b
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.ssl.dialog
@@ -0,0 +1 @@
+Konfigurationen för S S L på home assistant servern är inte giltig.
diff --git a/dialog/sv-se/homeassistant.error.wrong_password.dialog b/dialog/sv-se/homeassistant.error.wrong_password.dialog
new file mode 100644
index 00000000..b7632903
--- /dev/null
+++ b/dialog/sv-se/homeassistant.error.wrong_password.dialog
@@ -0,0 +1 @@
+Home assistant servern accepterade inte det konfigurerade lösenordet.
diff --git a/dialog/sv-se/homeassistant.sensor.dialog b/dialog/sv-se/homeassistant.sensor.dialog
new file mode 100644
index 00000000..39174535
--- /dev/null
+++ b/dialog/sv-se/homeassistant.sensor.dialog
@@ -0,0 +1,4 @@
+För närvarande är {{dev_name}} {{value}} {{unit}}.
+{{dev_name}} har tillståndet: {{value}} {{unit}}.
+{{dev_name}} är {{value}} {{unit}} för närvarande.
+{{dev_name}} är {{value}} {{unit}}.
diff --git a/dialog/sv-se/homeassistant.set.thermostat.dialog b/dialog/sv-se/homeassistant.set.thermostat.dialog
new file mode 100644
index 00000000..b97880ba
--- /dev/null
+++ b/dialog/sv-se/homeassistant.set.thermostat.dialog
@@ -0,0 +1 @@
+Lyckades sätta {{dev_name}} till {{value}} {{unit}}.
diff --git a/dialog/sv-se/homeassistant.tracker.found.dialog b/dialog/sv-se/homeassistant.tracker.found.dialog
new file mode 100644
index 00000000..dbdc199b
--- /dev/null
+++ b/dialog/sv-se/homeassistant.tracker.found.dialog
@@ -0,0 +1,3 @@
+Senaste kända platsen för {{dev_name}} är {{location}}.
+{{dev_name}} är på {{location}}.
+{{dev_name}} har upptäckts på {{location}}.
diff --git a/docs/home-assistant.png b/docs/home-assistant.png
new file mode 100644
index 00000000..24fdd162
Binary files /dev/null and b/docs/home-assistant.png differ
diff --git a/docs/home-settings.png b/docs/home-settings.png
new file mode 100644
index 00000000..e5e65929
Binary files /dev/null and b/docs/home-settings.png differ
diff --git a/docs/long-Lived-access-token.png b/docs/long-Lived-access-token.png
new file mode 100644
index 00000000..e0b70fa1
Binary files /dev/null and b/docs/long-Lived-access-token.png differ
diff --git a/ha_client.py b/ha_client.py
new file mode 100644
index 00000000..60c2df09
--- /dev/null
+++ b/ha_client.py
@@ -0,0 +1,196 @@
+from requests import get, post
+from fuzzywuzzy import fuzz
+import json
+from requests.exceptions import Timeout, RequestException
+
+
+__author__ = 'btotharye'
+
+# Timeout time for HA requests
+TIMEOUT = 10
+
+
+class HomeAssistantClient(object):
+
+ def __init__(self, host, token, portnum, ssl=False, verify=True):
+ self.ssl = ssl
+ self.verify = verify
+ if self.ssl:
+ self.url = "https://{}".format(host)
+ else:
+ self.url = "http://{}".format(host)
+ if portnum:
+ self.url = "{}:{}".format(self.url, portnum)
+ self.headers = {
+ 'Authorization': "Bearer {}".format(token),
+ 'Content-Type': 'application/json'
+ }
+
+ def _get_state(self):
+ """Get state object
+
+ Throws request Exceptions
+ (Subclasses of ConnectionError or RequestException,
+ raises HTTPErrors if non-Ok status code)
+ """
+ if self.ssl:
+ req = get("{}/api/states".format(self.url), headers=self.headers,
+ verify=self.verify, timeout=TIMEOUT)
+ else:
+ req = get("{}/api/states".format(self.url), headers=self.headers,
+ timeout=TIMEOUT)
+ req.raise_for_status()
+ return req.json()
+
+ def connected(self):
+ try:
+ self._get_state()
+ return True
+ except (Timeout, ConnectionError, RequestException):
+ return False
+
+ def find_entity(self, entity, types):
+ """Find entity with specified name, fuzzy matching
+
+ Throws request Exceptions
+ (Subclasses of ConnectionError or RequestException,
+ raises HTTPErrors if non-Ok status code)
+ """
+ json_data = self._get_state()
+ # require a score above 50%
+ best_score = 50
+ best_entity = None
+ if json_data:
+ for state in json_data:
+ try:
+ if state['entity_id'].split(".")[0] in types:
+ # something like temperature outside
+ # should score on "outside temperature sensor"
+ # and repetitions should not count on my behalf
+ score = fuzz.token_sort_ratio(
+ entity,
+ state['attributes']['friendly_name'].lower())
+ if score > best_score:
+ best_score = score
+ best_entity = {
+ "id": state['entity_id'],
+ "dev_name": state['attributes']
+ ['friendly_name'],
+ "state": state['state'],
+ "best_score": best_score}
+ score = fuzz.token_sort_ratio(
+ entity,
+ state['entity_id'].lower())
+ if score > best_score:
+ best_score = score
+ best_entity = {
+ "id": state['entity_id'],
+ "dev_name": state['attributes']
+ ['friendly_name'],
+ "state": state['state'],
+ "best_score": best_score}
+ except KeyError:
+ pass
+ return best_entity
+
+ def find_entity_attr(self, entity):
+ """checking the entity attributes to be used in the response dialog.
+
+ Throws request Exceptions
+ (Subclasses of ConnectionError or RequestException,
+ raises HTTPErrors if non-Ok status code)
+ """
+ json_data = self._get_state()
+
+ if json_data:
+ for attr in json_data:
+ if attr['entity_id'] == entity:
+ entity_attrs = attr['attributes']
+ try:
+ if attr['entity_id'].startswith('light.'):
+ # Not all lamps do have a color
+ unit_measur = entity_attrs['brightness']
+ else:
+ unit_measur = entity_attrs['unit_of_measurement']
+ except KeyError:
+ unit_measur = None
+ # IDEA: return the color if available
+ # TODO: change to return the whole attr dictionary =>
+ # free use within handle methods
+ sensor_name = entity_attrs['friendly_name']
+ sensor_state = attr['state']
+ entity_attr = {
+ "unit_measure": unit_measur,
+ "name": sensor_name,
+ "state": sensor_state
+ }
+ return entity_attr
+ return None
+
+ def execute_service(self, domain, service, data):
+ """Execute service at HAServer
+
+ Throws request Exceptions
+ (Subclasses of ConnectionError or RequestException,
+ raises HTTPErrors if non-Ok status code)
+ """
+ if self.ssl:
+ r = post("{}/api/services/{}/{}".format(self.url, domain, service),
+ headers=self.headers, data=json.dumps(data),
+ verify=self.verify, timeout=TIMEOUT)
+ else:
+ r = post("{}/api/services/{}/{}".format(self.url, domain, service),
+ headers=self.headers, data=json.dumps(data),
+ timeout=TIMEOUT)
+ r.raise_for_status()
+ return r
+
+ def find_component(self, component):
+ """Check if a component is loaded at the HA-Server
+
+ Throws request Exceptions
+ (Subclasses of ConnectionError or RequestException,
+ raises HTTPErrors if non-Ok status code)
+ """
+ if self.ssl:
+ req = get("{}/api/components".format(self.url),
+ headers=self.headers, verify=self.verify,
+ timeout=TIMEOUT)
+ else:
+ req = get("%s/api/components" % self.url, headers=self.headers,
+ timeout=TIMEOUT)
+
+ req.raise_for_status()
+ return component in req.json()
+
+ def engage_conversation(self, utterance):
+ """Engage the conversation component at the Home Assistant server
+
+ Throws request Exceptions
+ (Subclasses of ConnectionError or RequestException,
+ raises HTTPErrors if non-Ok status code)
+ Attributes:
+ utterance raw text message to be processed
+ Return:
+ Dict answer by Home Assistant server
+ { 'speech': textual answer,
+ 'extra_data': ...}
+ """
+ data = {
+ "text": utterance
+ }
+ if self.ssl:
+ r = post("{}/api/conversation/process".format(self.url),
+ headers=self.headers,
+ data=json.dumps(data),
+ verify=self.verify,
+ timeout=TIMEOUT
+ )
+ else:
+ r = post("{}/api/conversation/process".format(self.url),
+ headers=self.headers,
+ data=json.dumps(data),
+ timeout=TIMEOUT
+ )
+ r.raise_for_status()
+ return r.json()['speech']['plain']
diff --git a/regex/ca-es/automation.rx b/regex/ca-es/automation.rx
new file mode 100644
index 00000000..718c734c
--- /dev/null
+++ b/regex/ca-es/automation.rx
@@ -0,0 +1 @@
+(activar|activa|iniciar|inicia|disparar|disparador) (?P.*)
diff --git a/regex/ca-es/climate.rx b/regex/ca-es/climate.rx
new file mode 100644
index 00000000..89649269
--- /dev/null
+++ b/regex/ca-es/climate.rx
@@ -0,0 +1 @@
+posa el termòstat (?P.*) a (?P[0-9]*)
diff --git a/regex/ca-es/dimming.rx b/regex/ca-es/dimming.rx
new file mode 100644
index 00000000..ef8d0fe1
--- /dev/null
+++ b/regex/ca-es/dimming.rx
@@ -0,0 +1,2 @@
+posa (?:la brillantor de|del )?(?P.*) (al) (?P\d*)(?: per cent)?
+(atenua|il·lumina|incrementa|redueix|atenuar|il·luminar|incrementar|reduir) (?:la brillantor de|del )?(?P.*?) (?:a|al)? (?P\d*)?(?: per cent)?
diff --git a/regex/ca-es/numvalue.rx b/regex/ca-es/numvalue.rx
new file mode 100644
index 00000000..ebbe5cea
--- /dev/null
+++ b/regex/ca-es/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/ca-es/sensor.rx b/regex/ca-es/sensor.rx
new file mode 100644
index 00000000..3a703467
--- /dev/null
+++ b/regex/ca-es/sensor.rx
@@ -0,0 +1,10 @@
+(en )?(què|quin) (estat|condició|valor) (està|té) (?P.*)
+(com|què|quin) és l' (actual )?(estat|valor|condició) de (el )?(?P.*)
+digui'm (el|la|l') (actual )?(estat|valor|sensor) de (del|el )?(?P.*)
+llegeix (en veu alta)?(la )?((estat|condició|valor|sensor) (de )?)?(?P.*)
+llegeix (en veu alta)?(la|el )?((estat|condició|valor|sensor) (de )?)?(?P.*)
+(com|què|quin) és l' (actual )?(?P.*) (estat|condició|valor|sensor)
+Digui'm (l') (actual)?(?P.*) (estat|condició|valor|sensor)
+(estat|condició|valor|sensor) (?P.*)
+dóna'm el valor de (?P.*)
+quin és el valor del termòstat (?P.*)
diff --git a/regex/ca-es/switch.rx b/regex/ca-es/switch.rx
new file mode 100644
index 00000000..88cb08c5
--- /dev/null
+++ b/regex/ca-es/switch.rx
@@ -0,0 +1,3 @@
+((torna|commuta|inicia|apaga) )?(?Pel botó) (?P.*)
+(?Pencén|apaga|conmuta) (?Ptotes|tots) (els|les|l') (?Pinterruptors|lums)
+((encén|commuta) )?(?P.*) (?Pencesa|apagada)
diff --git a/regex/ca-es/tracker.rx b/regex/ca-es/tracker.rx
new file mode 100644
index 00000000..6047603e
--- /dev/null
+++ b/regex/ca-es/tracker.rx
@@ -0,0 +1,2 @@
+(on està|(on és (la)?)?ubicació de) (?P.*)
+(?P.*) ubicació
diff --git a/regex/da-dk/automation.rx b/regex/da-dk/automation.rx
new file mode 100644
index 00000000..15f894e7
--- /dev/null
+++ b/regex/da-dk/automation.rx
@@ -0,0 +1 @@
+(aktivér|kør|kald)(?P.*)
diff --git a/regex/da-dk/climate.rx b/regex/da-dk/climate.rx
new file mode 100644
index 00000000..472c111c
--- /dev/null
+++ b/regex/da-dk/climate.rx
@@ -0,0 +1 @@
+(sæt) (?P.*) thermostat til (?P[0-9]*)
diff --git a/regex/da-dk/dimming.rx b/regex/da-dk/dimming.rx
new file mode 100644
index 00000000..7916fc97
--- /dev/null
+++ b/regex/da-dk/dimming.rx
@@ -0,0 +1,2 @@
+(sæt) (?:lysstyrke på )?(?P.*) (til) (?P\d*)(?: percent)?
+(dæmp|øg|forøg) (?:lysstyrke af)?(?P.*?) (?:med)? (?P\d*)?(?: percent)?
diff --git a/regex/da-dk/numvalue.rx b/regex/da-dk/numvalue.rx
new file mode 100644
index 00000000..ebbe5cea
--- /dev/null
+++ b/regex/da-dk/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/da-dk/sensor.rx b/regex/da-dk/sensor.rx
new file mode 100644
index 00000000..4508bf80
--- /dev/null
+++ b/regex/da-dk/sensor.rx
@@ -0,0 +1,10 @@
+(i)?(hvad | hvilken) (status | tilstand | værdi) (er | har) (?P .*)
+(hvordan | hvad) er (nuværende)?(status | state | værdi | sensor) af(?P.*)
+fortæl mig (den | vores) (nuværende)? (status | tilstand | værdi | sensor) af (?P.*)
+fortæl (ud)? (den)? ((status | tilstand| værdi | sensor) (af)?)?(?P.*)
+læs (?P.*) (status|tilstand|værdi|sensor)
+(hvordan | hvad) er (nuværende)?(?P.*) (status | tilstand | værdi | sensor)
+fortæl mig (den | vores) (nuværende)?(?P.*) (status | tilstand | værdi | sensor)
+(status|tilstand|værdi|sensor) (?P.*)
+giv mig værdien af (?P.*)
+hvad er værdien af termostaten (?P.*)
diff --git a/regex/da-dk/switch.rx b/regex/da-dk/switch.rx
new file mode 100644
index 00000000..0adcc723
--- /dev/null
+++ b/regex/da-dk/switch.rx
@@ -0,0 +1,3 @@
+((slå|sæt) )?(?Ptændt|slukketf|skift) (?P.*)
+((slå|sæt) )?(?Ptændt|slukket|skift) (?Palle|allesammen|hvilkensomhelst) (?Pkontakt(r)?|lys?|(boolean )?indput?)
+((slå | sæt) )?(?P.*) (?P tændt| slukket)
diff --git a/regex/da-dk/tracker.rx b/regex/da-dk/tracker.rx
new file mode 100644
index 00000000..96bea61a
--- /dev/null
+++ b/regex/da-dk/tracker.rx
@@ -0,0 +1,2 @@
+(hvor er | (hvad er (den)?)?placering af) (?P.*)
+(?P.*) Placering
diff --git a/regex/de-de/automation.rx b/regex/de-de/automation.rx
new file mode 100644
index 00000000..aaa967d7
--- /dev/null
+++ b/regex/de-de/automation.rx
@@ -0,0 +1 @@
+(aktiviere|feuere|löse|rufe) (?P.*) (aus|an)
diff --git a/regex/de-de/climate.rx b/regex/de-de/climate.rx
new file mode 100644
index 00000000..28ed95c0
--- /dev/null
+++ b/regex/de-de/climate.rx
@@ -0,0 +1 @@
+(setze) (?P.*) Thermostat auf (?P[0-9]*)
diff --git a/regex/de-de/dimming.rx b/regex/de-de/dimming.rx
new file mode 100644
index 00000000..105ee81b
--- /dev/null
+++ b/regex/de-de/dimming.rx
@@ -0,0 +1,2 @@
+(setze) (?:brightness of )?(?P.*) (auf) (?P\d*)(?: percent)?
+(dimme|erhelle|erhöhe|reduziere) (?:brightness of )?(?P.*?) (?:by)? (?P\d*)?(?: percent)?
diff --git a/regex/de-de/numvalue.rx b/regex/de-de/numvalue.rx
new file mode 100644
index 00000000..ebbe5cea
--- /dev/null
+++ b/regex/de-de/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/de-de/sensor.rx b/regex/de-de/sensor.rx
new file mode 100644
index 00000000..dc8d6506
--- /dev/null
+++ b/regex/de-de/sensor.rx
@@ -0,0 +1,10 @@
+(in )?(welchem|welchen) (Status|Zustand|Wert) (befindet sich|hat) (?P.*)
+(wie|was) ist der (aktuelle )?(Status|Zustand|Wert|Sensor) von (dem )?(?P.*)
+nenne mir (den|unseren) (aktuellen )?(Status|Zustand|Wert|Sensor) von (dem )?(?P.*)
+lies (den )?((Status|Zustand|Wert|Sensor) (von )?)?(?P.*)
+lies (den )?(?P.*) (Status|Zustand|Wert|Sensor)
+(wie|was) ist der (aktuelle )?(?P.*) (Status|Zustand|Wert|Sensor)
+nenne mir (den|unseren) (aktuellen )?(?P.*) (Status|Zustand|Wert|Sensor)
+(Status|Zustand|Wert|Sensor) (?P.*)
+gib mir den Wert von (?P.*)
+was ist der Wert vom Thermostat (?P.*)
diff --git a/regex/de-de/switch.rx b/regex/de-de/switch.rx
new file mode 100644
index 00000000..f8c65db1
--- /dev/null
+++ b/regex/de-de/switch.rx
@@ -0,0 +1,3 @@
+((drehe|schalte) )?(?Pan|aus|um) (?P.*)
+((drehe|schalte) )?(?Pan|aus|um) (?Palle|jeden) (?PSchalter?|Lampe(n)?|(boolean )?Eingang)
+((schalte) )?(?P.*) (?Pan|aus)
diff --git a/regex/de-de/tracker.rx b/regex/de-de/tracker.rx
new file mode 100644
index 00000000..2034123c
--- /dev/null
+++ b/regex/de-de/tracker.rx
@@ -0,0 +1,2 @@
+(wo ist|(was ist (der|die )?)?(Standort|Lage|Position) von) (?P.*)
+(?P.*) (Standort|Lage|Position)
diff --git a/regex/de/action.rx b/regex/de/action.rx
new file mode 100644
index 00000000..03893082
--- /dev/null
+++ b/regex/de/action.rx
@@ -0,0 +1,5 @@
+(?Phell|heller|runter|dunkler) (?P.*)
+(?P.*) (?Phell|heller|runter|dunkler)
+(schalte|mache) (?P.*) (?Phell|heller|runter|dunkler)
+(schalte|knippse) (?Pein|aus|an) (?P.*)
+(schalte|knippse|mache) (?P.*) (?Pein|aus|an)
\ No newline at end of file
diff --git a/regex/de/automation.rx b/regex/de/automation.rx
new file mode 100644
index 00000000..19e07158
--- /dev/null
+++ b/regex/de/automation.rx
@@ -0,0 +1 @@
+aktiviere (?P.*)
diff --git a/regex/de/sensor.rx b/regex/de/sensor.rx
new file mode 100644
index 00000000..7724f43f
--- /dev/null
+++ b/regex/de/sensor.rx
@@ -0,0 +1 @@
+(wie ist der wert von|was ist der wert von|sensor) (?P.*)
\ No newline at end of file
diff --git a/regex/en-us/action.rx b/regex/en-us/action.rx
deleted file mode 100644
index 0bf6301b..00000000
--- a/regex/en-us/action.rx
+++ /dev/null
@@ -1,3 +0,0 @@
-(?Pdim|brighten) (?P.*)
-(?P.*) (?Pbrighter|darker)
-(turn|switch) (?Pon|off) (?P.*)
diff --git a/regex/en-us/automation.rx b/regex/en-us/automation.rx
index 1cd4ce08..07beec9b 100644
--- a/regex/en-us/automation.rx
+++ b/regex/en-us/automation.rx
@@ -1 +1 @@
-activate (?P.*)
+(activate|fire|trigger|call up) (?P.*)
\ No newline at end of file
diff --git a/regex/en-us/climate.rx b/regex/en-us/climate.rx
new file mode 100644
index 00000000..a5ebd240
--- /dev/null
+++ b/regex/en-us/climate.rx
@@ -0,0 +1 @@
+(set) (?P.*) thermostat to (?P[0-9]*)
\ No newline at end of file
diff --git a/regex/en-us/dimming.rx b/regex/en-us/dimming.rx
new file mode 100644
index 00000000..49f9d5b0
--- /dev/null
+++ b/regex/en-us/dimming.rx
@@ -0,0 +1,2 @@
+(set) (?:brightness of )?(?P.*) (to) (?P\d*)(?: percent)?
+(dim|brighten|increase|decrease) (?:brightness of )?(?P.*?) (?:by)? (?P\d*)?(?: percent)?
\ No newline at end of file
diff --git a/regex/en-us/numvalue.rx b/regex/en-us/numvalue.rx
new file mode 100644
index 00000000..ba094c5d
--- /dev/null
+++ b/regex/en-us/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
\ No newline at end of file
diff --git a/regex/en-us/sensor.rx b/regex/en-us/sensor.rx
deleted file mode 100644
index c5a17045..00000000
--- a/regex/en-us/sensor.rx
+++ /dev/null
@@ -1 +0,0 @@
-(what is|where is) (?P.*)
diff --git a/regex/en-us/tracker.rx b/regex/en-us/tracker.rx
new file mode 100644
index 00000000..3c678835
--- /dev/null
+++ b/regex/en-us/tracker.rx
@@ -0,0 +1,2 @@
+(where is|(what is (the )?)?location of) (?P.*)
+(?P.*) location
\ No newline at end of file
diff --git a/regex/es-es/automation.rx b/regex/es-es/automation.rx
new file mode 100644
index 00000000..1f063b05
--- /dev/null
+++ b/regex/es-es/automation.rx
@@ -0,0 +1 @@
+(activa|dispara|llama|lanza)r? (?P.*)
diff --git a/regex/es-es/climate.rx b/regex/es-es/climate.rx
new file mode 100644
index 00000000..ebb2e564
--- /dev/null
+++ b/regex/es-es/climate.rx
@@ -0,0 +1 @@
+pon el termostato (?P.*) a (?P[0-9]*)(grados )?
diff --git a/regex/es-es/dimming.rx b/regex/es-es/dimming.rx
new file mode 100644
index 00000000..7464e475
--- /dev/null
+++ b/regex/es-es/dimming.rx
@@ -0,0 +1,2 @@
+(pon el) (?:brillo de)?(?P.*) (a|al) (?P\d*)(?: por ciento)?
+(oscurece|ilumina|aumenta|disminuye) (?:el brillo de )?(?P.*?) (?:al)? (?P\d*)?(?: por ciento)?
diff --git a/regex/es-es/numvalue.rx b/regex/es-es/numvalue.rx
new file mode 100644
index 00000000..ebbe5cea
--- /dev/null
+++ b/regex/es-es/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/es-es/sensor.rx b/regex/es-es/sensor.rx
new file mode 100644
index 00000000..b9e3c05b
--- /dev/null
+++ b/regex/es-es/sensor.rx
@@ -0,0 +1,10 @@
+(en )?(qué|cuál) (estado|condición|valor) (está|se encuentra) (?P.*)
+(cómo|cuál) (es el|es la) (actual| )?(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+dime (el|la|nuestro) (actual )?(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+(dame la lectura |lee |léeme )?(el |la |del |de la )?((estado|condición|valor|sensor) (de|del|de la )?)?(?P.*)
+(dame la lectura |lee |léeme )?(el |la |del |de la )?((estado|condición|valor|sensor) (de|del|de la )?)?(?P.*)
+(cómo|cuál) (es el|es la) (actual| )?(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+dime (el|la|nuestro) (actual )?(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+dame el valor de (?P.*)
+cuál es el valor del termostato (?P.*)
diff --git a/regex/es-es/switch.rx b/regex/es-es/switch.rx
new file mode 100644
index 00000000..91f88f67
--- /dev/null
+++ b/regex/es-es/switch.rx
@@ -0,0 +1,3 @@
+(?Penciende|apaga|conmuta) (?P.*)
+(?Penciende|apaga|conmuta) (?Pen todos|en cada|en cualquier) (?Pinterruptor(es)?|(luz|luces)?|(boolean )?entrada(s)?)
+((deja) )?(?P.*) (?Pencendida|apagada)
diff --git a/regex/es-es/tracker.rx b/regex/es-es/tracker.rx
new file mode 100644
index 00000000..c03ab371
--- /dev/null
+++ b/regex/es-es/tracker.rx
@@ -0,0 +1,2 @@
+(dime la|(cuál es (la )?)?localización de) (?P.*)
+localización de (?P.*)
diff --git a/regex/es-lm/automation.rx b/regex/es-lm/automation.rx
new file mode 100644
index 00000000..1f063b05
--- /dev/null
+++ b/regex/es-lm/automation.rx
@@ -0,0 +1 @@
+(activa|dispara|llama|lanza)r? (?P.*)
diff --git a/regex/es-lm/climate.rx b/regex/es-lm/climate.rx
new file mode 100644
index 00000000..ebb2e564
--- /dev/null
+++ b/regex/es-lm/climate.rx
@@ -0,0 +1 @@
+pon el termostato (?P.*) a (?P[0-9]*)(grados )?
diff --git a/regex/es-lm/dimming.rx b/regex/es-lm/dimming.rx
new file mode 100644
index 00000000..7464e475
--- /dev/null
+++ b/regex/es-lm/dimming.rx
@@ -0,0 +1,2 @@
+(pon el) (?:brillo de)?(?P.*) (a|al) (?P\d*)(?: por ciento)?
+(oscurece|ilumina|aumenta|disminuye) (?:el brillo de )?(?P.*?) (?:al)? (?P\d*)?(?: por ciento)?
diff --git a/regex/es-lm/numvalue.rx b/regex/es-lm/numvalue.rx
new file mode 100644
index 00000000..ebbe5cea
--- /dev/null
+++ b/regex/es-lm/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/es-lm/sensor.rx b/regex/es-lm/sensor.rx
new file mode 100644
index 00000000..b9e3c05b
--- /dev/null
+++ b/regex/es-lm/sensor.rx
@@ -0,0 +1,10 @@
+(en )?(qué|cuál) (estado|condición|valor) (está|se encuentra) (?P.*)
+(cómo|cuál) (es el|es la) (actual| )?(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+dime (el|la|nuestro) (actual )?(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+(dame la lectura |lee |léeme )?(el |la |del |de la )?((estado|condición|valor|sensor) (de|del|de la )?)?(?P.*)
+(dame la lectura |lee |léeme )?(el |la |del |de la )?((estado|condición|valor|sensor) (de|del|de la )?)?(?P.*)
+(cómo|cuál) (es el|es la) (actual| )?(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+dime (el|la|nuestro) (actual )?(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+(estado|condición|valor|sensor) (de|del|de la )?(?P.*)
+dame el valor de (?P.*)
+cuál es el valor del termostato (?P.*)
diff --git a/regex/es-lm/switch.rx b/regex/es-lm/switch.rx
new file mode 100644
index 00000000..91f88f67
--- /dev/null
+++ b/regex/es-lm/switch.rx
@@ -0,0 +1,3 @@
+(?Penciende|apaga|conmuta) (?P.*)
+(?Penciende|apaga|conmuta) (?Pen todos|en cada|en cualquier) (?Pinterruptor(es)?|(luz|luces)?|(boolean )?entrada(s)?)
+((deja) )?(?P.*) (?Pencendida|apagada)
diff --git a/regex/es-lm/tracker.rx b/regex/es-lm/tracker.rx
new file mode 100644
index 00000000..c03ab371
--- /dev/null
+++ b/regex/es-lm/tracker.rx
@@ -0,0 +1,2 @@
+(dime la|(cuál es (la )?)?localización de) (?P.*)
+localización de (?P.*)
diff --git a/regex/fr-fr/automation.rx b/regex/fr-fr/automation.rx
new file mode 100644
index 00000000..e07849b6
--- /dev/null
+++ b/regex/fr-fr/automation.rx
@@ -0,0 +1 @@
+(allume|active|lance|appelle) (?P.*)
diff --git a/regex/fr-fr/climate.rx b/regex/fr-fr/climate.rx
new file mode 100644
index 00000000..ce672b29
--- /dev/null
+++ b/regex/fr-fr/climate.rx
@@ -0,0 +1 @@
+(règle) (?P.*) le thermostat à (?P[0-9]*)
diff --git a/regex/fr-fr/dimming.rx b/regex/fr-fr/dimming.rx
new file mode 100644
index 00000000..3a99903a
--- /dev/null
+++ b/regex/fr-fr/dimming.rx
@@ -0,0 +1,2 @@
+(mets|règles) (?:(l'intensité de|la lumière))?(?P.*) (à) (?P\d*)(?: pourcent)?
+(tamise|illumine|augmente|monte|diminue|descend) (?:(l'intensité de|la lumière))?(?P.*?) (?:de)? (?P\d*)?(?: pourcent)?
diff --git a/regex/fr-fr/numvalue.rx b/regex/fr-fr/numvalue.rx
new file mode 100644
index 00000000..ebbe5cea
--- /dev/null
+++ b/regex/fr-fr/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/fr-fr/sensor.rx b/regex/fr-fr/sensor.rx
new file mode 100644
index 00000000..775d8689
--- /dev/null
+++ b/regex/fr-fr/sensor.rx
@@ -0,0 +1,10 @@
+(dans)?(quel|quelle) est (l'état|le statut|la valeur) de (?P.*)
+(quelle|quel) est (le|la|l')?(état|statut|valeur) de ?(?P.*)
+(dis|donne) moi (le|la|l')?(statut|état|valeur) de ?(?P.*)
+lis (à haute voix )?(le|la|l' )?(statut|état|valeur) (de )?(?P.*)
+lit (à haute voix )?(le|la[l' )?(état|valeur|capteur) (?P.*)
+(comment|à combien|quel|quelle) est (la valeur|l'état|le capteur) (actuel|actuelle) ?(?P.*)
+dites moi (l'état|la valeur|le capteur) (actuel|actuelle) ?(?P.*)
+(état|valeur|capteur) (?P.*)
+donne moi la valeur de (?P.*)
+quel est le réglage du thermostat (?P.*)
diff --git a/regex/fr-fr/switch.rx b/regex/fr-fr/switch.rx
new file mode 100644
index 00000000..7d7b8c9e
--- /dev/null
+++ b/regex/fr-fr/switch.rx
@@ -0,0 +1,3 @@
+(?Pallume|éteins|commute) (?P.*)
+(?Pallume|éteins|commute) (?Ptous les|toutes les) (?Pinterrupteur(s)?|lumière(s)?|(boolean )?input(s)?)
+((tourne|mets|commute) )?(?P.*) (?Pen marche|on|en arrêt|off)
diff --git a/regex/fr-fr/tracker.rx b/regex/fr-fr/tracker.rx
new file mode 100644
index 00000000..d550d7c6
--- /dev/null
+++ b/regex/fr-fr/tracker.rx
@@ -0,0 +1,2 @@
+(où est|quelle est) (la position de) (?P.*)
+(?P.*) position
diff --git a/regex/gl-es/automation.rx b/regex/gl-es/automation.rx
new file mode 100644
index 00000000..f0aee01b
--- /dev/null
+++ b/regex/gl-es/automation.rx
@@ -0,0 +1 @@
+(activar|alternar|chamada) (?P.*)
diff --git a/regex/gl-es/climate.rx b/regex/gl-es/climate.rx
new file mode 100644
index 00000000..3f55811c
--- /dev/null
+++ b/regex/gl-es/climate.rx
@@ -0,0 +1 @@
+(establecer) o termostato (?P.*) a (?P[0-9]*)
diff --git a/regex/gl-es/dimming.rx b/regex/gl-es/dimming.rx
new file mode 100644
index 00000000..039ac9a7
--- /dev/null
+++ b/regex/gl-es/dimming.rx
@@ -0,0 +1,2 @@
+(establecer) (?:brillo de )?(?P.*) (a) (?P\d*)(?: porcento)?
+(escurecer|brillar|aumentar|diminuír) (?:brillo de )?(?P.*?) (?:ata)? (?P\d*)?(?: porcento)?
diff --git a/regex/gl-es/numvalue.rx b/regex/gl-es/numvalue.rx
new file mode 100644
index 00000000..ebbe5cea
--- /dev/null
+++ b/regex/gl-es/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/gl-es/sensor.rx b/regex/gl-es/sensor.rx
new file mode 100644
index 00000000..13051601
--- /dev/null
+++ b/regex/gl-es/sensor.rx
@@ -0,0 +1,10 @@
+(en)?(que|cal) (estado|valor) (é|ten) (?P.*)
+(como|que) é o (actual )?(estado|valor|sensor) (de|do)?(?P.*)
+dime (o|noso) (actual )?(estado|valor|sensor) (de |do )(?P.*)
+le (me )?(o )?((estado|valor|sensor) (de )?)?(?P.*)
+verifícame?(o )?(estado|valor|sensor) de (?P.*)
+como | cal) é o (actual)? (?P.*) (estado | valor | sensor)
+dime (o | noso) (actual)? (?P.*) (estado | valor | sensor)
+(estado | valor | sensor) (?P.*)
+Dime o valor de (?P.*)
+cal é o valor do termostato (?P.*)
diff --git a/regex/gl-es/switch.rx b/regex/gl-es/switch.rx
new file mode 100644
index 00000000..14b17c6e
--- /dev/null
+++ b/regex/gl-es/switch.rx
@@ -0,0 +1,3 @@
+(? P acender|apagar||alternar) (? P . *)
+(?PAcender|Apagar|Alternar) (?Ptodos | cada | algún(?Pinterruptor(es)?|luces(s)?|(boolean )?entrada(s)?)
+(? P . *) (? P Acender | Apagar)
diff --git a/regex/gl-es/tracker.rx b/regex/gl-es/tracker.rx
new file mode 100644
index 00000000..23d8d5aa
--- /dev/null
+++ b/regex/gl-es/tracker.rx
@@ -0,0 +1,2 @@
+(onde é | (cal é (a)?)? localización de) (? P . *)
+(?P.*) localización
diff --git a/regex/it-it/automation.rx b/regex/it-it/automation.rx
new file mode 100644
index 00000000..d7edc138
--- /dev/null
+++ b/regex/it-it/automation.rx
@@ -0,0 +1 @@
+(attiva|accendi|innesca|chiama) (?P.*)
diff --git a/regex/it-it/climate.rx b/regex/it-it/climate.rx
new file mode 100644
index 00000000..169d14cb
--- /dev/null
+++ b/regex/it-it/climate.rx
@@ -0,0 +1 @@
+(imposta) (?P.*) termostato a (?P[0-9]*)
diff --git a/regex/it-it/dimming.rx b/regex/it-it/dimming.rx
new file mode 100644
index 00000000..315d611b
--- /dev/null
+++ b/regex/it-it/dimming.rx
@@ -0,0 +1,2 @@
+(imposta) (?:luminosità di )?(?P.*) (a) (?P\d*)(?: percento)?
+(cala|aumenta|incrementa|diminuisci) (?:luminosità di )?(?P.*?) (?:del)? (?P\d*)?(?: percento)?
diff --git a/regex/it-it/numvalue.rx b/regex/it-it/numvalue.rx
new file mode 100644
index 00000000..ebbe5cea
--- /dev/null
+++ b/regex/it-it/numvalue.rx
@@ -0,0 +1 @@
+(?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/it-it/sensor.rx b/regex/it-it/sensor.rx
new file mode 100644
index 00000000..36d4eb62
--- /dev/null
+++ b/regex/it-it/sensor.rx
@@ -0,0 +1,10 @@
+(in )?(che|quale) (stato|valore|condizione) (è|ha) (?P.*)
+(come|qual) è (il|lo|la|l)?(corrente|attuale)?(stato|condizione|valore|sensore)?(dell|del|della)?(?P.*)
+dimmi (il|nostro) (|stato|condizione|valore) (|l'attuale |attuale )?(|stato|condizione|valore|sensore)?(del|della|dello|dell')?(?P.*)
+(leggi|leggimi|dammi la lettura)?(lo|del|dello|della)?((stato|condizione|valore|sensore) (di )?)?(?P.*)
+(leggi|leggimi|dammi la lettura)?(lo|dello|della)?(stato|condizione|valore|sensore)?(?P.*)
+(come|qual) è (la|lo|) (l'attuale)?(?P.*) (stato|condizione|valore|sensore)
+dimmi (l'|il nostro) (attuale)?(?P.*) (stato|condizione|valore|sensore)
+(stato|condizione|valore|sensore) (?P.*)
+dammi il valore di (?P.*)
+qual è il valore del termostato (?P.*)
diff --git a/regex/it-it/switch.rx b/regex/it-it/switch.rx
new file mode 100644
index 00000000..5bf1102f
--- /dev/null
+++ b/regex/it-it/switch.rx
@@ -0,0 +1,3 @@
+(() )?(?Paccendi|spegni|commuta|scambia) (?P.*)
+(() )?(?Paccendi|spegni|commuta|scambia) (?Ptutti|ogni|qualsiasi) (?Pinterruttore|interruttori?|luce|luci?|(booleano )?input(s)?)
+(() )?(?P.*) (?Paccesa|spenta)
diff --git a/regex/it-it/tracker.rx b/regex/it-it/tracker.rx
new file mode 100644
index 00000000..c486fb39
--- /dev/null
+++ b/regex/it-it/tracker.rx
@@ -0,0 +1,2 @@
+(dove è|(qual è (la )?)?posizione di) (?P.*)
+(?P.*) posizione
diff --git a/regex/nl-nl/automation.rx b/regex/nl-nl/automation.rx
new file mode 100644
index 00000000..fff9f3f3
--- /dev/null
+++ b/regex/nl-nl/automation.rx
@@ -0,0 +1 @@
+(activeer|start|activeer|bel) (?P.*)
diff --git a/regex/nl-nl/climate.rx b/regex/nl-nl/climate.rx
new file mode 100644
index 00000000..82037ed0
--- /dev/null
+++ b/regex/nl-nl/climate.rx
@@ -0,0 +1 @@
+(zet) (?P.*) thermostaat op (?P[0-9]*)
diff --git a/regex/nl-nl/dimming.rx b/regex/nl-nl/dimming.rx
new file mode 100644
index 00000000..e92b8d56
--- /dev/null
+++ b/regex/nl-nl/dimming.rx
@@ -0,0 +1,2 @@
+(zet) (?:helderheid van)?(?P.*) (op) (?P\d*)(?: procent)?
+(verduister|verhelder|verhoog|verlaag) (?:helderheid van)?(?P.*?) (?:met)? (?P\d*)?(?: procent)?
diff --git a/regex/nl-nl/numvalue.rx b/regex/nl-nl/numvalue.rx
new file mode 100644
index 00000000..778cc0d3
--- /dev/null
+++ b/regex/nl-nl/numvalue.rx
@@ -0,0 +1 @@
+?P100?%|[1-9][0-9]?%?)(\D|$)
diff --git a/regex/nl-nl/sensor.rx b/regex/nl-nl/sensor.rx
new file mode 100644
index 00000000..c5f4d349
--- /dev/null
+++ b/regex/nl-nl/sensor.rx
@@ -0,0 +1,10 @@
+(in )?welke (status|staat|waarde) (is|heeft) (?P