Skip to content

Commit

Permalink
Merge branch 'current' into patch-5
Browse files Browse the repository at this point in the history
  • Loading branch information
AJediIAm authored Dec 6, 2024
2 parents 1f9c0f5 + 8be212c commit b1296c0
Show file tree
Hide file tree
Showing 9 changed files with 260 additions and 166 deletions.
2 changes: 1 addition & 1 deletion source/_includes/asides/docs_sitemap.html
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@
</li>

<li>
{% icon "mdi:microphone" %} Voice assistants
{% icon "mdi:microphone" %} {% active_link /voice_control/ Voice assistants %}
{% if root == 'voice_control' or include.docs_index %}
<ul>
<li>{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/ Assist up and running %}
Expand Down
163 changes: 116 additions & 47 deletions source/_integrations/bmw_connected_drive.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,79 @@ ha_platforms:
- sensor
- switch
ha_integration_type: integration
ha_quality_scale: platinum
---

The **BMW Connected Drive** {% term integration %} lets you retrieve data of your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account and a Connected Drive enabled vehicle for this to work.

The **BMW Connected Drive** {% term integration %} also works with (recent) Mini vehicles. You need to have a working Mini Connected account, and a Mini Connected enabled vehicle for this to work.
The **BMW Connected Drive** {% term integration %} lets you retrieve data of your BMW or MINI vehicle from the MyBMW portal (previously BMW Connected Drive).

{% note %}
The {% term entities %} available in Home Assistant heavily depend on your vehicle's capabilities (model year, headunit, etc.). The integration will make sure all available car attributes are added as entities.
{% endnote %}

## Prerequisites

You need to have an active MyBMW account with a connected car. For MINI vehicles, you register with MINI Connected.

