From 7fc6c86abf656ae1d264de7d9a2b863679821279 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Wed, 25 Jan 2023 11:47:59 +0100 Subject: [PATCH 01/10] Document K as a valid unit for temperature sensor and number (#25932) --- source/_integrations/number.markdown | 2 +- source/_integrations/sensor.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/number.markdown b/source/_integrations/number.markdown index d5b5ff93b8e..cd6bbf5ad90 100644 --- a/source/_integrations/number.markdown +++ b/source/_integrations/number.markdown @@ -58,7 +58,7 @@ The type of data a number represents impacts how it is displayed in the frontend - **sound_pressure**: Sound pressure in dB or dBA - **speed**: Generic speed in ft/s, in/d, in/h, km/h, kn, m/s, mph, or mm/d - **sulphur_dioxide**: Concentration of sulphur dioxide in µg/m³ -- **temperature**: Temperature in °C or °F +- **temperature**: Temperature in °C, °F or K - **volatile_organic_compounds**: Concentration of volatile organic compounds in µg/m³ - **voltage**: Voltage in V, mV - **volume**: Generic volume in L, mL, gal, fl. oz., m³, ft³, or CCF diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown index 8ead805349d..4f6490f4783 100644 --- a/source/_integrations/sensor.markdown +++ b/source/_integrations/sensor.markdown @@ -58,7 +58,7 @@ The type of data a sensor returns impacts how it is displayed in the frontend. T - **sound_pressure**: Sound pressure in dB or dBA - **speed**: Generic speed in ft/s, in/d, in/h, km/h, kn, m/s, mph or mm/d - **sulphur_dioxide**: Concentration of sulphur dioxide in µg/m³ -- **temperature**: Temperature in °C or °F +- **temperature**: Temperature in °C, °F or K - **timestamp**: Datetime object or timestamp string (ISO 8601) - **volatile_organic_compounds**: Concentration of volatile organic compounds in µg/m³ - **voltage**: Voltage in V, mV From bc068381df34a69954c1af8d94f754436a51b0a1 Mon Sep 17 00:00:00 2001 From: Vaarlion <59558433+Vaarlion@users.noreply.github.com> Date: Wed, 25 Jan 2023 11:51:55 +0100 Subject: [PATCH 02/10] Add doc for new `contains` jinja filter and test (#25890) --- .../_docs/configuration/templating.markdown | 56 ++++++++++++++----- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 9c4fffd7ec4..b5164732616 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -239,7 +239,7 @@ The same thing can also be expressed as a filter: {% raw %} ```text -{{ expand(['device_tracker.paulus', 'group.child_trackers']) +{{ expand(['device_tracker.paulus', 'group.child_trackers']) | selectattr("attributes.battery", 'defined') | join(', ', attribute="attributes.battery") }} ``` @@ -262,7 +262,7 @@ The same thing can also be expressed as a test: {% raw %} ```text -{{ expand('group.energy_sensors') +{{ expand('group.energy_sensors') | selectattr("state", 'is_number') | join(', ') }} ``` @@ -450,7 +450,7 @@ For example, if you wanted to select a field from `trigger` in an automation bas ```yaml # Is the current time past 10:15? - {{ now() > today_at("10:15") }} + {{ now() > today_at("10:15") }} ``` {% endraw %} @@ -465,8 +465,8 @@ For example, if you wanted to select a field from `trigger` in an automation bas {% raw %} ```yaml - # 77 minutes before current time. - {{ now() - timedelta( hours = 1, minutes = 17 ) }} + # 77 minutes before current time. + {{ now() - timedelta( hours = 1, minutes = 17 ) }} ``` {% endraw %} @@ -476,15 +476,15 @@ For example, if you wanted to select a field from `trigger` in an automation bas {% raw %} ```yaml - # Renders to "00:10:00" - {{ as_timedelta("PT10M") }} + # Renders to "00:10:00" + {{ as_timedelta("PT10M") }} ``` {% endraw %} - Filter `timestamp_local(default)` converts a UNIX timestamp to the ISO format string representation as date/time in your local timezone. If that fails, returns the `default` value, or if omitted raises an error. If a custom string format is needed in the string, use `timestamp_custom` instead. - Filter `timestamp_utc(default)` converts a UNIX timestamp to the ISO format string representation representation as date/time in UTC timezone. If that fails, returns the `default` value, or if omitted raises an error. If a custom string format is needed in the string, use `timestamp_custom` instead. -- Filter `timestamp_custom(format_string, local=True, default)` converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is the default. If that fails, returns the `default` value, or if omitted raises an error. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime). +- Filter `timestamp_custom(format_string, local=True, default)` converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is the default. If that fails, returns the `default` value, or if omitted raises an error. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime).
@@ -681,11 +681,11 @@ The last argument of the closest function has an implicit `expand`, and can take {% raw %} ```text -Closest out of given entities: +Closest out of given entities: {{ closest(['group.children', states.device_tracker]) }} -Closest to a coordinate: +Closest to a coordinate: {{ closest(23.456, 23.456, ['group.children', states.device_tracker]) }} -Closest to some entity: +Closest to some entity: {{ closest(states.zone.school, ['group.children', states.device_tracker]) }} ``` @@ -696,16 +696,42 @@ It will also work as a filter over an iterable group of entities or groups: {% raw %} ```text -Closest out of given entities: +Closest out of given entities: {{ ['group.children', states.device_tracker] | closest }} -Closest to a coordinate: +Closest to a coordinate: {{ ['group.children', states.device_tracker] | closest(23.456, 23.456) }} -Closest to some entity: +Closest to some entity: {{ ['group.children', states.device_tracker] | closest(states.zone.school) }} ``` {% endraw %} +### Contains + +Jinja provides by default a [`in` operator](https://jinja.palletsprojects.com/en/latest/templates/#other-operators) how return `True` when one element is `in` a provided list. +The `contains` test and filter allow you to do the exact opposite and test for a list containing an element. This is particularly useful in `select` or `selectattr` filter, as well as to check if a device has a specific attribute, a `supported_color_modes`, a specific light effect. + +Some examples: +{% raw %} + +- `{{ state_attr('light.dining_room', 'effect_list') | contains('rainbow') }}` will return `true` if the light has a `rainbow` effect. +- `{{ expand('light.office') | selectattr("attributes.supported_color_modes", 'contains', 'color_temp') | list }}` will return all light that support color_temp in the office group. +- ```text + {% set current_month = now().month %} + {% set extra_ambiance = [ + {'name':'Halloween', 'month': [10,11]}, + {'name':'Noel', 'month': [1,11,12]} + ]%} + {% set to_add = extra_ambiance | selectattr('month', 'contains', current_month ) | map(attribute='name') | list %} + {% set to_remove = extra_ambiance | map(attribute='name') | reject('in', to_add) | list %} + {{ (state_attr('input_select.light_theme', 'options') + to_add ) | unique | reject('in', to_remove) | list }} + ``` + This more complex example uses the `contains` filter to match the current month with a list. In this case, it's used to generate a list of light theme to give to the `Input select: Set options` service. + + +{% endraw %} + + ### Numeric functions and filters Some of these functions can also be used in a [filter](https://jinja.palletsprojects.com/en/latest/templates/#id11). This means they can act as a normal function like this `sqrt(2)`, or as part of a filter like this `2|sqrt`. @@ -863,7 +889,7 @@ The following overview contains a couple of options to get the needed values: # Incoming value: {"primes": [2, 3, 5, 7, 11, 13]} -# Extract first prime number +# Extract first prime number {{ value_json.primes[0] }} # Format output From 78d98d071ef56e9ba83a377a7acc29331eba397f Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 25 Jan 2023 12:21:38 +0100 Subject: [PATCH 03/10] Remove Almond integration (#25935) --- .textlintrc.json | 1 - CODEOWNERS | 1 - source/_integrations/almond.markdown | 75 ---------------------------- source/_redirects | 1 + 4 files changed, 1 insertion(+), 77 deletions(-) delete mode 100644 source/_integrations/almond.markdown diff --git a/.textlintrc.json b/.textlintrc.json index dfeb972a496..f63d815c550 100644 --- a/.textlintrc.json +++ b/.textlintrc.json @@ -28,7 +28,6 @@ "Alarm.com", "AlarmDecoder", "Alexa", - "Almond", "Alpha Vantage", "Amazon Alexa", "Amazon Polly", diff --git a/CODEOWNERS b/CODEOWNERS index 7db65f4f74d..6fccd50d732 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -32,7 +32,6 @@ source/_integrations/alarm_control_panel.markdown @home-assistant/core source/_integrations/alert.markdown @home-assistant/core @frenck source/_integrations/alexa.markdown @home-assistant/cloud @ochlocracy @jbouwh source/_integrations/alexa.smart_home.markdown @home-assistant/cloud @ochlocracy -source/_integrations/almond.markdown @gcampax @balloob source/_integrations/amberelectric.markdown @madpilot source/_integrations/ambiclimate.markdown @danielhiversen source/_integrations/ambient_station.markdown @bachya diff --git a/source/_integrations/almond.markdown b/source/_integrations/almond.markdown deleted file mode 100644 index d9aa73d9c53..00000000000 --- a/source/_integrations/almond.markdown +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Almond -description: Instructions on how to setup Almond within Home Assistant. -ha_category: - - Voice -ha_iot_class: Local Polling -ha_release: '0.102' -ha_config_flow: true -ha_codeowners: - - '@gcampax' - - '@balloob' -ha_domain: almond -ha_integration_type: integration ---- - -[Almond](https://almond.stanford.edu/) is an open, privacy-preserving virtual assistant by [Stanford Open Virtual Assistant Lab](https://oval.cs.stanford.edu/). It allows you, among other things, to control Home Assistant using natural language. Once installed, it will be available in the user interface via the microphone icon in the top right. - -Almond consists of three parts: - -- Almond Server: Knows about Home Assistant and your data. Executes your sentences. -- LUInet: Neural network that converts your sentences into Thingtalk programs. -- Thingpedia: Skills that provide the building blocks for Thingtalk programs. - -Architectural overview of how all pieces fit together. - -## Installation - -### Home Assistant add-on installation - -To install Almond Server, go to the Home Assistant add-on store, search for Genie and click on Install. Once started, it will initiate a configuration flow to finish set up in Home Assistant. You can find it on the integrations page in the configuration panel. - -### Manual installation - -You can install Almond Server by following [the instructions in their README](https://github.com/stanford-oval/almond-server#running-almond-server). - -Before linking it to Home Assistant, you will need to visit the Almond UI once to create a password. It is by default available on port 3000. - -Once installed, configure Almond like this: - -```yaml -# Example configuration.yaml entry -almond: - type: local - host: http://127.0.0.1:3000 -``` - -The Almond integration does not update configuration entries yet. If you make a change to configuration.yaml, you will need to remove the configuration entry and then restart Home Assistant. - -### Almond Web - -Stanford offers a hosted version of Almond Server called Almond Web. To use this, go to the integrations page and add Almond using the add integration flow. - -Your Home Assistant installation needs to be externally accessible if you want Almond Web to be able to control Home Assistant. - -### Almond Web - Manual installation - -It is possible to set up Almond Web manually. You will need to create your own client ID and secret in the web interface. - -```yaml -# Example configuration.yaml entry -almond: - type: oauth2 - client_id: AAAAAAAAAAAAA - client_secret: BBBBBBBBBBBBBBBBB -``` - -You can now go to the integrations page and start the configuration flow. - -## Language Support - -Almond is currently limited to the English language. This is not a technical limitation but requires specialized engineering effort. Almond has currently no public timeline for adding other languages. - -## Device Support - -Almond is constantly improving. It does not currently support all devices, but we're working with Almond on improving this. diff --git a/source/_redirects b/source/_redirects index 2ba5898b889..a4ea2966ba7 100644 --- a/source/_redirects +++ b/source/_redirects @@ -419,6 +419,7 @@ # Removed integrations /integrations/alarmdotcom /more-info/removed-integration 301 +/integrations/almond /more-info/removed-integration 301 /integrations/ambee /more-info/removed-integration 301 /integrations/apns /more-info/removed-integration 301 /integrations/arlo /more-info/removed-integration 301 From 2be083ae77b0c989da4b20c0cbb73d479f25b897 Mon Sep 17 00:00:00 2001 From: Allen Porter Date: Wed, 25 Jan 2023 03:44:09 -0800 Subject: [PATCH 04/10] Add documentation for calendar create event service (#25834) --- source/_integrations/calendar.markdown | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/source/_integrations/calendar.markdown b/source/_integrations/calendar.markdown index ecafdee3080..174bc570baf 100644 --- a/source/_integrations/calendar.markdown +++ b/source/_integrations/calendar.markdown @@ -38,6 +38,8 @@ Some calendar integrations allow Home Assistant to manage your calendars directly from Home Assistant. In this case, you can add new events by clicking the “Add event” button in the lower right corner of the calendar dashboard. +Also see [Services](#services) below. + ## Automation Calendar [Triggers](/docs/automation/trigger) enable automation based on an @@ -139,3 +141,41 @@ automation: {% endraw %} {% enddetails %} + +## Services + +Some calendar integrations allow Home Assistant to manage your calendars +directly using services. The services provided by some calendar entities are described below or you can read more about [Service Calls](/docs/scripts/service-calls/). + +### Service `calendar.create_event` + +Add a new calendar event. A calendar `target` is selected with a [Target Selector](/docs/blueprint/selectors/#target-selector) and the `data` payload supports the following fields: + +| Service data attribute | Optional | Description | Example | +| ---------------------- | -------- | ----------- | --------| +| `summary` | no | Acts as the title of the event. | Bowling +| `description` | yes | The description of the event. | Birthday bowling +| `start_date_time` | yes | The date and time the event should start. | 2019-03-10 20:00:00 +| `end_date_time` | yes | The date and time the event should end. | 2019-03-10 23:00:00 +| `start_date` | yes | The date the whole day event should start. | 2019-03-10 +| `end_date` | yes | The date the whole day event should end. | 2019-03-11 +| `in` | yes | Days or weeks that you want to create the event in. | "days": 2 + + +
+ +You either use `start_date_time` and `end_date_time`, or `start_date` and `end_date`, or `in`. + +
+ +This is a full example of service call in YAML: + +```yaml +service: calendar.create_event +target: + entity_id: calendar.device_automation_schedules +data: + summary: "Example" + start_date: "2022-10-01" + end_date: "2022-10-02" +``` \ No newline at end of file From 0235ecae95f1247c07ba3f35e50b827bb84b1de4 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Wed, 25 Jan 2023 13:35:02 +0100 Subject: [PATCH 05/10] Add `number` plaform to Alexa Smart Home (#25931) --- source/_integrations/alexa.smart_home.markdown | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index 633f81e567f..7c5a850a67b 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -70,7 +70,7 @@ Steps to Integrate an Amazon Alexa Smart Home Skill with Home Assistant: - [Humidifier Mode](#humidifier-mode) - [Image Processing](#image-processing) - [Presence Detection Notification](#presence-detection-notification) - - [Input Number](#input-number) + - [Input Number and Number](#input-number-and-number) - [Light](#light) - [Brightness](#brightness) - [Color Temperature](#color-temperature) @@ -488,7 +488,7 @@ The following integrations are currently supported: - [Humidifier Mode](#humidifier-mode) - [Image Processing](#image-processing) - [Presence Detection Notification](#presence-detection-notification) - - [Input Number](#input-number) + - [Input Number and Number](#input-number-and-number) - [Light](#light) - [Brightness](#brightness) - [Color Temperature](#color-temperature) @@ -852,15 +852,15 @@ Display category will default to `CAMERA` to enable presence detected notificati
-### Input Number +### Input Number and Number -Control an `input_number` entity with Alexa. Configures Alexa with the `min`, `max`, `step`, and `unit_of_measurement` attributes for the entity. +Control an `input_number` or `number` entity with Alexa. Configures Alexa with the `min`, `max`, `step`, and `unit_of_measurement` attributes for the entity. - _"Alexa, set [entity name] to forty five [unit of measurement]."_ - _"Alexa, increase the [entity name] by two."_ - _"Alexa, set the [entity name] to maximum."_ -The following table lists the possible friendly name synonyms available for a Input Number with `min: -90, max: 90, step: 45, unit_of_measurement: degrees`. +The following table lists the possible friendly name synonyms available for a Input Number or Number with `min: -90, max: 90, step: 45, unit_of_measurement: degrees`. | Fan Range | Friendly Name Synonyms | | --------- | ----------------------------------------- | @@ -870,6 +870,10 @@ The following table lists the possible friendly name synonyms available for a In | 45 | _"forty five"_ | | 90 | _"ninety"_, _"maximum"_, _"max"_ | +The `unit_of_measurement` will be used to select a supported unit label from the [Global Alexa catalog](https://developer.amazon.com/en-US/docs/alexa/device-apis/resources-and-assets.html#global-alexa-catalog). If there is no match it will be assigned a preset controller. + +The following units are supported: °C, °F, K, m, km, mi, yd, in, kg, g, oz, lb, L, ft³, m³, gal and % + ### Light Control lights with _"turn on"_ and _"turn off"_ utterances, adjust brightness, color, and temperature. From 7d6ac8de434b870e2c80816d9d744d2129d9edb9 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Wed, 25 Jan 2023 15:26:06 +0100 Subject: [PATCH 06/10] Follow-up to #25843 (frontend state color theme variables) (#25934) Co-authored-by: Paul Bottein --- source/_integrations/frontend.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_integrations/frontend.markdown b/source/_integrations/frontend.markdown index 92891e3f074..867d96ad78d 100644 --- a/source/_integrations/frontend.markdown +++ b/source/_integrations/frontend.markdown @@ -76,18 +76,18 @@ They can be changed it using `primary-color` and `accent-color` variables. #### State color -Each entity has its own color, based on `domain`, `device_class`, and `state`, to be easily recognizable. Theses colors are used in [dashboards](/dashboards/) and [history](/integrations/history/). Home Assistant has default rules that fit most use cases. +Each entity has its own color, based on `domain`, `device_class`, and `state`, to be easily recognizable. Theses colors are used in [dashboards](/dashboards/) and [history](/integrations/history/). Home Assistant has default color rules that fit most use cases. Here is a list of domains that support colors: `alarm_control_panel`, `alert`, `automation`, `binary_sensor`, `calendar`, `camera`, `climate`, `cover`, `device_tracker`, `fan`, `group`, `humidifier`, `input_boolean`, `light`, `lock`, `media_player`, `person`, `plant`, `remote`, `schedule`, `script`, `siren`, `sun`, `switch`, `timer`, `update`, and `vacuum`. -These rules can be customized using theme variables: +The color rules can be customized using theme variables: 1. `state-{domain}-{device_class}-{state}-color` 2. `state-{domain}-{state}-color` 3. `state-{domain}-(active|inactive)-color` 4. `state-(active|inactive)-color` -Note that if multiple properties match your entity, the first one will be used in this order. +Note that the variables will be used in the listed order, so if multiple match your entity, the first matching variable (= most specific one) will be used. ```yaml # Example configuration.yaml entry From 36b9adf718d92fd027491f411aa9e3f08fad8991 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 25 Jan 2023 11:30:34 -0500 Subject: [PATCH 07/10] Add OpenAI docs (#25942) --- .../openai_conversation.markdown | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 source/_integrations/openai_conversation.markdown diff --git a/source/_integrations/openai_conversation.markdown b/source/_integrations/openai_conversation.markdown new file mode 100644 index 00000000000..87d6a66779b --- /dev/null +++ b/source/_integrations/openai_conversation.markdown @@ -0,0 +1,21 @@ +--- +title: OpenAI conversation agent +description: Instructions on how to integrate OpenAI as a conversation agent +ha_category: + - Voice +ha_release: 2023.2 +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - '@balloob' +ha_domain: openai_conversation +ha_integration_type: service +--- + +The OpenAI integration adds a conversation agent powered by [OpenAI](https://www.openai.com) in Home Assistant. + +This conversation agent is unable to control your house. It can only query information that has been provided by Home Assistant. To be able to answer questions about your house, Home Assistant will need to provide OpenAI with the details of your house, which include areas, devices and their states. + +This integration requires an API key to use, [which you can generate here.](https://beta.openai.com/account/api-keys). + +{% include integrations/config_flow.md %} From 52577a28bd585de1046dbc7935e831d52114e847 Mon Sep 17 00:00:00 2001 From: Duco Sebel <74970928+DCSBL@users.noreply.github.com> Date: Wed, 25 Jan 2023 17:52:42 +0100 Subject: [PATCH 08/10] Add Energy Meter as supported device for HomeWizard Cloud communication switch (#25946) --- source/_integrations/homewizard.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/homewizard.markdown b/source/_integrations/homewizard.markdown index 8e54ebacf0a..025395ddcb4 100644 --- a/source/_integrations/homewizard.markdown +++ b/source/_integrations/homewizard.markdown @@ -87,4 +87,4 @@ This feature is currently only available for the Wifi P1 meter and the Wifi Ener The HomeWizard Energy devices are designed to work with the HomeWizard Energy app and require communication with the HomeWizard cloud to make them function with the app. The "Cloud connection" configuration toggle can be used to turn off all communication with the HomeWizard cloud, making the device fully local. The device cannot communicate with the app, and the device won't receive any future firmware updates. Cloud communication is restored when the switch is turned on again. Cloud communications are also restored after a factory reset, or when the device is put in pairing mode. -This feature is currently only available for the Wifi P1 meter and the Wifi Energy Socket. +This feature is currently not available for the Wifi Water meter. From ef94a8aa3469c133b31659a1e962cf414a932ac4 Mon Sep 17 00:00:00 2001 From: tronikos Date: Wed, 25 Jan 2023 09:13:23 -0800 Subject: [PATCH 09/10] Google Assistant SDK: update conversation screenshot and add a note that bubbles might be empty (#25746) * Update google_assistant_sdk.markdown * Update conversation.png * Update note Co-authored-by: Paulus Schoutsen --- .../google_assistant_sdk.markdown | 8 ++------ .../google_assistant_sdk/conversation.png | Bin 28998 -> 40011 bytes 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/source/_integrations/google_assistant_sdk.markdown b/source/_integrations/google_assistant_sdk.markdown index e2e7c103d54..fec45b9eadc 100644 --- a/source/_integrations/google_assistant_sdk.markdown +++ b/source/_integrations/google_assistant_sdk.markdown @@ -158,12 +158,6 @@ data: ## Conversation agent -In `configuration.yaml` add: - -```yaml -conversation: -``` - In the configure options of the integration, enable the conversation agent and then you can converse with Google Assistant by pressing the microphone in the frontend (supported browsers only): ![Screenshot Conversation](/images/integrations/google_assistant_sdk/conversation.png) @@ -175,3 +169,5 @@ service: conversation.process data: text: "Dim the family room lights" ``` + +Note: due to a bug in the Google Assistant API, not all responses contain text, especially for home control commands, like turn on the lights. These will be shown as ``. For those, Google Assistant responds with HTML and Home Assistant integrations are [not allowed](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md) to parse HTML. diff --git a/source/images/integrations/google_assistant_sdk/conversation.png b/source/images/integrations/google_assistant_sdk/conversation.png index e656ba4fd178f8a40266c35d9eee595bd98dc664..ee696e0533f218a6eb02c4e30828304f81405668 100644 GIT binary patch literal 40011 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 U%hb}8{_hE)uBNS8t!x?bKgTFp-2eap literal 28998 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 z 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 Date: Wed, 25 Jan 2023 07:34:00 -1000 Subject: [PATCH 10/10] Add Mopeka integration (#25910) --- source/_integrations/mopeka.markdown | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 source/_integrations/mopeka.markdown diff --git a/source/_integrations/mopeka.markdown b/source/_integrations/mopeka.markdown new file mode 100644 index 00000000000..1bb82c38d2c --- /dev/null +++ b/source/_integrations/mopeka.markdown @@ -0,0 +1,27 @@ +--- +title: Mopeka +description: Instructions on how to integrate Mopeka devices into Home Assistant. +ha_category: + - Sensor +ha_bluetooth: true +ha_release: 2023.2 +ha_iot_class: Local Push +ha_codeowners: + - '@bdraco' +ha_domain: mopeka +ha_config_flow: true +ha_platforms: + - sensor +ha_integration_type: integration +--- + +Integrates [Mopeka](https://www.mopekaiot.com/) devices into Home Assistant. + +{% include integrations/config_flow.md %} + +The Mopeka integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +## Supported devices + +- [Pro Plus](https://www.mopekaiot.com/product/mopeka-pro-plus-sensor) (M1015) +- [Pro Check](https://www.mopekaiot.com/product/mopeka-pro-check-sensor-aluminum-lpg-cylinders-w-collar) (M1017)