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 8, 2024
2 parents b1296c0 + 2e9fccc commit c8127c1
Show file tree
Hide file tree
Showing 87 changed files with 406 additions and 6,659 deletions.
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ group :development do
gem 'stringex', '2.8.6'
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
gem 'sassc', '2.1.0'
gem 'sass-embedded', '1.81.1'
gem 'rubocop', '1.69.0'
gem 'sass-embedded', '1.82.0'
gem 'rubocop', '1.69.1'
gem 'ruby-lsp', '0.22.1'
gem 'rackup', '2.2.1'
end
Expand Down
25 changes: 12 additions & 13 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ GEM
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
forwardable-extended (2.6.0)
google-protobuf (4.29.0-arm64-darwin)
google-protobuf (4.29.1-arm64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.29.0-x86_64-linux)
google-protobuf (4.29.1-x86_64-linux)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
Expand Down Expand Up @@ -66,7 +66,7 @@ GEM
nokogiri (~> 1.12)
jekyll-watch (2.2.1)
listen (~> 3.0)
json (2.8.2)
json (2.9.0)
kramdown (2.5.1)
rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
Expand Down Expand Up @@ -108,19 +108,19 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rbs (3.6.1)
rbs (3.7.0)
logger
regexp_parser (2.9.3)
rexml (3.3.9)
rouge (4.5.1)
rubocop (1.69.0)
rubocop (1.69.1)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.4, < 3.0)
rubocop-ast (>= 1.36.1, < 2.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.36.2, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.36.2)
Expand All @@ -134,10 +134,9 @@ GEM
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass (3.4.25)
sass-embedded (1.81.1-arm64-darwin)
google-protobuf (~> 4.28)
sass-embedded (1.81.1-x86_64-linux-gnu)
sass-embedded (1.82.0)
google-protobuf (~> 4.28)
rake (>= 13)
sass-globbing (1.1.5)
sass (>= 3.1)
sassc (2.1.0)
Expand All @@ -151,7 +150,7 @@ GEM
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.11672)
sorbet-runtime (0.5.11681)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
Expand All @@ -177,9 +176,9 @@ DEPENDENCIES
nokogiri (= 1.16.8)
rackup (= 2.2.1)
rake (= 13.2.1)
rubocop (= 1.69.0)
rubocop (= 1.69.1)
ruby-lsp (= 0.22.1)
sass-embedded (= 1.81.1)
sass-embedded (= 1.82.0)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
sinatra (= 4.1.1)
Expand Down
4 changes: 2 additions & 2 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ social:
# Home Assistant release details
current_major_version: 2024
current_minor_version: 12
current_patch_version: 0
date_released: 2024-12-04
current_patch_version: 1
date_released: 2024-12-06

# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
Expand Down
6 changes: 3 additions & 3 deletions source/_docs/configuration/templating.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -718,10 +718,10 @@ For example, if you wanted to select a field from `trigger` in an automation bas

### Time

