mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-15 13:26:54 +00:00
Merge branch 'current' into rc
This commit is contained in:
commit
f5bf4e738c
@ -3,6 +3,7 @@ FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT}
|
||||
|
||||
ARG NODE_VERSION="lts/*"
|
||||
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"
|
||||
RUN su vscode -c "/usr/local/rvm/bin/rvm fix-permissions"
|
||||
|
||||
# Locale env vars
|
||||
ENV \
|
||||
@ -17,7 +18,3 @@ RUN \
|
||||
ack \
|
||||
&& echo "en_US UTF-8" > /etc/locale.gen \
|
||||
&& locale-gen en_US.UTF-8
|
||||
|
||||
# Install the specific version of bundler we need
|
||||
COPY Gemfile.lock ./
|
||||
RUN gem install bundler -v `awk 'c&&c--;/BUNDLED WITH/{c=1}' Gemfile.lock`
|
@ -1,16 +1,19 @@
|
||||
{
|
||||
"name": "home-assistant.io",
|
||||
"build": {
|
||||
"dockerfile": "../Dockerfile",
|
||||
"dockerfile": "./Dockerfile",
|
||||
"context": "..",
|
||||
"args": {
|
||||
"VARIANT": "2.7",
|
||||
"NODE_VERSION": "18"
|
||||
"VARIANT": "3.1",
|
||||
"NODE_VERSION": "20"
|
||||
}
|
||||
},
|
||||
"appPort": [4000],
|
||||
"onCreateCommand": "bundle install && npm install",
|
||||
"containerEnv": { "DEVCONTAINER": "true" },
|
||||
"containerEnv": {
|
||||
"DEVCONTAINER": "true",
|
||||
"BUNDLE_PATH": "vendor/bundle"
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
|
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@ -12,7 +12,7 @@ jobs:
|
||||
- name: Setting up Node.js
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: 16.x
|
||||
node-version: 20
|
||||
cache: "npm"
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
@ -29,7 +29,7 @@ jobs:
|
||||
- name: Setting up Node.js
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: 16.x
|
||||
node-version: 20
|
||||
cache: "npm"
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
|
@ -1 +1 @@
|
||||
2.7.2
|
||||
3.1.4
|
||||
|
2
.vscode/extensions.json
vendored
2
.vscode/extensions.json
vendored
@ -4,7 +4,7 @@
|
||||
"editorconfig.editorconfig",
|
||||
"GitHub.vscode-pull-request-github",
|
||||
"mrmlnc.vscode-scss",
|
||||
"rebornix.Ruby",
|
||||
"Shopify.ruby-lsp",
|
||||
"streetsidesoftware.code-spell-checker",
|
||||
"taichi.vscode-textlint",
|
||||
"yzhang.markdown-all-in-one"
|
||||
|
8
Gemfile
8
Gemfile
@ -4,12 +4,14 @@ ruby '> 2.5.0'
|
||||
|
||||
group :development do
|
||||
gem 'rake', '13.1.0'
|
||||
gem 'jekyll', '4.3.2'
|
||||
gem 'jekyll', '4.3.3'
|
||||
gem 'compass', '1.0.3'
|
||||
gem 'sass-globbing', '1.1.5'
|
||||
gem 'stringex', '2.8.6'
|
||||
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
|
||||
gem 'sassc', '2.1.0'
|
||||
gem 'rubocop', '1.59.0'
|
||||
gem 'ruby-lsp', '0.13.2'
|
||||
end
|
||||
|
||||
group :jekyll_plugins do
|
||||
@ -19,8 +21,8 @@ group :jekyll_plugins do
|
||||
gem 'jekyll-toc', '0.18.0'
|
||||
end
|
||||
|
||||
gem 'sinatra', '3.1.0'
|
||||
gem 'nokogiri', '1.15.5'
|
||||
gem 'sinatra', '3.2.0'
|
||||
gem 'nokogiri', '1.16.0'
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library
|
||||
|
70
Gemfile.lock
70
Gemfile.lock
@ -3,6 +3,8 @@ GEM
|
||||
specs:
|
||||
addressable (2.8.6)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
ast (2.4.2)
|
||||
base64 (0.2.0)
|
||||
chunky_png (1.4.0)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.23.10)
|
||||
@ -23,14 +25,13 @@ GEM
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
eventmachine (1.2.7-x64-mingw32)
|
||||
ffi (1.16.3)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (3.25.1)
|
||||
google-protobuf (3.25.1-x86_64-linux)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.2)
|
||||
jekyll (4.3.3)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
@ -58,54 +59,76 @@ GEM
|
||||
nokogiri (~> 1.12)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
json (2.7.1)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
language_server-protocol (3.17.0.3)
|
||||
liquid (4.0.4)
|
||||
listen (3.8.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
mini_portile2 (2.8.5)
|
||||
multi_json (1.15.0)
|
||||
mustermann (3.0.0)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nokogiri (1.15.5)
|
||||
mini_portile2 (~> 2.8.2)
|
||||
nokogiri (1.16.0-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
parallel (1.24.0)
|
||||
parser (3.2.2.4)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
prism (0.19.0)
|
||||
public_suffix (5.0.4)
|
||||
racc (1.7.3)
|
||||
rack (2.2.8)
|
||||
rack-protection (3.1.0)
|
||||
rack-protection (3.2.0)
|
||||
base64 (>= 0.1.0)
|
||||
rack (~> 2.2, >= 2.2.4)
|
||||
rainbow (3.1.1)
|
||||
rake (13.1.0)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
regexp_parser (2.8.3)
|
||||
rexml (3.2.6)
|
||||
rouge (4.2.0)
|
||||
rubocop (1.59.0)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.2.2.4)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 3.0)
|
||||
rubocop-ast (1.30.0)
|
||||
parser (>= 3.2.1.0)
|
||||
ruby-lsp (0.13.2)
|
||||
language_server-protocol (~> 3.17.0)
|
||||
prism (>= 0.19.0, < 0.20)
|
||||
sorbet-runtime (>= 0.5.5685)
|
||||
ruby-progressbar (1.13.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.4.25)
|
||||
sass-embedded (1.63.6)
|
||||
google-protobuf (~> 3.23)
|
||||
rake (>= 13.0.0)
|
||||
sass-embedded (1.63.6-x64-mingw32)
|
||||
google-protobuf (~> 3.23)
|
||||
sass-embedded (1.69.7-x86_64-linux-gnu)
|
||||
google-protobuf (~> 3.25)
|
||||
sass-globbing (1.1.5)
|
||||
sass (>= 3.1)
|
||||
sassc (2.1.0)
|
||||
sassc (2.1.0-x86_64-linux)
|
||||
ffi (~> 1.9)
|
||||
sassc (2.1.0-x64-mingw32)
|
||||
ffi (~> 1.9)
|
||||
sinatra (3.1.0)
|
||||
sinatra (3.2.0)
|
||||
mustermann (~> 3.0)
|
||||
rack (~> 2.2, >= 2.2.4)
|
||||
rack-protection (= 3.1.0)
|
||||
rack-protection (= 3.2.0)
|
||||
tilt (~> 2.0)
|
||||
sorbet-runtime (0.5.11164)
|
||||
stringex (2.8.6)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
@ -118,21 +141,22 @@ GEM
|
||||
webrick (1.8.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x64-mingw32
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
compass (= 1.0.3)
|
||||
jekyll (= 4.3.2)
|
||||
jekyll (= 4.3.3)
|
||||
jekyll-commonmark (= 1.4.0)
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-toc (= 0.18.0)
|
||||
nokogiri (= 1.15.5)
|
||||
nokogiri (= 1.16.0)
|
||||
rake (= 13.1.0)
|
||||
rubocop (= 1.59.0)
|
||||
ruby-lsp (= 0.13.2)
|
||||
sass-globbing (= 1.1.5)
|
||||
sassc (= 2.1.0)
|
||||
sinatra (= 3.1.0)
|
||||
sinatra (= 3.2.0)
|
||||
stringex (= 2.8.6)
|
||||
tzinfo (~> 2.0)
|
||||
tzinfo-data
|
||||
@ -141,4 +165,4 @@ RUBY VERSION
|
||||
ruby 2.6.2p47
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.28
|
||||
2.5.3
|
||||
|
@ -7,12 +7,7 @@ description: The Conditional card displays another card based on conditions.
|
||||
|
||||
The conditional card displays another card based on conditions.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/conditional_card.gif' alt='Screenshot of the conditional card'>
|
||||
Screenshot of the conditional card.
|
||||
</p>
|
||||
|
||||
Note: if there are multiple conditions there will be treated as an 'and' condition. This means that for the card to show, _all_ conditions must be met.
|
||||

|
||||
|
||||
{% include dashboard/edit_dashboard.md %}
|
||||
Note that while editing the dashboard, the card will always be shown, so be sure to exit editing mode to test the conditions.
|
||||
@ -40,6 +35,7 @@ card:
|
||||
|
||||
## Examples
|
||||
|
||||
Only show when all the conditions are met:
|
||||
```yaml
|
||||
type: conditional
|
||||
conditions:
|
||||
@ -62,6 +58,25 @@ card:
|
||||
- light.bed_light
|
||||
```
|
||||
|
||||
Example condition where only one of the conditions needs to be met:
|
||||
```yaml
|
||||
type: conditional
|
||||
conditions:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: state
|
||||
entity: binary_sensor.co_alert
|
||||
state: 'on'
|
||||
- condition: state
|
||||
entity: binary_sensor.rookmelder
|
||||
state: 'on'
|
||||
card:
|
||||
type: entities
|
||||
entities:
|
||||
- binary_sensor.co_alert
|
||||
- binary_sensor.rookmelder
|
||||
```
|
||||
|
||||
## Card conditions
|
||||
|
||||
### State
|
||||
|
@ -3,7 +3,7 @@ title: "YAML"
|
||||
description: "Details about YAML to configure Home Assistant."
|
||||
---
|
||||
|
||||
Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. YAML might take a while to get used to but is really powerful in allowing you to express complex configurations.
|
||||
Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. YAML might take a while to get used to but is powerful in allowing you to express complex configurations.
|
||||
|
||||
While more and more integrations are configured through the UI, for some, you will add code in your [`configuration.yaml`](/docs/configuration/) file to specify its settings.
|
||||
|
||||
@ -21,15 +21,15 @@ notify:
|
||||
|
||||
The basics of YAML syntax are block collections and mappings containing key-value pairs. Each item in a collection starts with a `-` while mappings have the format `key: value`. This is somewhat similar to a Hash table or more specifically a dictionary in Python. These can be nested as well. **Beware that if you specify duplicate keys, the last value for a key is used**.
|
||||
|
||||
Note that indentation is an important part of specifying relationships using YAML. Things that are indented are nested "inside" things that are one level higher. So in the above example, `platform: pushbullet` is a property of (nested inside) the `notify` integration.
|
||||
In YAML, indentation is important for specifying relationships. Indented lines are nested inside lines that are one level higher. In the above example, `platform: pushbullet` is a property of (nested inside) the `notify` integration.
|
||||
|
||||
Getting the right indentation can be tricky if you're not using an editor with a fixed width font. Tabs are not allowed to be used for indentation. Convention is to use 2 spaces for each level of indentation.
|
||||
Getting the right indentation can be tricky if you're not using an editor with a fixed-width font. Tabs are not allowed to be used for indentation. The convention is to use 2 spaces for each level of indentation.
|
||||
|
||||
You can use the online service [YAML Validator](https://codebeautify.org/yaml-validator/) to check if your YAML syntax is correct before loading it into Home Assistant which will save you some time. If you do so, be aware that this is a third-party service and is not maintained by the Home Assistant community.
|
||||
To check if your YAML syntax is correct before loading it into Home Assistant, you can use the third-party service [YAML Validator](https://codebeautify.org/yaml-validator/) (not maintained by the Home Assistant community).
|
||||
|
||||
<div class='note'>
|
||||
|
||||
Please pay attention to not storing private data (passwords, API keys, etc.) directly in your `configuration.yaml` file. Private data can be stored in either a [separate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this security problem.
|
||||
Pay attention to not storing private data (passwords, API keys, etc.) directly in your `configuration.yaml` file. Private data can be stored in either a [separate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this security problem.
|
||||
|
||||
</div>
|
||||
|
||||
@ -76,7 +76,7 @@ example:
|
||||
|
||||
#### Default value
|
||||
|
||||
If an environment variable is not set, you can fallback to a default value.
|
||||
If an environment variable is not set, you can fall back to a default value.
|
||||
|
||||
```yaml
|
||||
example:
|
||||
|
@ -1044,7 +1044,6 @@ Only temperature sensors are configured at this time.
|
||||
|
||||
- _"Alexa, what's the temperature in the kitchen?"_
|
||||
- _"Alexa, what's the upstairs temperature?"_
|
||||
- _"Alexa, what's the temperature of my ex-girlfriend's heart?"_
|
||||
|
||||
### Switch, Input Boolean
|
||||
|
||||
|
@ -16,6 +16,9 @@ This platform allows you to detect presence by looking at connected devices to a
|
||||
Supported devices (tested):
|
||||
|
||||
- Aruba AP-105
|
||||
- Aruba AP-505
|
||||
- Aruba AP-515
|
||||
- Aruba IAP-315
|
||||
- Aruba IAP-335
|
||||
- Aruba Instant IAP-275
|
||||
|
||||
|
@ -28,6 +28,6 @@ In addition to a lock entity, each added dKey lock will also have:
|
||||
|
||||
<div class='note warning'>
|
||||
|
||||
The Dormakaba dKey lock is currently not working with USB dongles or built-in Bluetooth radios, only [ESPHome Bluetooth proxies](/integrations/bluetooth/#remote-adapters-bluetooth-proxies) work reliably.
|
||||
The Dormakaba dKey lock is currently not working with USB dongles or built-in Bluetooth radios, only [ESPHome Bluetooth proxies](/integrations/bluetooth/#remote-adapters-bluetooth-proxies) configured to allow active connections work reliably.
|
||||
|
||||
</div>
|
||||
|
@ -13,7 +13,7 @@ ha_config_flow: true
|
||||
ha_integration_type: integration
|
||||
---
|
||||
|
||||
This is a sensor to collect information from your Growatt inverters using [Growatt server](https://server.growatt.com/) by default. It is possible to specify an alternative endpoint server at configuration time e.g., [SMTEN](https://server.smten.com/).
|
||||
This is a sensor to collect information from your Growatt inverters using [Growatt server](https://server.growatt.com/) by default. It is possible to specify an alternative endpoint server at configuration time e.g., [SMTEN](https://server.smten.com/). To see the latest supported servers, add the integration in Home Assistant to see the configuration options.
|
||||
|
||||
This will log into your Growatt account and grab the first "Plant", after which it collects the inverters on this plant and creates sensors for these inverters as well as total sensors.
|
||||
|
||||
|
@ -23,6 +23,14 @@ This integration also offers a button to pick up and then hang up the call to pr
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Compatibility
|
||||
|
||||
Reported models with this integration include that work:
|
||||
- [StarTech.com USB56KEMH2](https://www.startech.com/en-us/networking-io/usb56kemh2)
|
||||
|
||||
Devices that did not work:
|
||||
- [StarTech.com USB56KEM3](https://www.startech.com/en-us/networking-io/usb56kem3)
|
||||
|
||||
## Examples
|
||||
|
||||
An example automation:
|
||||
|
@ -14,7 +14,7 @@ ha_platforms:
|
||||
ha_integration_type: integration
|
||||
---
|
||||
|
||||
[OPNsense](https://opnsense.org/) is an open source HardenedBSD based firewall
|
||||
[OPNsense](https://opnsense.org/) is an open source FreeBSD based firewall
|
||||
and routing platform. There is currently support for the following device types
|
||||
within Home Assistant:
|
||||
|
||||
|
@ -51,10 +51,10 @@ This sensor is enabled by default. The default polling interval is 30 seconds.
|
||||
|
||||
The sensor exposes the different round trip times in milliseconds measured by `ping` as attributes:
|
||||
|
||||
- `round_trip_time_mdev`
|
||||
- `round_trip_time_avg`
|
||||
- `round_trip_time_min`
|
||||
- `round_trip_time_max`
|
||||
- `round_trip_time_mdev` - the standard deviation
|
||||
- `round_trip_time_avg` - the average round trip time
|
||||
- `round_trip_time_min` - the shortest round trip time
|
||||
- `round_trip_time_max` - the longest round trip time
|
||||
|
||||
<div class='note'>
|
||||
When run on Windows systems, the round trip time attributes are rounded to the nearest millisecond and the mdev value is unavailable.
|
||||
|
@ -107,7 +107,7 @@ Change an active timer. This changes the duration of the timer with the duration
|
||||
|
||||
### Service `timer.pause`
|
||||
|
||||
Pause a running timer. This will retain the remaining duration for later continuation. You can also use `entity_id: all` and all active timers will be paused.
|
||||
Pause a running timer. This will retain the remaining duration for later continuation. To resume a timer use the `timer.start` service without passing a duration. You can also use `entity_id: all` and all active timers will be paused.
|
||||
|
||||
| Service data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
|
Loading…
x
Reference in New Issue
Block a user