For compatibility with your BMW vehicle check the [bimmer_connected page](https://github.com/bimmerconnected/bimmer_connected) on GitHub.

This integration provides the following platforms:
{% include integrations/config_flow.md %}

{% configuration_basic %}
Username:
description: |
Username of your MyBMW/MINI Connected account.

&nbsp;

**China**: Your username/phone number must be prefixed with `86`, i.e. `8612345678`.
Password:
description: "Password of your MyBMW/MINI Connected account."
Region:
description: "Region of your MyBMW/MINI Connected account."
options: china, north_america, rest_of_world
Captcha token (second step, only for North America and Rest of World):
description: |
The **North America** and **Rest of World** regions require a captcha challenge to be solved, that means you need to verify that you are not a robot.

- After entering your login data, a second step will ask for a `Captcha token` and provide you with a **link** to a website.
- Open this link, solve the **"Are you a human?"** challenge and press **Submit**.
- Copy the resulting token into Home Assistant and continue.

No data of your Home Assistant instance is shared with any third party during this step.
{% endconfiguration_basic %}

{% include integrations/option_flow.md %}

{% configuration_basic %}
Read-only:
description: No execution of actions to the vehicle. You can only send POIs to the vehicle via `notify`.
{% endconfiguration_basic %}

## Data updates

The integration will pull data from MyBMW/MINI servers at the following intervals:

| Region | Interval |
|---------------|------------|
| China | 5 minutes |
| North America | 10 minutes |
| Rest of world | 5 minutes |

{% note %}
This will only refresh data from the BMW/MINI servers and **not** from your car. Updates from the car to the servers typically happen:

- for **combustion engine** vehicles when the car is parked and the engine is shut off.
- for **electric** vehicles when the car is parked and turned off or while the car is charging.

While driving, the servers are not updated.
{% endnote %}

### Defining a custom polling interval

{% include common-tasks/define_custom_polling.md %}

## Available platforms

This {% term integration %} provides the following {% term platforms %}:

- Binary sensors: Doors, windows, condition based services, check control messages, parking lights, door lock state, charging status (electric cars) and connections status (electric cars).
- Device tracker: The location of your car.
Expand All @@ -56,32 +115,17 @@ This integration provides the following platforms:
- [Switches](/integrations/bmw_connected_drive/#switches): Display and toggle settings on your car.
- [Numbers](/integrations/bmw_connected_drive/#numbers): Display and control numeric charging related settings for (PH)EVs.

## Configuration

Enable the `BMW Connected Drive` integration via **Settings** -> **Devices & Services**.

{% important %}
The `North America` and `Rest of world` regions require a captcha challenge to be solved, i.e. you need to verify that you are a human.
After entering your login data, a second step will ask for a `Captcha token` and provide you with a link to a website.
Please open this link, solve the "are you a human?" challenge and press `Submit`.
Copy the resulting token into Home Assistant and continue.

No data of your Home Assistant instance is shared with any third party during this step.
{% endimportant %}

{% note %}
For `china`, it is mandatory to prefix your username/phone number with `86`, i.e. `8612345678`.
{% endnote %}
{% warning %}
Every platform except **binary sensors** and **sensors** can change the state of your vehicle. Once you change the state in Home Assistant, a command is sent to your car.

After connecting to your account, you can set the following settings in the integration's options:
&nbsp;

| Setting | Description |
|---------|-------------|
| Read-only | No execution of actions to the vehicle. Still possible to send messages and POIs via `notify` and to request a status update via `bmw_connected_drive.update_state`.
**Use with care!**
{% endwarning %}

## Notifications
### Notifications

The `bmw_connected_drive` integration offers a notification action. Using this action you can send Points of Interest (POI) to your vehicle. In your vehicle you can select this POI and the navigation will automatically start using the POI as a destination.
The **BMW Connected Drive** integration offers a notification action. Using this action you can send Points of Interest (POI) to your vehicle. In your vehicle, you can select this POI, and the navigation will automatically start using the POI as a destination.
The name of the action is `notify.bmw_connected_drive_<your_vehicle>`.

### Send a Point of Interest to your vehicle
Expand All @@ -101,31 +145,33 @@ actions:
country: Country # Optional
```
## Lock
### Lock
The vehicle can be locked and unlocked via the lock integration that is created automatically for each vehicle. Before invoking, make sure it's safe to lock/unlock the vehicle in the current situation.
The vehicle can be locked and unlocked via the lock integration that is created automatically for each vehicle.
## Buttons
{% note %}
If your vehicle does not provide its current state (no sensor entities are created), you will not see the current lock state either. You still can lock/unlock the car.
{% endnote %}
The `bmw_connected_drive` integration offers several buttons to trigger actions in your car. The buttons are automatically created and can be pressed/executed from the UI or using the `button.press` action. Please see the [button documentation](/integrations/button/) for more information.
### Buttons
Using these buttons will impact the state of your vehicle. So use these with care!
Buttons are used to trigger actions in your car. The buttons are automatically created and can be pressed/executed from the UI or using the `button.press` action. Please see the [button documentation](/integrations/button/) for more information.

### Air conditioning
#### Air conditioning

The air conditioning of the vehicle can be activated with the `button.<your_vehicle>_activate_air_conditioning` button.

What exactly is started here depends on the type of vehicle. It might range from just ventilation over auxiliary heating to real air conditioning. If your vehicle is equipped with auxiliary heating, only trigger this action if the vehicle is parked in a location where it is safe to use it (e.g., not in an underground parking or closed garage).

### Sound the horn
#### Sound the horn

The `button.<your_vehicle>_sound_horn` button sounds the horn of the vehicle. This option is not available in some countries (among which the UK). Use this feature responsibly, as it might annoy your neighbors.
The `button.<your_vehicle>_sound_horn` button sounds the horn of the vehicle. This option is not available in some countries (among which the UK). Use this feature responsibly, as it might annoy your neighbors.

### Flash the lights
#### Flash the lights

The `button.<your_vehicle>_light_flash` button flashes the lights of the vehicle.

### Vehicle finder
#### Vehicle finder

The `button.<your_vehicle>_find_vehicle` button requests the vehicle to update the GPS location. This can be used for older vehicles which don't automatically send the updated GPS location.

Expand All @@ -138,32 +184,55 @@ If you do not want this, trigger the `vehicle_finder` action from your phone and
On some older cars (non i3/i8 series produced before 7/2014) this action will fail in getting your vehicles position, if the vehicle is more than 1.5 km away from the location of your Home Assistant instance. This is a limitation of the BMW API.
{% endnote %}

## Selects
### Selects

If you have a (PH)EV, you can control the charging process through Home Assistant. The selects are created automatically depending on your vehicle's capabilities and can be pressed/executed from the UI or using the `select.select_option` action. For more information, please see the [select documentation](/integrations/select/).

Using these selects will impact the state of your vehicle. Use them with care!

- **Charging Mode**: Vehicle can be set to `IMMEDIATE_CHARGING` (charge as soon as plugged in) or `DELAYED_CHARGING` (charge only if within charging window). It can be used to start/stop charging if the charging window is set accordingly.
- **AC Charging Limit**: The maximum current a vehicle will charge with. Not available on all EVs.

## Switches
### Switches

If supported by your vehicle, you can display and toggle remote actions with start/stop functionality.

Using these selects will impact the state of your vehicle, use them with care!

- **Climate**: Toggle vehicle climatization. It is not possible to force it to heating/cooling, the vehicle will decide on its own. If turned on, it will run for 30 minutes (as if toggled via the MyBMW app).
- **Climate**: Toggle vehicle climatization. It is not possible to force it to heat or cool; the vehicle will decide on its own. If turned on, it will run for 30 minutes (as if toggled via the MyBMW app).
- **Charging**: Toggle vehicle charging if plugged in. Only available on some electric vehicles.

## Numbers
### Numbers

If you have a (PH)EV, you can control the charging process through Home Assistant. The number entities are created automatically depending on your vehicle's capabilities and can be changed from the UI or using the `number.set_value` action. For more information, please see the [number documentation](/integrations/number/).

Using these selects will impact the state of your vehicle, use them with care!

- **Target SoC**: Vehicle will charge until this battery level is reached. Not available on all EVs.

## Troubleshooting

{% details "Problem: Invalid authentication" %}

This can happen during initial login or after some time. Please do the following steps:
- Log in to your MyBMW **website** and verify your credentials (for example, ensure that username and password are correct).
- If you cannot login on the website, please **deactivate** polling (see [Defining a custom polling interval](#defining-a-custom-polling-interval)) and wait for **at least 24 hours**.
- Once you can login to the website, reconfigure/reauthenticate the integration via {% my integrations title="**Settings** > **Devices & services**" %}, click {% icon "mdi:dots-vertical" %} and select **Reconfigure**.
- Activate polling again

{% enddetails %}

{% details "Problem: Captcha validation missing" %}

Sometimes, your account can be force-logged-out. For **North America** and **Rest of World**, the recovery requires manual intervention.

Home Assistant will show a repair issue to **reconfigure** the integration. Follow the steps to log in again.

{% enddetails %}

## Known limitations

- The entities available to Home Assistant depend on your vehicle. Even inside the same model code (for example, U11 for BMW X1) you will see different entities, depending on your specific car's features.
- Not all features, mostly related to charging control for (PH)EVs, are implemented. If you have a functionality in your MyBMW/MINI app that is not yet available, search for an existing feature request in the [`bimmer_connected` discussions](https://github.com/bimmerconnected/bimmer_connected/discussions) or create a new one.

## Removing the integration

{% include integrations/remove_device_service.md %}

## Disclaimer

This software is not affiliated with or endorsed by BMW Group.
11 changes: 7 additions & 4 deletions source/_integrations/onkyo.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@ ha_iot_class: Local Push
ha_platforms:
- media_player
ha_release: 0.17
related:
- docs: /docs/configuration/
title: Configuration file
---

The `onkyo` {% term integration %} allows you to control [Onkyo](https://www.onkyo.com) and [Integra](http://www.integrahometheater.com) (from 2011 onward) and also [Pioneer](https://www.pioneerelectronics.com) (from 2016 onward) receivers using Home Assistant.
Expand Down Expand Up @@ -42,10 +39,12 @@ Input sources:
description: Mappings of input sources to their names.
{% endconfiguration_basic %}

### Zones
## Zones

If your receiver has a second or third zone available, they are displayed as additional media players with functionality similar to the main zone.

## Actions

### Action `onkyo_select_hdmi_output`

Changes HDMI output of your receiver
Expand Down Expand Up @@ -97,3 +96,7 @@ script:
media_content_type: "radio"
media_content_id: "1"
```

## Supported devices

Network receivers from Onkyo and Integra are supported starting with models from the year 2011. Pioneer network receivers are supported starting with models from 2016.
8 changes: 6 additions & 2 deletions source/_integrations/unifiprotect.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,8 @@ conditions:
- condition: template
value_template: >
{% raw %}{{
not trigger.event.data.old_state.attributes.get('restored', false) and
not trigger.event.data.old_state.state == 'unavailable' and
trigger.event.data.new_state is not none and
trigger.event.data.new_state.attributes.event_type == 'scanned' and
trigger.event.data.new_state.attributes.nfc_id in ['ABCDEF1234', 'OTHER_ALLOWED_ID']
Expand All @@ -388,8 +390,8 @@ When processing NFC scans, always validate the scanned ID. Unknown NFC cards als
- **Event Attributes**:
- **event_type**: Either `identified` or `not_identified`
- **event_id**: A unique ID that identifies the fingerprint event.
- **ulp_id**: The fingerprint ID used to identify the person. If no fingerprint match is found, the `ulp_id` will be empty and the `event_type` will be `not_identified`.
- **Description**: This event is triggered when a fingerprint is scanned by a compatible device. If the fingerprint is recognized, it provides a `ulp_id`, which represents the fingerprint ID. If the fingerprint is not recognized, the `event_type` will be set to `not_identified`, and no `ulp_id` will be provided.
- **ulp_id**: The ID used to identify the person. If no fingerprint match is found, the `ulp_id` will be empty and the `event_type` will be `not_identified`.
- **Description**: This event is triggered when a fingerprint is scanned by a compatible device. If the fingerprint is recognized, it provides a `ulp_id`, which represents the a internal user ID. If the fingerprint is not recognized, the `event_type` will be set to `not_identified`, and no `ulp_id` will be provided.

#### Example G4 Doorbell Fingerprint Identified Automation

Expand All @@ -405,6 +407,8 @@ condition:
- condition: template
value_template: >
{% raw %}{{
not trigger.event.data.old_state.attributes.get('restored', false) and
not trigger.event.data.old_state.state == 'unavailable' and
trigger.event.data.new_state is not none and
trigger.event.data.new_state.attributes.event_type == 'identified' and
(trigger.event.data.new_state.attributes.ulp_id|default('')) != '' and
Expand Down
2 changes: 1 addition & 1 deletion source/_posts/2024-12-04-release-202412.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Happy holidays! And for the last time in 2024: Enjoy the release!
[the #1 open source project on GitHub]: /blog/2024/11/18/event-wrapup-github-universe-24/#we-are-number-1
[the live stream on 19 December]: https://youtube.com/live/ZgoaoTpIhm8
[the Open Home Foundation]: https://www.openhomefoundation.org/
[the WTH announcement blog]: /blog/2024/12/01/announcing-month-of-what-the-heck/
[the WTH announcement blog]: /blog/2024/11/30/the-month-of-what-the-heck/

<!--more-->

Expand Down
2 changes: 1 addition & 1 deletion source/addons/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,5 @@

<p>
Check the Home Assistant forums for
<a href="https://community.home-assistant.io/tags/hassio-repository">add-on repositories managed by the community</a>.
<a href="https://community.home-assistant.io/tags/addon-repository">add-on repositories managed by the community</a>.
</p>
Loading

0 comments on commit b1296c0

Please sign in to comment.