Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2025-01-21 21:26:52 +01:00
commit 55e5d2903a
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
221 changed files with 6177 additions and 1044 deletions

View File

@ -11,7 +11,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9.0.0
- uses: actions/stale@v9.1.0
if: ${{ github.repository_owner == 'home-assistant' }}
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -161,6 +161,7 @@ source/_integrations/config.markdown @home-assistant/core
source/_integrations/configurator.markdown @home-assistant/core
source/_integrations/control4.markdown @lawtancool
source/_integrations/conversation.markdown @home-assistant/core @synesthesiam
source/_integrations/cookidoo.markdown @miaucl
source/_integrations/coolmaster.markdown @OnFreund
source/_integrations/counter.markdown @fabaff
source/_integrations/cover.markdown @home-assistant/core
@ -223,6 +224,7 @@ source/_integrations/ecovacs.markdown @mib1185 @edenhaus @Augar
source/_integrations/ecowitt.markdown @pvizeli
source/_integrations/efergy.markdown @tkdrob
source/_integrations/egardia.markdown @jeroenterheerdt
source/_integrations/eheimdigital.markdown @autinerd
source/_integrations/electrasmart.markdown @jafar-atili
source/_integrations/electric_kiwi.markdown @mikey0000
source/_integrations/elevenlabs.markdown @sorgfresser
@ -329,7 +331,7 @@ source/_integrations/google_photos.markdown @allenporter
source/_integrations/google_sheets.markdown @tkdrob
source/_integrations/google_tasks.markdown @allenporter
source/_integrations/google_travel_time.markdown @eifinger
source/_integrations/govee_ble.markdown @bdraco @PierreAronnax
source/_integrations/govee_ble.markdown @bdraco
source/_integrations/govee_light_local.markdown @Galorhallen
source/_integrations/gpsd.markdown @fabaff @jrieger
source/_integrations/gree.markdown @cmroche
@ -414,7 +416,7 @@ source/_integrations/intellifire.markdown @jeeftor
source/_integrations/intesishome.markdown @jnimmo
source/_integrations/ios.markdown @robbiet480
source/_integrations/iotawatt.markdown @gtdiehl @jyavenard
source/_integrations/iotty.markdown @pburgio @shapournemati-iotty
source/_integrations/iotty.markdown @shapournemati-iotty
source/_integrations/iperf3.markdown @rohankapoorcom
source/_integrations/ipma.markdown @dgomes
source/_integrations/iqvia.markdown @bachya
@ -428,6 +430,7 @@ source/_integrations/israel_rail.markdown @shaiu
source/_integrations/iss.markdown @DurgNomis-drol
source/_integrations/ista_ecotrend.markdown @tr4nt0r
source/_integrations/isy994.markdown @bdraco @shbatm
source/_integrations/ituran.markdown @shmuelzon
source/_integrations/izone.markdown @Swamp-Ig
source/_integrations/jellyfin.markdown @j-stienstra @ctalkington
source/_integrations/jewish_calendar.markdown @tsvi
@ -571,6 +574,7 @@ source/_integrations/nfandroidtv.markdown @tkdrob
source/_integrations/nibe_heatpump.markdown @elupus
source/_integrations/nice_go.markdown @IceBotYT
source/_integrations/nightscout.markdown @marciogranzotto
source/_integrations/niko_home_control.markdown @VandeurenGlenn
source/_integrations/nilu.markdown @hfurubotten
source/_integrations/nina.markdown @DeerMaximum
source/_integrations/nissan_leaf.markdown @filcole
@ -595,13 +599,14 @@ source/_integrations/nzbget.markdown @chriscla
source/_integrations/obihai.markdown @dshokouhi @ejpenney
source/_integrations/octoprint.markdown @rfleming71
source/_integrations/ohmconnect.markdown @robbiet480
source/_integrations/ohme.markdown @dan-r
source/_integrations/ollama.markdown @synesthesiam
source/_integrations/ombi.markdown @larssont
source/_integrations/onboarding.markdown @home-assistant/core
source/_integrations/oncue.markdown @bdraco @peterager
source/_integrations/ondilo_ico.markdown @JeromeHXP
source/_integrations/onewire.markdown @garbled1 @epenet
source/_integrations/onkyo.markdown @arturpragacz
source/_integrations/onkyo.markdown @arturpragacz @eclair4151
source/_integrations/onvif.markdown @hunterjm
source/_integrations/open_meteo.markdown @frenck
source/_integrations/openai_conversation.markdown @balloob
@ -627,6 +632,7 @@ source/_integrations/p1_monitor.markdown @klaasnicolaas
source/_integrations/palazzetti.markdown @dotvav
source/_integrations/panel_custom.markdown @home-assistant/frontend
source/_integrations/pcs_lighting.markdown @gwww
source/_integrations/peblar.markdown @frenck
source/_integrations/peco.markdown @IceBotYT
source/_integrations/peco_opower.markdown @tronikos
source/_integrations/pegel_online.markdown @mib1185
@ -647,6 +653,7 @@ source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa
source/_integrations/point.markdown @fredrike
source/_integrations/poolsense.markdown @haemishkyd
source/_integrations/portlandgeneral.markdown @tronikos
source/_integrations/powerfox.markdown @klaasnicolaas
source/_integrations/powerwall.markdown @bdraco @jrester @daniel-simpson
source/_integrations/private_ble_device.markdown @Jc2k
source/_integrations/profiler.markdown @bdraco
@ -775,6 +782,7 @@ source/_integrations/skybell.markdown @tkdrob
source/_integrations/slack.markdown @tkdrob @fletcherau
source/_integrations/sleepiq.markdown @mfugate1 @kbickar
source/_integrations/slide.markdown @ualex73
source/_integrations/slide_local.markdown @dontinelli
source/_integrations/slimproto.markdown @marcelveldt
source/_integrations/sma.markdown @kellerza @rklomp
source/_integrations/smappee.markdown @bsmappee
@ -810,11 +818,10 @@ source/_integrations/squeezebox.markdown @rajlaud @pssc @peteS-UK
source/_integrations/srp_energy.markdown @briglx
source/_integrations/starline.markdown @anonym-tsk
source/_integrations/starlink.markdown @boswelja
source/_integrations/statistics.markdown @ThomDietrich
source/_integrations/statistics.markdown @ThomDietrich @gjohansson-ST
source/_integrations/steam_online.markdown @tkdrob
source/_integrations/steamist.markdown @bdraco
source/_integrations/stiebel_eltron.markdown @fucm
source/_integrations/stookalert.markdown @fwestenberg @frenck
source/_integrations/stookwijzer.markdown @fwestenberg
source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter
source/_integrations/stt.markdown @home-assistant/core
@ -941,6 +948,7 @@ source/_integrations/wake_word.markdown @home-assistant/core @synesthesiam
source/_integrations/wallbox.markdown @hesselonline
source/_integrations/waqi.markdown @joostlek
source/_integrations/water_heater.markdown @home-assistant/core
source/_integrations/watergate.markdown @adam-the-hero
source/_integrations/watson_tts.markdown @rutkai
source/_integrations/watttime.markdown @bachya
source/_integrations/waze_travel_time.markdown @eifinger
@ -989,6 +997,7 @@ source/_integrations/yi.markdown @bachya
source/_integrations/yolink.markdown @matrixd2
source/_integrations/youless.markdown @gjong
source/_integrations/youtube.markdown @joostlek
source/_integrations/zabbix.markdown @kruton
source/_integrations/zamg.markdown @killer0071234
source/_integrations/zengge.markdown @emontnemery
source/_integrations/zeroconf.markdown @bdraco

View File

@ -10,9 +10,9 @@ 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.83.0'
gem 'rubocop', '1.69.2'
gem 'ruby-lsp', '0.22.1'
gem 'sass-embedded', '1.83.4'
gem 'rubocop', '1.70.0'
gem 'ruby-lsp', '0.23.6'
gem 'rackup', '2.2.1'
end
@ -24,7 +24,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '4.1.1'
gem 'nokogiri', '1.17.2'
gem 'nokogiri', '1.18.2'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library

View File

@ -5,7 +5,7 @@ GEM
public_suffix (>= 2.0.2, < 7.0)
ast (2.4.2)
base64 (0.2.0)
bigdecimal (3.1.8)
bigdecimal (3.1.9)
chunky_png (1.4.0)
colorator (1.1.0)
commonmarker (0.23.11)
@ -21,22 +21,22 @@ GEM
sass (>= 3.3.0, < 3.5)
compass-import-once (1.0.5)
sass (>= 3.2, < 3.5)
concurrent-ruby (1.3.4)
concurrent-ruby (1.3.5)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
ffi (1.17.1-arm64-darwin)
ffi (1.17.1-x86_64-linux-gnu)
forwardable-extended (2.6.0)
google-protobuf (4.29.2-arm64-darwin)
google-protobuf (4.29.3-arm64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.29.2-x86_64-linux)
google-protobuf (4.29.3-x86_64-linux)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
i18n (1.14.6)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
jekyll (4.3.4)
addressable (~> 2.4)
@ -76,17 +76,17 @@ GEM
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.4)
logger (1.6.5)
mercenary (0.4.0)
multi_json (1.15.0)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
nokogiri (1.17.2-arm64-darwin)
nokogiri (1.18.2-arm64-darwin)
racc (~> 1.4)
nokogiri (1.17.2-x86_64-linux)
nokogiri (1.18.2-x86_64-linux-gnu)
racc (~> 1.4)
parallel (1.26.3)
parser (3.3.6.0)
parser (3.3.7.0)
ast (~> 2.4.1)
racc
pathutil (0.16.2)
@ -99,7 +99,8 @@ GEM
base64 (>= 0.1.0)
logger (>= 1.6.0)
rack (>= 3.0.0, < 4)
rack-session (2.0.0)
rack-session (2.1.0)
base64 (>= 0.1.0)
rack (>= 3.0.0)
rackup (2.2.1)
rack (>= 3)
@ -108,12 +109,12 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rbs (3.7.0)
rbs (3.8.1)
logger
regexp_parser (2.9.3)
regexp_parser (2.10.0)
rexml (3.4.0)
rouge (4.5.1)
rubocop (1.69.2)
rubocop (1.70.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
@ -125,7 +126,7 @@ GEM
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.37.0)
parser (>= 3.3.1.0)
ruby-lsp (0.22.1)
ruby-lsp (0.23.6)
language_server-protocol (~> 3.17.0)
prism (>= 1.2, < 2.0)
rbs (>= 3, < 4)
@ -134,9 +135,10 @@ GEM
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass (3.4.25)
sass-embedded (1.83.0)
google-protobuf (~> 4.28)
rake (>= 13)
sass-embedded (1.83.4-arm64-darwin)
google-protobuf (~> 4.29)
sass-embedded (1.83.4-x86_64-linux-gnu)
google-protobuf (~> 4.29)
sass-globbing (1.1.5)
sass (>= 3.1)
sassc (2.1.0)
@ -150,14 +152,14 @@ GEM
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.11708)
sorbet-runtime (0.5.11766)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
tilt (2.5.0)
tilt (2.6.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2024.2)
tzinfo-data (1.2025.1)
tzinfo (>= 1.0.0)
unicode-display_width (2.6.0)
webrick (1.9.1)
@ -173,12 +175,12 @@ DEPENDENCIES
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.19.0)
nokogiri (= 1.17.2)
nokogiri (= 1.18.2)
rackup (= 2.2.1)
rake (= 13.2.1)
rubocop (= 1.69.2)
ruby-lsp (= 0.22.1)
sass-embedded (= 1.83.0)
rubocop (= 1.70.0)
ruby-lsp (= 0.23.6)
sass-embedded (= 1.83.4)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
sinatra (= 4.1.1)

View File

@ -106,10 +106,10 @@ social:
account: "https://fosstodon.org/@homeassistant"
# Home Assistant release details
current_major_version: 2024
current_minor_version: 12
current_patch_version: 5
date_released: 2024-12-20
current_major_version: 2025
current_minor_version: 1
current_patch_version: 3
date_released: 2025-01-20
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

506
package-lock.json generated
View File