`now()`, `relative_time()`, `today_at()`, and `utcnow()` are not supported in [limited templates](#limited-templates).
`now()`, `time_since()`, `time_until()`, `today_at()`, and `utcnow()` are not supported in [limited templates](#limited-templates).

- `now()` returns a datetime object that represents the current time in your time zone.
- You can also use: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()` and other [`datetime`](https://docs.python.org/3.8/library/datetime.html#datetime.datetime) attributes and functions.
- You can also use: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()` and other [`datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime) attributes and functions.
- Using `now()` will cause templates to be refreshed at the start of every new minute.
- `utcnow()` returns a datetime object of the current time in the UTC timezone.
- For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`.
Expand All @@ -742,7 +742,7 @@ For example, if you wanted to select a field from `trigger` in an automation bas
- `as_datetime(value, default)` converts a string containing a timestamp, or valid UNIX timestamp, to a datetime object. If that fails, it returns the `default` value or, if omitted, raises an error. When the input is already a datetime object it will be returned as is. in case the input is a datetime.date object, midnight will be added as time. This function can also be used as a filter.
- `as_timestamp(value, default)` converts a datetime object or string to UNIX timestamp. If that fails, returns the `default` value, or if omitted raises an error. This function can also be used as a filter.
- `as_local()` converts a datetime object to local time. This function can also be used as a filter.
- `strptime(string, format, default)` parses a string based on a [format](https://docs.python.org/3.10/library/datetime.html#strftime-and-strptime-behavior) and returns a datetime object. If that fails, it returns the `default` value or, if omitted, raises an error.
- `strptime(string, format, default)` parses a string based on a [format](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior) and returns a datetime object. If that fails, it returns the `default` value or, if omitted, raises an error.
- `time_since(datetime, precision)` converts a datetime object into its human-readable time string. The time string can be in seconds, minutes, hours, days, months, and years. `precision` takes an integer (full number) and indicates the number of units returned. The last unit is rounded. For example: `precision = 1` could return "2 years" while `precision = 2` could return "1 year 11 months". This function can also be used as a filter.
If the datetime is in the future, returns 0 seconds.
A precision of 0 returns all available units, default is 1.
Expand Down
20 changes: 20 additions & 0 deletions source/_integrations/bang_olufsen.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,26 @@ Device model:

The **Bang & Olufsen** integration uses the [Mozart API](https://bang-olufsen.github.io/mozart-open-api), which is a local REST API with a WebSocket notification channel for immediate state information for media metadata, playback progress, volume etc. The only exception to this is the repeat and shuffle controls which are polled every 30 seconds.

## Supported features

Currently, a single device with a `media_player` entity is created for each added physical device. For advanced automations, [events](#automations) are fired in Home Assistant.

### Media player

A number of features are available through the media player entity:

- See current metadata, progress, volume, etc.
- Control next/previous, play/pause, shuffle/repeat settings, volume, sound mode, audio and video sources, and more.
- Play various media through [play_media actions](#play_media-actions).
- Control multiroom audio through [Beolink](https://support.bang-olufsen.com/hc/en-us/articles/4411572883089-What-is-Beolink-Multiroom):
- Control with Home Assistant media_player grouping.
- Monitor current [Beolink state](#beolink) through media player properties.
- For more advanced usage, [custom Beolink services](#custom-actions) have been defined:
- Connect or expand to [ASE](https://support.bang-olufsen.com/hc/en-us/articles/24766979863441-Which-platform-is-my-Connected-Audio-product-based-on) products not available in Home Assistant.
- Expand sessions to all discovered devices.
- Connect to, expand to or unexpand devices.
- Set all connected Beolink devices to standby.

## Actions

### play_media actions
Expand Down
13 changes: 8 additions & 5 deletions source/_integrations/bluetooth.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -213,21 +213,24 @@ These adapters do not have a reset pin. If they stop responding, there is curren
- Alfa AWUS036EACS (RTL8821CU) - Frequent connection failures and drop outs
- BASEUS BR8651A01 BA04 - Advertisement drops out
- Belkin F8T003 ver 2. - Fails to setup and add successfully
- Bluegiga BLED112 - No driver available yet for USB id 2458:0001
- Bluegiga BLED112 - No driver available yet for USB ID `2458:0001`
- EDIMAX EW-7611ULB (RTL8723BU) - Frequent connection failures and drop outs
- EDUP EP-AC1661 (RTL8821CU) - Frequent connection failures and drop outs
- eppfun AK3040G (ATS2851) - No driver available yet for USB id 10d7:b012
- eppfun AK3040A (ATS2851) - No driver available yet for USB id 10d7:b012
- eppfun AK3040G (ATS2851) - No driver available yet for USB ID `10d7:b012`
- eppfun AK3040A (ATS2851) - No driver available yet for USB ID `10d7:b012`
- KOAMTAC KBD 401G (CSR8510A10) - Adapter is unstable and drops out
- TRIPP-LITE CU885A/U261-001-BT4 (CSR8510A10) - Adapter is unstable and drops out
- QUMOX Bluetooth 5.0 (Barrot 8041A02) - No working driver
- UGREEEN CM591 (ATS2851) - No driver available yet for USB id 10d7:b012
- UGREEEN CM591 (ATS2851) - No driver available yet for USB ID `10d7:b012`
- UGREEEN CM749 (Barrot chipset) 📶 - No driver available yet for USB ID `33fa:0010`
- tp-link UB400 (CSR4) - Frequent connection failures with active connections
- tp-link UB500 (RTL8761BU) - Frequent connection failures with active connections
- CSR 4.0 clones with USB id 0a12:0001 - Unrecoverable driver failure: These clones will usually show a message like `CSR: Unbranded CSR clone detected; adding workarounds and force-suspending once...` in the system log when they are plugged in.
- CSR 4.0 clones with USB ID `0a12:0001` - Unrecoverable driver failure: These clones will usually show a message like `CSR: Unbranded CSR clone detected; adding workarounds and force-suspending once...` in the system log when they are plugged in.
- Multiple unbranded adapters labeled with CSR 4.0
- 5 CORE CSR 4.0

📶 Denotes external antenna

## Multiple adapters

The Bluetooth integration employs automatic failover and connection path logic to achieve high availability.
Expand Down
2 changes: 1 addition & 1 deletion source/_integrations/cisco_webex_teams.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ To use this notification platform you will need an app (bot) token. To obtain a

- Detailed instructions can be found in the section titled **Creating a Webex Bot** on the [Webex Teams bot documentation](https://developer.webex.com/docs/bots).

You also need to specify the `room_id` that you wish to post messages into. The `room_id` can be found in one of two ways:
You also need to specify the `room_id` that you wish to post messages into. The `room_id` can be found in one of three ways:

1. Logging in at [Cisco Webex for Developers](https://developer.webex.com/) and navigate to `Documentation`>`API Reference`>`Messages` and select List Messages, or
2. Log into the web client at [web.webex.com](https://web.webex.com/),
Expand Down
16 changes: 16 additions & 0 deletions source/_integrations/command_line.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,22 @@ command_line:
default: 30
{% endconfiguration %}

## Troubleshooting

As **Command line** {% term integration %} is a yaml only integration, turning on extended logging needs to be done by setting the logging information in your {% term "`configuration.yaml`" %} file.

Entering this example in your configuration sets the default logging to info, and for `command_line` to debug. Once done, restart Home Assistant to enable.

{% raw %}
```yaml
# Set logging
logger:
default: info
logs:
homeassistant.components.command_line: debug
```
{% endraw%}
{% note %}
While `command` is accepting a template for `sensor` and `binary_sensor`, it's only the arguments that can be a template. This means the command name itself cannot be generated by a template, but it must be literally provided.
Expand Down
14 changes: 7 additions & 7 deletions source/_integrations/device_tracker.mqtt.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -205,27 +205,27 @@ You can use the command line tool `mosquitto_pub` shipped with `mosquitto` or th
To create the device_tracker:

```bash
mosquitto_pub -h 127.0.0.1 -t homeassistant/device_tracker/a4567d663eaf/config -m '{"state_topic": "a4567d663eaf/state", "name": "My Tracker", "payload_home": "home", "payload_not_home": "not_home"}'
mosquitto_pub -h 127.0.0.1 -t homeassistant/device_tracker/a4567d663eaf/config -m '{"state_topic": "homeassistant/device_tracker/a4567d663eaf/state", "name": "My Tracker", "payload_home": "home", "payload_not_home": "not_home"}'
```

To set the state of the device tracker to "home":

```bash
mosquitto_pub -h 127.0.0.1 -t a4567d663eaf/state -m 'home'
mosquitto_pub -h 127.0.0.1 -t homeassistant/device_tracker/a4567d663eaf/state -m 'home'
```

To set the state of the device tracker to a named location:

```bash
mosquitto_pub -h 127.0.0.1 -t a4567d663eaf/state -m 'location_name'
mosquitto_pub -h 127.0.0.1 -t homeassistant/device_tracker/a4567d663eaf/state -m 'location_name'
```

If the device supports GPS coordinates then they can be sent to Home Assistant by specifying an attributes topic (i.e. "json_attributes_topic") in the configuration payload:

- Attributes topic: `a4567d663eaf/attributes`
- Attributes topic: `homeassistant/device_tracker/a4567d663eaf/attributes`
- Example attributes payload:

Example message to be received at topic `a4567d663eaf/attributes`:
Example message to be received at topic `homeassistant/device_tracker/a4567d663eaf/attributes`:

```json
{
Expand All @@ -238,7 +238,7 @@ Example message to be received at topic `a4567d663eaf/attributes`:
To create the device_tracker with GPS coordinates support:

```bash
mosquitto_pub -h 127.0.0.1 -t homeassistant/device_tracker/a4567d663eaf/config -m '{"json_attributes_topic": "a4567d663eaf/attributes", "name": "My Tracker"}'
mosquitto_pub -h 127.0.0.1 -t homeassistant/device_tracker/a4567d663eaf/config -m '{"json_attributes_topic": "homeassistant/device_tracker/a4567d663eaf/attributes", "name": "My Tracker"}'
```

{% note %}
Expand All @@ -250,7 +250,7 @@ Using `state_topic` is optional when using `json_attributes_topic` to determine
To set the state of the device tracker to specific coordinates:

```bash
mosquitto_pub -h 127.0.0.1 -t a4567d663eaf/attributes -m '{"latitude": 32.87336, "longitude": -117.22743, "gps_accuracy": 1.2}'
mosquitto_pub -h 127.0.0.1 -t homeassistant/device_tracker/a4567d663eaf/attributes -m '{"latitude": 32.87336, "longitude": -117.22743, "gps_accuracy": 1.2}'
```


Expand Down
81 changes: 81 additions & 0 deletions source/_integrations/devolo_home_network.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,87 @@ This integration only supports using the API the devolo Home Network App uses. T

The devolo Gigabridge is the only device that comes with a default password. However, it seems that in factory default the password works for the device website but not for the API. If you give the device a new password via the website, it is applied to both and the integration starts working. Even using the same password again works.

## Example automations

### Restart PLC device on loss of pairing

PLC networks are sometimes flaky. To restore a network's state, it's sometimes a good idea to reboot the PLC device attached to the router if the number of PLC devices is lower than expected. If you apply this automation, keep in mind that devices might be expected on standby. In this example, the expected number of devices is 3.

{% raw %}

```yaml
alias: "PLC Feeder Restart"
description: "Restart device connected to the router if number of PLC devices is unexpected low"
triggers:
- trigger: numeric_state
entity_id:
- sensor.devolo_001_connected_plc_devices # Replace with your device's sensor
for:
hours: 0
minutes: 10
seconds: 0
below: 3
actions:
- action: button.press
target:
entity_id: button.devolo_001_restart_device # Replace with your device's button
```
{% endraw %}
### Notify on data rate drop
Noise on the electric wire can significant disturb PLC data rates. A notification close to a drop can help identify the action that lead to the drop. The following example takes 25% as threshold.
{% raw %}
```yaml
alias: "PLC data rate"
description: "PLC data rate dropped more than 25%"
triggers:
- entity_id:
- sensor.devolo_001_plc_downlink_phy_rate_devolo_002 # Replace with your device's sensors
- sensor.devolo_001_plc_uplink_phy_rate_devolo_002
trigger: state
conditions:
- condition: template
value_template: >-
# Checks if new value is less than 75% of previous value
{{ (trigger.to_state.state|float / trigger.from_state.state|float) < 0.75 }}
actions:
- action: notify.mobile_app_pixel_4a
data:
message: >-
PLC data rate of {{ trigger.to_state.name }} dropped to {{
trigger.to_state.state }}
{{trigger.to_state.attributes.unit_of_measurement}}
title: PLC data rate dropped
```
{% endraw %}
### Enable guest wifi on time basis
You might want to expose your guest wifi only during the day but turn it off at night.
{% raw %}
```yaml
alias: "Toggle guest Wi-Fi"
description: "Turn Guest Wi-Fi on and off"
triggers:
- trigger: time
at:
- "08:00:00"
- "17:00:00"
actions:
- action: switch.toggle
target:
entity_id: switch.devolo_001_enable_guest_wifi # Replace with your device's switch
```
{% endraw %}
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
Expand Down
14 changes: 14 additions & 0 deletions source/_integrations/edl21.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,17 @@ To use this integration with a remote transceiver you could use [ser2net](https:
Example `ser2net.conf` configuration file:

> 2001:raw:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT
Example `ser2net.yaml` (`ser2net` version 4.3.3) configuration entry:

```yaml
connection: &con2001
enable: on
accepter: tcp,2001
options:
telnet-brk-on-sync: false
kickolduser: true
connector: serialdev,/dev/ttyUSB0,9600n81,local
```
Use `socket://<ip-of-host>:2001` when adding the Smart Meter and asked for a "USB device path".
Loading

0 comments on commit c8127c1

Please sign in to comment.