@ -20,7 +20,7 @@
"remark-lint-prohibited-strings": "^4.0.0",
"remark-lint-unordered-list-marker-style": "^4.0.0",
"remark-stringify": "^11.0.0",
"textlint": "^14.4.0",
"textlint": "^14.4.2",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"
@ -295,6 +295,15 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/@keyv/serialize": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.2.tgz",
"integrity": "sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==",
"dev": true,
"dependencies": {
"buffer": "^6.0.3"
}
},
"node_modules/@npmcli/config": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/@npmcli/config/-/config-6.3.0.tgz",
@ -416,68 +425,68 @@
"dev": true
},
"node_modules/@textlint/ast-tester": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.0.tgz",
"integrity": "sha512-pCKEUDaZVvvj/uZOTTUgU1tTkNsK+ufNs4Xx5BsBAqy+E0aAJJ47c8h2WIoL/MJniK6ZLctsDIwaZ4z9rUvrsQ==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.2.tgz",
"integrity": "sha512-w1MlGa9DsJgp2W+ifNZ57vIWDoRVRExy0rXek7/voxBmSpTo76zHq74ggwjOrmoZpX8ADkvDc0tUWWWyiUVskQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0",
"debug": "^4.3.4"
"@textlint/ast-node-types": "^14.4.2",
"debug": "^4.4.0"
}
},
"node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/ast-traverse": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.0.tgz",
"integrity": "sha512-P6UrqKlXd9Lm0kJ1O8vyQU0/btXULiUHhE5nLZMnTNfgZYG3VasQ9BUyDHJn19O4PhUrIzZJusMi1XFcb3Y46Q==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.2.tgz",
"integrity": "sha512-HQp1iatBiLn9Qg8wqN3WxYWoiHJnkcv+30MdVPe5d0CmnBBXXRqFO1eSUHUlYarGNc3LyE0GFEkS72D7lefyNg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0"
"@textlint/ast-node-types": "^14.4.2"
}
},
"node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/config-loader": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.0.tgz",
"integrity": "sha512-TCYVhQ+wP/Gs7P5BDAfyRpLJ5tohicTSwQapd/xPjByXFtGx8xlsbLQHTWcodFFpty1O57KRPRsRDhvuTAA2bQ==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.2.tgz",
"integrity": "sha512-qaR38dkGURC5XED5wR8OnJtPrK9Or76Do1P11rvRGgVu0Tn3n6UYQclbh8em8xnWWMuvJUzbTUSg2XE1h1uu3A==",
"dev": true,
"dependencies": {
"@textlint/kernel": "^14.4.0",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"@textlint/kernel": "^14.4.2",
"@textlint/module-interop": "^14.4.2",
"@textlint/resolver": "^14.4.2",
"@textlint/types": "^14.4.2",
"@textlint/utils": "^14.4.2",
"debug": "^4.4.0",
"rc-config-loader": "^4.1.3"
}
},
"node_modules/@textlint/feature-flag": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.0.tgz",
"integrity": "sha512-aSphE9jw4QTjiCOe1tbtZ2NZpMRbYoUTi2E62KQ/mcVnwGC+Jk671wNSoUJzR/YNaLo63cQ7OKhHrBEb55t+Iw==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.2.tgz",
"integrity": "sha512-jeK7FuaYVr+gqgvjZazYHLCA+0oJybXa26kgF7P0qJ4yWq9qoENnjZtHF1VCi40euIS60z+/VJ8SlQj3LfnaoQ==",
"dev": true
},
"node_modules/@textlint/fixer-formatter": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.0.tgz",
"integrity": "sha512-DijDPVZgHkHKAEsYVXFZaP0TJGLDtirok/hgi1N1N3MW5ZtQpIHOW8DgKaJcmDZvPQjkTxzBaUp8rzBxHG8MaQ==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.2.tgz",
"integrity": "sha512-zmpM3FXEFAQy6F35nGnsFUV7jIfcrJNBHuu/Vh5TgfvCw9n2h7+KwEzx34bEce4vBhmKTqebHKSzM+2PlZG3NA==",
"dev": true,
"dependencies": {
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/module-interop": "^14.4.2",
"@textlint/resolver": "^14.4.2",
"@textlint/types": "^14.4.2",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"debug": "^4.4.0",
"diff": "^5.2.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
@ -485,59 +494,59 @@
}
},
"node_modules/@textlint/kernel": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.0.tgz",
"integrity": "sha512-zH19vQ0ns4n8kPr+csjPnV5yPip6gKs08GvDJBQlX3AEbRQkaSw4H5kBCE+R0D9qDkuqt7xe8Z8Tdm7E7aUvGw==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.2.tgz",
"integrity": "sha512-nwUpdOl/whw8Cq9ELYRatmxEUEGApzKRAFJQpdIB/Ex0gKG1S/ctzSYbqSBUZ/Xctnn93yBDgOngDFdgoHbfWg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0",
"@textlint/ast-tester": "^14.4.0",
"@textlint/ast-traverse": "^14.4.0",
"@textlint/feature-flag": "^14.4.0",
"@textlint/source-code-fixer": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"@textlint/ast-node-types": "^14.4.2",
"@textlint/ast-tester": "^14.4.2",
"@textlint/ast-traverse": "^14.4.2",
"@textlint/feature-flag": "^14.4.2",
"@textlint/source-code-fixer": "^14.4.2",
"@textlint/types": "^14.4.2",
"@textlint/utils": "^14.4.2",
"debug": "^4.4.0",
"fast-equals": "^4.0.3",
"structured-source": "^4.0.0"
}
},
"node_modules/@textlint/kernel/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/linter-formatter": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.0.tgz",
"integrity": "sha512-rnFwSSXDdsQHGVaRoJJYocVSYn4ZEPUFj78JYDZcR+TRYVDzRJEblFhwsiXl/gHD3L5g2RnBcLbxwZIW+xwtIA==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.2.tgz",
"integrity": "sha512-gBd+DDFzymFCjv5vcoH23IbQujjib//lH5lvHz61ImtXzVI6SBBL0jnRjER52IFYRE0tll7VlMURvxWiAVlOzw==",
"dev": true,
"dependencies": {
"@azu/format-text": "^1.0.2",
"@azu/style-format": "^1.0.1",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/module-interop": "^14.4.2",
"@textlint/resolver": "^14.4.2",
"@textlint/types": "^14.4.2",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"debug": "^4.4.0",
"js-yaml": "^3.14.1",
"lodash": "^4.17.21",
"pluralize": "^2.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"table": "^6.8.1",
"table": "^6.9.0",
"text-table": "^0.2.0"
}
},
"node_modules/@textlint/markdown-to-ast": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.0.tgz",
"integrity": "sha512-y6UxfRZ00w8XQ1jfKhR0jcQd7qbYaQgo3aERWbJR0Gxxl0T+G+TKBS12pdnUFOTshgSTEgqlvrE+Zt3lTl0e1A==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.2.tgz",
"integrity": "sha512-hj2xR9hz5/Tu7Hlrn6VORJgdAfUhAd5j6cBkEVpnKAU4LaERkNyVCgK/da2JHK2w84YHmaDjER4D6zUUkllwag==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0",
"debug": "^4.3.4",
"@textlint/ast-node-types": "^14.4.2",
"debug": "^4.4.0",
"mdast-util-gfm-autolink-literal": "^0.1.3",
"neotraverse": "^0.6.15",
"remark-footnotes": "^3.0.0",
@ -548,9 +557,9 @@
}
},
"node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/markdown-to-ast/node_modules/bail": {
@ -780,79 +789,79 @@
}
},
"node_modules/@textlint/module-interop": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.0.tgz",
"integrity": "sha512-QdtNDJc+XqDIbP9bwt7DryqE+vFbbIB28462VFWtXcHCJJoFTlmCJ1133SXLe14IOT9P04T9LMNhgv4d2v31gg==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.2.tgz",
"integrity": "sha512-PQqUgLcTnCTJ8qpYxLP6p98VzTP/Ju8QIDwTWYRpH00KHdmH9cR1/9O+l6YaWsJSGDtSL2zkMKIQLezpvBZ4cw==",
"dev": true
},
"node_modules/@textlint/resolver": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.0.tgz",
"integrity": "sha512-4jNO6Lbyiqtf22205XPpSYG4BNCZrvpmLzO2JUpYMe5C5g0z4l06Yqei3gJWYjdBLlL+fIxDcdW0hyIvvSFpUg==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.2.tgz",
"integrity": "sha512-P/tdGDpNvxyNGHtHGZJmvwina5bfE92OqiKk1rRJk/B6oIiDolJSPwtVBEJyAeG6N5vtsjqfVnVHnsWnS9/tgw==",
"dev": true
},
"node_modules/@textlint/source-code-fixer": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.0.tgz",
"integrity": "sha512-S2QBZ3pUQQeH01kgfKa1Tmusz0A2/sm3QkW1Uhag9x5v5OKYC4W3070eliY+p0I88nxmqy72M/j+78sDutUcuw==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.2.tgz",
"integrity": "sha512-8AFoRL0uQPiu7hlszM1jlido+PdL3/3Ddp8sz1XxOpFgnjuTKnlRLYjziaL8X4JCpXQjUy4Q9am8NI6M1Y18lw==",
"dev": true,
"dependencies": {
"@textlint/types": "^14.4.0",
"debug": "^4.3.4"
"@textlint/types": "^14.4.2",
"debug": "^4.4.0"
}
},
"node_modules/@textlint/text-to-ast": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.0.tgz",
"integrity": "sha512-MA3z7cksYpjXRPIFFcbB6CM5UbNFD53GJ823qo74ImU2MRlIrs9dcR9yQ76YxbYZ9OazPzUNGg5AS9tbp3Exbg==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.2.tgz",
"integrity": "sha512-fLyNHMczXZOP/jkKqBbjntszJR0ytsdQOPg9E8fnnbcX6eBMw3q924+M/vkYno/9ArSnUMPbdfhKBc/lWTXvcQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0"
"@textlint/ast-node-types": "^14.4.2"
}
},
"node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/textlint-plugin-markdown": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.0.tgz",
"integrity": "sha512-J6RoZSC7MOr9WYqyG4s1BZxExiHfS6fMmiQuWGJB133vDDrY+wmiaFm/C6Li59YPdPivddxSDo7v8z2zyayW1A==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.2.tgz",
"integrity": "sha512-qtUta0iHEn843Hzhq7VnYPRp5rsYLnaZC5fOGOMh8DIpUlnuNXI1ANs9TkL5LsgexyYyMuPtFbvwr7S4JNu6ig==",
"dev": true,
"dependencies": {
"@textlint/markdown-to-ast": "^14.4.0"
"@textlint/markdown-to-ast": "^14.4.2"
}
},
"node_modules/@textlint/textlint-plugin-text": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.0.tgz",
"integrity": "sha512-ut3+MhOh9taPUKLaTT4nyil3MLnAbo60BYGWIz6cPrv3YMyvN/eCw4jW4VscvV1WTik19lzmDCBfSpfnmz/PiA==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.2.tgz",
"integrity": "sha512-cg7J6qTgAsV7ms2fP2KpEBIaI+3GQAbQtjNTF4Zu5d8Kn07wNqFqZIpTnsKUC/b64Fn/ujo+HYse76nSU+5EZg==",
"dev": true,
"dependencies": {
"@textlint/text-to-ast": "^14.4.0"
"@textlint/text-to-ast": "^14.4.2"
}
},
"node_modules/@textlint/types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.0.tgz",
"integrity": "sha512-ZxZkiFxaXfjoaa/gzbGyUWR0mSMLChDaQrYJ0sPToCQ0QXUG3w5sIT2hCGZyBfNRc8/g0eH+KbDejD014oBPBQ==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.2.tgz",
"integrity": "sha512-s2UbCeYY8TQNdSusPs0n+g57g6fwx8Vz6nDZLD7vIXMEW10zIwkQnQf9IpxDwvKnstBWYTJ24Kx9nzddpBS9oQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0"
"@textlint/ast-node-types": "^14.4.2"
}
},
"node_modules/@textlint/types/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/utils": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.0.tgz",
"integrity": "sha512-/5QSdYa042z0SX+10+UPzHlMT2nWuRBkouf90/P60nycpFmWn0waIbVoARDlekzmaqB4BitbP7NGjjPmEju4bA==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.2.tgz",
"integrity": "sha512-bhns1Cws+4dERz6KGFVLLGf0vFK6r5LiKKeg7N3Hnh0QNbzy7TYO+HTfZsgcqBvZSJeAeowzKyDQ8nSsflPbJw==",
"dev": true
},
"node_modules/@types/concat-stream": {
@ -1044,6 +1053,26 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@ -1059,16 +1088,6 @@
"integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==",
"dev": true
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
@ -1081,12 +1100,46 @@
"node": ">=8"
}
},
"node_modules/buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
}
},
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true
},
"node_modules/cacheable": {
"version": "1.8.7",
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.7.tgz",
"integrity": "sha512-AbfG7dAuYNjYxFUtL1lAqmlWdxczCJ47w7cFjhGcnGnUdwSo6VgmSojfoW3tUI12HUkgTJ5kqj78yyq6TsFtlg==",
"dev": true,
"dependencies": {
"hookified": "^1.6.0",
"keyv": "^5.2.3"
}
},
"node_modules/ccount": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
@ -1242,12 +1295,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"node_modules/concat-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
@ -1287,12 +1334,12 @@
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dev": true,
"dependencies": {
"ms": "2.1.2"
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@ -1443,15 +1490,12 @@
}
},
"node_modules/file-entry-cache": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
"integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
"version": "10.0.5",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.5.tgz",
"integrity": "sha512-umpQsJrBNsdMDgreSryMEXvJh66XeLtZUwA8Gj7rHGearGufUFv6rB/bcXRFsiGWw/VeSUgUofF4Rf2UKEOrTA==",
"dev": true,
"dependencies": {
"flat-cache": "^2.0.1"
},
"engines": {
"node": ">=4"
"flat-cache": "^6.1.5"
}
},
"node_modules/fill-range": {
@ -1479,23 +1523,20 @@
}
},
"node_modules/flat-cache": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
"integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
"version": "6.1.5",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.5.tgz",
"integrity": "sha512-QR+2kN38f8nMfiIQ1LHYjuDEmZNZVjxuxY+HufbS3BW0EX01Q5OnH7iduOYRutmgiXb797HAKcXUeXrvRjjgSQ==",
"dev": true,
"dependencies": {
"flatted": "^2.0.0",
"rimraf": "2.6.3",
"write": "1.0.3"
},
"engines": {
"node": ">=4"
"cacheable": "^1.8.7",
"flatted": "^3.3.2",
"hookified": "^1.6.0"
}
},
"node_modules/flatted": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
"integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==",
"dev": true
},
"node_modules/foreground-child": {
@ -1523,12 +1564,6 @@
"node": ">=0.4.x"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
@ -1558,26 +1593,6 @@
"node": ">=0.12.0"
}
},
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
@ -1617,12 +1632,38 @@
"node": ">=8"
}
},
"node_modules/hookified": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.6.0.tgz",
"integrity": "sha512-se7cpwTA+iA/eY548Bu03JJqBiEZAqU2jnyKdj5B5qurtBg64CZGHTgqCv4Yh7NWu6FGI09W61MCq+NoPj9GXA==",
"dev": true
},
"node_modules/hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/ignore": {
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
@ -1642,16 +1683,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@ -1886,6 +1917,15 @@
"node": ">=6"
}
},
"node_modules/keyv": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.2.3.tgz",
"integrity": "sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==",
"dev": true,
"dependencies": {
"@keyv/serialize": "^1.0.2"
}
},
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@ -3588,18 +3628,6 @@
}
]
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
@ -3637,9 +3665,9 @@
}
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
"node_modules/neotraverse": {
@ -3696,15 +3724,6 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": {
"wrappy": "1"
}
},
"node_modules/optionator": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
@ -3810,15 +3829,6 @@
"node": ">=4"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@ -5730,18 +5740,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@ -6014,9 +6012,9 @@
}
},
"node_modules/table": {
"version": "6.8.2",
"resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
"integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
"version": "6.9.0",
"resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
"integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
"dev": true,
"dependencies": {
"ajv": "^8.0.1",
@ -6036,26 +6034,26 @@
"dev": true
},
"node_modules/textlint": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.0.tgz",
"integrity": "sha512-OutNGN573fI48bRdikgz+PAjCN/P4DRK9dLGxkNkqBlWmwbxLpvBxw1qspZEFVVLoNH94ra65NDfCwMvCosvdA==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.2.tgz",
"integrity": "sha512-4bHQY0ndqMBrZyLKqkca3dq8d1psBd1Nb6CznPjEZSFQV5WMAs7l8qZTgFsCwbkhSpbDSAxSTvBF/WZlHT71WA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0",
"@textlint/ast-traverse": "^14.4.0",
"@textlint/config-loader": "^14.4.0",
"@textlint/feature-flag": "^14.4.0",
"@textlint/fixer-formatter": "^14.4.0",
"@textlint/kernel": "^14.4.0",
"@textlint/linter-formatter": "^14.4.0",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/textlint-plugin-markdown": "^14.4.0",
"@textlint/textlint-plugin-text": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"file-entry-cache": "^5.0.1",
"@textlint/ast-node-types": "^14.4.2",
"@textlint/ast-traverse": "^14.4.2",
"@textlint/config-loader": "^14.4.2",
"@textlint/feature-flag": "^14.4.2",
"@textlint/fixer-formatter": "^14.4.2",
"@textlint/kernel": "^14.4.2",
"@textlint/linter-formatter": "^14.4.2",
"@textlint/module-interop": "^14.4.2",
"@textlint/resolver": "^14.4.2",
"@textlint/textlint-plugin-markdown": "^14.4.2",
"@textlint/textlint-plugin-text": "^14.4.2",
"@textlint/types": "^14.4.2",
"@textlint/utils": "^14.4.2",
"debug": "^4.4.0",
"file-entry-cache": "^10.0.5",
"get-stdin": "^5.0.1",
"glob": "^10.4.5",
"md5": "^2.3.0",
@ -6178,9 +6176,9 @@
}
},
"node_modules/textlint/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/textlint/node_modules/brace-expansion": {
@ -7307,24 +7305,6 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"node_modules/write": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
"integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
"dev": true,
"dependencies": {
"mkdirp": "^0.5.1"
},
"engines": {
"node": ">=4"
}
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",

View File

@ -15,7 +15,7 @@
"remark-lint-prohibited-strings": "^4.0.0",
"remark-lint-unordered-list-marker-style": "^4.0.0",
"remark-stringify": "^11.0.0",
"textlint": "^14.4.0",
"textlint": "^14.4.2",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"

View File

@ -1130,7 +1130,11 @@ article.listing {
&>table,
&>.entry-content>table {
background-color: #fff;
display: block;
overflow-x: auto;
table-layout: auto;
width: fit-content;
max-width: 100%;
&>thead {
background-color: rgba(0, 0, 0, .025);

View File

@ -152,7 +152,7 @@ header .grid {
.menu {
background: $white;
box-shadow: 0px 64px 32px rgba(0,0,0,.1);
max-height: 100vh;
max-height: calc(100vh - 68px);
overflow-y: auto;
}

View File

@ -156,6 +156,7 @@ Screenshot of a vertical stack card with 4 buttons and an entity selector.
The image shows a vertical stack card with 4 buttons arranged in a horizontal stack card and an entity selector. The buttons use the toggle action to run a script, for example, the Netflix script, which starts up the TV and opens Netflix. To learn how to create scripts, refer to [scripts](/docs/scripts/).
```yaml
type: vertical-stack
cards:
- entities:
- entity: input_select.living_room_scene
@ -201,5 +202,4 @@ cards:
action: more-info
show_name: true
show_icon: true
type: vertical-stack
```

View File

@ -3,7 +3,7 @@ title: "Automation conditions"
description: "Automations can test conditions when invoked."
---
Conditions are an optional part of an automation rule. They can be used to prevent the automation's actions from being run. After a {% term trigger %} occurred, all conditions will be checked. If any of them do not return true, the automation will stop executing.
Conditions are an optional part of an automation rule. They can be used to prevent the automation's actions from being run. After a {% term trigger %} occurred, all conditions will be checked. The automation will be executed if all conditions return true, otherwise, if any of them does not return true, the automation will stop executing.
Conditions look very similar to triggers, but they are very different &mdash; a trigger will look at events happening in the system, while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is currently on or off.

View File

@ -22,6 +22,8 @@ A blueprint is a {% term script %}, {% term automation %} or [template entity](/
Imagine you want to control lights based on motion. A blueprint provides the generic {% term automation %} framework, while letting you select one specific motion sensor as a {% term trigger %}, and the exact light to control. This blueprint makes it possible to create two automations. Each automation has their own configuration and act completely independently. Yet, they share some basic automation configuration so that you do not have to set this up every time.
Automations inherit from blueprints, which means that changes made to a blueprint will be reflected in all automations based on that blueprint the next time the automations are reloaded. This occurs as part of Home Assistant starting. To manually reload the automations, go to {% my server_controls title="**Developer tools** > **YAML**" %} and reload the automations.
Blueprints are shared by the community in the [blueprint community forum][blueprint-forums].
[blueprint-forums]: /get-blueprints

View File

@ -193,7 +193,7 @@ blueprint:
entity:
filter:
- domain: binary_sensor
- device_class: motion
device_class: motion
target_light:
name: Lights
description: The lights to keep in sync.
@ -224,7 +224,7 @@ blueprint:
entity:
filter:
- domain: binary_sensor
- device_class: motion
device_class: motion
target_light:
name: Lights
description: The lights to keep in sync.

View File

@ -32,7 +32,7 @@ The `state` prefix indicates that this information is part of the state object (
### About the state
The screenshot shows three lights in different states (the `state.state`): `on`, `off`, and `unavailable`. Each light comes with its own entity state attributes such as `supported_color_modes`, `supported_features`. These attributes have their own state: the state of `supported_color_modes` is `color_temp` and `hs`, the state of the `supported_features` attribute is `4`.
The screenshot shows three lights in different states (the `state.state`): `on`, `off`, and `unavailable`. Each light comes with its own entity state attributes such as `supported_color_modes`, `supported_features`. These attributes have their own state: the state of the `supported_color_modes` attribute is `color_temp` and `hs`, the state of the `supported_features` attribute is `4`.
<p class='img'>
<img src='/images/integrations/light/state_light.png' alt='Screenshot showing three lights with different states: `on`, `off`, or `unavailable`'>

View File

@ -31,7 +31,7 @@ You are the **owner** of the Home Assistant server and you cannot login because
- [to access the console from Linux or macOS](https://yellow.home-assistant.io/guides/use-serial-console-linux-macos/).
- If you are using another system, connect keyboard and monitor. The procedure might be similar the one used for Green.
- If you are using a Home Assistant OVA (virtualization image):
- Access the system console by opening the terminal through your virtualization platform's interface (for example, Proxmox, VMware, VirtualBox).
- Access the system console by opening the terminal through your virtualization platform's interface (for example, Proxmox, VMware, VirtualBox).
- Follow the platform-specific steps to interact with the virtual machine's console.
3. In the terminal, enter the `auth list` command.
- This command lists all users that are registered on your Home Assistant.
@ -81,7 +81,7 @@ Use this procedure only if the following conditions are met:
3. Once you have opened the Home Assistant command line, enter the following command:
- Note: `existing_user` is a placeholder. Replace it with your username.
- Note: `new_password` is a placeholder. Replace it with your new password.
- **Command**: `auth reset --username existing_user --password new_password`
- **Command**: `auth reset --username 'existing_user' --password 'new_password'`
![Screencast showing how to enter the ha auth reset command](/images/docs/troubleshooting/home-assistant-cli.webp)
- **Troubleshooting**: If you see the message `zsh: command not found: auth`, you likely did not enter the command in the serial console connected to the device itself, but in the terminal within Home Assistant.
4. You can now log in to Home Assistant using this new password.
@ -89,7 +89,7 @@ Use this procedure only if the following conditions are met:
#### To reset a user's password, via the container command line
If you are running Home Assistant in a container, you can use the command line in the container with the `hass` command to change your password. The steps below refer to a Home Assistant container in Docker named `homeassistant`. Note that while working in the container, commands will take a few moments to execute.
1. `docker exec -it homeassistant bash` to open to the container command line
2. `hass` to create a default user, if this is your first time using the tool
3. `hass --script auth --config /config change_password existing_user new_password` to change the password

View File

@ -36,10 +36,6 @@ name:
description: Friendly name of the scene.
required: true
type: string
description:
description: Description of the scene.
required: false
type: string
entities:
description: Entities to control and their desired state.
required: true

View File

@ -2,11 +2,11 @@
<div class='section'>
<h1 class="title epsilon">Common tasks</h1>
<ul class='divided sidebar-menu'>
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
<li>{% active_link /common-tasks/os/ Home Assistant Operating System %}</li>
<li>{% active_link /common-tasks/container/ Home Assistant Container %}</li>
<li>{% active_link /common-tasks/core/ Home Assistant Core %}</li>
<li>{% active_link /common-tasks/supervised/ Home Assistant Supervised %}</li>
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
</ul>
</div>
</section>

View File

@ -186,14 +186,14 @@
</li>
<li>
{% icon "mdi:update" %} {% active_link /common-tasks/os/ Common tasks %}
{% icon "mdi:update" %} {% active_link /common-tasks/general/ Common tasks %}
{% if root == 'common-tasks' or include.docs_index %}
<ul>
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
<li>{% active_link /common-tasks/os/ Home Assistant Operating System %}</li>
<li>{% active_link /common-tasks/container/ Home Assistant Container %}</li>
<li>{% active_link /common-tasks/core/ Home Assistant Core %}</li>
<li>{% active_link /common-tasks/supervised/ Home Assistant Supervised %}</li>
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
<li>{% active_link /docs/troubleshooting_general/ General troubleshooting %}</li>
</ul>
{% endif %}
@ -279,5 +279,6 @@
<li><a href="https://green.home-assistant.io/">Home Assistant Green {% icon "tabler:external-link" %}</a></li>
<li><a href="https://yellow.home-assistant.io/">Home Assistant Yellow {% icon "tabler:external-link" %}</a></li>
<li><a href="https://connectzbt1.home-assistant.io/">Home Assistant Connect ZBT-1 {% icon "tabler:external-link" %}</a></li>
<li><a href="https://voice-pe.home-assistant.io/">Home Assistant Voice Preview Edition {% icon "tabler:external-link" %}</a></li>
</ul>
</li>

View File

@ -79,14 +79,6 @@ This creates a backup instantly. You can create a manual backup at any time, irr
6. Download the [backup emergency kit](/more-info/backup-emergency-kit/) and store it somewhere safe. Make sure you take note of the backup name it belongs to.
7. To start the backup process, select **Create backup**.
### Alternative: Creating a backup using the Home Assistant Command Line Interface
1. `ha backups list` - lists backups and their slugnames
2. `ha backups restore slugname` - restores a specific backup
3. `ha backups new --name nameofbackup` - create a backup
For additional information about command line usage, use the `ha help` command or refer to the [Home Assistant Command Line documentation](/common-tasks/os/#home-assistant-via-the-command-line).
### Downloading your local backups
There are multiple ways to download your local backup from your Home Assistant instance and store it on another device:

View File

@ -101,7 +101,7 @@ Use "ha [command] --help" for more information about a command.
You can also access the {% term "Home Assistant Operating System" %} via a directly connected keyboard and monitor, the console.
#### Wiping the data disk wipe from the command line
#### Wiping the data disk from the command line
In {% term "Home Assistant Operating System" %}, the `ha os datadisk wipe` command wipes the data disk. The command deletes all user data as well as Home Assistant Core, Supervisor, and any installed add-ons.
@ -109,7 +109,12 @@ The command `ha os datadisk wipe` marks the data partition (either internal on t
The `ha os datadisk wipe` command can only be run from the local terminal. Connect a display and keyboard and use the terminal.
Note, if you have a Home Assistant Yellow, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the device](https://yellow.home-assistant.io/guides/factory-reset/).
Note, some systems have a reset button you can use to clear the data disk, instead of using the command line:
- If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 5, use the command line steps described above.
- If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 4, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Yellow](https://yellow.home-assistant.io/guides/factory-reset/).
- If you have a Home Assistant Green, there is a black hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Green](https://green.home-assistant.io/guides/reset/).
#### Listing all users from the command line

View File

@ -25,8 +25,7 @@ If you have been using a data disk previously with {% term "Home Assistant Opera
3. Select **Move data disk**.
4. Select the data disk from the list of available devices.
5. Select **Move**.
![Screenshot of the "Move datadisk" feature](/images/screenshots/move-datadisk.png)
- Depending on the amount of data, this may take a while.
### Using CLI to move the data partition

View File

@ -1,12 +1,10 @@
Best practice for updating Home Assistant Core:
1. Back up your installation{% if page.installation == "os" or page.installation == "supervised" %}, using the [backup functionality](/common-tasks/general/#backups) Home Assistant offers{% endif %}.
1. [Back up your installation](/common-tasks/general/#backups) and store the backup and the [backup emergency kit](/more-info/backup-emergency-kit/) somewhere safe.
- This ensures that you can [restore your installation from backup](/common-tasks/general/#restoring-a-backup) if needed.
2. Check the release notes for backward-incompatible changes on [Home Assistant release notes](/blog/categories/core/). Be sure to check all release notes between the version you are running and the one you are upgrading to. Use the search function in your browser (`CTRL + f` / `CMD + f`) and search for **Backward-incompatible changes**.
{% if page.installation == "os" or page.installation == "supervised" %}
3. Select **Create backup before updating** in case you encounter an issue that requires a rollback.
4. Update Home Assistant.
5. Review persistent notifications and log to see if there are any issues with your configuration that need to be addressed.
{% endif %}
3. Update Home Assistant.
4. Review persistent notifications and log to see if there are any issues with your configuration that need to be addressed.
{% if page.installation == "os" or page.installation == "supervised" %}

View File

@ -1,5 +1,3 @@
### To remove an integration instance from Home Assistant
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
2. From the list of devices, select the integration instance you want to remove.
3. Next to the entry, select the three-dot {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.
{% include integrations/remove_device_service_steps.md %}

View File

@ -0,0 +1,3 @@
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
2. From the list of devices, select the integration instance you want to remove.
3. Next to the entry, select the three-dot {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.

View File

@ -151,7 +151,7 @@ Next you need create a Lambda function.
- Click `Services` in top navigation bar, expand the menu to display all AWS services, then under `Compute` section click `Lambda` to navigate to Lambda console. Or you may use this [link](https://console.aws.amazon.com/lambda/home)
**IMPORTANT - Alexa Skills are only supported in specific AWS regions.** Your current server location will be displayed in the top-right corner (for example, Ohio). Select an available server from the list below ([reference](https://developer.amazon.com/en-US/docs/alexa/smarthome/develop-smart-home-skills-in-multiple-languages.html#deploy)) based on your Amazon account's locale, not your physical location. **Alexa Lambda functions created in other regions will not work properly and may prevent account linking! For example, if your locale is set to English (US) and you live in California, you must use US East (N.Virginia), not US West (Oregon). While the setup process will complete with an incorrect region, the skill will not function, and there will be no clear error messages indicating the cause.**
- **US East (N.Virginia)** region for English (US) or English (CA) skills
- **US East (N.Virginia)** region for English (US), English (CA) or Portuguese (BR) skills
- **EU (Ireland)** region for English (UK), English (IN), German (DE), Spanish (ES) or French (FR) skills
- **US West (Oregon)** region for Japanese and English (AU) skills.
@ -256,7 +256,7 @@ Self signed certificates will not work, but you can use a free Let's Encrypt cer
{% endimportant %}
- `Client ID`:
- `https://pitangui.amazon.com/` if you are in US
- `https://pitangui.amazon.com/` if you are in US or BR
- `https://layla.amazon.com/` if you are in EU
- `https://alexa.amazon.co.jp/` if you are in JP and AU (not verified yet)
@ -323,7 +323,7 @@ alexa:
type: map
keys:
locale:
description: The locale of your Alexa devices. Supported locales are `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `es-US`, `fr-CA`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `nl-NL` and `pt-BR`. See [Alexa Locale](#alexa-locale) for additional information.
description: The locale of your Alexa devices. Supported locales are `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `es-US`,`fr-CA`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `nl-NL`, and `pt-BR`. See [Alexa Locale](#alexa-locale) for additional information.
required: false
type: string
default: en-US

View File

@ -28,22 +28,7 @@ To learn how to create and restore a backup, refer to the backup section under [
The **Backup** integration exposes actions that can be used to automate the backup
process.
### Action {% my developer_call_service service="backup.create_automatic" %}
The {% my developer_call_service service="backup.create_automatic" %} action can be used
to create a backup of your Home Assistant instance, using the same settings as those used
by [automatic backups](/common-tasks/general/#setting-up-an-automatic-backup-process).
This action can be called to create backups with pre-defined settings at a more flexible
schedule than the schedule which can be configured for automatic backups.
The action has no additional options or parameters.
Example action:
```yaml
action: backup.create_automatic
```
However, it is no longer needed to create your own automation. Follow these steps to [set up an automatic backup from the UI](/common-tasks/general/#setting-up-an-automatic-backup-process).
### Action {% my developer_call_service service="backup.create" %}

View File

@ -73,7 +73,7 @@ A number of features are available through the media player entity:
## Limitations
Currently, some features of the Mozart platform such as:
Currently, some features of the Mozart platform are not available through the [public API](https://github.com/bang-olufsen/mozart-open-api). Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features:
- Creating timers and alarms
- Retrieving detailed alarm and timer information
@ -87,8 +87,6 @@ And more advanced app-centric features such as:
- Adjusting specific sound settings
- Pairing remotes
These features are not available through the API. Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features.
## Actions
### play_media actions

View File

@ -91,6 +91,8 @@ Some systems may not come with Bluetooth and require a USB adapter. Installing a
If you experience an unreliable Bluetooth connection, installing a short USB extension cable between your Bluetooth adapter and your Home Assistant server may improve reliability.
For development and testing, the developers of this Bluetooth integration primarily use a [Feasycom FSC-BP119](https://www.feasycom.com/datasheet/fsc-bp119.pdf) (CSR8510A10) 📶.
### Known working high-performance adapters
#### Cambridge Silicon Radio (CSR) -based adapters
@ -133,6 +135,8 @@ These adapters may require additional patch files available at <a href="https://
There is currently no supported method to install these patch files when using Home Assistant Operating System.
{% endwarning %}
{% details "Broadcom (BCM) based adapters" %}
- ASUS USB-BT400 (BCM20702A0)
- Cable Matters 604002-BLK (BCM20702A0)
@ -147,6 +151,8 @@ There is currently no supported method to install these patch files when using H
- StarTech USBBT2EDR4 (BCM20702A0)
- Targus ACB10US1 (BCM20702A0)
{% enddetails %}
📶 Denotes external antenna
Most of these adapters can hold seven (7) connections at the same time.
@ -185,9 +191,11 @@ Known working adapters list adapters that do not meet high-performance requireme
#### Realtek RTL8761BU adapters
{% warning %}
These adapters do not have a reset pin. If they stop responding, there is currently no way for the kernel to reset them automatically. A generic USB reset for these adapters has been introduced in Linux kernel 6.1 and later.
These adapters do not have a reset pin. When they stop responding, there is currently no way for the kernel to reset them automatically, and they may have to be physically unplugged and replugged to restore operation.
{% endwarning %}
{% details "Realtek RTL8761BU adapters" %}
- ASUS USB-BT500 (RTL8761BU)
- Avantree DG45 (RTL8761BU)
- COMCAST CF-B03 (RTL8761BU)
@ -206,10 +214,14 @@ These adapters do not have a reset pin. If they stop responding, there is curren
- ZEXMTE Z01 (RTL8761BU) 📶
- ZETSAGE BH451A (RTL8761BU) 📶
{% enddetails %}
📶 Denotes external antenna
### Unsupported adapters
{% details "Unsupported adapters" %}
- 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
@ -229,6 +241,8 @@ These adapters do not have a reset pin. If they stop responding, there is curren
- Multiple unbranded adapters labeled with CSR 4.0
- 5 CORE CSR 4.0
{% enddetails %}
📶 Denotes external antenna
## Multiple adapters

View File

@ -20,6 +20,8 @@ ha_quality_scale: legacy
This platform offers presence detection by looking at connected devices to a [BT Smart Hub](https://en.wikipedia.org/wiki/BT_Smart_Hub) based router.
This router is sometimes referred to as the BT Home Hub 6.
It has been reported that the Plusnet Hub Two also works with this integration.
## Configuration
To use a BT Smart Hub router in your installation, add the following to your {% term "`configuration.yaml`" %} file.

View File

@ -17,6 +17,7 @@ ha_codeowners:
ha_config_flow: true
ha_integration_type: device
ha_zeroconf: true
ha_quality_scale: platinum
---
The **Cambridge Audio** {% term integration %} allows you to control all receivers and streamers that support the [StreamMagic](https://www.cambridgeaudio.com/usa/en/products/streammagic) app.

View File

@ -23,6 +23,7 @@ related:
title: Cookidoo the official Thermomix recipe platform
- url: https://www.vorwerk.com/
title: Vorwerk GmbH
ha_quality_scale: silver
---
The **Cookidoo** {% term integration %} allows you to interact with your shopping lists of [Cookidoo the official Thermomix recipe platform](https://cookidoo.international/) within Home Assistant.

View File

@ -15,14 +15,16 @@ related:
ha_quality_scale: legacy
---
Support for [Leviton Decora Wi-Fi](https://www.leviton.com/products/residential/automation-smart-home/decora-smart-all/decora-smart-with-wifi-technology) dimmers/switches via the MyLeviton API.
Support for [Leviton Decora Wi-Fi](https://leviton.com/products/residential/smart-home/smart-switches) dimmers/switches via the MyLeviton API.
Supported devices (tested):
- [DW6HD1-BZ](https://www.leviton.com/products/dw6hd-1bz) (Decora Smart Wi-Fi 600W Dimmer)
- [DW15P-1BW](https://www.leviton.com/products/dw15p-1bw) (Decora Smart Wi-Fi Plug-in Outlet)
- - [DW15S-1BZ](https://www.leviton.com/products/dw15s-1bz) (Decora Smart Wi-Fi 15A Switch)
- [DW6HD1-BZ](https://leviton.com/products/dw6hd-1bz) (Decora Smart Wi-Fi 600W Dimmer)
- [DW15P-1BW](https://leviton.com/products/dw15p-1bw) (Decora Smart Wi-Fi Plug-in Outlet)
- [DW15S-1BZ](https://leviton.com/products/dw15s-1bz) (Decora Smart Wi-Fi 15A Switch)
- [D215S-2RW](https://store.leviton.com/products/decora-smart-wi-fi-switch-2nd-gen-d215s-2rw) (Decora Smart Wi-Fi 15A Switch - 2nd Gen)
- [DN15S-1BW](https://leviton.com/products/dn15s-1bw) (Decora Smart No-Neutral Switch) via [MLWSB-1BW](https://leviton.com/products/mlwsb-1bw) (Decora Smart Wi-Fi Bridge for No-Neutral Switch and Dimmer)
- [D2MSD-1BW](https://leviton.com/products/d2msd-1bw) (Decora Smart Motion Sensing Dimmer Switch, Wi-Fi 2nd Gen)
To enable these lights, add the following lines to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}

View File

@ -75,6 +75,7 @@ Known supported devices:
- Denon AVR-S940H
- Denon AVR-S950H
- Denon AVR-S960H
- Denon AVR-S970H
- Denon DN-500AV
- Denon DRA-800H
- Marantz AV7702

View File

@ -29,6 +29,12 @@ The integration supports the following meters within Home Assistant:
For this {% term integration %}, you need a inexogy smart meter, a [inexogy account](https://my.inexogy.com/) and your credentials.
{% include integrations/config_flow.md %}
{% configuration_basic %}
"Email address":
description: "Email address to connect Home Assistant to your inexogy account"
Password:
description: "Password for the account to connect Home Assistant to inexogy"
{% endconfiguration_basic %}
## Electricity meter
@ -40,3 +46,9 @@ In case you have a combined meter for consumption and production, the all-time t
## Gas meter
A Sensor {% term entity %} is being added for total gas consumption.
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -18,6 +18,7 @@ ha_platforms:
- sensor
- switch
ha_iot_class: Local Polling
ha_dhcp: true
ha_zeroconf: true
---

View File

@ -13,7 +13,7 @@ ha_domain: easyenergy
ha_platforms:
- diagnostics
- sensor
ha_integration_type: integration
ha_integration_type: service
---
The **easyEnergy** {% term integration %} integrates the [easyEnergy](https://www.easyenergy.com) API platform with Home Assistant.
@ -228,4 +228,4 @@ template:
This integration follows standard integration removal steps. If you also use the template sensors, you need to remove them manually.
{% include integrations/remove_device_service.md %}
{% include integrations/remove_device_service.md %}

View File

@ -12,6 +12,8 @@ ha_domain: eheimdigital
ha_integration_type: hub
ha_platforms:
- light
ha_quality_scale: bronze
ha_zeroconf: true
---
The **EHEIM Digital** {% term integration %} allows you to control your [EHEIM Digital](https://eheim.com/en_GB/aquatics/eheim-digital/) smart aquarium devices from Home Assistant.

View File

@ -47,3 +47,9 @@ data:
```
For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the [TTS documentation](/integrations/tts/).
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -12,7 +12,7 @@ ha_domain: energyzero
ha_platforms:
- diagnostics
- sensor
ha_integration_type: integration
ha_integration_type: service
---
The **EnergyZero** {% term integration %} integrates the [EnergyZero](https://www.energyzero.nl/) API platform with Home Assistant.
@ -151,10 +151,10 @@ To use the response data from the actions, you can create a template sensor that
```yaml
template:
- triggers:
- trigger:
- trigger: time_pattern
hours: "*"
actions:
action:
- action: energyzero.get_energy_prices
response_variable: prices
data:

View File

@ -42,9 +42,9 @@ This integration does not work with:
## Prerequisites
- The <abbr title="IQ Gateway">Envoy</abbr> must be configured and commissioned.
- The <abbr title="IQ Gateway">Envoy</abbr> must be on your local network with IPV4 connectivity from Home Assistant.
- The <abbr title="IQ Gateway">Envoy</abbr> must be on your local network with IPV4 connectivity from Home Assistant. (Also See troubleshooting, [single network](#single-network))
- <abbr title="IQ Gateway">Envoy</abbr> firmware version 3.9 or newer.
- With <abbr title="IQ Gateway">Envoy</abbr> firmware 7 and greater
- With <abbr title="IQ Gateway">Envoy</abbr> firmware 7 and greater:
- an Enlighten cloud username and password.
- Home Assistant 2023.9 or newer.
@ -59,7 +59,8 @@ The configuration of an individual Envoy requires you to enter the following inf
Host:
description: "The name or IP address of the Envoy to configure. <br> Will be pre-filled if the Envoy was auto-discovered"
Username:
description: "For firmware version 7.0 and later, enter your Enlighten cloud username <br> For firmware before 7.0, enter username *installer* without a password."
description: "For firmware version 7.0 and later, enter your Enlighten cloud username. The Enlighten cloud username (and password) will be used to obtain a 1-year-valid token from the enphase web-site when first configured or upon expiry.
<br> For firmware before 7.0, enter username *installer* without a password."
Password:
description: "For firmware version 7.0 and later, enter your Enlighten cloud password <br> For firmware before 7.0, with username *installer*, leave blank."
{% endconfiguration_basic %}
@ -75,6 +76,12 @@ Always use a new connection when requesting data from the Envoy:
description: "No/Yes <br> Some older Envoy firmware may exhibit connection issues when using the default keep-alive connection and report failures. When set, this option disables the use of keep-alive and builds a new connection at each data request. This makes the communication more reliable for these firmware versions. Reported for the Envoy-R, but may apply to other older firmware versions as well."
{% endconfiguration_basic %}
## Reconfigure
This integration supports updating the Envoy configuration through a `reconfigure` menu option. The reconfiguration allows for changing the Envoy IP address, username, and/or password. Use this menu option if your Enlighten credentials or the device's IP address has changed and needs to be manually updated. The latter is typically automatically detected and updated.
Use this menu option also when an Envoy firmware upgrade requires a switch from local Envoy username/password to token-based authentication with Enlighten username/password (refer to [required manual input](#required-manual-input)).
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
@ -83,87 +90,310 @@ This integration follows standard integration removal. No extra steps are requir
## Capabilities
This integration will offer various sensors depending on the configuration of your Enphase system. Sensors are available for the following:
This integration offers various entities depending on the configuration of your Enphase system. The Envoy can communicate with Enphase IQ micro-inverters, Enphase ACB and IQ batteries, Enphase Ensemble Enpower switch and load shedding relays and Enphase compatible generators.
- Current energy production & consumption
- Historical energy production & consumption
- Power production per-inverter
{% note %}
_Consumption sensors require your Envoy to be properly configured with consumption <abbr title="current transformers">CT</abbr> sensors installed._
- You may know referred product names under other names from the past or future.
- In this documentation, the term SN is used for a device serial-number placeholder. Entities will contain the actual serial-number of the device.
{% endnote %}
### With current transformers
### Solar production data
For Envoy S Metered / IQ Gateway Metered with installed and configured current transformers (CT), additional features are available:
All Envoy models with solar inverters, with or without installed production <abbr title="current transformers">CT</abbr>, for all firmware versions, report solar current and historical production data.
- Sensors for net production (grid export) and net consumption (grid import) if the consumption <abbr title="current transformers">CT</abbr> is a net-consumption <abbr title="current transformers">CT</abbr>.
- Disabled sensors for:
- `Balanced net power consumption` and `lifetime balanced net energy consumption` (grid import - grid export) if either a net-consumption or total-consumption CT is installed. The `balanced net power consumption` value is calculated by the Envoy if a total-consumption CT is used. When a net-consumption CT is installed, it is the same value as the `current net power consumption`, which is enabled by default if the CT is present.
- Production and consumption sensors for each phase, if <abbr title="current transformers">CT</abbr> are installed on more than 1 phase.
- Phase net production and net consumption, if <abbr title="current transformers">CT</abbr> are installed on more than 1 phase.
- Frequency for production and net consumption <abbr title="current transformers">CT</abbr> (aggregate and phase).
- Voltage for production and net consumption <abbr title="current transformers">CT</abbr> (aggregate and phase).[^1]
- Current for production and net consumption <abbr title="current transformers">CT</abbr> (aggregate and phase).[^1]
- Powerfactor for production and net consumption <abbr title="current transformers">CT</abbr> (aggregate and phase).[^1]
- Metering status for net consumption and production <abbr title="current transformers">CT</abbr> (`normal` | `not-metering` | `check-wiring`) (aggregate and phase).
- Count of meter status flags active for net consumption and production <abbr title="current transformers">CT</abbr> (aggregate and phase).[^2]
#### Aggregated production data
[^1]: For multiphase systems, the Envoy sums the voltages of the phases. This may be valid for split-phase, but for 3-phase systems, use the individual phases rather than the summed value.
[^2]: If this value is non-zero, consult the diagnostic report of the Envoy and look for `raw_data` - `/ivp/meters` - `statusFlags` for set flags (`production-imbalance` | `negative-production` | `power-on-unused-phase` | `negative-total-consumption`).
The Envoy device reports aggregated data for all connected micro-inverters.
### With batteries
##### Production sensor entities
For Enphase Ensemble systems with the Enpower/IQ System Controller and Encharge/IQ Batteries installed, additional features are available:
- **Envoy <abbr title="Envoy serial number">SN</abbr> Current power production**: Current aggregated inverter power production in W.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Energy production last seven days**: Energy produced in previous 7 days, not including today's, in Wh, display scaled to kWh. (See known limitations [Energy Incorrect](#energy-incorrect)). This entity is not logged in statistics.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Energy production today**: Energy produced since midnight in Wh, default display scaled to kWh. (See known limitations [Late reset](#late-reset), [Energy Incorrect](#energy-incorrect)).
- **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime energy production**: Lifetime energy production in Wh, default display scaled to MWh. (See known limitations [Lifetime reset](#lifetime-reset)).
- Sensors for battery status and usage
- Sensors for grid status *
- Sensors for the state of the Enpower's four load-shedding relays *
- A switch allowing you to take your system on-grid and off-grid. Note that the Enpower has a slight delay built-in between receiving these commands and actually switching the system on or off grid. *
- A switch allowing you to enable or disable charging the Encharge/IQ batteries from the power grid. **
- Support for changing the battery storage mode between full backup, self-consumption, and savings mode, and setting the reserve battery level for outages. **
- If a storage <abbr title="current transformers">CT</abbr> is installed:
- Sensors for battery storage energy charged and discharged and current active power discharge/charge
- Disabled sensors for:
- Phase battery storage energy charged and discharged and current power discharge/charge
- Voltage for storage <abbr title="current transformers">CT</abbr> (aggregate and phase)
- Current for storage <abbr title="current transformers">CT</abbr> (aggregate and phase)
- Frequency for storage <abbr title="current transformers">CT</abbr> (aggregate and phase)
- Powerfactor for storage <abbr title="current transformers">CT</abbr> (aggregate and phase)
- Metering status for storage <abbr title="current transformers">CT</abbr> (aggregate and phase)
- Count of meter status flags active storage <abbr title="current transformers">CT</abbr> (aggregate and phase)
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_solar_production.png" alt="Envoy device">
<figcaption>Envoy device with solar production entities.</figcaption>
</figure>
For system with both older type ACB batteries and Encharge/IQ Batteries:
When used with [multiphase CT phase data](#ct-aggregate-and-phase-data), disabled phase entities are available as well.
- Sensors for ACB Battery State of Charge in %, battery state (charging, idle, discharging), current available energy in Wh and current power flow in W.
- Sensors for aggregated ACB and Encharge battery status for current State of Charge in %, current available energy in Wh and total battery capacity in Wh.
#### Individual micro-inverter production data
*: The load shedding and on/off-grid functions are only available with the Enpower/IQ System Controller installed. In battery installations without load-shedding and off-grid functionality, used in many EU countries, these sensors and switches are not available.
The Envoy reports individual micro-inverter device production data. SN is the micro-inverter serial-number.
**: When used with Enpower/IQ System Controller, the entities to charge from the grid, battery storage mode, and reserve battery level are connected to the Enpower device with the Enpower serial number in their entity and unique IDs. When no Enpower is installed, these are connected to the Envoy itself and the Envoy serial number is used in the IDs.
##### Sensor entities
In multiphase installations with batteries, in countries with phase-balancing grid meters, the battery will export to the grid on one phase the amount it lacks on another phase which pulls the amount from the grid, as if it is using the grid as a 'transport' between phases. Since the grid meter will balance the amount imported and exported on the two phases, the net result is zero. The Envoy multiphase consumption CTs, however, will report the amounts on both phases, resulting in too high export on one and too high import on the other. One may consider using the `lifetime balanced net energy consumption` which is the sum of grid import and export to eliminate this effect. This would require some templating to split these values into import and export values. Alternatively, use the `current net power consumption` or `balanced net power consumption` with a Riemann integral sum helper.
- **Inverter <abbr title="micro-inverter serial number">SN</abbr>**: Current power generated by the inverter in W.
- **Inverter <abbr title="micro-inverter serial number">SN</abbr> last reported**: Time when Envoy last received a data update from the inverter. Typical update rate for an inverter to the Envoy is every 5 minutes. This entity is disabled by default for all inverters.
## Envoy authentication requirements
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_inverter_device.png" alt="micro-inverter device">
<figcaption>Micro-inverter device with solar production entities.</figcaption>
</figure>
For newer models running firmware 7 and greater, you will need your Enlighten cloud username and password. The integration will use these credentials to obtain an Envoy access token from the Enlighten cloud.
### House consumption data
For models running firmware 5 and older, use `installer` for the username. No password is required. The integration will automatically detect the `installer` password.
House consumption data requires an Envoy Metered equipped and configured with at least 1 consumption <abbr title="current transformers">[CT](#current-transformers)</abbr>.
## Enpower load shedding relays
#### Consumption Sensor Entities
The Enphase Enpower has 4 load shedding relays that can be used to control non-essential loads in your home. These have two main modes of operation:
- **Envoy <abbr title="Envoy serial number">SN</abbr> Current power consumption**: Current power consumption in W.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime energy consumption**: Lifetime energy consumption in Wh, default display scaled to MWh.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Energy production last seven days**: Energy consumption in previous 7 days, not including today's, in Wh, display scaled to kWh. This entity is not logged in statistics.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Energy consumption today**: Energy consumption since midnight in Wh, default display scaled to kWh.
### Standard
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_consumption.png" alt="consumption entities">
<figcaption>Envoy metered with CT reporting production and consumption entities.</figcaption>
</figure>
When the mode entity is set to standard, you can simply set the state of the relay to be powered or not powered for each mode of operation: on grid, off grid, and on generator.
When used with [multiphase CT phase data](#ct-aggregate-and-phase-data), disabled phase entities are available but not shown. Enable as needed.
### Battery level
### Current Transformers
When the relay mode is set to battery level, the relays will turn on and off based on the remaining battery level of your Encharge batteries. Two number entities are available to control the cutoff and restore levels for the relays. When the battery level drops below the cutoff level, the relays will turn off. When the battery level rises above the restore level, the relays will turn back on.
The Envoy Metered can be equipped with up-to 6 <abbr title="current transformers">CT</abbr>. These can be assigned to production, consumption and/or storage measurements in single or multiple phase setups.
## Data updates
The below diagram shows CT installation positions and how they are referred to.
The integration collects data by default every 60 seconds. To customize the collection interval, refer to [defining a custom polling interval](/common-tasks/general/#defining-a-custom-polling-interval). Specify one single entity from the envoy device as target of the action using the `+ choose entity` button. Updating one entity will update all entities of the Envoy and the related devices like the inverters; there is no need to specify multiple or all entities or add (all) inverter entities. When using multiple Envoys, add one entity for each envoy as targets or create separate custom polling intervals with a single entity as needed.
- The production CT measures the energy exchange between Solar production and the switchboard.
- If the consumption CT is installed as **Load only** a.k.a. **total-consumption** it measures energy exchange from the switchboard to the loads/house.
- If the consumption CT is installed as **Load with Solar** a.k.a. **net-consumption**, it measures energy exchange between the switchboard and the grid.
- The storage CT measures the energy exchange between the battery storage and the switchboard.
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_ct_model.png" alt="ct model">
<figcaption>Envoy current transformers.</figcaption>
</figure>
{% note %}
This in no way represents a configuration direction, as actual configuration is driven by local rules, installer designs and Enphase installation guidelines. Variations may exist, based on specific needs or rules. This merely describes a simplified view and naming conventions used in this documentation to clarify integration operation. Refer to [Enphase documentation](https://enphase.com/installers/resources/documentation/communication) for more information.
{% endnote %}
When an Envoy Metered is equipped with a production CT, the CT data will be used to provide the [aggregated solar production data](#aggregated-production-data). Likewise, the installed consumption CT will be the source for the [house consumption data](#house-consumption-data).
Either a net-consumption or a total-consumption CT is installed. The Envoy will calculate the data for the other one.
#### CT Aggregate and phase data
When using <abbr title="current transformers">[CT](#current-transformers)</abbr> in multiphase enabled configurations, both aggregated and individual phase data is available. If only 1 phase is configured, phase data is the same as the aggregated data and no phase entities are created. If more than 1 phase is configured, disabled phase entities for each phase are created, enable them as needed.
Phase entity names are the names used for the aggregated entities, with the phase name in the post-fix. Phase names are **L1**, **L2**, **L3**. For example, once enabled, [**lifetime energy production**](#solar-production-data) on phase 3 is available as **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime energy production L3**.
#### Current transformer entities
CT measure multiple properties of the energy exchange which are available as Envoy device entities. These are all disabled by default, enable them as desired.
##### Production CT sensor entities
- **Envoy <abbr title="Envoy serial number">SN</abbr> Frequency production CT**: Frequency in Hz.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Voltage production CT**: Voltage in V. (see limitations [Summed voltage](#summed-voltage))
- **Envoy <abbr title="Envoy serial number">SN</abbr> Production CT current**: Current in A.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Powerfactor production CT**: Powerfactor, ratio of active to apparent power.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Metering status production CT**: Status of the metering process: `normal`, `not-metering`, `check-wiring`.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Meter status flags active production CT**: Count of CT status flags active. See troubleshooting [CT Active flag count](#ct-active-flag-count) when non-zero.
##### Net-consumption CT sensor entities
- **Envoy <abbr title="Envoy serial number">SN</abbr> Frequency net consumption CT**: Frequency in Hz .
- **Envoy <abbr title="Envoy serial number">SN</abbr> Voltage net consumption CT**: Voltage in V. (see limitations [Summed voltage](#summed-voltage)
- **Envoy <abbr title="Envoy serial number">SN</abbr> net consumption CT current**: Current in A.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Powerfactor net consumption CT**: Power factor, ratio of active to apparent power.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Metering status net consumption CT**: Status of the metering process: `normal`, `not-metering`, `check-wiring`.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Meter status flags active net consumption CT**: Count of CT status flags active. See troubleshooting [CT Active flag count](#ct-active-flag-count) when non-zero.
##### Storage CT sensor entities
- **Envoy <abbr title="Envoy serial number">SN</abbr> Frequency storage CT**: Frequency in Hz.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Voltage storage CT**: Voltage in V. (see limitations [Summed voltage](#summed-voltage)
- **Envoy <abbr title="Envoy serial number">SN</abbr> storage CT current**: Current in A.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Powerfactor storage CT**: Power factor, ratio of active to apparent power.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Metering status storage CT**: Status of the metering process: `normal`, `not-metering`, `check-wiring`.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Meter status flags active storage CT**: Count of CT status flags active. See troubleshooting [CT Active flag count](#ct-active-flag-count) when non-zero.
For storage CT energy entities refer to [battery sensor](#aggregated-iq-battery-sensor-entities) description.
### Grid sensor entities
When the Envoy Metered is equipped with a [net-consumption CT](#current-transformers), entities for Grid import and export are available.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Current net power consumption**: Current power exchange from (positive) / to (negative) the grid in W, default display in kW.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime net energy consumption**: Lifetime energy consumed / imported from the grid in Wh, default display in MWh.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime net energy production**: Lifetime energy produced / exported to the grid in Wh, default display in MWh.
When used with [multiphase CT phase data](#ct-aggregate-and-phase-data), disabled phase entities are available as well.
#### Grid Balanced import/export sensor entities
When the Envoy Metered is equipped with a [total-consumption CT](#current-transformers) instead of a [net-consumption CT](#current-transformers), no individual entities for Grid import and export are available, as these are not measured. Instead, the balance (difference) of grid import and export is available in a single entity, disabled by default, enable as desired.
- **Envoy <abbr title="Envoy serial number">SN</abbr> balanced net power consumption**: Current power exchange from (positive) / to (negative) the grid in W, default display in kW.
(This is the same value as [Envoy <abbr title="Envoy serial number">SN</abbr> Current net power consumption](#grid-sensor-entities) when using a net-consumption CT.)
- **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime balanced net energy consumption**: Lifetime energy balance (difference) of imported and exported grid energy in Wh, default display in kWh.
When used with [multiphase CT phase data](#ct-aggregate-and-phase-data), disabled phase entities are available as well.
### Battery Storage data
Enphase battery systems of multiple generations and configurations can provide integration entity data.
- **AC-Batteries**: first generation battery setup, no longer in production.
- **IQ Batteries**: current Enphase battery models.
The batteries can be implemented in stand-alone configuration or as part of Enphase Ensemble systems with the Enpower/IQ System Controller.
#### IQ battery data
##### Aggregated IQ battery sensor entities
Aggregated IQ battery data includes all installed IQ Batteries.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Battery**: Current aggregated state of charge in %
- **Envoy <abbr title="Envoy serial number">SN</abbr> Available battery energy**: Current aggregated IQ battery energy content in Wh
- **Envoy <abbr title="Envoy serial number">SN</abbr> Battery capacity**: Aggregated maximum IQ battery energy content in Wh
- **Envoy <abbr title="Envoy serial number">SN</abbr> Reserve battery level**: Configured aggregated IQ Battery backup state of charge in %
- **Envoy <abbr title="Envoy serial number">SN</abbr> Reserve battery energy**: Configured aggregated IQ battery backup energy content in Wh
If a [storage <abbr title="current transformers">CT</abbr>](#storage-ct-sensor-entities) is installed:
- **Envoy <abbr title="Envoy serial number">SN</abbr> Current battery discharge**: Current power in/out of the battery in W.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime battery energy discharged**: Lifetime energy discharged from the battery in Wh, default display format MWh.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime battery energy charged**: Lifetime energy charged in the battery in Wh, default display format MWh.
<figure id="aggregated-iq-battery-data">
<img src="/images/integrations/enphase_envoy/enphase_envoy_aggr_iq_battery.png" alt="aggregated iq battery">
<figcaption>Envoy Aggregated IQ battery Sensor entities with no <a href="#current-transformers">storage CT</a> nor <a href="#enpower-data">Enpower</a> installed.</figcaption>
</figure>
{% note %}
If an Enpower device is installed, then **Charge from grid**, **Reserve battery level**, and **Storage mode** are available as [Enpower device entities](#enpower-binary-sensor-entities) instead of Envoy device entities.
{% endnote %}
#### Individual IQ battery data
For each IQ Battery, an Encharge device is created, linked to the Envoy parent device. Each encharge devices offers individual battery sensors.
##### Individual IQ battery sensor entities
- **Encharge <abbr title="Encharge serial number">SN</abbr> Battery**: Current state of charge of the battery in %
- **Encharge <abbr title="Encharge serial number">SN</abbr> Power**: Current power in W
- **Encharge <abbr title="Encharge serial number">SN</abbr> Apparent Power**: Current apparent power in VA
- **Encharge <abbr title="Encharge serial number">SN</abbr> Temperature**: Current temperature in degrees C or F, based on your localization.
- **Encharge <abbr title="Encharge serial number">SN</abbr> Last reported**: Time when Envoy received last update from the battery.
##### Individual IQ battery binary sensor entities
- **Encharge <abbr title="Encharge serial number">SN</abbr> Communicating**: Communication status of encharge battery, Connected / Disconnected. This is a diagnostics entity.
- **Encharge <abbr title="Encharge serial number">SN</abbr> DC Switch**: DC Switched off status of encharge battery, On / Off. This is a diagnostics entity.
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_encharge.png" alt="iq battery">
<figcaption>Envoy Encharge IQ battery sensor entities.</figcaption>
</figure>
#### AC-battery data
No individual AC-battery data is available, only aggregated AC-battery data for all AC-batteries.
##### AC-battery sensor entities
- **ACB <abbr title="Envoy serial number">SN</abbr> Battery**: Current AC-battery state of charge in %
- **ACB <abbr title="Envoy serial number">SN</abbr> Battery state**: AC-battery state: charging, idle, discharging
- **ACB <abbr title="Envoy serial number">SN</abbr> Power**: Current AC-battery power in W
- **Envoy <abbr title="Envoy serial number">SN</abbr> Available ACB battery energy**: Current AC-battery energy content in Wh
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_acb_battery.png" alt="acb battery">
<figcaption>Envoy AC-battery sensor entities.</figcaption>
</figure>
##### Aggregated IQ and AC battery sensor entities
If both IQ and AC batteries are used, aggregated battery data for all installed IQ batteries and AC batteries is available.
- **Envoy <abbr title="Envoy serial number">SN</abbr> Aggregated Battery SOC**: Overall aggregated battery state of charge in %
- **Envoy <abbr title="Envoy serial number">SN</abbr> Aggregated Available battery energy**: Overall aggregated battery energy content in Wh
- **Envoy <abbr title="Envoy serial number">SN</abbr> Aggregated Battery capacity**: Overall aggregated maximum battery energy content in Wh
The below figure shows the 3 aggregated entities along with the [AC-battery energy](#ac-battery-sensor-entities) and 3 of the [IQ Battery aggregate](#aggregated-iq-battery-sensor-entities) values.
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_aggr_acb_iq_battery.png" alt="aggregated acb iq battery">
<figcaption>Envoy aggregated ACB and IQ battery sensor entities.</figcaption>
</figure>
### Enpower data
Data for an installed Enphase Enpower off-grid enabling switch is available in various entities for an Enpower device.
#### Enpower binary sensor entities
- **Enpower <abbr title="Enpower serial number">SN</abbr> Grid status**: status of the grid.
#### Enpower number entities
- **Enpower <abbr title="Enpower serial number">SN</abbr> Reserve battery level**: reserve battery level to maintain for outages in %. Changing the value, on the UI or in an [action](#action-numberset_value), will update the setting in the Envoy. Also see limitations, [No battery controls](#no-battery-controls).
#### Enpower select entities
- **Enpower <abbr title="Enpower serial number">SN</abbr> Storage mode**: Current configured storage mode, `Full backup`, `Self consumption`, `Savings mode`. Changing the selection, in the UI or in an [action](#action-selectselect), will update the setting in the Envoy. Also see limitations, [No battery controls](#no-battery-controls).
#### Enpower sensor entities
- **Enpower <abbr title="Enpower serial number">SN</abbr> Temperature**: Current temperature in degrees C or F, based on your localization.
- **Enpower <abbr title="Enpower serial number">SN</abbr> Last reported**: Time when Envoy received last update from the enpower device.
- **Enpower <abbr title="Encharge serial number">SN</abbr> Communicating**: Communication status of enpower switch, Connected / Disconnected. This is a diagnostics entity.
#### Enpower switch entities
- **Enpower <abbr title="Enpower serial number">SN</abbr> Charge from grid**: Allow or disallow charging Encharge/IQ batteries from grid when a charge schedule is active. Changing the switch, in the UI or in an [action](#action-switchturn_onswitchturn_offswitchtoggle), will update the setting in the Envoy. If no charge schedule is active, changing the setting will not have an immediate effect. Also see limitations, [No battery controls](#no-battery-controls).
- **Enpower <abbr title="Enpower serial number">SN</abbr> Grid enabled**: Enable or disable grid connection. Note that the Enpower has a slight delay built-in between receiving these commands and actually switching the system on or off grid.
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_enpower.png" alt="envoy enpower">
<figcaption>Envoy Enpower entities.</figcaption>
</figure>
{% note %}
If no Enpower is installed, then **Charge from grid**, **Reserve battery level**, and **Storage mode** are available as [Envoy device entities](#aggregated-iq-battery-data) instead of Enpower device entities.
{% endnote %}
### Enpower load shedding relays
With the Enpower/IQ System Controller installed, entities for the state and control of the Enpower's four load-shedding relays are available. In battery installations without load-shedding and off-grid functionality, used in many EU countries, these sensors and switches are not available.
The Enphase Enpower has 4 load shedding relays (volt-free contacts, often referred to as dry-contacts) that can be used to control non-essential loads in your home. These have two main modes of operation:
- **Standard**: When the mode entity is set to standard, you can simply set the state of the relay to be powered or not powered for each mode of operation: on grid, off grid, and on generator.
- **Battery level**: When the relay mode is set to battery level, the relays will turn on and off based on the remaining battery level of your Encharge IQ batteries. Two number entities are available to control the cutoff and restore levels for the relays. When the battery level drops below the cutoff level, the relays will turn off, removing power from attached loads. When the battery level rises above the restore level, the relays will turn back on and restore power to attached loads.
The names of entities and devices are derived from the load_name configured in the Enpower device.
#### Dry-contact number entities
- **<abbr title="dry_contacts.load_name">LOAD_NAME</abbr> cutoff battery level**: battery level below which relay will turn off when in `Battery level` mode.
- **<abbr title="dry_contacts.load_name">LOAD_NAME</abbr> restore battery level**: battery level above which the relay will turn back on when in `Battery level` mode.
#### Dry-contact select entities
- **<abbr title="dry_contacts.load_name">LOAD_NAME</abbr> mode**: dry-contact operational mode: `standard` or `battery`
- **<abbr title="dry_contacts.load_name">LOAD_NAME</abbr> Grid action**: dry-contact on grid action: `Powered`, `Not powered`, `Follow schedule`, `None`
- **<abbr title="dry_contacts.load_name">LOAD_NAME</abbr> Micro-grid action**: dry-contact on micro-grid action: `Powered`, `Not powered`, `Follow schedule`, `None`
- **<abbr title="dry_contacts.load_name">LOAD_NAME</abbr> Generator action**: dry-contact on generator action: `Powered`, `Not powered`, `Follow schedule`, `None`
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_dry_contact.png" alt="envoy dry-contact">
<figcaption>Envoy Enpower dry-contact entities.</figcaption>
</figure>
## Data polling interval
All data is collected in one coordinated collection cycle and sourced from a limited set of endpoints on the Envoy. For example, three different values sourced from the same endpoint are not pulled in three different requests but provided from the same single request. This method minimizes the number of requests to the Envoy. The local REST API of the Envoy is used. Only when the 1-year valid token is to expire, 1 month before due data, a new token is requested from the Enphase Enlighten website.
The integration collects data for all entities by default every 60 seconds. To customize the collection interval, refer to [defining a custom polling interval](/common-tasks/general/#defining-a-custom-polling-interval). Specify one single entity from the envoy device as target of the action using the `+ choose entity` button. Updating one entity will update all entities of the Envoy and the related devices like the inverters; there is no need to specify multiple or all entities or add (all) inverter entities. When using multiple Envoys, add one entity for each envoy as targets or create separate custom polling intervals with a single entity as needed.
Envoy installations without installed <abbr title="current transformers">CT</abbr>, collect individual solar inverter data every 5 minutes. This collection does not occur for each inverter at the same time in the 5-minute period. Shortening the collection interval will at best show updates for individual inverters quicker, but not yield more granular data.
@ -193,17 +423,156 @@ The firmware version is not available as an entity, but rather as an attribute o
## Energy dashboard
This integration provides several values suitable for the energy dashboard:
This integration provides several entities suitable for the energy dashboard.
- For `Solar production`, use the `Envoy Lifetime energy production` entity.
- For `Grid consumption`, use the `Envoy Lifetime net energy consumption` entity.[^3]
- For `Return to grid`, use the `Envoy Lifetime net energy production` entity.[^3]
- For `Energy going into the battery`, use the the `Envoy Lifetime battery energy charged` entity.[^5]
- For `Energy coming out off the battery`, use the the `Envoy Lifetime battery energy discharged` entity.[^5]
### Solar panels
[^3]: Only applies when using Envoy S Metered / IQ Gateway Metered with installed and configured <abbr title="current transformers">CT</abbr>.
For **Solar production**, use the **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime energy production** entity. Overall this has proven to be more stable as the daily value reported by the Envoy. (See known limitations [Late reset](#late-reset), [Energy Incorrect](#energy-incorrect)).
[^5]: Only applies when using Envoy S Metered / IQ Gateway Metered / IQ Combiner with installed and configured storage / battery <abbr title="current transformers">CT</abbr>.
### Electricity grid
Whether there is data available to use with the electricity grid depends on the installed <abbr title="current transformers">CT</abbr>, if any. Also, see Limitations, [Balancing grid meter](#balancing-grid-meter).
#### Electricity grid with net-consumption CT
With a [net-consumption CT](#grid-sensor-entities) installed, both grid consumption and return to grid data is available.
- For **Grid consumption**, use the **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime net energy consumption** entity.
- For **Return to grid**, use the **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime net energy production** entity.
#### Electricity grid with total-consumption CT
With a [total-consumption CT](#grid-balanced-importexport-sensor-entities) installed, only the balanced grid import-export value is available. This value is not suited for direct use with the energy dashboard. It will require some templating to split the value into an import and export value.
{% details "Concept to split balanced Grid value into individual import-export values" %}
The concept is to track value changes of the **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime balanced net energy consumption** entity, add positive changes to a grid_import entity and add negative changes to a grid_export entity.
{% raw %}
```yaml
- trigger:
- platform: state
entity_id: sensor.envoy_sn_lifetime_balanced_net_energy_consumption
sensor:
- name: "Grid import"
unique_id: calculated_envoy_grid_import
unit_of_measurement: "Wh"
state: "{{ this.state | int(0) + ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | max }}"
device_class: energy
state_class: total_increasing
- name: "Grid export"
unique_id: calculated_envoy_grid_export
unit_of_measurement: "Wh"
state: "{{ this.state | int(0) - ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | min }}"
device_class: energy
state_class: total_increasing
```
{% endraw %}
The above example does not address handling `unavailable` or `unknown` states, value changes over Home Assistant outages nor changing UOM to a preferred one. Examples for these exist in various community topics.
{% tip %}
Alternatively, this can be done by splitting the **Envoy <abbr title="Envoy serial number">SN</abbr> balanced net power consumption** into power import and export and two Riemann sum integral helpers to calculate energy from the power values.
{% endtip %}
{% enddetails %}
### Home battery storage
Whether there is data available to use with the electricity grid depends on the installed storage <abbr title="current transformers">CT</abbr>, if any.
#### Home battery storage with storage CT
With a [storage CT](#aggregated-iq-battery-sensor-entities) installed, data for both Energy coming out and going into the battery is available.
- For **Energy going into the battery**, use the **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime battery energy charged** entity.
- For **Energy coming out of the battery**, use the **Envoy <abbr title="Envoy serial number">SN</abbr> Lifetime battery energy discharged** entity.
#### Home battery storage without storage CT
Without a [storage CT](#aggregated-iq-battery-sensor-entities) installed, only the current Power in and out of individual batteries, or the current aggregated battery energy content is available. These values are not suited for direct use with the energy dashboard. It will require some templating to split the value into an import and export values.
##### Home battery storage data using battery power
Battery power is the current power flow in or out of an individual battery. Using the summed Power values of all batteries, the result needs to be split in 2 entities, representing total power in and power out. Next, each entity needs to be integrated into energy, using two Riemann sum integral helpers. The resulting data can be used for Energy going into the battery and Energy coming out of the battery.
{% details "Concept to split Battery power value into individual import-export power values" %}
The concept is to first sum all battery Power values using a combine state helper. Then track value changes of the summed value entity, add positive changes to a battery_charge power entity and add negative changes to a battery_discharge power entity.
{% raw %}
```yaml
- trigger:
- platform: state
entity_id: sensor.envoy_sn_summed_battery_power_entity
sensor:
- name: "Battery charge power"
unique_id: calculated_envoy_battery_charge_power
unit_of_measurement: "W"
state: "{{ this.state | int(0) + ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | max }}"
device_class: power
state_class: measurement
- name: "Battery discharge power"
unique_id: calculated_envoy_battery_discharge_power
unit_of_measurement: "W"
state: "{{ this.state | int(0) - ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | min }}"
device_class: power
state_class: measurement
```
{% endraw %}
The above example does not address handling `unavailable` or `unknown` states, value changes over Home Assistant outages nor conversion losses.
{% enddetails %}
##### Home battery storage data on the available battery energy
Changes in the Available battery energy are a result from Energy going in or out of the battery. Splitting these energy changes into 2 entities, one tracking positive changes, one the negative changes, results in data that can be used for Energy going into the battery and Energy coming out off the battery. This method does not account for conversion losses as Energy content changes do not exactly match actual energy flow in and out of the battery.
{% details "Concept to split Available battery energy value into individual import-export values" %}
The concept is to track value changes of the **Envoy <abbr title="Envoy serial number">SN</abbr> Available battery energy** entity, add positive changes to a battery_charge entity and add negative changes to a battery_discharge entity.
{% raw %}
```yaml
- trigger:
- platform: state
entity_id: sensor.envoy_sn_available_battery_energy
sensor:
- name: "Battery charge"
unique_id: calculated_envoy_battery_charge
unit_of_measurement: "Wh"
state: "{{ this.state | int(0) + ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | max }}"
device_class: energy
state_class: total_increasing
- name: "Battery discharge"
unique_id: calculated_envoy_battery_discharge
unit_of_measurement: "Wh"
state: "{{ this.state | int(0) - ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | min }}"
device_class: energy
state_class: total_increasing
```
{% endraw %}
The above example does not address handling `unavailable` or `unknown` states, value changes over Home Assistant outages nor conversion losses.
{% enddetails %}
### Individual devices
Although not a replacement for individual energy or power measurement devices, with multiphase CT installed, [energy consumption for phases](#ct-aggregate-and-phase-data) is available. These can be used for individual devices, if of interest.
## Actions
@ -243,7 +612,7 @@ This action changes the setting for the Enpower `Reserve battery level`.
| Data attribute | Optional | Description |
| - | - | - |
| `entity_id` | no | Name(s) of entities, e.g., `number.enpower_12345678901001_reserve_battery_level`. |
| `entity_id` | no | Name(s) of entities. For example, `number.enpower_12345678901001_reserve_battery_level`. |
| `value` | no | The target value between 0 and 100 to set Enpower reserve battery level to. |
Example:
@ -292,12 +661,61 @@ Technically `select.first`, `select.last`, `select.previous`, `select.next` are
## Know issues and limitations
- [Envoy firmware](https://enphase.com/installers/resources/documentation/communication?&f[0]=document%3A217) versions come with changing behavior, features and issues. Firmware is pushed to the Envoy by Enphase, while 'not always communicated in detail upfront'. This may result in sudden changes in the Envoy behavior and is always accompanied by an outage while Envoy is being updated.
- As of Envoy firmware 8.2.4225, the Envoy no longer supports setting battery modes, enabling/disabling charging from the grid, or changing reserve battery level through the local REST API used by HA. Until a resolution is found, you will need to use the Enphase APP to control these.
### Firmware changes
[Envoy firmware](https://enphase.com/installers/resources/documentation/communication?&f[0]=document%3A217) versions come with changing behavior, features, and potential issues. Firmware is pushed to the Envoy by Enphase, while 'not always communicated in detail upfront'. This may result in sudden changes in the Envoy behavior and is always accompanied by an outage while Envoy is being updated.
### No battery controls
As of Envoy firmware 8.2.4225, the Envoy no longer supports the following operations through the local REST API used by Home Assistant:
- Setting battery modes
- Enabling/disabling charging from the grid
- Changing reserve battery level
Until a resolution is found, you must use the Enphase App to control these features.
### Late reset
When using Envoy Metered with <abbr title="current transformers">CT</abbr>, not all firmware versions reset 'Energy production today' at midnight. Delays of up to 15 minutes have been reported. In this case, best use a utility meter with the `Lifetime energy production` entity for daily reporting.
### Energy incorrect
When using Envoy Metered with <abbr title="current transformers">CT</abbr>
- not all firmware versions report `Energy production today` correctly. Zero data and unexpected spikes have been reported. In this case, best use a utility meter with the `Lifetime energy production` entity for daily reporting.
- not all firmware versions report `Energy production last seven days` correctly. Zero and unexpected values have been reported.
### Lifetime reset
Envoy Metered without installed CT, running older firmware versions, reportedly resets **Lifetime energy production** to 0 when reaching 1.2 MWh. For use with the energy dashboard, the reset is not an issue. In a recent firmware version 8.x.x the reset is solved, but results in a one-time step change to the full lifetime value. This has impact on the energy dashboard, it can be solved by setting the statistics value for that moment to 0 in [Developer Tools: Statistics](/docs/tools/dev-tools/#statistics-tab)
{% details "History example for Envoy Lifetime energy production value reset" %}
<figure>
<img src="/images/integrations/enphase_envoy/enphase_envoy_production_reset.png" alt="envoy dry-contact">
<figcaption>Envoy Lifetime energy production value reset.</figcaption>
</figure>
{% enddetails %}
### Summed Voltage
The Envoy Metered in multiphase setup, sums the voltages of the phases measured on the CT for the aggregated data. This may be valid for split-phase, but for 3-phase systems, use the individual phases rather than the summed value.
### Balancing grid meter
In multiphase installations with batteries, in countries with phase-balancing grid meters, the battery will export to the grid on one phase the amount it lacks on another phase. This other phase pulls the missing amount from the grid, as if it is using the grid as a 'transport' between phases. Since the grid meter will balance the amount imported and exported on the two phases, the net result is zero. The Envoy multiphase net-consumption CTs, however, will report the amounts on both phases, resulting in too high export on one and too high import on the other. One may consider using the `lifetime balanced net energy consumption` which is the sum of grid import and export to eliminate this effect. This would require some templating to split these values into import and export values. Alternatively, use the `current net power consumption` or `balanced net power consumption` with a Riemann integral sum helper.
## Troubleshooting
- The Envoy should not be both on your local LAN and local Wi-Fi at the same time. This may cause auto-discovery to switch back and forth between the interfaces resulting in brief outages every 30 minutes. If you experience these frequent brief outages, make sure only 1 interface is used.
### Periodic network connection issues
If you experience periodic connection issues, ensure the Envoy is connected to only one interface (either Ethernet OR Wi-Fi, not both). The Envoy should not be both on your local LAN (Ethernet) and local Wi-Fi simultaneously. Having both connections active can cause auto-discovery to alternate between interfaces, resulting in connection interruptions approximately every 30 minutes.
### CT Active flag count is non-zero
The **CT active flag count** value shows the number of CT status flags that are raised. In a normal state, the value of **CT active flag count** is zero. If the value is non-zero, consult the [diagnostic](#diagnostics) report of the Envoy and look for `raw_data` - `/ivp/meters` - `statusFlags` for set flags, one or more from (`production-imbalance` | `negative-production` | `power-on-unused-phase` | `negative-total-consumption`). Their somewhat descriptive names may be an indication of installation issues.
### Debug logs and diagnostics

View File

@ -18,6 +18,7 @@ ha_domain: esphome
ha_zeroconf: true
ha_platforms:
- alarm_control_panel
- assist_satellite
- binary_sensor
- button
- camera

View File

@ -84,7 +84,7 @@ disable_brightness_adjust:
type: boolean
default: false
mode:
description: Select how color temperature is passed to lights. Valid values are `xy`, `mired` and `rgb`.
description: Select how color temperature is passed to lights. Valid values are `xy`, `mired` (alias to kelvin) and `rgb`.
required: false
default: xy
type: string

View File

@ -15,6 +15,7 @@ ha_platforms:
- sensor
ha_dhcp: true
ha_integration_type: integration
ha_quality_scale: gold
---
The Fronius integration polls a [Fronius](https://www.fronius.com/) solar inverter or datalogger for details of a Fronius SolarNet setup and integrate it in your Home Assistant installation.

View File

@ -15,6 +15,8 @@ ha_platforms:
- diagnostics
- sensor
ha_integration_type: hub
ha_quality_scale: platinum
ha_dhcp: true
---
The **FYTA** {% term integration %} uses the open API of [FYTA](https://www.fyta.de) to obtain the data from your plant sensors and integrate these into Home Assistant.

View File

@ -11,7 +11,7 @@ ha_domain: go2rtc
ha_integration_type: system
related:
- docs: /installation/
ha_quality_scale: legacy
ha_quality_scale: internal
---
go2rtc is an open source project providing a camera streaming application that supports formats such as RTSP, WebRTC, HomeKit, FFmpeg, RTMP. The **go2rtc** {% term integration %} connects to a go2rtc instance and provides a WebRTC proxy for all your cameras. To learn more about go2rtc, refer to the [project's GitHub page](https://github.com/AlexxIT/go2rtc/).

View File

@ -125,3 +125,9 @@ data:
response_variable: generated_content
```
{% endraw %}
### Video tutorial
This video tutorial explains how Google Generative AI can be set up, how you can send an AI-generated message to your smart speaker when you arrive home, and how you can analyze an image taken from your doorbell camera as soon as someone rings the doorbell.
<lite-youtube videoid="ivoYNd2vMR0" videotitle="AI in Home Assistant - A Complete Guide!" posterquality="maxresdefault"></lite-youtube>

View File

@ -17,7 +17,7 @@ api2: Google Sheets API
api2_link: https://console.cloud.google.com/apis/enableflow?apiid=sheets.googleapis.com
---
The Google Sheets integration allows you to connect your [Google Drive](https://drive.google.com) to Home Assistant. The integration adds an actiion to allow you to append rows to a Sheets document. The idea is that you can store data on there for further processing. When you set up a config entry, your drive will have a new sheet called Home Assistant. You can then rename this to whatever you like.
The Google Sheets integration allows you to connect your [Google Drive](https://drive.google.com) to Home Assistant. The integration adds an action to allow you to append rows to a Sheets document. The idea is that you can store data on there for further processing. When you set up a config entry, your drive will have a new sheet called Home Assistant. You can then rename this to whatever you like.
**Note**:
The integration currently only has access to that one document that is created during setup.

View File

@ -10,7 +10,6 @@ ha_release: 2022.8
ha_iot_class: Local Push
ha_codeowners:
- '@bdraco'
- '@PierreAronnax'
ha_domain: govee_ble
ha_config_flow: true
ha_platforms:

View File

@ -415,6 +415,12 @@ This integration performs the following requests:
Please keep these limits in mind to avoid exceeding Habitica's request allowance. Efforts are ongoing to optimize the integration and reduce the number of requests it makes.
## Troubleshooting
The Habitica integration relies on an active internet connection to communicate with **Habitica**. If you encounter issues, verify that your network connection is stable. Additionally, the Habitica service itself may experience downtime, whether unexpected or due to scheduled maintenance. In these trying times of uncertainty and challenge, when fate tests your resolve, seek guidance from the [Habitica Outage Instructions](https://habitica.fandom.com/wiki/Outage_Instructions) on the community-maintained Habitica wiki — wisdom shared by adventurers who have faced such trials before.
In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue reoccurs stop the debug logging again (_download of debug log file will start automatically_). Further _if still possible_, please also download the [diagnostics](/integrations/diagnostics) data. If you have collected the debug log and the diagnostics data, provide them with the issue report.
## Remove integration
This integration can be removed by following these steps:

View File

@ -124,7 +124,7 @@ Depending on the sensor type you choose, the `history_stats` integration can sho
- **count**: How many times the tracked entity matched the configured state during the time period. This will count states (for example, how many times a light was in the `on` state during the time period), as opposed to counting state transitions (for example, how many times a light was *turned* `on`). The difference is if the entity was already in the desired state at the start of the time period, that scenario will be counted with this sensor type.
{% note %}
For a count sensor that uses a time period that does not slide (such as one that resets upon each hour, as opposed to one which considers the trailing 60 minutes), consider using [customization](/docs/configuration/customizing-devices/#customizing-an-entity-in-yaml) to change the `state_class` to `total_increasing` to generate statistics that track the `sum`. This is useful when emulating the behavior of a `utility_meter` helper that has a defined reset cycle. Without intervention, the `state_class` of any `history_stats` sensor will be `measurement` and will therefore generate `average`, `min`, and `max` statistics.
For a **time** or **count** sensor that uses a time period that does not slide (such as one that resets upon each hour, as opposed to one which considers the trailing 60 minutes), consider using [customization](/docs/configuration/customizing-devices/#customizing-an-entity-in-yaml) to change the `state_class` to `total_increasing` to generate statistics that track the `sum`. This is useful when emulating the behavior of a `utility_meter` helper that has a defined reset cycle. Without intervention, the `state_class` of any `history_stats` sensor will be `measurement` and will therefore generate `average`, `min`, and `max` statistics.
{% endnote %}
## Time periods

View File

@ -14,6 +14,7 @@ ha_domain: honeywell
ha_platforms:
- climate
- diagnostics
- humidifier
- sensor
- switch
ha_integration_type: integration

View File

@ -29,6 +29,7 @@ ha_platforms:
- switch
ha_integration_type: integration
ha_domain: husqvarna_automower
ha_quality_scale: silver
---
The Husqvarna Automower integration provides connectivity with Husqvarna Automowers lawn mowers through Husqvarna's cloud API. Only mowers with *Automower® Connect* or with the *Automower® Connect Module* are supported.

View File

@ -75,8 +75,7 @@ If the selected station has elevators, binary sensors will be available.
You have to apply for credentials via the HVV website. You can see their official guide [here](https://www.hvv.de/de/fahrplaene/abruf-fahrplaninfos/datenabruf) (the page is only available in German).
In your mail, tell them you are using your API credentials for use within Home Assistant. They will send you a contract you will have to sign and send back. After about a week, you will receive your API credentials.
In your mail, tell them you are using your API credentials for use within Home Assistant. They will subsequently send your API credentials in a follow-up response.
## Data
Data is provided by [HVV](https://www.hvv.de/).

View File

@ -12,12 +12,12 @@ ha_platforms:
- button
- cover
- sensor
ha_integration_type: integration
ha_integration_type: device
ha_codeowners:
- '@abmantis'
---
The IKEA IDÅSEN integration allows you to connect your IKEA Idåsen motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller.
The IKEA IDÅSEN {% term integration %} allows you to connect your [IKEA Idåsen](https://www.ikea.com/us/en/cat/idasen-system-47424/) motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller.
{% tip %}
@ -47,3 +47,9 @@ This integration provides two buttons to connect and disconnect to/from the desk
Height:
description: The current height of the desk, in meters.
{% endconfiguration_basic %}
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -21,8 +21,9 @@ ha_config_flow: true
---
The `incomfort` {% term integration %} links Home Assistant with your Intergas Lan2RF gateway, including the boiler and any room thermostats attached to it.
The integration uses the [incomfort](https://pypi.org/project/incomfort-client/) client library.
It uses the [incomfort](https://pypi.org/project/incomfort-client/) client library.
The Intergas Lan2RF Gateway connects thermostats based on the OpenTherm standard. An example of such a thermostat is the [Comfort Touch Thermostat](https://www.intergas-verwarming.nl/en/consumer/products/comfort-touch-thermostat/). The thermostats and LAN2RF gateway are often sold as a set. The gateway is suitable for use with Intergas Kombi Kompakt HRE and HReco appliances from year of manufacture 2014. If the Comfort Touch thermostat is used together with the gateway, then this will work in combination with Intergas Kombi Kompakt HRE, HReco, or Xtreme devices from year of manufacture 2017.
### Boiler
@ -32,7 +33,7 @@ Note that the `current_temperature` will switch between the CV (circulating volu
### Rooms
Any room thermostats (there can be 0, 1 or 2) are represented as **Climate** devices. They will report the thermostat's `temperature` (setpoint, target temperature) and `current_temperature` and the setpoint can be changed.
Any room thermostats (there can be 0, 1 or 2) are represented as **Climate** devices. They will report the thermostat's target `temperature` and `current_temperature` and the target temperature can be changed. This is similar to changing the target temperature override using the Comfort Touch App that comes with the thermostat/gateway. Note that any override will be reset when a new set point is reached on the thermostat's schedule.
{% include integrations/config_flow.md %}
@ -64,6 +65,16 @@ Note that **all** sensors are disabled by default.
- Boiler Hot water tap: Indicates if the hot water tap is running.
- Boiler Pump: Indicate the pump is running for cental heating.
## Data updates
The `incomfort` {% term integration %} will fetch state data from the gateway every 30 seconds. When the target temperature on the thermostat is changed, it might take some time for the set point to be updated on the Home Assistant climate {% term entity %}.
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}
## Automation
To send an alert if the CV pressure is too low or too high, consider the following example:

View File

@ -8,7 +8,6 @@ ha_category:
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@pburgio'
- '@shapournemati-iotty'
ha_domain: iotty
ha_platforms:
@ -41,14 +40,20 @@ US version:
EU version:
- [iotty Smart Switch](https://iotty.uk/collections/prodotti-singoli/products/e1-e2-plus-smart-switch-for-lights-and-gates)
- [iotty Smart Switch (variant)](https://iotty.uk/collections/prodotti-singoli/products/e1-e2-plus-smart-switch-for-lights-and-gates?variant=48626603032911)
- [iotty Plus Interruttore Intelligente](https://iotty.it/collections/prodotti-singoli/products/i3-plus-interruttore-intelligente-per-luci-e-cancelli)
- [E1 PLUS Smart Switch - for lights and gates](https://iotty.uk/collections/prodotti-singoli/products/e1-e2-plus-smart-switch-for-lights-and-gates)
- [E2 PLUS Smart Switch - for lights and gates](https://iotty.uk/collections/prodotti-singoli/products/e1-e2-plus-smart-switch-for-lights-and-gates?variant=48626603032911)
- [i3 PLUS Smart Switch - for lights and gates](https://iotty.it/collections/prodotti-singoli/products/i3-plus-interruttore-intelligente-per-luci-e-cancelli)
### iotty Shutter
- [iotty Smart Shades Switch](https://iotty.uk/collections/frontpage/products/e2s-plus-smart-shades-switch-for-shutters-and-blinds)
- [iotty Plus Interruttore Intelligente per Tende e Tapparelle](https://iotty.it/collections/prodotti-singoli/products/i3s-plus-interruttore-intelligente-per-tende-e-tapparelle) (currently only available for the Italian market)
- [E2S PLUS Smart Shades Switch - for shutters and blinds](https://iotty.uk/collections/frontpage/products/e2s-plus-smart-shades-switch-for-shutters-and-blinds)
- [i3S PLUS Smart Shades Switch - for shutters and blinds](https://iotty.it/collections/prodotti-singoli/products/i3s-plus-interruttore-intelligente-per-tende-e-tapparelle)
### iotty Outlet
- [OiT PLUS Smart Outlet](https://iotty.it/collections/prodotti-singoli/products/oit-plus-presa-intelligente)
- [ODE PLUS Smart Outlet](https://iotty.de/collections/prodotti-singoli/products/ode-plus-smarte-steckdose)
- [OFR PLUS Smart Outlet](https://iotty.fr/collections/prodotti-singoli/products/ofr-plus-prise-intelligente)
### iotty Outlet

View File

@ -2,13 +2,13 @@
title: IronOS
description: Instructions on how to integrate IronOS-based Pinecil V2 devices with Home Assistant.
ha_category:
- Number
- Sensor
- Update
- Binary sensor
- Select
- Button
- Number
- Select
- Sensor
- Switch
- Update
ha_iot_class: Local Polling
ha_release: 2024.8
ha_config_flow: true
@ -17,13 +17,13 @@ ha_codeowners:
ha_domain: iron_os
ha_integration_type: integration
ha_platforms:
- number
- sensor
- update
- binary_sensor
- select
- button
- number
- select
- sensor
- switch
- update
---
The **IronOS** {% term integration %} seamlessly connects Home Assistant with PINE64's Pinecil V2 soldering irons, allowing for remote monitoring and control. This integration provides real-time updates on temperature, power, and various other settings and diagnostic information.

View File

@ -14,7 +14,7 @@ ha_domain: ituran
ha_platforms:
- device_tracker
- sensor
ha_integration_type: integration
ha_integration_type: hub
---
The **Ituran** {% term integration %} allows you to retrieve information from your Ituran-equipped vehicle using the [Ituran APP service](https://www.ituran.co.il/ituranfront/comfort-services-2/ituran-app-comfort). It pulls information from the Ituran web service regarding the vehicle's location.
@ -44,7 +44,7 @@ The Ituran {% term integration %} will track the location of each vehicle regist
### Sensor
The Ituran {% term integration %} also exposes the following sensor for each registered vehicle:
The Ituran {% term integration %} also exposes the following sensors for each registered vehicle:
- **Address** - The address that corresponds with the vehicle's location, as determined by Ituran
- **Battery voltage** - The measured voltage (V) of the car battery. If not supported by the installation, the value will be set to `-1`
@ -56,6 +56,7 @@ The Ituran {% term integration %} also exposes the following sensor for each reg
## Known limitations
- While this integration is configured with your account, you won't be able to use the official app, as only one connection at a time is supported
- As a workaround, it's possible to add another user from the app, with a different ID and mobile phone number that will be dedicated for Home Assistant use.
- The vehicle's heading value is unreliable when it's not in motion
- The mileage value is not read from the vehicle's odometer but is calculated from GPS, which may result in slight variations from the actual odometer reading

View File

@ -122,32 +122,86 @@ knx:
## Connection
Connection parameters are set up when adding the integration and can be changed from the `Integrations` panel.
Use `route back` if your tunneling server is located on a different network.
Connection parameters are configured during integration setup and can be modified later in the integrations settings.
### KNX Secure
The KNX integration supports IP Secure and Data Secure .
The KNX integration supports both IP Secure and Data Secure.
#### IP Secure
IP Secure credentials can be provided in two ways:
1. Using a `.knxkeys` file: This file can be exported from ETS and imported into the integration settings.
2. Manual configuration: If you are not using Data Secure, you can manually input the required IP Secure credentials in the integration settings.
#### Data Secure
You can configure the IP Secure credentials either manually or by providing a `.knxkeys` file, which you can obtain by exporting the keyring in ETS as seen in the screenshot below.
Data Secure credentials are always sourced from a `.knxkeys` file. You can import or update the Keyring file from the integrations settings.
For Data Secure, please make sure that all secured group addresses you want to use in Home Assistant are assigned to a tunnel of your interface or a dummy device in ETS and all participating devices are updated accordingly.
{% important %}
![Export Keyring in ETS5](/images/integrations/knx/export_keyring_ets.png)
Assign all secured group addresses that Home Assistant will use to either the interface's tunnel endpoint or a dummy device in ETS before exporting the Keyring file.
If you decide to configure IP Secure manually you will need the user ID, the user password and the device authentication password.
{% endimportant %}
The user id 0 is reserved and the user id 1 is used for management tasks, thus you will need to specify a user id that is 2 or higher according to the tunneling channel you would like to use.
When updating secure groups, ensure all participating devices, routers, and couplers applications are updated as well. After making changes, load the updated Keyring file into Home Assistant.
The following screenshot will show how you can get the device authentication password in ETS.
### Tunneling
![Obtain device authentication password in ETS](/images/integrations/knx/device_authentication_password.png)
Tunneling uses a KNX IP Interface to connect to the KNX bus. Most KNX IP Routers also support tunneling connections. This is the recommended connection type and is also used when selecting an "Automatic" connection in the integration setup.
The user password can be obtained almost the same way as seen in the below screenshot.
For modern interfaces (supporting TCP or IP Secure) you can select a specific tunnel endpoint to be used. Make sure that Home Assistant is the only client connecting to this tunnel endpoint.
It is recommended to connect the group addresses you want to use to the tunnel endpoint that Home Assistant uses. For secure group addresses, this is mandatory.
![Obtain the user password in ETS](/images/integrations/knx/user_password.png)
If you use KNX IP Secure tunneling or Data Secure, export the Keyring file from ETS and import it in the KNX integration settings.
![Tunnel endpoint setup in ETS 6](/images/integrations/knx/knx_ets_tunnel.png)
{% note %}
If you want Home Assistant to use a specific individual address, you can change the address of the used tunnel endpoint in ETS.
{% endnote %}
{% details "Manual IP Secure tunneling credentials" %}
If you opt for manual configuration of IP Secure tunneling, you will need the following:
1. User-ID: Use a User-ID of 2 or higher. (IDs 0 and 1 are reserved).
The first tunnel endpoint in ETS will typically use User-ID `2`, the second `3`, and so on.
2. User password.
3. Device authentication code (optional).
![Obtain the tunnel User-ID and password in ETS](/images/integrations/knx/knx_ets_tunnel_password.png)
The following screenshot will show how you can find the device authentication code in ETS.
![Obtain device authentication code in ETS](/images/integrations/knx/knx_ets_authentication_code.png)
{% enddetails %}
### Routing
Routing communicates with KNXnet/IP routers via IP Multicast.
When using routing:
1. Add a dummy device in ETS at the same topology level as your routers.
2. Assign this dummy device the same individual address configured in the KNX integration setup.
3. Connect all group addresses that Home Assistant will use to the dummy device.
This ensures routers and couplers maintain updated filter tables and enables the use of secure group addresses in Home Assistant.
4. If you use KNX IP Secure routing or Data Secure groups, export the Keyring file from ETS and import it in the KNX integration settings.
![Routing dummy setup in ETS 6](/images/integrations/knx/knx_ets_dummy.png)
{% details "Manual IP Secure routing credentials" %}
If you opt for manual configuration of IP Secure routing, you will need the backbone key. This can be found in the ETS "Project Security" report.
![Backbone key in ETS Project Security report](/images/integrations/knx/knx_ets_backbone_key.png)
{% enddetails %}
## Triggers
@ -416,7 +470,7 @@ automation:
### Register event
The `knx.event_register` action can be used to register (or unregister) group addresses to fire `knx_event` Events. Events for group addresses configured in the `event` key in `configuration.yaml` cannot be unregistered. See [knx_event](#events)
The `knx.event_register` action can be used to register (or unregister) group addresses to fire `knx_event` Events. Events for group addresses configured in the `event` key in {% term "`configuration.yaml`" %} cannot be unregistered. See [knx_event](#events)
{% configuration %}
address:
@ -436,7 +490,7 @@ type:
### Register exposure
The `knx.exposure_register` action can be used to register (or unregister) exposures to the KNX bus. Exposures defined in `configuration.yaml` can not be unregistered. Per address only one exposure can be registered. See [expose](#exposing-entity-states-entity-attributes-or-time-to-knx-bus)
The `knx.exposure_register` action can be used to register (or unregister) exposures to the KNX bus. Exposures defined in {% term "`configuration.yaml`" %} can not be unregistered. Per address only one exposure can be registered. See [expose](#exposing-entity-states-entity-attributes-or-time-to-knx-bus)
{% configuration %}
remove:
@ -740,7 +794,7 @@ entity_category:
The KNX climate platform is used as an interface to KNX thermostats and room controllers.
To use your KNX thermostats in your installation, add the following lines to your top level [KNX Integration](/integrations/knx) configuration key in `configuration.yaml`:
To use your KNX thermostats in your installation, add the following lines to your top level [KNX Integration](/integrations/knx) configuration key in {% term "`configuration.yaml`" %}:
```yaml
# Example configuration.yaml entry
@ -1017,7 +1071,7 @@ Unlike most KNX devices, Home Assistant defines 0% as closed and 100% as fully o
Home Assistant will, by default, `close` a cover by moving it in the `DOWN` direction in the KNX nomenclature, and `open` a cover by moving it in the `UP` direction.
{% endnote %}
To use your KNX covers in your installation, add the following lines to your top level [KNX Integration](/integrations/knx) configuration key in `configuration.yaml`:
To use your KNX covers in your installation, add the following lines to your top level [KNX Integration](/integrations/knx) configuration key in your {% term "`configuration.yaml`" %}:
```yaml
# Example configuration.yaml entry
@ -1243,7 +1297,7 @@ The KNX fan integration is used to control KNX fans. Following control types are
- Percentage controlled: Fans that set the percentage directly from 0-100%.
- Step controlled: Fans which have a fixed amount of steps to set. The integration will convert percentage to step automatically. The `max_step` attribute is set to the number of steps of the fan, not counting the `off`-step. Example: A fan supports the steps 0 to 3. To use this fan the `max_step` attribute has to be set to `3`. The integration will convert the percentage `66 %` to the step `2` when sending data to KNX.
To use your KNX fan in your installation, add the following lines to your top level [KNX Integration](/integrations/knx) configuration key in `configuration.yaml`:
To use your KNX fan in your installation, add the following lines to your top-level [KNX Integration](/integrations/knx) configuration key in your {% term "`configuration.yaml`" %}:
```yaml
# Example configuration.yaml entry
@ -1788,7 +1842,7 @@ knx:
type: percent
```
In order to actively read the sensor data from the bus every 30 minutes you can add the following lines to your `configuration.yaml`:
In order to actively read the sensor data from the bus every 30 minutes you can add the following lines to your {% term "`configuration.yaml`" %}:
```yaml
# Example configuration.yaml entry
@ -2225,7 +2279,7 @@ entity_category:
The KNX weather platform is used as an interface to KNX weather stations.
To use your KNX weather station in your installation, add the following lines to your top level [KNX Integration](/integrations/knx) configuration key in `configuration.yaml`:
To use your KNX weather station in your installation, add the following lines to your top-level [KNX Integration](/integrations/knx) configuration key in your {% term "`configuration.yaml`" %}:
```yaml
# Example configuration.yaml entry
@ -2334,8 +2388,8 @@ entity_category:
### Logs for the KNX integration
`xknx`, the library used for KNX communication, provides various logging handlers for monitoring and debug purposes.
Add the following lines to your Home Assistant `configuration.yaml` to activate them:
The [`xknx` library](https://github.com/XKNX/xknx) is used for KNX communication. It provides various logging handlers for monitoring and debug purposes.
Add the following lines to your Home Assistant {% term "`configuration.yaml`" %} to activate them:
```yaml
logger:
@ -2352,6 +2406,7 @@ logger:
xknx.knx: debug # logs incoming and outgoing KNX/IP frames
xknx.raw_socket: warning # logs incoming UDP/TCP frames in raw hex format at socket level
# Loggers for xknx internals
xknx.ga_dpt: warning # logs when payloads can't be decoded with given project file information
xknx.state_updater: warning # provides information about the state updater
```
@ -2403,3 +2458,17 @@ The `unique_id` for KNX entities is generated based on required configuration va
- weather: `address_temperature`
There can not be multiple entities on the same platform sharing these exact group addresses, even if they differ in other configuration.
## Remove integration
This integration can be removed by following these steps:
{% include integrations/remove_device_service.md %}
In addition, remove `knx:` from your {% term "`configuration.yaml`" %}.
{% warning %}
Removing the integration will delete an uploaded keyring file, ETS project information, telegram history, and all entity configuration done via the UI panel.
{% endwarning %}

View File

@ -93,7 +93,7 @@ message:
required: true
type: string
icon:
description: "An icon or animation. List of all icons available at [https://developer.lametric.com/icons](https://developer.lametric.com/icons)."
description: "The ID of an icon or animation. List of all icons available at [https://developer.lametric.com/icons](https://developer.lametric.com/icons)."
required: false
type: string
cycles:
@ -132,7 +132,7 @@ following, additional, optional parameters:
{% configuration "notification" %}
icon:
description: "An icon or animation. List of all icons available at [https://developer.lametric.com/icons](https://developer.lametric.com/icons)."
description: "The ID of an icon or animation. List of all icons available at [https://developer.lametric.com/icons](https://developer.lametric.com/icons)."
required: false
type: string
cycles:

View File

@ -433,6 +433,20 @@ Refer to the [Performing actions](/docs/scripts/service-calls) page for examples
When actions are linked to a particular device, the device is identified by its `device_id`. This `device_id` is a unique identifier supplied by Home Assistant.
{% tip %}
A simple method to obtain the `device_id` for LCN modules in automations and scripts is to use a template with the `device_id()` function as detailed [here](/docs/configuration/templating/#devices). This allows for finding the `device_id` using the module name as shown in the frontend or configured in the LCN-PRO software.
{% raw %}
```yaml
action: lcn.pck
data:
device_id: "{{ device_id('Module name') }}"
pck: PIN4
```
{% endraw %}
{% endtip %}
### Action: `output_abs`
Set absolute brightness of output port in percent.
@ -798,3 +812,15 @@ The motor values specify which hardware relay or outputs configuration will be u
Whenever a key has to be provided, it is defined by a joint string consisting of the table identifier (`a`, `b`, `c`, `d`) and the corresponding key number.
Examples: `a1`, `a5`, `d8`.
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}
{% warning %}
Removing the integration will delete all device and entity configuration done via the UI panel.
{% endwarning %}

View File

@ -26,12 +26,12 @@ ha_codeowners:
The **LG ThinQ** integration allows you to connect LG ThinQ devices to Home Assistant. The features of this integration include:
- Control LG appliances as Home Assistant entities through the [LG ThinQ Connect API](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/overview/).
- Control LG appliances as Home Assistant entities through the LG ThinQ Connect API.
## Prerequisites
- This feature works via LG ThinQ cloud. Therefore, an internet connection is required.
- A [personal access token](https://connect-pat.lgthinq.com) to use the [LG ThinQ Connect API](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/overview/).
- A [personal access token](https://connect-pat.lgthinq.com) to use the LG ThinQ Connect API.
### Personal Access Token (PAT)
@ -59,39 +59,39 @@ The **LG ThinQ** integration allows you to connect LG ThinQ devices to Home Assi
Support LG Appliances as follows:
- [Air Conditioner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-conditioner/)
- [Air Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-purifier/)
- [Air Purifier Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Air-Purifier-Fan/)
- [Ceiling Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/ceiling-fan/)
- [Cooktop](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/cooktop/)
- [Dehumidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dehumidifier/)
- [Dishwasher](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dish-washer/)
- [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dryer/)
- [Home Brew](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/home-brew/)
- [Hood](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/hood/)
- [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/)
- [Kimchi Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/kimchi-refrigerator/)
- [Microwave Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/microwave-oven/)
- [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/oven/)
- [Plant Cultivator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/plant-cultivator/)
- [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/)
- [Robot Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/robot-cleaner/)
- [Stick Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Stick-Cleaner/)
- [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/)
- [System Boiler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/system-boiler/)
- [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)
- [Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)
- [Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)
- [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)
- [Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)
- [Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/)
- [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/water-heater/)
- [Water Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/water-purifier/)
- [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/wine-cellar/)
- Air Conditioner
- Air Purifier
- Air Purifier Fan
- Ceiling Fan
- Cooktop
- Dehumidifier
- Dishwasher
- Dryer
- Home Brew
- Hood
- Humidifier
- Kimchi Refrigerator
- Microwave Oven
- Oven
- Plant Cultivator
- Refrigerator
- Robot Cleaner
- Stick Cleaner
- Styler
- System Boiler
- Washcombo Main
- Washcombo Mini
- Washer
- Washtower
- Washtower Dryer
- Washtower Washer
- Water Heater
- Water Purifier
- Wine Cellar
## Platforms
LG ThinQ represents devices as a set of [profiles](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/). And these are mapped to entities in Home Assistant.
LG ThinQ represents devices as a set of properties. And these are mapped to entities in Home Assistant.
A list of all Entity Platforms provided by LG ThinQ Integration:
@ -111,18 +111,15 @@ A read-only property which has only two states that can be toggled is represente
| Device | Property |
| ------ | -------- |
| [Cooktop](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Cooktop/)<br> | Remote start |
| [Dish Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dish-washer/) | Chime sound<br>Clean indicator light<br>Door<br>Machine clean reminder<br>Remote start<br>Rinse refill needed |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/)<br> | Remote start |
| [Hood](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Hood/) | Power |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Remote start |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Door<br>Eco friendly<br>Power saving mode<br>Sabbath |
| [Kimchi Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Kimchi-Refrigerator/) | Fresh air filter |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Remote start |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Remote start |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Remote start |
| [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Water-Heater/) | Power |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Sabbath |
| Cooktop | Remote start |
| Dish Washer | Chime sound<br>Clean indicator light<br>Door<br>Machine clean reminder<br>Remote start<br>Rinse refill needed |
| Hood | Power |
| Oven | Remote start |
| Refrigerator | Door<br>Eco friendly<br>Power saving mode<br>Sabbath |
| Kimchi Refrigerator | Fresh air filter |
| Dryer<br>Styler<br>Washer<br>Washcombo Main<br>Washcombo Mini<br>Washtower<br>Washtower Dryer<br>Washtower Washer | Remote start |
| Water Heater | Power |
| Wine Cellar | Sabbath |
### Climate
@ -130,8 +127,8 @@ The properties for controlling both the temperature and wind strength of the app
| Device | Property |
| ------ | -------- |
| [Air Conditioner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-conditioner/) | Current temperature<br>Fan mode<br>HVAC mode<br>Preset mode<br>Temperature<br>Temperature cool<br>Temperature heat<br>Unit |
| [System Boiler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/System-Boiler/) | Current temperature<br>HVAC mode<br>Temperature<br>Temperature cool<br>Temperature heat<br>Unit |
| Air Conditioner | Current temperature<br>Fan mode<br>HVAC mode<br>Preset mode<br>Temperature<br>Temperature cool<br>Temperature heat<br>Unit |
| System Boiler | Current temperature<br>HVAC mode<br>Temperature<br>Temperature cool<br>Temperature heat<br>Unit |
### Event
@ -139,23 +136,20 @@ A notification message pushed from the server is represented as an event platfor
| Device | Property |
| ------ | -------- |
| [Air Conditioner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-conditioner/) | Notification |
| [Air Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-purifier/) | Notification |
| [Air Purifier Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Air-Purifier-Fan/) | Notification |
| [Dehumidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dehumidifier/) | Notification |
| [Dish Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dish-washer/) | Error<br>Notification |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/) | Error<br>Notification |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Notification |
| [Kimchi Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Kimchi-Refrigerator/) | Notification |
| [Microwave Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Microwave-Oven/) | Notification |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Notification |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Notification |
| [Robot Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/robot-cleaner/) | Error<br>Notification |
| [Stick Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Stick-Cleaner/) | Notification |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Error<br>Notification |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Error<br>Notification |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Error<br>Notification |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Notification |
| Air Conditioner | Notification |
| Air Purifier| Notification |
| Air Purifier Fan | Notification |
| Dehumidifier | Notification |
| Dish Washer | Error<br>Notification |
| Humidifier | Notification |
| Kimchi Refrigerator | Notification |
| Microwave Oven | Notification |
| Oven | Notification |
| Refrigerator | Notification |
| Robot Cleaner | Error<br>Notification |
| Stick Cleaner | Notification |
| Dryer<br>Styler<br>Washer<br>Washcombo Main<br>Washcombo Mini<br>Washtower<br>Washtower Dryer<br>Washtower Washer | Error<br>Notification |
| Wine Cellar | Notification |
### Fan
@ -163,27 +157,24 @@ The properties for controlling the wind strength of the appliance are represente
| Device | Property |
| ------ | -------- |
| [Ceiling Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/ceiling-fan/) | Power<br>Speed |
| Ceiling Fan | Power<br>Speed |
### Number
A read-write property which has numeric value is represented as a number platform.
A read-write property which has a numeric value is represented as a number platform.
| Device | Property |
| ------ | -------- |
| [Air Conditioner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-conditioner/) | Schedule turn-off<br>Schedule turn-on<br>Sleep timer |
| [Air Purifier Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Air-Purifier-Fan/) | Sleep timer<br>Wind temperature |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/) | Delay ends in<br>Delay starts in |
| [Hood](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Hood/) | Fan<br>Light |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Sleep timer<br>Target humidity |
| [Microwave Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Microwave-Oven/) | Fan<br>Light |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Temperature |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Temperature |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Delay ends in |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Delay ends in<br>Delay starts in |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Delay ends in<br>Delay starts in |
| [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Water-Heater/) | Temperature |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Light<br>Temperature |
| Air Conditioner | Schedule turn-off<br>Schedule turn-on<br>Sleep timer |
| Air Purifier Fan | Sleep timer<br>Wind temperature |
| Hood | Fan<br>Light |
| Humidifier | Sleep timer<br>Target humidity |
| Microwave Oven | Fan<br>Light |
| Oven | Temperature |
| Refrigerator | Temperature |
| Dryer<br>Styler<br>Washer<br>Washcombo Main<br>Washcombo Mini<br>Washtower<br>Washtower Dryer<br>Washtower Washer | Delay ends in |
| Water Heater | Temperature |
| Wine Cellar | Light<br>Temperature |
### Select
@ -191,48 +182,17 @@ A writable property which has a list of selectable values is represented as a se
| Device |Property |
| ------ |-------- |
| [Air Conditioner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-conditioner/) | Air purify<br>Air quality sensor |
| [Air Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-purifier/) | Operating mode<br>Speed |
| [Air Purifier Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Air-Purifier-Fan/) | Display brightness<br>Operating mode<br>Rotation<br>Speed |
| [Dehumidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dehumidifier/) | Speed |
| [Dish Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dish-washer/) | Operation |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/) | Operation |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Display brightness<br>Drying mode<br>Operating mode<br>Speed |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Cook mode<br>Operation<br> |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Fresh air filter |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Operation |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Operation |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Operation |
| [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Water-Heater/) | Operating mode |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Light<br>Operating mode |
### Sensor
A read-only property which has states is represented as a sensor platform.
| Device | Property |
| ------ | -------- |
| [Air Conditioner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-conditioner/) | Filter remaining<br>Humidity<br>Odor<br>Overall air quality<br>PM1<br>PM10<br>PM2.5<br>Schedule turn-off<br>Schedule turn-on<br>Sleep timer |
| [Air Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-purifier/) | Air quality sensor<br>Humidity<br>Odor<br>Operating mode<br>Overall air quality<br>Personal mode<br>PM1<br>PM10<br>PM2.5 |
| [Air Purifier Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Air-Purifier-Fan/) | Air quality sensor<br>Humidity<br>Odor<br>Overall air quality<br>PM1<br>PM10<br>PM2.5<br>Sleep timer<br>Temperature |
| [Cooktop](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Cooktop/) | Current status<br>Power level<br>Remaining time |
| [Dehumidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dehumidifier/) | Humidity<br>Operating mode |
| [Dish Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dish-washer/) | Current cycle<br>Current status<br>Delay starts in<br>Remaining time<br>Rinse aid dispenser level<br>Softening level<br>Total time |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Home Brew](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Home-Brew/)| Brewing duration<br>Brewing period<br>Current status<br>Flavor<br>Homebrew recipe<br>Hops<br>Recipe progress<br>Wort<br>Yeast |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Air quality sensor<br>Humidity<br>Overall air quality<br>PM1<br>PM10<br>PM2.5<br>Schedule turn-off<br>Schedule turn-on<br>Sleep timer<br>Temperature |
| [Kimchi Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Kimchi-Refrigerator/) | Fresh air filter<br>Temperature |
| [Microwave Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Microwave-Oven/) | Current status<br>Remaining time |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Cook time<br>Current status<br>Remaining time<br>Temperature |
| [Plant Cultivator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Plant-Cultivator/) | Current status<br>Day growth temperature<br>Lighting duration<br>Lighting intensity<br>Lights on time<br>Mode<br>Night growth temperature<br>Temperature<br>Wind speed |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Fresh air filter<br>Water filter used |
| [Robot Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/robot-cleaner/) | Current status<br>Operating mode<br>Running time |
| [Stick Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Stick-Cleaner/) | Battery<br>Current status<br>Operating mode |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Water-Heater/) | Temperature |
| [Water Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/water-purifier/) | High-temp sterilization<br>Type<br>UVnano|
| Air Conditioner | Air purify<br>Air quality sensor |
| Air Purifier| Operating mode<br>Speed |
| Air Purifier Fan | Display brightness<br>Operating mode<br>Rotation<br>Speed |
| Dehumidifier | Speed |
| Dish Washer | Operation |
| Humidifier | Display brightness<br>Drying mode<br>Operating mode<br>Speed |
| Oven | Cook mode<br>Operation<br> |
| Refrigerator | Fresh air filter |
| Dryer<br>Styler<br>Washer<br>Washcombo Main<br>Washcombo Mini<br>Washtower<br>Washtower Dryer<br>Washtower Washer | Operation |
| Water Heater | Operating mode |
| Wine Cellar | Light<br>Operating mode |
### Switch
@ -240,14 +200,14 @@ A read-write property which has only two states that can be toggled is represent
| Device | Property |
| ------ | -------- |
| [Air Conditioner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-conditioner/) | Energy saving |
| [Air Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-purifier/) | Power |
| [Air Purifier Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Air-Purifier-Fan/) | Heating<br>Power<br>UVnano |
| [Dehumidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dehumidifier/) | Power |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Auto mode<br>Heating<br>Mood light<br>Power<br>Sleep mode |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Ice plus<br>Quick freeze |
| [System Boiler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/System-Boiler/) | Hot water |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Ventilation |
| Air Conditioner | Energy saving |
| Air Purifier | Power |
| Air Purifier Fan | Heating<br>Power<br>UVnano |
| Dehumidifier | Power |
| Humidifier | Auto mode<br>Heating<br>Mood light<br>Power<br>Sleep mode |
| Refrigerator | Ice plus<br>Quick freeze |
| System Boiler | Hot water |
| Wine Cellar | Ventilation |
### Vacuum
@ -255,7 +215,64 @@ The properties for controlling the clean operations of the appliance are represe
| Device | Property |
| ------ | -------- |
| [Robot Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/robot-cleaner/) | Battery<br>Current status<br>Operation |
| Robot Cleaner | Battery<br>Current status<br>Operation |
### Sensor
A read-only property which has states is represented as a sensor platform.
| Device | Property |
| ------ | -------- |
| Air Conditioner | Filter remaining<br>Humidity<br>Odor<br>Overall air quality<br>PM1<br>PM10<br>PM2.5<br>Schedule turn-off<br>Schedule turn-on<br>Sleep timer |
| Air Purifier| Air quality sensor<br>Humidity<br>Odor<br>Operating mode<br>Overall air quality<br>Personal mode<br>PM1<br>PM10<br>PM2.5<br>Filter remaining<br>Schedule turn-off<br>Schedule turn-on |
| Air Purifier Fan | Air quality sensor<br>Humidity<br>Odor<br>Overall air quality<br>PM1<br>PM10<br>PM2.5<br>Sleep timer<br>Temperature<br>Schedule turn-off<br>Schedule turn-on |
| Cooktop | Current status<br>Power level |
| Dehumidifier | Humidity<br>Operating mode |
| Dish Washer | Current cycle<br>Current status<br>Rinse aid dispenser level<br>Softening level<br>Delay in<br>Remaining time<br>Total time |
| Home Brew| Brewing duration<br>Brewing period<br>Current status<br>Flavor<br>Homebrew recipe<br>Hops<br>Recipe progress<br>Wort<br>Yeast |
| Humidifier | Air quality sensor<br>Humidity<br>Overall air quality<br>PM1<br>PM10<br>PM2.5<br>Schedule turn-off<br>Schedule turn-on<br>Sleep timer<br>Temperature |
| Kimchi Refrigerator | Fresh air filter<br>Temperature |
| Microwave Oven | Current status |
| Oven | Current status<br>Temperature |
| Plant Cultivator | Current status<br>Day growth temperature<br>Lighting duration<br>Lighting intensity<br>Lights on time<br>Mode<br>Night growth temperature<br>Temperature<br>Wind speed |
| Refrigerator | Fresh air filter<br>Water filter used |
| Robot Cleaner | Current status<br>Operating mode<br>Running time |
| Stick Cleaner | Battery<br>Current status<br>Operating mode |
| Water Heater | Temperature |
| Water Purifier | High-temp sterilization<br>Type<br>UVnano|
| Dryer<br>Styler<br>Washer<br>Washcombo Main<br>Washcombo Mini<br>Washtower<br>Washtower Dryer<br>Washtower Washer | Current status<br>Delay in<br>Remaining time<br>Total time |
### Custom card configuration
#### Timer Bar Card
- Supported devices: Washer, Dryer, Styler, Dish washer
- Entities: sensor.washer_current_status, sensor.washer_remaining_time, sensor.washer_total_time
```yaml
type: custom:timer-bar-card
entities:
- entity: sensor.washer_current_status
name: Washer
active_state:
- running
- rinsing
- spinning
- drying
- cooling
- reserved
- presteam
- steam
pause_state: pause
icon: mdi:tumble-dryer-off
active_icon: mdi:tumble-dryer
end_time:
entity: sensor.washer_remaining_time
duration:
entity: sensor.washer_total_time
units: minutes
invert: true
```
## Troubleshooting
@ -274,14 +291,7 @@ Check your PAT's valid country in the **Choose the region / Country** section.
This error occurs when there's an abnormal number of API calls made using the PAT.
The LG ThinQ integration will work properly after some time.
## Debugging
The LG ThinQ integration will show additional information by enabling log configuration. Add the line to your {% term "`configuration.yaml`" %}:
Don't forget to remove the line again once you are done debugging.
```yaml
logger:
default: info
logs:
homeassistant.components.lg_thinq: debug
```
## Debugging / Issue report
The LG ThinQ integration will show additional information by enabling log configuration.
1. Enable debug logging in /config/integrations/integration/lg_thinq,
2. Please report your device info (screenshot including name, device type, entities) and logs.

View File

@ -74,7 +74,7 @@ lock:
required: false
type: template
default: None
lock:
lock:
description: Defines an action to run when the lock is locked.
required: true
type: action

View File

@ -35,12 +35,17 @@ sensor:
- Elizabeth line
- Hammersmith & City
- Jubilee
- London Overground
- Metropolitan
- Northern
- Piccadilly
- Victoria
- Waterloo & City
- Liberty
- Lioness
- Mildmay
- Suffragette
- Weaver
- Windrush
```
{% configuration %}

View File

@ -22,7 +22,10 @@ The `mastodon` platform uses [Mastodon](https://joinmastodon.org/) to deliver no
### Setup
Go to **Preferences** in the Mastodon web interface, then to **Development** and create a new application.
If you want to grant only required accesses, uncheck all checkboxes then check only **read:accounts** and **write:statuses**.
Check the following scopes **read:accounts**, **write:statuses** and **write:media**.
Select **Submit** to create the application and generate the key, secret, and token required for the integration.
{% include integrations/config_flow.md %}

View File

@ -350,7 +350,7 @@ All modbus entities have the following parameters:
{% configuration %}
address:
description: "Address of coil/register."
description: "Address of coil/register. Note that this can also be specified in Hex. For example: `0x789A`"
required: true
type: integer
name:
@ -369,12 +369,12 @@ slave:
description: "Identical to `device_address`"
required: false
type: integer
default: 0
default: 1
device_address:
description: "Id of the device. Used to address multiple devices on a rs485 bus or devices connected to a modbus repeater."
description: "Id of the device. Used to address multiple devices on a rs485 bus or devices connected to a modbus repeater. 0 is the broadcast id. "
required: false
type: integer
default: 0
default: 1
unique_id:
description: "ID that uniquely identifies this entity.
Slaves will be given a unique_id of <<unique_id>>_<<slave_index>>.
@ -838,7 +838,7 @@ modbus:
port: 502
climates:
- name: "Watlow F4T"
address: 27586
address: 0x6BC2
input_type: holding
count: 1
data_type: custom
@ -1458,7 +1458,7 @@ modbus:
sensors:
- name: Room_1
slave: 10
address: 0
address: 0x9A
input_type: holding
unit_of_measurement: °C
state_class: measurement

View File

@ -3,6 +3,7 @@ title: Monzo
description: Instructions on how to integrate Monzo integration into Home Assistant.
ha_category:
- Sensor
- Finance
ha_release: 2024.6
ha_iot_class: Cloud Polling
ha_codeowners:

View File

@ -40,4 +40,4 @@ relaxdeck:
volume_level: 0.60
```
This platform works with [Music Player Daemon](https://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://mopidy.com/ext/mpd/) as used by [Pi MusicBox](https://www.pimusicbox.com/). While all of these rely on the common MPD protocol, not all implementations support all features, especially with regard to album artwork, embedded artwork and volume control. The platform will fall back gracefully if support isn't detected.
This platform works with [Music Player Daemon](https://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://mopidy.com/ext/mpd/) as used by [Pi MusicBox](https://pimusicbox.github.io/). While all of these rely on the common MPD protocol, not all implementations support all features, especially with regard to album artwork, embedded artwork and volume control. The platform will fall back gracefully if support isn't detected.

View File

@ -133,7 +133,7 @@ Note: This action does not remove the [MQTT broker](#setting-up-a-broker) or its
Your first step to get MQTT and Home Assistant working is to choose a broker.
The easiest option is to install the official Mosquitto Broker add-on. You can choose to set up and configure this add-on automatically when you set up the MQTT integration. Home Assistant will automatically generate and assign a safe username and password, and no further attention is required. This also works if you have already set up this add-on yourself in advance.
You can set up additional logins for your MQTT devices and services using the [Mosquitto add-on configuration](https://my.home-assistant.io/create-link/?redirect=supervisor_addon&addon=core_mosquitto).
You can set up additional logins for your MQTT devices and services using the [Mosquitto add-on configuration](https://my.home-assistant.io/redirect/supervisor_addon/?addon=core_mosquitto).
{% important %}
When MQTT is set up with the official Mosquitto MQTT broker add-on, the broker's credentials are generated and kept secret. If the official Mosquitto MQTT broker needs to be re-installed, make sure you save a copy of the add-on user options, like the additional logins. After re-installing the add-on, the MQTT integration will automatically update the new password for the re-installed broker. It will then reconnect automatically.

View File

@ -49,7 +49,7 @@ Play Adele's album 25
```yaml
entity_id: media_player.music_assistant_player
media_content_type: MUSIC
media_content_type: album
media_content_id: 'Adele - 25'
```
@ -57,7 +57,7 @@ Play all tracks from Stevie Wonder in random order
```yaml
entity_id: media_player.music_assistant_player
media_content_type: MUSIC
media_content_type: artist
media_content_id: 'Stevie Wonder'
```
@ -65,7 +65,7 @@ Play the playlist The Best of Disco
```yaml
entity_id: media_player.music_assistant_player
media_content_type: PLAYLIST
media_content_type: playlist
media_content_id: 'The Best of Disco'
```

View File

@ -27,6 +27,7 @@ ha_integration_type: integration
related:
- url: https://myuplink.com/
title: myUplink web portal
ha_quality_scale: silver
---
The **myUplink** {% term integration %} lets you get information about and control heat-pump devices supporting myUplink using the [official cloud API](https://dev.myuplink.com).

View File

@ -21,7 +21,10 @@ ha_platforms:
ha_integration_type: hub
---
The **Nice G.O.** {% term integration %} lets you control Nice G.O. garage doors through Home Assistant. Device names in Home Assistant are generated based on the names defined in your Nice G.O. mobile app.
The **Nice G.O.** {% term integration %} is used to integrate with [Nice/Linear](https://linear-solutions.com/) and [Mighty Mule](https://mightymule.com/) products.
This integration is used for garage doors and gate openers created by these companies.
Device names in Home Assistant are generated based on the names defined in your Nice G.O. mobile app.
## Prerequisites
@ -44,3 +47,9 @@ Lights on your garage door will appear as lights.
## Switch
A switch for turning vacation mode on and off will be made available for each device. Vacation mode prevents the operation of the door from physical control points such as a wall station, wireless keypad, remote control, or HomeLink. It can still be controlled from Home Assistant.
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -5,19 +5,18 @@ ha_codeowners:
- '@VandeurenGlenn'
ha_config_flow: true
ha_category:
- Light
- Cover
- Light
ha_iot_class: Local Push
ha_release: 0.82
ha_domain: niko_home_control
ha_platforms:
- light
- cover
- light
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_quality_scale: legacy
---
The `niko_home_control` {% term integration %} allows you to integrate your [Niko Home Control](https://www.niko.eu/enus/products/niko-home-control) into Home Assistant.

View File

@ -15,6 +15,7 @@ ha_platforms:
- diagnostics
- sensor
ha_integration_type: hub
ha_quality_scale: platinum
---
The **Nord Pool** {% term integration %} integrates [Nord Pool Group](https://www.nordpoolgroup.com/) energy prices into Home Assistant.
@ -43,7 +44,8 @@ All prices are displayed as `[Currency]/kWh`.
Data is polled from the **Nord Pool** API on an hourly basis, exactly on the hour, to ensure the price sensors are displaying the correct price.
If polling cannot happen because of no connectivity or a malfunctioning API, there is no retry; the next periodic update will try again.
If polling cannot happen because of no connectivity or a malfunctioning API, it will wait a retry a few times before failing.
The user can use the [`homeassistant.update_entity`](homeassistant#action-homeassistantupdate_entity) action to manually try again later, in the case the user has solved the connectivity issue.
## Troubleshooting

View File

@ -69,7 +69,7 @@ Notifications can also be sent using [Notify groups](https://www.home-assistant.
### Test if it works
After you setup a [notifier](/integrations/#notifications), a simple way to test if you have set up your notify platform correctly is to open {% my developer_services title="**Developer tools** > **Actions**" %}** tab from the sidebar. Choose your action from the **Action** dropdown menu depending on the integration you want to test, such as **Notifications: Send a persistent notification** or **Notifications: Send a notification via mobile_app_your_phone_name**. Enter your message into the **message** field, and select the **Perform action** button.
After you set up a [notifier](/integrations/#notifications), a simple way to test if you have set up your notify platform correctly is to open {% my developer_services title="**Developer tools** > **Actions**" %} tab from the sidebar. Choose your action from the **Action** dropdown menu depending on the integration you want to test, such as **Notifications: Send a persistent notification** or **Notifications: Send a notification via mobile_app_your_phone_name**. Enter your message into the **message** field, and select the **Perform action** button.
To test the entity platform action, select the `notify.send_message` action, and select one or more of `entity`, `device`, `area`, or `label`. Then, supply a `message`.
@ -109,7 +109,7 @@ actions:
In the **Developer Tools**, on the **Action** tab, select the **Notifications: Send a persistent notification** action. Enter a message and test sending it.
If you switch to view the YAML data under **Developer Tools**, it will appear as below. The same {% term action %} can be chosen in {% term automation %} actions %, whose YAML will appear the same:
If you switch to view the YAML data under **Developer Tools**, it will appear as below. The same {% term action %} can be chosen in {% term automation %} actions, whose YAML will appear the same:
{% raw %}

View File

@ -2,8 +2,8 @@
title: Ohme
description: Instructions to configure the Ohme integration into Home Assistant.
ha_category:
- Sensor
- Car
- Sensor
ha_release: 2025.1
ha_iot_class: Cloud Polling
ha_codeowners:
@ -11,9 +11,11 @@ ha_codeowners:
ha_config_flow: true
ha_domain: ohme
ha_platforms:
- button
- sensor
- switch
- button
ha_quality_scale: silver
ha_integration_type: device
---
The **Ohme** {% term integration %} allows you to connect your [Ohme](https://ohme-ev.com/) EV charger to Home Assistant.

View File

@ -5,6 +5,7 @@ ha_category:
- Media player
ha_codeowners:
- '@arturpragacz'
- '@eclair4151'
ha_config_flow: true
ha_domain: onkyo
ha_integration_type: device
@ -12,6 +13,7 @@ ha_iot_class: Local Push
ha_platforms:
- media_player
ha_release: 0.17
ha_ssdp: true
---
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.

View File

@ -57,7 +57,7 @@ If you choose to not use the recommended settings, you can configure the followi
{% configuration_basic %}
Model:
description: The GPT language model is used for text generation. You can find more details on the available models in the [OpenAI GPT-3.5 Turbo Documentation](https://platform.openai.com/docs/models/gpt-3-5-turbo), [OpenAI GPT-4 Turbo and GPT-4 Documentation](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4), or [GPT-4o Documentation](https://platform.openai.com/docs/models/gpt-4o). The default is "gpt-4o".
description: The GPT language model is used for text generation. You can find more details on the available models in the [GPT-4o Documentation](https://platform.openai.com/docs/models/gpt-4o). The default is "gpt-4o-mini".
Maximum Tokens to Return in Response:
description: The maximum number of words or "tokens" that the AI model should generate in its completion of the prompt. For more information, see the [OpenAI Completion Documentation](https://platform.openai.com/docs/guides/completion/introduction).
Temperature:

View File

@ -1,6 +1,6 @@
---
title: Overkiz
description: Instructions on how to integrate hubs whom use the Overkiz platform with Home Assistant.
description: Instructions on how to integrate hubs that use the Overkiz IoT platform with Home Assistant.
ha_category:
- Alarm
- Binary sensor
@ -49,39 +49,70 @@ ha_platforms:
ha_integration_type: hub
---
The Overkiz (by Somfy) integration platform is used by many different vendors, like Somfy, Hitachi, and Atlantic. This integration will allow users to integrate their devices into Home Assistant using the Overkiz API.
The Overkiz (by Somfy) IoT platform is used by many different vendors, like Somfy, Hitachi, and Atlantic. This integration will allow users to integrate their devices into Home Assistant using the Overkiz API.
## Supported hubs
## Supported hubs & devices
- Atlantic Cozytouch
- Bouygues Flexom
- Hitachi Hi Kumo
- Nexity Eugénie
- Rexel Energeasy
- Sauter Cozytouch
- Simu LiveIn2
- Somfy Connectivity Kit
- Somfy Connexoon IO _(local API available)_
- Somfy Connexoon RTS _(local API available)_
- Somfy TaHoma _(local API available)_
- Somfy TaHoma v2 _(local API available)_
- Somfy TaHoma Beecon _(local API available)_
- Somfy TaHoma Switch _(local API available)_
- Thermor Cozytouch
## Supported devices
- Ubiwizz
Over 6000 devices from 60 brands are compatible with the Overkiz platform. This integration will retrieve your devices and map them to the relevant Home Assistant platforms.
{% include integrations/config_flow.md %}
The Overkiz integration supports both the Overkiz cloud API and the local API (only supported by some Somfy hubs). For compatible Somfy hubs, you can connect locally, allowing device control without an internet connection. Start by selecting the server or app that you use to control your devices.
### Login to Overkiz (Cloud API)
{% configuration_basic %}
"Username":
description: "Username for your Overkiz cloud account (account you use in your IoT app)."
Password:
description: "Password for your Overkiz cloud account (account you use in your IoT app)."
{% endconfiguration_basic %}
### Login to Overkiz (Local API)
To use the local API, you will need to activate the [Somfy TaHoma Developer Mode](https://github.com/Somfy-Developer/Somfy-TaHoma-Developer-Mode?tab=readme-ov-file#getting-started) via the Somfy website. Activating this mode will enable a local API on your TaHoma box. Your cloud credentials are required to negotiate a token with the cloud API to authenticate your calls to the local API. This is a one-time setup and the token will be stored in your Home Assistant configuration.
Scenarios and climate entities are **not** supported via the Somfy TaHoma Developer Mode.
{% configuration_basic %}
"Host":
description: "The hostname or IP address of your Overkiz hub. The hostname is your Gateway PIN + .local:8443 (e.g. 1234-4567-8912.local)."
"Username":
description: "Username for your Overkiz cloud account (account you use in your IoT app)."
Password:
description: "Password for your Overkiz cloud account (account you use in your IoT app)."
Verify SSL:
description: "Verify the SSL certificate of your hub. This option is available only when connecting via the hostname."
{% endconfiguration_basic %}
## Data updates
This integration retrieves data from Overkiz every 30 seconds to ensure timely updates. If you only have stateless devices (RTS protocol), the integration will poll for new data every hour to reduce unnecessary load on the Overkiz API.
## Known limitations
### Zigbee, Z-Wave, Hue, and Sonos devices not supported
Even though most Overkiz hubs support adding Zigbee, Z-Wave, Hue, and Sonos devices, this isn't supported in the Overkiz integration. All these platforms have native integrations in Home Assistant which are more stable and feature-rich.
Even though most Overkiz hubs support adding Zigbee, Z-Wave, Hue, and Sonos devices, this isn't supported in the Overkiz integration. All these platforms have native integrations in Home Assistant, which provide more frequent state updates and are more feature-rich.
### Stateless RTS covers
Covers that use the RTS protocol are stateless and do not report their state back to the hub. This means that Home Assistant will not know the state of the device after it has been controlled.
If you only control your RTS cover from Home Assistant, you can use the [template cover](/integrations/cover.template/) to create a stateful cover entity. This will allow you to keep track of the current state (open or closed) and use the cover in automations and scenes.
RTS covers do not report their state back to the hub, so Home Assistant cannot track their state after they are controlled. If you only control your RTS cover from Home Assistant, you can use the [template cover](/integrations/cover.template/) to create a stateful cover entity. This will help you track the current state (open or closed) and use the cover in automations and scenes.
```yaml
cover:
@ -106,6 +137,12 @@ cover:
### Overkiz API limits
**Device state changes are not broadcasted for all devices**
Some Overkiz devices do not broadcast status changes. To update their status, the vendor's app (for example, Somfy TaHoma) requests a status update when opened. The app then broadcasts the states via events that the Overkiz integration also listens to. The Overkiz integration cannot replicate this behavior, as it does not know when you access the Home Assistant dashboard or run automations.
As a result, the state of some Overkiz devices in Home Assistant may not always be up-to-date.
**Server busy, please try again later. (Too many executions)**
During peak hours, it could happen that the Overkiz platform is unable to execute your command. The integration will try to retry this command, however, this is not guaranteed to succeed.
@ -114,18 +151,22 @@ During peak hours, it could happen that the Overkiz platform is unable to execut
The Overkiz API only supports 10 requests in its execution queue. If you try to command more devices at the same time, for example with a group, this will fail with `EXEC_QUEUE_FULL`. To work around this, you can create a scenario in the corresponding application and call that scenario instead after syncing it in the integration.
### Internet connectivity required
### Device support via the local API
This integration communicates via the cloud-based Overkiz API in most cases. Depending on your hub and devices, there are options which communicate over your local network.
Various sensors, scenarios, and climate entities are **not** supported via the Somfy TaHoma Developer Mode due to limitations of the local API. If your device functions with the Cloud API but not with the Local API, this is an inherent limitation of the Local API and cannot be resolved.
#### Local API via Somfy TaHoma Developer Mode
### Device support via HomeKit
The Somfy TaHoma v2, Somfy Connexoon and Somfy TaHoma Switch support the [Somfy TaHoma Developer Mode (local API)](https://github.com/Somfy-Developer/Somfy-TaHoma-Developer-Mode). During setup, you can choose **Local API**. This allows you to use the local API in Home Assistant. Climate devices are not supported via the Somfy TaHoma Developer Mode.
If your hub (e.g. Somfy Connectivity Kit) supports HomeKit, a sensor named **HomeKit Setup Code** will be added to Home Assistant. To configure the [HomeKit Controller](/integrations/homekit_controller/) integration for local control, follow these steps:
#### Local API via HomeKit Controller
1. Locate the **HomeKit Setup Code** sensor in Home Assistant.
2. Retrieve the setup code value from the sensor.
3. Use this setup code to configure the [HomeKit Controller](/integrations/homekit_controller/) integration in Home Assistant.
If your hub (e.g. Somfy Connectivity Kit) supports HomeKit natively, your setup code will be added as a sensor in Home Assistant. Find your hub in Home Assistant and retrieve the value from the **HomeKit Setup Code** sensor. You can now configure the [HomeKit Controller](/integrations/homekit_controller/) integration in Home Assistant and benefit from local support. Only a [limited set of devices is supported](https://service.somfy.com/downloads/nl_v5/tahoma-homekitcompatibilitylist_eng.pdf).
Please note that only a [limited set of devices is supported via HomeKit](https://service.somfy.com/downloads/nl_v5/tahoma-homekitcompatibilitylist_eng.pdf).
#### Local API via Velux KLF200 hub
## Removing the integration
If you are only using Somfy IO-compatible devices, you could purchase a Velux KLF200 hub and use [the Velux integration](/integrations/velux/) which has a local API.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -12,6 +12,7 @@ ha_domain: palazzetti
ha_platforms:
- climate
- diagnostics
- number
- sensor
ha_integration_type: device
ha_dhcp: true
@ -19,10 +20,25 @@ ha_dhcp: true
The **Palazzetti** {% term integration %} integrates the [Palazzetti](https://palazzettigroup.com/)
stoves equipped with a [Connection Box](https://palazzettigroup.com/research-and-development/app/).
It is accessing the device's local API.
It is accessing the device's local API. [WPalaControl](https://github.com/Domochip/WPalaControl)
devices have a compatible API and are supported by this integration too.
## Prerequisites
- You need the Connection Box bridge or WPalaControl to be added to a network accessible to Home Assistant.
- You either need to:
- know the IP address or hostname of the Connection Box or WPalaControl on the network.
- or configure the Connection Box or WPalaControl with DHCP on the same network as Home Assistant.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: "The IP address or hostname of your Connection Box. You can find it in your router or in the Palazzetti app under **Settings** > **Diagnostic information** > **Ethernet** or **Wifi**."
required: true
type: string
{% endconfiguration_basic %}
## Climate
The Palazzetti integration offers a climate entity that allows you to read the
@ -106,4 +122,61 @@ Temperature sensors:
Fuel Sensors:
- Pellet quantity (kg - cumulative quantity consumed)
- Pellet level (cm - current level)
- Pellet level (cm - current level)
## Possible use-cases
- Control the operations, temperature, and fans.
- Get alerts when the pellet level is low or empty, or on stove errors.
- Auto start or stop the stove based on presence.
## Automations
Get started quickly with these automation examples.
### Automatically lower the temperature when the last person leaves home
{% details "Example YAML configuration" %}
{% raw %}
```yaml
alias: "Lower the temperature when last person leaves"
description: "Lower the temperature when last person leaves the home"
mode: single
triggers:
- trigger: state
entity_id:
- zone.home
to: 0
actions:
- action: climate.set_temperature
data:
temperature: 16
target:
entity_id: climate.my_stove
```
{% endraw %} {% enddetails %}
## Known limitations
This integration does **not** yet support the following features and sensors:
- Light and Door entities on stove models equipped with them.
- Fan control other than the main one.
- Combustion power control.
## Troubleshooting
{% details "On and off switch does not always work" %}
During certain operations, it is not possible to turn the stove on or off. This action is available
only when the status of the stove is in one of the following states: `off`, `off_timer`, `burning`, `burning_mod`, `cool_fluid`,
`clean_fire`, `cooling`, `ecomode`, `firewood_finished`.
{% enddetails %}
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -4,6 +4,7 @@ description: Instructions on how to integrate Peblar Rocksolid EV Charger with H
ha_category:
- Car
- Energy
- Update
ha_release: 2025.1
ha_iot_class: Local Polling
ha_config_flow: true
@ -11,12 +12,17 @@ ha_codeowners:
- '@frenck'
ha_domain: peblar
ha_platforms:
- binary_sensor
- button
- diagnostics
- number
- select
- sensor
- switch
- update
ha_integration_type: device
ha_zeroconf: true
ha_quality_scale: bronze
ha_quality_scale: platinum
---
The Peblar {% term integration %} integrates your [Peblar Rocksolid EV Charger]
@ -90,7 +96,7 @@ web interface for more information about the error or warning.
{% important %}
These binary sensors are disabled by default. If you want to use them, you need
to enable first. See the [enabling or disabling entities](/common-tasks/general/#enabling-or-disabling-entities)
to enable them first. See the [enabling or disabling entities](/common-tasks/general/#enabling-or-disabling-entities)
documentation for information on how to do this.
{% endimportant %}
@ -107,13 +113,13 @@ the charger. The following buttons are available:
{% important %}
These buttons are disabled by default. If you want to use them, you need
to enable first. See the [enabling or disabling entities](/common-tasks/general/#enabling-or-disabling-entities)
to enable them first. See the [enabling or disabling entities](/common-tasks/general/#enabling-or-disabling-entities)
documentation for information on how to do this.
{% endimportant %}
### Numbers
This integration provides a singles number entity: **Charge limit**.
This integration provides a single number entity: **Charge limit**.
Using this entity, you can set the maximum current the charger can provide to
your electric vehicle. The value of this entity is in amperes (A).
@ -250,7 +256,7 @@ as a device.
{% important %}
The sensors marked with \*\* are disabled by default. If you want to use them,
you need to enable first. See the [enabling or disabling entities](/common-tasks/general/#enabling-or-disabling-entities)
you need to enable them first. See the [enabling or disabling entities](/common-tasks/general/#enabling-or-disabling-entities)
documentation for information on how to do this.
{% endimportant %}
@ -323,7 +329,7 @@ automation:
- alias: "Peblar software update available"
triggers:
- trigger: state
entity_id: sensor.peblar_firmware
entity_id: update.peblar_firmware
from: "off"
to: "on"
@ -344,7 +350,7 @@ detects an error or raises a warning.
```yaml
automation:
- alias: "Peblar software update available"
- alias: "Peblar issue detected"
triggers:
- trigger: state
entity_id:
@ -372,15 +378,15 @@ automation:
Not all functionality of the Peblar charger is available through this
integration. The following limitations are known:
- The Peblar APIs currently aren't communicating the charger is awaiting
- The Peblar APIs currently aren't communicating that the charger is awaiting
authentication (for example, using an RFID card) before it can start
charging. As a result, you will see an suspended charging status in Home
charging. As a result, you will see a suspended charging status in Home
Assistant, while the charger is awaiting authentication.
- Home Assistant uses and manages the charger's REST API. This means that
the use of this integration will enable the REST API on the charger
automatically. It is possible to use the REST API directly in parallel
with this integration.
- Peblar is also sold as white-label products, like the [CoolBlue BlueBuilt](https://www.coolblue.nl/en/charging-stations/our-charging-stations).
- Peblar is also sold as white-label products, like the [CoolBlue BlueBuilt](https://www.coolblue.nl/en/charging-stations/our-charging-stations), [Eneco Connectric®](https://www.eneco.nl/campagnes/laadpalen/) or [Shell Recharge](https://www.shell.nl/b2b-business/shell-fleet-solutions/electric-charging/at-home-ev-charging.html#thuisladers).
This integration is tested with the Peblar branded products, and it is unknown
if it works with white-label products.

View File

@ -2,7 +2,9 @@
title: Pinecil
description: Connect and control your Pinecil devices using the IronOS integration
ha_category:
- Binary sensor
- Number
- Select
- Sensor
- Update
ha_release: 2024.8
@ -14,7 +16,9 @@ ha_codeowners:
- '@tr4nt0r'
ha_config_flow: true
ha_platforms:
- binary_sensor
- number
- select
- sensor
- update
ha_iot_class: Local Polling

View File

@ -1,6 +1,6 @@
---
title: Plugwise
description: Plugwise Smile platform integration.
description: Plugwise Gateway platform integration.
ha_category:
- Binary sensor
- Button
@ -30,56 +30,135 @@ ha_platforms:
ha_integration_type: hub
---
This enables [Plugwise](https://www.plugwise.com) integrations with a central Smile gateway to be integrated. This integration talks locally to your **Smile** interface, and you will need its password and IP address.
The platform supports [Anna](https://www.plugwise.com/en_US/products/anna), [Adam (zonecontrol)](https://www.plugwise.com/en_US/zonecontrol), [P1](https://www.plugwise.com/en_US/products/smile-p1) Smile products and the Stretch products (not in sale). See below list for more details.
[Plugwise](https://www.plugwise.com) provides smart home devices that allow you to monitor and control your climate, energy (including gas) consumption, and energy production. The energy information can be used for the [energy dashboard](/home-energy-management).
Platforms available - depending on your Smile and setup include:
- `climate` (for the stand-alone Anna, for Adam, a climate entity is shown for each zone containing devices like an Anna or another type of wired-thermostat, Jip or Lisa combined with one or more Tom/Floor devices)
- `binary_sensor` (for showing the status of e.g. domestic hot water heating or secondary heater)
- `button` (for the Adam and the non-legacy Anna and P1 gateways)
- `number` (for changing a boiler setpoint, a temperature offset)
- `sensor` (for all relevant products including the Smile P1)
- `select` (for changing a thermostat schedule, a regulation mode (Adam only))
- `switch` (for Plugs connected to Adam, or Circles and Stealths connected to a Stretch)
This integration supports one or multiple Plugwise Gateways connected to your network. You can connect to these gateways using your browser, the Plugwise App, or Home Assistant. There are 4 [supported](#supported-devices) types of gateways:
- Full zonecontrol using the [Adam](https://www.plugwise.com/en_US/zonecontrol) using [additional devices](#adam) such as zone thermostats, smart valves and smart-plugs.
- A stand-alone smart thermostat called [Anna](https://www.plugwise.com/en_US/products/anna).
- For power and gas-usage monitoring there is a device simply called the [P1](https://www.plugwise.com/en_US/products/smile-p1).
- Although no longer sold, there also is support for Stretch, a gateway to create network connectivity for their older power products.
## Pre-requisites
The Plugwise Smile(s) in your network will be automatically discovered and shown on the integrations dashboard. All you need is the Smile ID as its password, which is an 8-character string printed on the sticker on the bottom of your Smile. Repeat this for each individual Smile.
Plugwise gateways on your network are automatically discovered and displayed on the integrations dashboard. Each gateway requires its unique 8-character ID, found on a sticker at the bottom, as its password. Repeat this process for each gateway.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: "The hostname or IP address of your Smile. For example: `192.168.1.25`. You can find it in your router or in the Plugwise app using the **Settings** icon (&#9776;) -> **System** -> **Network**. If you are looking for a different device in the Plugwise App, on the main screen first select **Gateways** -> the Smile of your choice, and then follow the previous instruction. Normally, the Smile(s) are automatically discovered, and you don't have to provide the hostname or IP address."
description: "The hostname or IP address of your gateway. For example: `192.168.1.25`. You can find it in your router or in the Plugwise app using the **Settings** icon (&#9776;) -> **System** -> **Network**. In the Plugwise App, to locate a specific device, select **Gateways** on the main screen, choose your desired gateway, and then follow the previous instructions. Normally, the gateway(s) are automatically discovered, and you don't have to provide the hostname or IP address."
Username:
description: "Username to log in to the Smile. This should be just `smile` - or `stretch` for a Stretch."
description: "Username to log in to the gateway. This should be 'smile' for most devices, or 'stretch' for a Stretch."
Password:
description: "This is the password (i.e. Smile ID) printed on the sticker on the back of your Smile (i.e. Adam, Smile-T, or P1) and should be 8 characters long."
description: "Each gateway requires its unique 8-character ID, found on a sticker at the bottom, as its password."
{% endconfiguration_basic %}
### Further configuration
### Schedule Management
For a thermostat, the active schedule can be deactivated or reactivated via the climate card. Please note, that when no schedule is active, one must first be activated in the Plugwise App. Once that has been done, the Plugwise Integration can manage future operations.
1. **Initial Setup**: First, activate a schedule using the Plugwise App or browser.
2. **Control via Home Assistant**:
- Use the climate card to activate/deactivate schedules.
- 'Auto' mode indicates the schedule is active.
- 'Heat', 'Cool' or 'Heat_cool' modes signify the schedule is inactive.
3. **Changing Schedules**: Use the thermostat [select](#change-climate-schedule) entity.
Auto means the schedule is active, and Heat means it's not active. The active thermostat schedule can be changed via the connected thermostat select entity. Please note that only schedules with two or more schedule points will be shown as select options.
{% note %}
Only schedules with two or more schedule points will appear as options.
{% endnote %}
## Entities
## Supported functionality
This integration will show all Plugwise devices (like hardware devices, multi-thermostat climate-zones, and virtual switchgroups) present in your Plugwise configuration. In addition, you will see a Gateway device representing your central Plugwise gateway (i.e., the Smile Anna, Smile P1, Adam or Stretch).
This integration displays all Plugwise devices in your configuration, including hardware devices, multi-thermostat climate zones, and virtual switch groups. Additionally, a device representing your Plugwise gateway (e.g., Adam, Smile-T, or P1) will be visible.
For example, if you have an Adam setup with a Lisa named 'Living' and a Tom named 'Bathroom', these will show up as individual devices. The heating/cooling device connected to your Smile will be shown as 'OpenTherm' or 'OnOff', depending on how the Smile communicates with the device. If you have Plugs (as in, pluggable switches connecting to an Adam) those will be shown as devices as well.
For example, if you have an Adam setup with a Lisa named 'Living' and a Tom named 'Bathroom', these will show up as individual devices. The heating/cooling device connected to your gateway will be shown as 'OpenTherm' or 'OnOff', depending on how the gateway communicates with the device. If you have Plugs (as in, pluggable switches connecting to an Adam) or Aqara Smart Plugs, those will be shown as devices as well.
Under each device there will be entities shown like binary_sensors, sensors, etc. depending on the capabilities of the device: for instance centralized measurements such as 'power' for a P1, 'outdoor_temperature' on Anna or Adam will be assigned to your gateway device. Heating/cooling device measurements such as 'boiler_temperature' will be assigned to the OpenTherm/OnOff device.
Each device will list entities such as `binary sensors`, `sensors`, etc., depending on its capabilities: for instance, centralized measurements such as `power` for a P1, `outdoor_temperature` on Anna or Adam will be assigned to your gateway device. Heating/cooling device measurements such as `boiler_temperature` will be assigned to the OpenTherm/OnOff device.
### Climate entities
#### Binary sensors
Depending on your setup, one or more binary sensors will provide the state of your connected elements. Examples include:
- **Cooling** & **Heating**
- **Description**: Indicates if your system is actively cooling or heating.
- **DHW State**
- **Description**: Indicates active heating of domestic hot water.
- **Flame State**
- **Description**: If gas is being consumed by your heater, i.e., firing for space or DHW-heating.
#### Numbers
Modifying specific number-based settings allows you to fine-tune your setup.
- **Maximum boiler temperature setpoint**
- **Description**: Adjust the maximum temperature for secondary heater.
- **Domestic hot water setpoint**
- **Description**: Adjust the temperature for your domestic hot water.
- **Temperature offset**
- **Description**: Fine-tune the perceived temperature.
#### Sensors
A generous number of sensors is provided for your climate setup. Examples include:
- **Setpoint**
- **Description**: The setpoint for the current zone (Adam) or generic (Anna).
- **Indoor temperature**
- **Description**: For Anna, Lisa or Jip this will show the temperature measured at the specific thermostat.
- **Outdoor temperature**
- **Description**: The temperature your climate gateway retrieves online.
- **Outdoor air temperature**
- **Description**: The temperature reported by the sensor present in the outdoor unit of your HVAC system, such as a heat pump.
#### Selects
- **Thermostat schedule**
- **Description**: Select between available schedules, generic (Anna) or for the current zone (Adam).
- **Remark**: Please check the [further configuration](#further-configuration) for requirements on configuring schedules.
#### Switches
- **Cooling**
- **Description**: Toggle if cooling should be enabled.
- **DHW Comfort Mode**
- **Description**: Toggle comfort mode for domestic hot water.
### Power and gas entities
#### Sensors
A generous number of sensors is provided. Examples include:
- **Electricity consumed point**
- **Description**: Electricity (in Watt) consumed currently by a phase (P1) or a plug.
- **Gateways**: Adam, P1 or Stretch.
- **Gas Consumed Interval**
- **Description**: The gas consumed since the last interval.
- **Gateways**: P1.
- **P1 Net Electricity Point**
- **Description**: Your netto electricity use at this time, can be negative when producing energy, i.e. though solar panels.
- **Gateways**: P1.
- **P1 Electricity Produced off-peak cumulative**
- **Description**: The total produced electricity during off-peak.
- **Gateways**: P1.
#### Switches
- **Relay**
- **Description**: Switch a plug on or off
- **Gateways**: Adam, P1 or Stretch.
## Data updates
The interval which the integration fetches data from the Smile depends on the device:
The interval at which the integration fetches data from the gateway depends on the device-type.
- Power entities, such as the P1, will be refreshed every 10 seconds.
- Climate entities will be refreshed every 60 seconds.
- Stretch entities will be refreshed every 60 seconds.
|Device-type|Interval|
--- | ---
| Climate entities |60 seconds|
| Energy and gas entities |10 seconds|
| Stretch entities |60 seconds|
## Removing the integration
@ -236,33 +315,120 @@ script:
preset_mode: asleep
```
### Supported devices
## Supported devices
The current implementation of the Python module (Plugwise-Smile) includes:
### Adam
Adam (zone_control) with On/Off, OpenTherm, and Loria/Thermastage heating and cooling support:
A complete zone control system also known as [Adam HA](https://www.plugwise.com/en_US/zonecontrol), supporting:
- v3.x
- v2.3
- On/Off, OpenTherm heating and cooling support.
- Running firmwares v3.x or v2.3.
- Additional devices:
- Zone thermostats such as Lisa or Anna (see warning below on Anna),
- A temperature sensor, Jip,
- Valve controllers called Floor or Tom,
- An under-floor heating controller Koen (note: a Koen always comes with a Plug, which is the active part),
- Smart switches, either Plug or Aqara Smart Plug.
- Devices supported are Anna, Lisa, Jip, Floor, Tom, Plug, Aqara Smart Plug, and Koen (a Koen always comes with a Plug, the active part)
{% note %}
You can also use the Adam SA (Stand-alone, no Zigbee stick present) to make your regular OpenTherm thermostat smart.
{% endnote %}
Anna (thermostat) with OnOff, OpenTherm heating, and Elga and Loria/Thermastage with heating and cooling support:
### Anna
- v4.x
- v3.x
- v1.x
A [smart thermostat](https://www.plugwise.com/en_US/products/anna), supporting:
On the Elga, the cooling-mode can only be turned on, or off, via a switch present on the device, not via a toggle in the Plugwise App.
Please make sure to reload the Plugwise integration after the cooling-mode-switch is turned off after being on, or the other way around. This will ensure that the Plugwise integration is being adapted to the change in function of the Elga.
- On/Off, OpenTherm heating and cooling support.
- Running firmware v4.x, v3.x or v1.x.
Smile P1 (DSMR):
### P1 (DSMR)
- v4.x
- v3.x
- v2.x
A [P1](https://www.plugwise.com/en_US/products/smile-p1) smart meter monitor for the single- or multi-phase grid power connection to your home including gas usage monitoring. Running firmware v4.x, v3.x or v2.x.
Stretch (power switches):
### Stretch (end-of-sale)
For controlling and monitoring legacy power switches, such as the Circles or Stealths, with v3.x or v2.x Stretch firmware.
### Unsupported devices
#### Anna P1
A smart thermostat [combined](https://www.plugwise.com/en_US/products/anna-p1) with an energy monitor can transform the way you manage energy. If your solar setup generates surplus energy and you're charged for it, this combination ensures that excess solar power is redirected efficiently. Powering your heat pump for instance to make the most of renewable energy. Do you have a setup like this? Wed love to hear your experience!
#### Stick
Plugwise formerly sold power-based products comprised of a USB stick, as the controller, and smart plugs (amongst a few other items). This integration does not support the USB-stick. Reuse of the these products, such as Circles and Stealths using a Stretch or an Adam is supported. Work for USB support is in development by the community, but not ready to become a formal Home Assistant integration just yet.
- v3.x
- v2.x
## Troubleshooting
### Accessing the local device
If you need to configure the gateway directly, without using the Plugwise App, you can find the link to your device by:
1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration.
2. If you have more than one Plugwise gateway, select the one to configure.
3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name.
4. On the integration entry, choose to open the configuration URL left of the {% icon "mdi:dots-vertical" %} icon.
5. A new window/tab will open, enter 'smile' (or 'stretch') as the username and the ID, from the sticker on the back, as the password.
6. Consult the manual or click the 'search' button on the [Plugwise Support](https://plugwise.com/support/) page for interactive help.
### Adjusting the update interval
Please note that the [default intervals](#data-updates) are considered best practice and according to how Plugwise normally updates their data. Updating too frequently may induce considerable load on your gateway(s) resulting in unexpected results or missing data.
{% include common-tasks/define_custom_polling.md %}
### Diagnostic data
If you need to create an issue to report a bug or want to inspect diagnostic data, use the below method to retrieve diagnostics:
1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration.
2. If you have more than one Plugwise gateway, select the gateway that is experiencing issues.
3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name.
4. On the integration entry, select the {% icon "mdi:dots-vertical" %}.
- Then, select **Download diagnostics** and a JSON file will be downloaded.
5. You can inspect the downloaded file or, when requested, upload it to your issue report.
### Rebooting your gateway
For each gateway, there will be a reboot button available in your integration.
1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration.
2. If you have more than one Plugwise Smile, select the gateway that is experiencing issues.
3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name.
4. On the integration entry, look for the 'Reboot' button to press in the **Configuration** section.
## Known limitations
### Schedule configuration and pre-requisites
Creation, modification or deleting of climate schedules is not supported through this integration. We recommend using the Plugwise App or visit the local device to configure schedules. See [accessing the local device](#accessing-the-local-device) above on how to access the local device from Home Assistant.
To display your schedule as a valid `select` option for this integration, ensure that the schedule has a minimal of two schedule points.
### Anna connected to Adam
If you are using your Anna as part of your Adam zone control system, it becomes a zone thermostat, and cannot be configured as a smart thermostat. The integration will not discover your Anna or allow manual configuration.
### Anna with Elga
The cooling mode can only be toggled via a **physical switch** on the device (not through a toggle in the Plugwise App or using Home Assistant).
The change in cooling mode should be detected by Home Assistant. If not, please try to **reload** the Plugwise integration as indicated below and report your findings.
1. Create an issue including your [diagnostic data](#diagnostic-data).
2. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration.
3. On the "**Hubs**" page, use the {% icon "mdi:dots-vertical" %} icon next to your Anna and choose "**Reload**".
### Vacation preset
The `vacation` preset is only available on an Anna. Adam has a vacation-mode (called Action in the Plugwise App) that disables the active schedule and sets the vacation-preset for all zones.
Also, there's a pause-mode that disables the active schedule and sets the away-preset for all zones.
### Idling climate actions
You can only stop climate actions on an Adam, see [turn on / turn off](#turn-on--turn-off). An alternative could be to adjust your [preset mode](#set-preset-mode) to `no_frost` to stop any heating actions.

View File

@ -11,8 +11,11 @@ ha_codeowners:
- '@klaasnicolaas'
ha_domain: powerfox
ha_platforms:
- diagnostics
- sensor
ha_integration_type: integration
ha_quality_scale: silver
ha_zeroconf: true
---
The **Powerfox** {% term integration %} allows you to gather data from your [Poweropti](https://shop.powerfox.energy/collections/frontpage) devices, by using their cloud API and fetch the data in Home Assistant.
@ -37,7 +40,7 @@ Not all Poweropti devices are supported currently. Check the list below to see i
| Device | Type | Supported |
| --------------------- | ----------- | ---------- |
| PA 201901 / PA 201902 | Power meter | Yes |
| PB 202001 | Power meter | Not tested |
| PB 202001 | Power meter | Yes |
| WA 201902 | Water meter | Yes |
| Powerfox FLOW | Gas meter | No |
| HA 201902 | Heat meter | Yes |

View File

@ -21,6 +21,7 @@ ha_platforms:
- select
- sensor
ha_integration_type: hub
ha_quality_scale: silver
---
The Renault integration offers integration with the **MyRenault** cloud service and provides sensors such as charger state and temperature.

View File

@ -362,8 +362,8 @@ The following hubs/NVRs have been tested and confirmed to work with battery-powe
- [Reolink Home Hub](https://reolink.com/product/reolink-home-hub/)
- [Reolink Home Hub Pro](https://reolink.com/product/reolink-home-hub-pro/)
- [RLN8-410 NVR](https://reolink.com/product/rln8-410/) (only the latest hardware version N7MB01, older versions might receive the required firmware update later)
- [RLN16-410 NVR](https://reolink.com/product/rln16-410/) (only the latest hardware version N6MB01, older versions might receive the required firmware update later)
- [RLN8-410 NVR](https://reolink.com/product/rln8-410/) (only hardware versions N7MB01, N3MB01, N2MB02, or H3MB18. Hardware versions H3MB02 and H3MB16 did not get firmware updates since 2022)
- [RLN16-410 NVR](https://reolink.com/product/rln16-410/) (only hardware versions N6MB01 or H3MB18. Hardware version H3MB02 did not get firmware updates since 2022)
- [RLN36 NVR](https://reolink.com/product/rln36/)
- [NVS8 NVR](https://reolink.com/product/nvs8/) (Retail version of RLN8)
- [NVS16 NVR](https://reolink.com/product/nvs16/) (Retail version of RLN16)
@ -457,7 +457,7 @@ Set up the Reolink integration in Home Assistant using the credentials you set i
Removing a directly connected camera/NVR/Home Hub can be done by removing the integration following these steps:
{% include integrations/remove_device_service.md %}
{% include integrations/remove_device_service_steps.md %}
This will also remove all cameras/chimes connected to the NVR/Home Hub from Home Assistant.
@ -494,11 +494,135 @@ For example, you can place arrow buttons on the card to [control the camera](/da
You can receive rich notifications on your phone when someone rings a Reolink doorbell or a Reolink camera detects an event like motion or a person.
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__small_notification.jpg' alt='Screenshot: Small phone notification'>
<img src='/images/integrations/reolink/rich_notification__big_notification.jpg' alt='Screenshot: Expanded phone notification'>
</p>
{% details "Rich notification tutorial" icon="mdi:cursor-hand" %}
Prerequisites:
- This [Reolink integration](#configuration)
- [Android or iOS companion app](https://companion.home-assistant.io/docs/getting_started#setting-up)
- [Remote access to Home Assistant](https://www.home-assistant.io/docs/configuration/remote/). Although you can receive text notifications without remote access, to see the camera image in the notification (rich notification), the phone needs to be able to reach Home Assistant. The rich notification will always work, even without remote access, when the phone is on the same network as Home Assistant.
1. In order to receive such a rich notification, we are going to make an automation in Home Assistant. In Home Assistant go to {% my automations title="**Settings** > **Automations & scenes**" %} and select **Create automation** > **Create new automation**.
![Settings button](/images/integrations/reolink/rich_notification__settings.png)
![Automations & scenes button](/images/integrations/reolink/rich_notification__automations_and_scenes.png)
![Create automation button](/images/integrations/reolink/rich_notification__create_automation.png)
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__new_automation.png' alt='Screenshot: new automation'>
</p>
2. Under **When**, select: **Add trigger** > **Entity** > **State**.
![Add trigger](/images/integrations/reolink/rich_notification__add_trigger.png)
![Entity](/images/integrations/reolink/rich_notification__entity.png)
![State](/images/integrations/reolink/rich_notification__state.png)
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__new_trigger.png' alt='Screenshot: new trigger'>
</p>
Then under **Entity**, select the binary sensor from the drop-down list corresponding to the camera event for which you want to receive a rich notification. For the Reolink integration the options are:
- binary_sensor.*camera name*_motion
- binary_sensor.*camera name*_person
- binary_sensor.*camera name*_vehicle
- binary_sensor.*camera name*_pet
- binary_sensor.*camera name*_animal
- binary_sensor.*camera name*_visitor (doorbell press)
- binary_sensor.*camera name*_package
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__entity_select.png' alt='Screenshot: Entity select'>
</p>
Note that these entity names will be translated into the language you configured Home Assistant in. You can type to search through all your entities. You can add multiple triggers if you want to send the same message for multiple camera events like person and vehicle detection. You can also create multiple automations with different messages for each event. In this case, we chose the visitor detection for doorbell presses:
3. Under **To** select the state in which the event is detected: for visitor **On** for the other sensors **Detected**:
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__state_select.png' alt='Screenshot: State select'>
</p>
4. Under **And if** you can **optionally** limit when the notifications need to be sent.
- For instance only when you are not home. The companion app will provide a device_tracker entity based on the GPS of your phone if you allow location tracking during the setup of the app. We will use this as an example but you can add as many conditions as you like:
Select **+ Add Condition** > **Entity** > **State**. Then under **Entity** select the device_tracker entity of your phone and under **State** select **Home**.
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__device_tracker_condition.png' alt='Screenshot: Device tracker condition'>
</p>
- If you want to limit the amount of notifications being sent using a cooldown time you can use the following template condition:
Select **Add Condition** again > **Other conditions** > **Template**. Then, under **Value template**, type the following:
{% raw %}
```yaml
{{as_timestamp(now()) - as_timestamp(state_attr('automation.reolink_push', 'last_triggered'), 0) > 30}}
```
{% endraw %}
The `automation.reolink_push` is the name of this automation, which will be set under step 7, and the `30` is the cooldown time in seconds.
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__cooldown_time_condition.png' alt='Screenshot: cooldown time condition'>
</p>
5. Under **Then do**, select **Add Action** > **Camera** > **Take snapshot**.
![Add action button](/images/integrations/reolink/rich_notification__add_action.png)
![Camera button](/images/integrations/reolink/rich_notification__camera.png)
![Take snapshot button](/images/integrations/reolink/rich_notification__take_snapshot.png)
Under **Targets**, select **Choose entity** and select the camera for which you want to add the image to the notification.
![Choose entity button](/images/integrations/reolink/rich_notification__chose_entity.png)
![Select Fluent camera](/images/integrations/reolink/rich_notification__select_fluent_camera.png)
Under **Filename**, fill in `/config/www/reolink_snapshot/last_snapshot_doorbell.jpg`. The first part `/config/www/` is absolutely necessary to allow your phone to access the saved image when it receives the notification. The reset of the folder and filename can be changed at will as long as you fill in the same filename under step 6.
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__screenshot_take_snapshot.png' alt='Screenshot: take snapshot'>
</p>
6. Add another action underneath by selecting **Add Action** > **Notifications** > **Send a notification via mobile_app_<phone name>**.
![Add action button](/images/integrations/reolink/rich_notification__add_action.png)
![Notifications button](/images/integrations/reolink/rich_notification__notifications.png)
![Send a notification via mobile app](/images/integrations/reolink/rich_notification__send_to_mobile_button.png)
Under **message**, type the text you want to receive in the notification. For instance, “Someone rang the doorbell”.
If you want to give the notification a title, select the **title** option. For instance, if you have multiple cameras that send you notifications, select the camera name: `Doorbell`.
Select the **data** option and fill in `image: /local/reolink_snapshot/last_snapshot_doorbell.jpg`. Note that `/config/www/` of the filename of step 5 now needs to be changed to `/local/`. The rest of the filename needs to be the same as in step 5.
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__send_to_mobile.png' alt='Screenshot: send notification'>
</p>
You can personalize the notification further and even control what happens if you tap the notification on your phone, [read more about this here](https://companion.home-assistant.io/docs/notifications/notifications-basic/).
7. Select **Save**, give your automation a name like `doorbell notification`, and select **save** again.
![Save](/images/integrations/reolink/rich_notification__save.png)
You are all set, ring your doorbell and see the notification on your phone. Remember the conditions under **And if** need to be met, otherwise you will not receive the notification.
{% enddetails %}
### Automation ideas
- Turn on (outdoor) lights near the camera to improve image clarity at night once the camera detects a person, vehicle, or animal.
- Turn off notifications and recording when you get home (based on, e.g., geofencing) and turn it back on when you leave home.
When someone presses the doorbell, Play ringtones on speakers (Echo Dot/Google Home/smart hubs) throughout the house.
- When someone presses the doorbell, play ringtones on speakers (Echo Dot/Google Home/smart hubs) throughout the house.
- Pause a TV and show a notification badge on the TV when the doorbell is pressed (only when the TV is already on).
- Play the quick replay messages of a Reolink doorbell only when not home (geofencing)
- Wake up and start recording on other battery cameras nearby if one camera/motion sensor detects an event.

View File

@ -229,3 +229,20 @@ target:
entity_id: vacuum.s7_roborock
```
## Troubleshooting
### I get a invalid or no user agreement error - but nothing shows up in my app
Roborock servers require accepting a user agreement before using the API, which may block Home Assistant during setup. Additionally, the Roborock may ask you to re-enter the user agreement, even if you have entered it before. To allow Home Assistant to use the Roborock API, you need to take the following steps:
1. Open your Roborock app.
2. Open **Profile** > **About Us** > **User Agreement & Privacy Policy**.
3. Hit **Revoke authorization**.
4. Log back in and accept the policy.
5. Reload the Roborock integration!
### The integration tells me it cannot reach my vacuum and is using the cloud API and that this is not supported
This integration has the capability to control your devices through the cloud API and the local API. If the local API is not reachable, it will just use the cloud API. We recommend only using the local API as it helps prevent any kind of rate-limiting.
The steps needed to fix this issue are specific to your networking setup. Make sure your Home Assistant instance can communicate on port 58867 with the IP address of your vacuum. This may require changing firewall settings, VLAN configuration, etc.

View File

@ -88,3 +88,9 @@ Use this credentials in dorita980 lib :)
```
Copy the password (everything between `=>` and `<=`, not including leading and trailing whitespace) into the Home Assistant password dialog.
## Troubleshooting
- **Integration wizard shows "Failed to connect" after submitting the password**: Before attempting a factory reset (which can be a cumbersome process), attempt submitting the password in the integration wizard while the Roomba is actively running (i.e. cleaning). Avoid opening the app to start a manual job to help with this. Instead, push the physical clean button on the device directly to start the manual job. This appears to resolve the issue on some models because they answer queries only while actively running.
If this still does not resolve the issue, factory reset the model.

View File

@ -7,11 +7,13 @@ ha_release: 0.49
ha_iot_class: Local Push
ha_domain: russound_rio
ha_platforms:
- diagnostics
- media_player
ha_codeowners:
- '@noahhusby'
ha_config_flow: true
ha_integration_type: integration
ha_quality_scale: silver
---
The Russound RIO {% term integration %} allows you to control Russound devices that make use of the RIO protocol.

View File

@ -17,6 +17,7 @@ ha_platforms:
- number
- sensor
ha_integration_type: integration
ha_quality_scale: bronze
---
The SABnzbd integration will allow you to monitor and control your downloads with [SABnzbd](https://sabnzbd.org) from within Home Assistant and setup automations based on the information.
@ -72,4 +73,4 @@ This integration will create a number entity to set the download queue speed lim
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}
{% include integrations/remove_device_service.md %}

View File

@ -39,7 +39,7 @@ scrape:
- resource: https://www.home-assistant.io
sensor:
- name: "Current version"
select: ".current-version h1"
select: ".release-date"
```
{% configuration %}
@ -178,8 +178,7 @@ scrape:
- resource: https://www.home-assistant.io
sensor:
- name: Release
select: ".current-version h1"
value_template: '{{ value.split(":")[1] }}'
select: ".release-date"
```
{% endraw %}

View File

@ -172,7 +172,7 @@ In this section you find some real-life examples of how to use this sensor.
### External IP address
You can find your external IP address using the service [JSON Test](https://www.jsontest.com/) at their [http://ip.jsontest.com/](http://ip.jsontest.com/) URL.
You can find your external IP address using the [ipify](https://www.ipify.org) service for both IPv4 and IPv6.
{% raw %}
@ -182,6 +182,11 @@ sensor:
name: "External IP"
resource: "https://api.ipify.org/?format=json"
value_template: "{{ value_json.ip }}"
- platform: rest
name: "External IPv6"
resource: "https://api6.ipify.org/?format=json"
value_template: "{{ value_json.ip }}"
```
{% endraw %}

View File

@ -109,7 +109,7 @@ The following example shows how the shell command response may be used in automa
```yaml
# Create a ToDo notification based on file contents
automation:
- alias: "run_set_ac"
- alias: "run_get_file_contents"
triggers:
- ...
actions:

View File

@ -22,7 +22,7 @@ The **Sky Remote** {% term integration %} lets you control a [Sky](https://www.s
## Supported models
This integration is intended to control all Sky satellite receiver boxes with a LAN port. It will not control Sky stream pucks.
This integration is intended to control Sky+ HD and Sky Q satellite receiver boxes with a LAN port. It will not control Sky stream pucks.
{% include integrations/config_flow.md %}

View File

@ -10,9 +10,13 @@ ha_codeowners:
- '@dontinelli'
ha_domain: slide_local
ha_platforms:
- button
- cover
ha_integration_type: integration
- diagnostics
- switch
ha_integration_type: device
ha_zeroconf: true
ha_quality_scale: gold
---
The Slide Local {% term integration %} allows you to integrate your [Slide](https://slide.store/) devices in Home Assistant using the local API.

View File

@ -31,6 +31,10 @@ ha_dhcp: true
ha_integration_type: integration
---
{% warning %}
The Samsung SmartThings integration currently does not allow new installations. We are working directly with Samsung to get this resolved.
{% endwarning %}
SmartThings is integrated into Home Assistant through the SmartThings Cloud API. The features of this integration include:
1. Controlling SmartThings devices as Home Assistant entities ([see platforms for supported devices and capabilities](#platforms)).
@ -61,7 +65,9 @@ The PAT is used to create a Home Assistant SmartApp in your SmartThings account
This integration requires an internet accessible incoming webhook to receive push updates from SmartThings. The preferred approach is to subscribe to [Home Assistant Cloud (Nabu Casa)](https://www.nabucasa.com/) and the integration will configure and use a cloudhook automatically. Alternatively, you will have to configure and setup an internet accessible webhook in Home Assistant as described below:
1. Setup [remote access](/docs/configuration/remote/) via a domain name secured with SSL. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.*
1. Setup [remote access](/docs/configuration/remote/) via a domain name secured with SSL.
1. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.*
2. *SmartThings Cloud API requires SSL connection with **maximum** TLS version 1.2*
2. Set the external URL in the Home Assistant [configuration](/integrations/homeassistant/#external_url) to the URL that Home Assistant is available on the internet (this must start with `https://`). If you do not use Nabu Casa you must configure your network to allow TCP traffic from the internet to reach the IP address and port of the device running Home Assistant.
## Setup instructions

View File

@ -46,16 +46,3 @@ There are generally at least 3 sensors from your inverter that you need to confi
- The consumption sensor (in kWh) for the **Grid Consumption**.
- The feed-in sensor (in kWh) for the **Return to grid**, for example, the solar panel energy you do not consume and return to the grid instead.
- The on-grid yield sensor (in kWh) for the **Solar production**.
### Note
Inverter models with newer firmware (and also those using devices like PocketWifi) no longer expose an API when connected to your wireless network, they do however continue to expose it on their own broadcasted SSID. To use this sensor in this case it is necessary to set up a reverse proxy with something like NGINX and use a Raspberry Pi (or similar) with two network connections (one being Wi-Fi that connects to the inverters SSID).
Example NGINX configuration
```text
location / {
proxy_pass http://5.8.8.8;
}
```

View File

@ -38,8 +38,11 @@ The following integrations are automatically discovered by the SSDP integration:
- [Hyperion](/integrations/hyperion/)
- [Keenetic NDMS2 Router](/integrations/keenetic_ndms2/)
- [Konnected.io](/integrations/konnected/)
- [LG webOS TV](/integrations/webostv/)
- [Logitech Harmony](/integrations/harmony/)
- [Lutron Caséta](/integrations/lutron_caseta/)
- [OctoPrint](/integrations/octoprint/)
- [Onkyo](/integrations/onkyo/)
- [Philips Hue](/integrations/hue/)
- [Roku](/integrations/roku/)
- [Samsung SyncThru Printer](/integrations/syncthru/)

View File

@ -10,6 +10,7 @@ ha_release: '0.30'
ha_quality_scale: internal
ha_codeowners:
- '@ThomDietrich'
- '@gjohansson-ST'
ha_domain: statistics
ha_config_flow: true
ha_platforms:

View File

@ -30,6 +30,7 @@ It requires the following components:
By now, the following units are tested:
- LWZ 504e
- LWZ 404eco
- LWZ 304
- LWZ 304 Trend

Some files were not shown because too many files have changed in this diff Show More