Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2020-01-06 10:21:27 +01:00
commit c0e76c2c17
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
50 changed files with 327 additions and 384 deletions

4
.vscode/cSpell.json vendored
View File

@ -18,8 +18,8 @@
"geizhals",
"Harman",
"hass",
"hass.io",
"hassos",
"Hass.io",
"HassOS",
"hcitool",
"heos",
"hikvision",

241
Rakefile
View File

@ -2,28 +2,13 @@ require "rubygems"
require "bundler/setup"
require "stringex"
## -- Rsync Deploy config -- ##
# Be sure your public key is listed in your server's ~/.ssh/authorized_keys file
ssh_user = "user@domain.com"
ssh_port = "22"
document_root = "~/website.com/"
rsync_delete = false
rsync_args = "" # Any extra arguments to pass to rsync
deploy_default = "push"
# This will be configured for you when you run config_deploy
deploy_branch = "master"
## -- Misc Configs -- ##
public_dir = "public/" # compiled site directory
source_dir = "source" # source file directory
blog_index_dir = 'source/blog' # directory for your blog's index page (if you put your index in source/blog/index.html, set this to 'source/blog')
deploy_dir = "_deploy" # deploy directory (for Github pages deployment)
stash_dir = "_stash" # directory to stash posts for speedy generation
components_dir = "_components" # directory for component files
posts_dir = "_posts" # directory for blog files
themes_dir = ".themes" # directory for blog files
new_post_ext = "markdown" # default new post file extension when using the new_post task
new_page_ext = "markdown" # default new page file extension when using the new_page task
server_port = "4000" # port for preview server eg. localhost:4000
@ -33,22 +18,6 @@ if (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
`chcp 65001`
end
desc "Initial setup for Octopress: copies the default theme into the path of Jekyll's generator. Rake install defaults to rake install[classic] to install a different theme run rake install[some_theme_name]"
task :install, :theme do |t, args|
if File.directory?(source_dir) || File.directory?("sass")
abort("rake aborted!") if ask("A theme is already installed, proceeding will overwrite existing files. Are you sure?", ['y', 'n']) == 'n'
end
# copy theme into working Jekyll directories
theme = args.theme || 'classic'
puts "## Copying "+theme+" theme into ./#{source_dir} and ./sass"
mkdir_p source_dir
cp_r "#{themes_dir}/#{theme}/source/.", source_dir
mkdir_p "sass"
cp_r "#{themes_dir}/#{theme}/sass/.", "sass"
mkdir_p "#{source_dir}/#{posts_dir}"
mkdir_p public_dir
end
#######################
# Working with Jekyll #
#######################
@ -198,216 +167,6 @@ task :clean do
rm_rf [Dir.glob(".pygments-cache/**"), Dir.glob(".gist-cache/**"), Dir.glob(".sass-cache/**"), "source/stylesheets/screen.css"]
end
desc "Move sass to sass.old, install sass theme updates, replace sass/custom with sass.old/custom"
task :update_style, :theme do |t, args|
theme = args.theme || 'classic'
if File.directory?("sass.old")
puts "removed existing sass.old directory"
rm_r "sass.old", :secure=>true
end
mv "sass", "sass.old"
puts "## Moved styles into sass.old/"
cp_r "#{themes_dir}/"+theme+"/sass/", "sass", :remove_destination=>true
cp_r "sass.old/custom/.", "sass/custom/", :remove_destination=>true
puts "## Updated Sass ##"
end
desc "Move source to source.old, install source theme updates, replace source/_includes/navigation.html with source.old's navigation"
task :update_source, :theme do |t, args|
theme = args.theme || 'classic'
if File.directory?("#{source_dir}.old")
puts "## Removed existing #{source_dir}.old directory"
rm_r "#{source_dir}.old", :secure=>true
end
mkdir "#{source_dir}.old"
cp_r "#{source_dir}/.", "#{source_dir}.old"
puts "## Copied #{source_dir} into #{source_dir}.old/"
cp_r "#{themes_dir}/"+theme+"/source/.", source_dir, :remove_destination=>true
cp_r "#{source_dir}.old/_includes/custom/.", "#{source_dir}/_includes/custom/", :remove_destination=>true
cp "#{source_dir}.old/favicon.png", source_dir
mv "#{source_dir}/index.html", "#{blog_index_dir}", :force=>true if blog_index_dir != source_dir
cp "#{source_dir}.old/index.html", source_dir if blog_index_dir != source_dir && File.exists?("#{source_dir}.old/index.html")
puts "## Updated #{source_dir} ##"
end
##############
# Deploying #
##############
desc "Default deploy task"
task :deploy do
# Check if preview posts exist, which should not be published
if File.exists?(".preview-mode")
puts "## Found posts in preview mode, regenerating files ..."
File.delete(".preview-mode")
Rake::Task[:generate].execute
end
Rake::Task[:copydot].invoke(source_dir, public_dir)
Rake::Task["#{deploy_default}"].execute
end
desc "Generate website and deploy"
task :gen_deploy => [:integrate, :generate, :deploy] do
end
desc "copy dot files for deployment"
task :copydot, :source, :dest do |t, args|
FileList["#{args.source}/**/.*"].exclude("**/.", "**/..", "**/.DS_Store", "**/._*").each do |file|
cp_r file, file.gsub(/#{args.source}/, "#{args.dest}") unless File.directory?(file)
end
end
desc "Deploy website via rsync"
task :rsync do
exclude = ""
if File.exists?('./rsync-exclude')
exclude = "--exclude-from '#{File.expand_path('./rsync-exclude')}'"
end
puts "## Deploying website via Rsync"
ok_failed system("rsync -avze 'ssh -p #{ssh_port}' #{exclude} #{rsync_args} #{"--delete" unless rsync_delete == false} #{public_dir}/ #{ssh_user}:#{document_root}")
end
desc "deploy public directory to github pages"
multitask :push do
puts "## Deploying branch to Github Pages "
puts "## Pulling any updates from Github Pages "
cd "#{deploy_dir}" do
system "git checkout #{deploy_branch}"
end
(Dir["#{deploy_dir}/*"]).each { |f| rm_rf(f) }
Rake::Task[:copydot].invoke(public_dir, deploy_dir)
puts "\n## Copying #{public_dir} to #{deploy_dir}"
cp_r "#{public_dir}/.", deploy_dir
cd "#{deploy_dir}" do
if ENV["TRAVIS"] == 'true'
system 'git config user.name "Travis CI"'
system 'git config user.email "balloob+bot@gmail.com"'
end
system "git add -A"
message = "Site updated at #{Time.now.utc}"
puts "\n## Committing: #{message}"
system "git commit -m \"#{message}\""
puts "\n## Pushing generated #{deploy_dir} website"
if ENV["GH_TOKEN"].nil?
Bundler.with_clean_env { system "git push origin #{deploy_branch}" }
else
puts "## Using GH_TOKEN"
new_origin = `git remote -v | grep origin | grep push | awk '{print $2}'`.chomp.sub('//', "//#{ENV['GH_TOKEN']}@")
system "git remote add origin-auth #{new_origin} > /dev/null 2>&1"
system "git push --quiet origin-auth #{deploy_branch} > /dev/null 2>&1"
end
puts "\n## Github Pages deploy complete"
end
end
desc "Update configurations to support publishing to root or sub directory"
task :set_root_dir, :dir do |t, args|
puts ">>> !! Please provide a directory, eg. rake config_dir[publishing/subdirectory]" unless args.dir
if args.dir
if args.dir == "/"
dir = ""
else
dir = "/" + args.dir.sub(/(\/*)(.+)/, "\\2").sub(/\/$/, '');
end
rakefile = IO.read(__FILE__)
rakefile.sub!(/public_dir(\s*)=(\s*)(["'])[\w\-\/]*["']/, "public_dir\\1=\\2\\3public#{dir}\\3")
File.open(__FILE__, 'w') do |f|
f.write rakefile
end
compass_config = IO.read('config.rb')
compass_config.sub!(/http_path(\s*)=(\s*)(["'])[\w\-\/]*["']/, "http_path\\1=\\2\\3#{dir}/\\3")
compass_config.sub!(/http_images_path(\s*)=(\s*)(["'])[\w\-\/]*["']/, "http_images_path\\1=\\2\\3#{dir}/images\\3")
compass_config.sub!(/http_fonts_path(\s*)=(\s*)(["'])[\w\-\/]*["']/, "http_fonts_path\\1=\\2\\3#{dir}/fonts\\3")
compass_config.sub!(/css_dir(\s*)=(\s*)(["'])[\w\-\/]*["']/, "css_dir\\1=\\2\\3public#{dir}/stylesheets\\3")
File.open('config.rb', 'w') do |f|
f.write compass_config
end
jekyll_config = IO.read('_config.yml')
jekyll_config.sub!(/^destination:.+$/, "destination: public#{dir}")
jekyll_config.sub!(/^subscribe_rss:\s*\/.+$/, "subscribe_rss: #{dir}/atom.xml")
jekyll_config.sub!(/^root:.*$/, "root: /#{dir.sub(/^\//, '')}")
File.open('_config.yml', 'w') do |f|
f.write jekyll_config
end
rm_rf public_dir
mkdir_p "#{public_dir}#{dir}"
puts "## Site's root directory is now '/#{dir.sub(/^\//, '')}' ##"
end
end
desc "Set up _deploy folder and deploy branch for Github Pages deployment"
task :setup_github_pages, :repo do |t, args|
if args.repo
repo_url = args.repo
else
puts "Enter the read/write url for your repository"
puts "(For example, 'git@github.com:your_username/your_username.github.io.git)"
puts " or 'https://github.com/your_username/your_username.github.io')"
repo_url = get_stdin("Repository url: ")
end
protocol = (repo_url.match(/(^git)@/).nil?) ? 'https' : 'git'
if protocol == 'git'
user = repo_url.match(/:([^\/]+)/)[1]
else
user = repo_url.match(/github\.com\/([^\/]+)/)[1]
end
branch = (repo_url.match(/\/[\w-]+\.github\.(?:io|com)/).nil?) ? 'gh-pages' : 'master'
project = (branch == 'gh-pages') ? repo_url.match(/\/([^\.]+)/)[1] : ''
unless (`git remote -v` =~ /origin.+?octopress(?:\.git)?/).nil?
# If octopress is still the origin remote (from cloning) rename it to octopress
system "git remote rename origin octopress"
if branch == 'master'
# If this is a user/organization pages repository, add the correct origin remote
# and checkout the source branch for committing changes to the blog source.
system "git remote add origin #{repo_url}"
puts "Added remote #{repo_url} as origin"
system "git config branch.master.remote origin"
puts "Set origin as default remote"
system "git branch -m master source"
puts "Master branch renamed to 'source' for committing your blog source files"
else
unless !public_dir.match("#{project}").nil?
system "rake set_root_dir[#{project}]"
end
end
end
url = blog_url(user, project)
jekyll_config = IO.read('_config.yml')
jekyll_config.sub!(/^url:.*$/, "url: #{url}")
File.open('_config.yml', 'w') do |f|
f.write jekyll_config
end
rm_rf deploy_dir
mkdir deploy_dir
cd "#{deploy_dir}" do
system "git init"
system 'echo "My Octopress Page is coming soon …" > index.html'
system "git add ."
system "git commit -m \"Octopress init\""
system "git branch -m gh-pages" unless branch == 'master'
system "git remote add origin #{repo_url}"
rakefile = IO.read(__FILE__)
rakefile.sub!(/deploy_branch(\s*)=(\s*)(["'])[\w-]*["']/, "deploy_branch\\1=\\2\\3#{branch}\\3")
rakefile.sub!(/deploy_default(\s*)=(\s*)(["'])[\w-]*["']/, "deploy_default\\1=\\2\\3push\\3")
File.open(__FILE__, 'w') do |f|
f.write rakefile
end
end
puts "\n---\n## Now you can deploy to #{repo_url} with `rake deploy` ##"
end
def ok_failed(condition)
if (condition)
puts "OK"
else
puts "FAILED"
end
end
def get_stdin(message)
print message
STDIN.gets.chomp

View File

@ -1,5 +1,5 @@
---
title: "HASS Configurator"
title: "Configurator"
description: "Browser-based configuration file editor for Home Assistant."
featured: true
og_image: /images/hassio/screenshots/addon-hass-configurator.png
@ -11,7 +11,7 @@ More information and a standalone version for regular Home Assistant installatio
<p class='img'>
<img src='/images/hassio/screenshots/addon-hass-configurator.png'>
Screenshot of the HASS Configurator.
Screenshot of the Configurator.
</p>
### Feature list

View File

@ -6,56 +6,65 @@ featured: true
<div class='note'>
If you want to integrate your Google Home or mobile phone running Google Assistant, with Home Assistant, then you want the [Google Assistant component](/integrations/google_assistant/).
If you want to integrate your Google Home or mobile phone running Google Assistant, with Home Assistant, then you want the [Google Assistant component][AssistantIntergration].
</div>
[Google Assistant][GoogleAssistant] is an AI-powered voice assistant that runs on the Raspberry Pi and x86 platforms and interact via the [DialogFlow][comp] integration with Home-Assistant. You can also use [Google Actions][GoogleActions] to extend its functionality.
[Google Assistant][GoogleAssistant] is an AI-powered voice assistant that runs on the Raspberry Pi and x86 platforms and interacts via the [DialogFlow][comp] integration or the [Google Assistant component][AssistantIntergration] with Home-Assistant. You can also use [Google Actions][GoogleActions] to extend its functionality.
To enable access to the Google Assistant API, do the following:
1. Go to the [Google Actions Console][GActionsConsole] and create a new project.
1. After you created the project on the bottom of the page click "Device registration". Keep this tab open for later use.
1. Enable the Google Assistant API on the new project through [this][enableAPI] link. Make sure you have the right project selected (shown in the middle of the screen in the top bar). If you can't select the right project, it may help to open the link in an incognito window.
1. Configure the [OAuth consent screen][OAuthConcent]. Also again check that you have the right project and don't forget to hit "Save" at the bottom of the page. You only have to fill in a project name and your e-mail.
1. You back to you device registration tab and click "Device registration". Or open you project in the [Google Actions Console][GActionsConsole] start the Quick setup, and in the left bar click "Device registration".
1. Give you project a name, think of a nice manufacturer and for device type select "speaker".
1. Edit you "model id", if you want to and copy it for later use.
1. Download the credentials.
1. Click "Next" and click "Skip".
1. Upload your credentials as "google_assistant.json" to the "hassio/share" folder, for example by using the [Samba] add-on.
1. In the Add-on configuration field fill-in you "project id" and your "model-id" and hit "Save". Your project id can be found in the Google Actions console by clicking on the top right menu button and selecting "Project settings". This id may differ from the project name that you choose!
1. Below the "Config" window select the microphone and speaker that you want to use. On a Raspberry Pi 3, ALSA device 0 is the built-in headset port and ALSA device 1 is the HDMI port. Also don't forget to click "Save".
1. Start the add-on. Check the log and click refresh till it says: "ENGINE Bus STARTED".
1. Now click "Open Web UI" and follow the authentication process. You will get an empty response after you have send your token.
1. In the [Cloud Platform Console][project], go to the Projects page. Select an existing project or create a new project
1. Open the project. In the top of the page search for Google Assistant API or use [this link][API] and enable it.
1. Create an [OAuth Client ID][oauthclient], pick type "Other", click "Create" and download the JSON file by clicking the Download JSON button on the right side.
1. Upload your "google_assistant.json" file to the "hassio/share" folder, for example by using the [Samba] add-on.
1. In the config window, fill in your "project-id", which can be found in your "google_assistant.json" file or in on the [Cloud Platform Resource Manager][cloudConsole]. Also choose a "model_id".
1. Below the "Config" window select the microphone and speaker that you want to use. On a Raspberry Pi 3, card 0 - device 0 is the built-in headset port, card 0 - device 1 is the HDMI port.
You are now ready to start the add-on. The next step is to authenticate your Google account with Google Assistant. After starting the add-on and click on the "OPEN WEB UI" button to start authentication.
That's it. You should no be able to use the Google Voice assistant.
### Add-on configuration
Configuration example that uses the USB microphone and the built-in headset audio output on the Raspberry Pi. Note that card and device numbers can differ on your device.
```json
{
"client_secrets": "google_assistant.json",
"project_id": null,
"model_id": null
"project_id": "you-project-id",
"model_id": "your-model-id"
}
```
{% configuration %}
client_secrets:
description: The file downloaded from the Google Cloud Platform Console - Google Assistant API page. By default the add-on look in the "hassio/share" folder.
description: The file downloaded from the [Google Actions Console][GActionsConsole], you can redownload them under the "Develop - Device registration" tab. By default the add-on look in the "hassio/share" folder.
required: true
type: string
project_id:
description: The project id can be found in your "google_assistant.json" file.
description: The project id can be found in your "google_assistant.json" file or under project settings in the [Google Actions Console][GActionsConsole].
required: true
type: string
model_id:
description: A chosen model_id.
description: The model id can also be found under the "Develop - Device registration tab" in the [Google Actions Console][GActionsConsole].
required: true
type: string
{% endconfiguration %}
### Home Assistant configuration
Use the Home Assistant [DialogFlow component][comp] to integrate the add-on into Home Assistant.
Use the Home Assistant [DialogFlow component][comp] to integrate the add-on into Home Assistant or combine it with the [Google Assistant component][AssistantIntergration].
[AssistantIntergration]: /integrations/google_assistant/
[GoogleAssistant]: https://assistant.google.com/
[GoogleActions]: https://actions.google.com/
[GActionsConsole]: https://console.actions.google.com/
[enableAPI]: https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
[OAuthConcent]: https://console.developers.google.com/apis/credentials/consent
[Samba]: /addons/samba/
[comp]: /integrations/dialogflow/
[project]: https://console.cloud.google.com/project

View File

@ -77,7 +77,7 @@ There is an active [discord](https://discordapp.com/invite/3939Kqx) channel and
### Examples
So now you can turn lights on and off, let's check the weather. Log on to the [console](https://console.snips.ai/). If this is your first time, create a new assistant and add the Home Assistant skill, along with the Weather skill by snips. Download your assistant manually and copy it to the `/share` folder on your HassIO installation using the Samba add-on.
So now you can turn lights on and off, let's check the weather. Log on to the [console](https://console.snips.ai/). If this is your first time, create a new assistant and add the Home Assistant skill, along with the Weather skill by snips. Download your assistant manually and copy it to the `/share` folder on your Hass.io installation using the Samba add-on.
Next create a weather sensor, e.g., one for [Dark Sky](/integrations/darksky/), and put the `api_key` in your `secrets.yaml` file. For this example to work you will need to have a valid API key from [Dark Sky](https://darksky.net/dev).
@ -120,6 +120,6 @@ searchWeatherForecast:
{% endraw %}
Now just restart HassIO and ask it what the weather is like.
Now just restart Hass.io and ask it what the weather is like.
[their tutorial]: https://github.com/snipsco/snips-platform-documentation/wiki/2.-Create-an-assistant-using-an-existing-bundle

View File

@ -1,5 +1,7 @@
- topic: Action
description: "[Actions](/docs/automation/action/) are events that fires once all triggers and conditions have been met."
description: "An [Action](/docs/automation/action/) is an event that can be fired as a response to a trigger, once all conditions have been met."
- topic: Add-on
description: "Hass.io add-ons provide additional, standalone, applications that can run beside Home Assistant on a Hass.io installation. Most of these, add-on provided, applications can be integrated into Home Assistant using integrations. Examples of add-ons are: an MQTT broker, database service or a file server."
- topic: Automation
description: "[Automations](/docs/automation/) offer the capability to call a service based on a simple or complex trigger. Automation allows a condition such as a sunset to cause an event, such as a light turning on."
- topic: Binary sensor
@ -31,7 +33,11 @@
- topic: hass
description: "HASS or [hass](/docs/tools/hass/) is often used as an abbreviation for Home Assistant. It is also the command-line tool."
- topic: Hass.io
description: "[Hass.io](/hassio/) is an operating system that will take care of installing and updating Home Assistant, is managed from the Home Assistant UI, allows creating/restoring snapshots of your configuration, and can easily be extended."
description: "[Hass.io](/hassio/) is a full UI managed home automation ecosystem that runs Home Assistant, the Hass.io Supervisor and add-ons. It comes pre-installed on HassOS, but can be installed on any Linux system. It leverages Docker, which is managed by the Hass.io Supervisor."
- topic: Hass.io Supervisor
description: "The Hass.io Supervisor is a program that manages a Hass.io installation, taking care of installing and updating Home Assistant, add-ons, itself and, if used, updating the HassOS operating system."
- topic: HassOS
description: "HassOS, the Home Assistant Operating System, is an embedded, minimalistic, operating system designed to run the Hass.io ecosystem on single board computers (like the Raspberry Pi) or Virtual Machines. The Hass.io Supervisor can keep it up to date, removing the need for you to manage an operating system."
- topic: Integration
description: "[Integrations](/integrations/) provide the core logic for the functionality in Home Assistant. Like `notify` provides sending notifications."
- topic: Lovelace

View File

@ -81,7 +81,7 @@ While you should hopefully be storing your passwords in a password manager, if y
* `auth`
* `auth_provider.homeassistant`
* `onboarding`
* `hassio` (for hassio users)
* `hassio` (for Hass.io users)
* `cloud` (for nabucasa users)
When you start Home Assistant next, you'll be required to set up authentication again.

View File

@ -330,7 +330,6 @@ Now edit your configuration.yaml file to reflect the SSL entries and your base U
```yaml
http:
api_password: YOUR_PASSWORD
ssl_certificate: /etc/letsencrypt/live/examplehome.duckdns.org/fullchain.pem
ssl_key: /etc/letsencrypt/live/examplehome.duckdns.org/privkey.pem
base_url: examplehome.duckdns.org

View File

@ -40,7 +40,7 @@ http:
ssl_key: /ssl/privkey.pem
```
Non-hass.io:
Non-Hass.io:
```yaml
http:

View File

@ -1,6 +1,6 @@
---
title: "HASS Configurator"
description: "Instructions on how to install and use the HASS Configurator"
title: "Configurator"
description: "Instructions on how to install and use the Configurator"
redirect_from: /ecosystem/hass-configurator/
---
@ -11,7 +11,7 @@ This is essentially a browser-based alternative to modifying your configuration
<p class='img'>
<img src='/images/hassio/screenshots/addon-hass-configurator.png'>
Screenshot of the HASS Configurator.
Screenshot of the Configurator.
</p>
### Feature list

View File

@ -13,22 +13,19 @@ Enter the Home Assistant jail. If you don't know which name you have given the j
iocage exec HomeAssistant
```
Create the user and group that Home Assistant will run as. The user/group ID of `8123` can be replaced if this is already in use in your environment.
```bash
pw groupadd -n homeassistant -g 8123
echo 'homeassistant:8123:8123::::::/bin/csh:' | adduser -f -
```
Install the necessary Python packages and virtualenv:
Install the suggested packages:
```bash
pkg update
pkg upgrade
pkg install -y python37 py37-sqlite3 ca_root_nss
python3.7 -m ensurepip
pip3 install --upgrade pip
pip3 install --upgrade virtualenv
pkg install -y autoconf bash ca_root_nss gmake pkgconf python37 py37-sqlite3
```
Create the user and group that Home Assistant will run as. The user/group ID of `8123` can be replaced if this is already in use in your environment.
```bash
pw groupadd -n homeassistant -g 8123
echo 'homeassistant:8123:8123::::::/usr/local/bin/bash:' | adduser -f -
```
Create the installation directory:
@ -38,13 +35,14 @@ mkdir -p /usr/local/share/homeassistant
chown -R homeassistant:homeassistant /usr/local/share/homeassistant
```
Install Home Assistant itself:
Create the virtualenv and install Home Assistant itself:
```bash
su homeassistant
cd /usr/local/share/homeassistant
virtualenv -p python3.7 .
source ./bin/activate.csh
python3.7 -m venv .
source ./bin/activate
pip3 install --upgrade pip
pip3 install homeassistant
```
@ -82,29 +80,37 @@ vi /usr/local/etc/rc.d/homeassistant
```bash
#!/bin/sh
#
# Based upon work by tprelog at https://www.ixsystems.com/community/resources/fn-11-2-iocage-home-assistant-jail-plugins-for-node-red-mosquitto-amazon-dash-tasmoadmin.102/
# Based upon work by tprelog at https://github.com/tprelog/iocage-homeassistant/blob/11.3-RELEASE/overlay/usr/local/etc/rc.d/homeassistant
#
# PROVIDE: homeassistant
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# homeassistant_enable: Set to YES to enable the homeassistant service.
# Default: NO
# homeassistant_user: The user account used to run the homeassistant daemon.
# This is optional, however do not specifically set this to an
# empty string as this will cause the daemon to run as root.
# Default: homeassistant
# homeassistant_group: The group account used to run the homeassistant daemon.
# This is optional, however do not specifically set this to an
# empty string as this will cause the daemon to run with group wheel.
# Default: homeassistant
# homeassistant_config_dir: Directory where config files are located.
# Default: /home/homeassistant/.homeassistant
# homeassistant_install_dir: Directory where Home Assistant is installed.
# Default: /usr/local/share/homeassistant
# homeassistant_user: The user account used to run the homeassistant daemon.
# This is optional, however do not specifically set this to an
# empty string as this will cause the daemon to run as root.
# Default: homeassistant
# homeassistant_group: The group account used to run the homeassistant daemon.
# This is optional, however do not specifically set this to an
# empty string as this will cause the daemon to run with group wheel.
# Default: homeassistant
#
# sysrc homeassistant_enable=yes
# service homeassistant start
# homeassistant_venv: Directory where homeassistant virtualenv is installed.
# Default: "/usr/local/share/homeassistant"
# Change: `sysrc homeassistant_venv="/srv/homeassistant"`
# UnChange: `sysrc -x homeassistant_venv`
#
# homeassistant_config_dir: Directory where homeassistant config is located.
# Default: "/home/homeassistant/.homeassistant"
# Change: `sysrc homeassistant_config_dir="/home/hass/homeassistant"`
# UnChange: `sysrc -x homeassistant_config_dir`
# -------------------------------------------------------
# Copy this file to '/usr/local/etc/rc.d/homeassistant'
# `chmod +x /usr/local/etc/rc.d/homeassistant`
# `sysrc homeassistant_enable=yes`
# `service homeassistant start`
# -------------------------------------------------------
. /etc/rc.subr
name=homeassistant
@ -118,37 +124,78 @@ load_rc_config ${name}
: ${homeassistant_user:="homeassistant"}
: ${homeassistant_group:="homeassistant"}
: ${homeassistant_config_dir:="/home/homeassistant/.homeassistant"}
: ${homeassistant_install_dir:="/usr/local/share/homeassistant"}
: ${homeassistant_venv:="/usr/local/share/homeassistant"}
command="/usr/sbin/daemon"
extra_commands="check_config restart test upgrade"
start_precmd=${name}_precmd
homeassistant_precmd()
{
rc_flags="-f -P ${pidfile} -p ${pidfile_child} ${homeassistant_install_dir}/bin/hass --config ${homeassistant_config_dir} ${rc_flags}"
if [ ! -e "${pidfile_child}" ]; then
install -g ${homeassistant_group} -o ${homeassistant_user} -- /dev/null "${pidfile_child}";
fi
if [ ! -e "${pidfile}" ]; then
install -g ${homeassistant_group} -o ${homeassistant_user} -- /dev/null "${pidfile}";
fi
homeassistant_precmd() {
rc_flags="-f -o ${logfile} -P ${pidfile} -p ${pidfile_child} ${homeassistant_venv}/bin/hass --config ${homeassistant_config_dir} ${rc_flags}"
[ ! -e "${pidfile_child}" ] && install -g ${homeassistant_group} -o ${homeassistant_user} -- /dev/null "${pidfile_child}"
[ ! -e "${pidfile}" ] && install -g ${homeassistant_group} -o ${homeassistant_user} -- /dev/null "${pidfile}"
[ -e "${logfile}" ] && rm -f -- "${logfile}"
install -g ${homeassistant_group} -o ${homeassistant_user} -- /dev/null "${logfile}"
if [ ! -d "${homeassistant_config_dir}" ]; then
install -d -g ${homeassistant_group} -o ${homeassistant_user} -- "${homeassistant_config_dir}";
install -d -g ${homeassistant_group} -o ${homeassistant_user} -m 775 -- "${homeassistant_config_dir}"
fi
echo "Performing check on Home Assistant configuration:"
eval "${homeassistant_install_dir}/bin/hass" --config "${homeassistant_config_dir}" --script check_config
}
stop_postcmd=${name}_postcmd
homeassistant_postcmd()
{
homeassistant_postcmd() {
rm -f -- "${pidfile}"
rm -f -- "${pidfile_child}"
}
upgrade_cmd="${name}_upgrade"
homeassistant_upgrade() {
service ${name} stop
su ${homeassistant_user} -c '
source ${@}/bin/activate || exit 1
pip3 install --upgrade homeassistant
deactivate
' _ ${homeassistant_venv} || exit 1
[ $? == 0 ] && homeassistant_check_config && service ${name} start
}
check_config_cmd="${name}_check_config"
homeassistant_check_config() {
[ ! -e "${homeassistant_config_dir}/configuration.yaml" ] && return 0
echo "Performing check on Home Assistant configuration:"
#eval "${homeassistant_venv}/bin/hass --config ${homeassistant_config_dir} --script check_config"
su ${homeassistant_user} -c '
source ${1}/bin/activate || exit 2
hass --config ${2} --script check_config || exit 3
deactivate
' _ ${homeassistant_venv} ${homeassistant_config_dir}
}
restart_cmd="${name}_restart"
homeassistant_restart() {
homeassistant_check_config || exit 1
echo "Restarting Home Assistant"
service ${name} stop
service ${name} start
}
test_cmd="${name}_test"
homeassistant_test() {
echo -e "\nTesting virtualenv...\n"
[ ! -d "${homeassistant_venv}" ] && echo -e " NO DIRECTORY: ${homeassistant_venv}\n" && exit
[ ! -f "${homeassistant_venv}/bin/activate" ] && echo -e " NO FILE: ${homeassistant_venv}/bin/activate\n" && exit
## switch users / activate virtualenv / get version
su "${homeassistant_user}" -c '
source ${1}/bin/activate || exit 2
echo " $(python --version)" || exit 3
echo " Home Assistant $(pip3 show homeassistant | grep Version | cut -d" " -f2)" || exit 4
deactivate
' _ ${homeassistant_venv}
[ $? != 0 ] && echo "exit $?"
}
load_rc_config ${name}
run_rc_command "$1"
```
@ -261,7 +308,7 @@ Then, enter the `venv`:
```bash
su homeassistant
cd /usr/local/share/homeassistant
source ./bin/activate.csh
source ./bin/activate
```
Upgrade Home Assistant:

View File

@ -9,7 +9,7 @@ The MQTT integration needs you to run an MQTT broker for Home Assistant to conne
### Run your own
This is the most private option, but it requires a little bit of work to setup. There are multiple free and open-source brokers to pick from: e.g., [Mosquitto](http://mosquitto.org/), [EMQ](https://github.com/emqx/emqx) or [Mosca](http://www.mosca.io/).
For hass.io users, the recommended setup method is to use the [Mosquitto MQTT broker addon](/addons/mosquitto).
For Hass.io users, the recommended setup method is to use the [Mosquitto MQTT broker addon](/addons/mosquitto).
```yaml
# Example configuration.yaml entry

View File

@ -96,7 +96,10 @@ There are four `homeassistant` services that aren't tied to any single domain, t
* `homeassistant.toggle` - Turns off an entity that is on, or turns on an entity that is off (that supports being turned on and off)
* `homeassistant.update_entity` - Request the update of an entity, rather than waiting for the next scheduled update, for example [google travel time] sensor, a [template sensor], or a [light]
Complete service details and examples can be found on the [Home Assistant integration][homeassistant-integration-services] page.
[templating]: /topics/templating/
[google travel time]: /integrations/google_travel_time/
[template sensor]: /integrations/template/
[light]: /integrations/light/
[homeassistant-integration-services]: /integrations/homeassistant#services

View File

@ -24,7 +24,7 @@ There have [been reports](https://www.raspberrypi.org/forums/viewtopic.php?f=28&
We recommend that you purchase a [Z-Wave Plus](https://z-wavealliance.org/z-wave_plus_certification/) controller, to take advantage of the improvements this provides. As OpenZWave doesn't support S2 or Smart Start, there's no need to buy one just for support of these features.
<div class='note'>
If you're using Hass.io or running HASS in a Docker container, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
If you're using Hass.io or running Home Assistant in a Docker container, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
</div>
## Stick Alternatives

View File

@ -122,7 +122,7 @@ You can also check what hardware has been found using the [hassio command](/hass
$ hassio hardware info
```
If you did an alternative install of Hass.io on Linux (e.g. installing Ubuntu, then Docker, then Hass.io) then the `modemmanager` package will interfere with any Z-Wave (or Zigbee) stick and should be removed or disabled in the host OS. Failure to do so will result in random failures of those components, e.g. dead or unreachable Z-Wave nodes, most notably right after HomeAssistant restarts. Connect to your host OS via SSH, then you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager` (commands are for Debian/Ubuntu).
If you did an alternative install of Hass.io on Linux (e.g. installing Ubuntu, then Docker, then Hass.io) then the `modemmanager` package will interfere with any Z-Wave (or Zigbee) stick and should be removed or disabled in the host OS. Failure to do so will result in random failures of those components, e.g. dead or unreachable Z-Wave nodes, most notably right after Home Assistant restarts. Connect to your host OS via SSH, then you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager` (commands are for Debian/Ubuntu).
### Docker

View File

@ -349,7 +349,7 @@
</li>
<li>{% active_link /docs/ecosystem/synology/ Synology %}</li>
<li>
{% active_link /docs/ecosystem/hass-configurator/ HASS Configurator
{% active_link /docs/ecosystem/hass-configurator/ Configurator
%}
</li>
</ul>

View File

@ -185,7 +185,9 @@ If the setup for your Android TV or Fire TV device fails, then there is probably
5. Some Android TV devices (e.g., Philips TVs running Android TV) only accept the initial ADB connection request over their Wi-Fi interface. If you have the TV wired, you need to connect it to WiFi and try the initial connection again. Once the authentication has been granted via Wi-Fi, you can connect to the TV over the wired interface as well.
6. If you are using the [Python ADB implementation](#2-python-adb-implementation) approach, as mentioned above, there may be some issues with newer devices. In this case, you should use the [ADB server](#1-adb-server) approach instead.
6. If your device drops off WiFi, breaking the ADB connection and causing the entity to become unavailable in Home Assistant, you could install a wake lock utility (such as [Wakelock](https://github.com/d4rken/wakelock-revamp)) to prevent this from happening. Some users have reported this problem with Xiaomi Mi Box devices.
7. If you are using the [Python ADB implementation](#2-python-adb-implementation) approach, as mentioned above, there may be some issues with newer devices. In this case, you should use the [ADB server](#1-adb-server) approach instead.
## Services

View File

@ -47,7 +47,7 @@ port:
<div class='note'>
If you get `ConnectionRefusedError: Connection refused` errors in the Home assistant logs, ensure the [APCUPSd](http://www.apcupsd.org/) configuration directives used by its Network Information Server is set to permit connections from all addresses [NISIP 0.0.0.0](http://www.apcupsd.org/manual/manual.html#configuration-directives-used-by-the-network-information-server), else non-local addesses will not connect. This includes Hass.io running in Docker, even when hosted on the same machine or a virtual machine.
If you get `ConnectionRefusedError: Connection refused` errors in the Home Assistant logs, ensure the [APCUPSd](http://www.apcupsd.org/) configuration directives used by its Network Information Server is set to permit connections from all addresses [NISIP 0.0.0.0](http://www.apcupsd.org/manual/manual.html#configuration-directives-used-by-the-network-information-server), else non-local addesses will not connect. This includes Hass.io running in Docker, even when hosted on the same machine or a virtual machine.
</div>

View File

@ -42,7 +42,7 @@ name:
required: false
type: string
callback_url_override:
description: Override the advertised callback URL. In case the home assistant instance is not directly reachable (e.g., running in a docker container without bridged-networking), advertise this callback URL for events.
description: Override the advertised callback URL. In case the Home Assistant instance is not directly reachable (e.g., running in a docker container without bridged-networking), advertise this callback URL for events.
required: false
type: string
{% endconfiguration %}

View File

@ -19,13 +19,12 @@ There is currently support for the following device types within Home Assistant:
## Setup
It is recommended to set up a new account on your Doorbird for use with Home Assistant. This can be added via the Doorbird App by choosing Administration -> (User) Add. This user, needs specific permissions enabled, depending on what functionality you want:
It is recommended to set up a new account on your Doorbird App for use with Home Assistant. This can be added via the Doorbird App by clicking settings (cog icon) -> Administration-> LOGIN (using your App Administration details). Under the "USER" section, choose "Add". This new user account requires specific permissions enabled (depending on what functionality you want). Permissions can be found under "Permissions". The following permissions are recommended:
- Live view -> Watch Always
- Last motion -> Motion + History
- Last ring -> History
In addition, the "API-Operator" permission needs to be enabled as well.
- "Watch Always" (live view)
- "History" (last motion)
- "Motion" (last motion)
- "API-Operator" (this needed to be enabled as a minimum)
## Configuration
@ -144,20 +143,21 @@ The URLs on the event will be based on the configuration used to connect to your
#### Schedules
Once events have been registered on the DoorBird device, they must be attached to a schedule using the official DoorBird app on Android or iOS. Currently there are schedules available for doorbell, motion, relay, and RFID events (on supported devices).
Once events have been registered on the DoorBird device, they must be attached to a schedule using the official DoorBird app on Android or iOS. Currently, there are schedules available for doorbell, motion, relay, and RFID events (on supported Doorbird devices).
For iOS, the schedules can be found by navigating to the following areas of the app:
The schedules can be found by navigating to the following area of the Doorbird app (Android or IOS):
- Doorbell | Settings > Administration > Specific Device > Schedule for Doorbell
- Motion | Settings > Administration > Specific Device > 3D Motion Sensor (Settings) > Schedule for Actions
- Relay | Settings > Administration > Specific Device > Relays > Schedule
- RFID | Settings > Administration > Specific Device > RFID Transponder > Settings > Select Transponder > Schedule
Settings (cog icon) -> Administration -> LOGIN LOGIN (using your App Administration details) -> (under "EXPERT SETTINGS") Schedule for doorbell
Once you are on the desired schedule, click the dropdown button in the upper left to switch to the HTTP Calls view. Now if you click on the heading just above the schedule, you can select the event you would like to be called for the particular schedule that is being viewed.
- `Push notification`
- `Trigger Relay ("Relay 1" or "Relay 2")`
- `HTTP(S) Calls (button, motion/movement, RFID)`
Click on the dropdown button in the top left and choose your specific "Schedule for actions" (listed above). Depending on your selection, you may have to click on the center title to see the sub-categories menu.
On the desired event, you should be able to specify blocks of time for when you would like the event to be sent to Home Assistant. If you want the event to always send, the square in the upper right can be used to populate the entire schedule. Events will be fired to Home Assistant for blocks of time that are blue.
Remember to complete the schedule assignment steps above for each event type that you registered.
Note: Remember to complete the schedule assignment steps above for each event type that you registered.
### Automation Example

View File

@ -55,7 +55,7 @@ password:
required: false
type: string
prefix:
description: The prefix to use, if any, for all the devices created for this controller. At most one host can omit the prefix, all others must have a unique prefix within the home assistant instance.
description: The prefix to use, if any, for all the devices created for this controller. At most one host can omit the prefix, all others must have a unique prefix within the Home Assistant instance.
require: false
type: string
temperature_unit:

View File

@ -3,6 +3,116 @@ title: "Core integration"
description: "Description of the homeassistant integration."
logo: home-assistant.png
ha_release: 0.0
ha_qa_scale: internal
---
The Home Assistant integration provides generic implementations like the generic `homeassistant.turn_on`.
## Services
The `homeassistant` integration provides services for controlling Home Assistant itself, as well as generic controls for any entity.
### Service `homeassistant.check_config`
Reads the config files and checks them for correctness, but **does not** load them into Home Assistant. Creates a persistent notification and log entry if errors are found.
### Service `homeassistant.reload_core_config`
Loads the main config file (`configuration.yaml`) and all linked files. Once loaded the new configuration is applied.
### Service `homeassistant.restart`
Restarts the Home Assistant instance (also reloading the configuration on start).
### Service `homeassistant.stop`
Stops the Home Assistant instance. Home Assistant must be restarted from the Host device to run again.
### Service `homeassistant.set_location`
Update the location of the Home Assistant default zone (usually "Home").
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `latitude` | no | Latitude of your location. |
| `longitude` | no | Longitude of your location. |
#### Example
```yaml
action:
service: homeassistant.set_location
data:
latitude: 32.87336
longitude: 117.22743
```
### Service `homeassistant.toggle`
Generic service to toggle devices on/off under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | The entity_id of the device to toggle on/off. |
#### Example
```yaml
action:
service: homeassistant.toggle
data:
entity_id: light.living_room
```
#### Service `homeassistant.turn_on`
Generic service to turn devices on under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | The entity_id of the device to turn on. |
#### Example
```yaml
action:
service: homeassistant.turn_on
data:
entity_id: light.living_room
```
### Service `homeassistant.turn_off`
Generic service to turn devices off under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | The entity_id of the device to turn off. |
#### Example
```yaml
action:
service: homeassistant.turn_off
data:
entity_id: light.living_room
```
### Service `homeassistant.update_entity`
Force one or more entities to update its data rather than wait for the next scheduled update.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | no | One or multiple entity_ids to update. It can be a list. |
#### Example
```yaml
action:
service: homeassistant.update_entity
data:
entity_id:
- light.living_room
- switch.coffe_pot
```

View File

@ -491,7 +491,7 @@ The volume and play/pause controls will show up on the Remote app or Control Cen
#### Resetting accessories
On Home Assistant `0.97.x` or later, you may use the service `homekit.reset_accessory` with one or more entity_ids to reset accessories whose configuration may have changed. This can be useful when changing a media_player's device class to `tv`, linking a battery, or whenever HomeAssistant add supports for new HomeKit features to existing entities.
On Home Assistant `0.97.x` or later, you may use the service `homekit.reset_accessory` with one or more entity_ids to reset accessories whose configuration may have changed. This can be useful when changing a media_player's device class to `tv`, linking a battery, or whenever Home Assistant adds support for new HomeKit features to existing entities.
On earlier versions of Home Assistant, you can reset accessories by removing the entity from HomeKit (via [filter](#configure-filter)) and then re-adding the accessory.

View File

@ -9,7 +9,7 @@ ha_category:
ha_release: 0.98
---
The `keba` integrates your Keba charging station (wallbox) into your home assistant instance. It was tested with a BMW Wallbox but should also work with a Keba P20/P30 according to the developers [manual](https://www.keba.com/web/downloads/e-mobility/KeContact_P20_P30_UDP_ProgrGuide_en.pdf). The fetching interval to the charging station is set to 5 seconds, same as in the official mobile app.
The `keba` integrates your Keba charging station (wallbox) into your Home Assistant instance. It was tested with a BMW Wallbox but should also work with a Keba P20/P30 according to the developers [manual](https://www.keba.com/web/downloads/e-mobility/KeContact_P20_P30_UDP_ProgrGuide_en.pdf). The fetching interval to the charging station is set to 5 seconds, same as in the official mobile app.
This component provides the following platforms:
@ -44,7 +44,7 @@ keba:
type: string
default: "00845500"
failsafe:
description: Enable failsafe mode at home assistant startup.
description: Enable failsafe mode at Home Assistant startup.
required: false
type: boolean
default: false

View File

@ -208,7 +208,7 @@ automation:
service: openuv.update_protection_data
```
Another method (useful when monitoring locations other than the HASS latitude
Another method (useful when monitoring locations other than the Home Assistant latitude
and longitude, in locations where there is a large amount of sunlight per day,
etc.) might be to simply query the API less often:

View File

@ -33,7 +33,7 @@ In the OwnTracks app, open sidebar and click on preferences, then on connection.
- Device ID: `<Device name>`
- Tracker ID: `<xx>` Two character tracker ID. (can be left blank)
Your tracker device will be known in home assistant as `<Username>_<Device name>`. If you entered a Tracker ID the tid attribute will be set to that ID.
Your tracker device will be known in Home Assistant as `<Username>_<Device name>`. If you entered a Tracker ID the tid attribute will be set to that ID.
### Configuring the app - iOS

View File

@ -32,7 +32,7 @@ port:
default: 5678
type: integer
wait:
description: If true, wait for the debugger to connect before starting up home assistant.
description: If true, wait for the debugger to connect before starting up Home Assistant.
required: false
default: false
type: boolean
@ -40,9 +40,9 @@ wait:
### Security
Ensure if this is a public-facing server, that the port is secured. Anyone who is able to access the debugger port can *execute arbitrary code* on the home assistant server, which is very unsafe.
Ensure if this is a public-facing server, that the port is secured. Anyone who is able to access the debugger port can *execute arbitrary code* on the Home Assistant server, which is very unsafe.
If the home assistant server is behind your firewall with only the http(s) port exposed, then this is safe from outside connections.
If the Home Assistant server is behind your firewall with only the http(s) port exposed, then this is safe from outside connections.
Another way of securing the port is to set `host` to localhost and have a secured SSH TCP tunnel with a client certificate for access from the outside internet.

View File

@ -12,7 +12,7 @@ The `recorder` integration is responsible for storing details in a database, whi
Home Assistant uses [SQLAlchemy](https://www.sqlalchemy.org/), which is an Object Relational Mapper (ORM). This means that you can use **any** SQL backend for the recorder that is supported by SQLAlchemy, like [MySQL](https://www.mysql.com/), [MariaDB](https://mariadb.org/), [PostgreSQL](https://www.postgresql.org/), or [MS SQL Server](https://www.microsoft.com/en-us/sql-server/).
The default database engine is [SQLite](https://www.sqlite.org/) which doesn't require any configuration. The database is stored in your Home Assistant configuration directory (`.homeassistant` or '/config/' in HassIO) and called `home-assistant_v2.db`.
The default database engine is [SQLite](https://www.sqlite.org/) which doesn't require any configuration. The database is stored in your Home Assistant configuration directory (`.homeassistant` or '/config/' in Hass.io) and called `home-assistant_v2.db`.
To change the defaults for the `recorder` integration in your installation, add the following to your `configuration.yaml` file:

View File

@ -105,7 +105,7 @@ invert_logic:
For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
<div class='note warning'>
Note that a pin managed by HASS is expected to be exclusive to HASS.
Note that a pin managed by Home Assistant is expected to be exclusive to Home Assistant.
</div>
A common question is what does port refer to, this number is the actual GPIO #, not the pin #.

View File

@ -57,7 +57,7 @@ Not all protocols as advertised are enabled on the initial setup of your transce
### ser2net
You can host your device on another computer by setting up ser2net and example configuration for ser2net looks like this and then using host/port in your home assistant config.
You can host your device on another computer by setting up ser2net and example configuration for ser2net looks like this and then using host/port in your Home Assistant config.
```text
50000:raw:0:/dev/ttyUSB0:38400 8DATABITS NONE 1STOPBIT

View File

@ -184,7 +184,7 @@ invert_logic:
For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#General_purpose_input-output_(GPIO)_connector) about the Raspberry Pi.
<div class='note warning'>
Note that a pin managed by HASS is expected to be exclusive to HASS.
Note that a pin managed by Home Assistant is expected to be exclusive to Home Assistant.
</div>
A common question is what does Port refer to, this number is the actual GPIO #, not the pin #.

View File

@ -79,6 +79,7 @@ For example: for model `UN55NU7100`, the `UN55` would mean it's an LED, North Am
- EH5600
- ES5500
- ES5700
- ES6100
- ES6300
- ES6800
- F4580

View File

@ -61,5 +61,5 @@ notify:
service_plan_id: SINCH_SERVICE_PLAN_ID
api_key: SINCH_API_KEY
default_recipient: [PHONE_NO1, PHONE_NO2]
sender: Home assistant
sender: Home Assistant
```

View File

@ -108,7 +108,7 @@ The integration will trigger an event when a device with the [button](https://sm
| Attribute | Description
|---------------------------|------------------------------------------------------------------|
`component_id` | Describes which integration of the device triggered the event. `main` represents the parent device. For devices with child-devices, this attribute identifies the child that raised the event.
`device_id` | The unique id of the device in SmartThings. This can be located in the HASS device registry or in the [SmartThings Developer Workspace](https://smartthings.developer.samsung.com/workspace/).
`device_id` | The unique id of the device in SmartThings. This can be located in the Home Assistant device registry or in the [SmartThings Developer Workspace](https://smartthings.developer.samsung.com/workspace/).
`location_id` | The unique id of the location the device is part of. This can be found in the config entry registry or in the [SmartThings Developer Workspace](https://smartthings.developer.samsung.com/workspace/).
`value` | Describes the action taken on the button. See the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability reference for a list of possible values (not all are supported by every device).
`name` | The name given to the device in SmartThings.

View File

@ -105,9 +105,9 @@ switch:
signal_repetitions: 2
devices:
0b1100ce3213c7f210010f70:
name: Movment1
name: Movement1
0b11000a02ef2gf210010f50:
name: Movment2
name: Movement2
0b1111e003af16aa10000060:
name: Door
fire_event: true

View File

@ -87,6 +87,10 @@ notify:
chat_id: CHAT_ID_2
```
Refer to the platforms mentioned in the
[Telegram chatbot page](/integrations/telegram_chatbot/) for
`telegram_bot` configuration.
{% configuration %}
name:
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.

View File

@ -10,7 +10,7 @@ ha_iot_class: Cloud Push
Use Telegram on your mobile or desktop device to send and receive messages or commands to/from your Home Assistant.
This integration creates notification services to send, or edit previously sent, messages from a [Telegram Bot account](https://core.telegram.org/bots) configured either with the [polling](/integrations/telegram_polling) method or with the [webhooks](/integrations/telegram_webhooks) one, and trigger events when receiving messages.
This integration creates notification services to send, or edit previously sent, messages from a [Telegram Bot account](https://core.telegram.org/bots) configured either with the [polling](/integrations/telegram_polling) platform or with the [webhooks](/integrations/telegram_webhooks) one, and trigger events when receiving messages.
If you don't need to receive messages, you can use the [broadcast](/integrations/telegram_broadcast) platform instead.

View File

@ -30,13 +30,14 @@ The following devices are known to work with this component.
- HS100
- HS103
- HS105
- HS110
- HS110 (The only device capable or reporting energy usage data to template sensors)
### Multi-Plug Strips
### Strip (Multi-Plug)
- HS107 (indoor 2-outlet)
- HS300 (powerstrip 6-outlet)
- KP400 (outdoor 2-outlet)
- KP200 (indoor 2-outlet)
### Wall Switches
@ -128,7 +129,7 @@ tplink:
## Extracting Energy Sensor data
In order to get the power consumption readings from supported devices, you'll have to create a [template sensor](/integrations/switch.template/).
In order to get the power consumption readings from a TP-Link HS110 device, you'll have to create a [template sensor](/integrations/switch.template/).
In the example below, change all of the `my_tp_switch`'s to match your device's entity ID.
{% raw %}

View File

@ -13,7 +13,7 @@ ha_category:
- Switch
---
The `tradfri` integration allows you to connect your IKEA Trådfri Gateway to Home Assistant. The gateway can control compatible Zigbee-based lights (certified ZigBee Light Link products) connected to it. Home Assistant will automatically discover the gateway's presence on your local network if `discovery:` is present in your `configuration.yaml` file.
The `tradfri` integration allows you to connect your IKEA Trådfri Gateway to Home Assistant. The gateway can control compatible Zigbee-based lights (certified Zigbee Light Link products) connected to it. Home Assistant will automatically discover the gateway's presence on your local network if `discovery:` is present in your `configuration.yaml` file.
You will be prompted to configure the gateway through the Home Assistant interface. The configuration process is very simple: when prompted, enter the security key printed on the sticker on the bottom of the IKEA Trådfri Gateway, then click *configure*.

View File

@ -91,7 +91,7 @@ The Google cast devices (Google Home, Chromecast, etc.) present the following pr
* They do not work with URLs that contain hostnames established by local naming means. Let's say your Home Assistant instance is running on a machine made known locally as `ha`. All your machines on your local network are able to access it as `ha`. However, try as you may, your cast device won't download the media files from your `ha` machine. That's because your cast device ignores your local naming setup. In this example, the `say` service creates a URL like `http://ha/path/to/media.mp3` (or `https://...` if you are using SSL). Setting a `base_url` that contains the IP address of your server works around this issue. By using an IP address, the cast device does not have to resolve the hostname.
* An alternative way to force Google cast devices to use internal DNS is to block them from accessing Google DNS at the firewall/router level. This would be useful in the case, for example, where your internal IP of HASS is a private IP and you have your internal DNS server (quite often a split-brain DNS scenario). This method works on both Google Home Mini and Google Chromecasts.
* An alternative way to force Google cast devices to use internal DNS is to block them from accessing Google DNS at the firewall/router level. This would be useful in the case, for example, where your internal IP of Home Assistant is a private IP and you have your internal DNS server (quite often a split-brain DNS scenario). This method works on both Google Home Mini and Google Chromecasts.
## Service say

View File

@ -50,4 +50,4 @@ password:
## Light
The light panels output state and brightness are synchronized with home assistant.
The light panels output state and brightness are synchronized with Home Assistant.

View File

@ -54,7 +54,7 @@ ports:
description: Map of ports to map from internal to external. Pass 'hass' as internal port to use the port Home Assistant runs on. Note that you have to enable port_mapping if you wish to map ports.
required: false
type: map
default: Open same port on external router as that HASS runs locally and forwards it.
default: Open same port on external router as that Home Assistant runs locally and forwards it.
{% endconfiguration %}
## Troubleshooting

View File

@ -16,7 +16,7 @@ From a user perspective, utility meters operate in cycles (usually monthly) for
Some utility providers have different tariffs according to time/resource availability/etc. The utility meter enables you to define the various tariffs supported by your utility provider and accounts your consumptions in accordance. When tariffs are defined a new entity will show up indicating the current tariff. In order to change the tariff, the user must call a service, usually through an automation that can be based in time or other external source (eg. a REST sensor).
<div class='note'>
Sensors created with this integration are persistent, so values are retained across restarts of home assistant. The first cycle for each sensor, will be incomplete; a sensor tracking daily usage, will start to be accurate the next day after the integration was activated. A sensor tracking monthly usage, will present accurate data starting the first of the next month after being added to home assistant.
Sensors created with this integration are persistent, so values are retained across restarts of Home Assistant. The first cycle for each sensor, will be incomplete; a sensor tracking daily usage, will start to be accurate the next day after the integration was activated. A sensor tracking monthly usage, will present accurate data starting the first of the next month after being added to Home Assistant.
</div>
## Configuration

View File

@ -149,6 +149,8 @@ vacuum:
service: script.vacuum_locate_vacuum
set_fan_speed:
service: script.vacuum_set_fan_speed
data_template:
speed: "{{ fan_speed }}"
fan_speeds:
- Low
- Medium

View File

@ -62,4 +62,4 @@ media_player:
##### Additional configuration for Rasperry Pi
You can run a VLC Media Player inside your Hassio installation using the [hassio-local-vlc add-on](https://github.com/rodripf/hassio-local-vlc). Using it you can play files on the local network, Internet or files and playlist locally saved to the /share folder of your Hassio installation.
You can run a VLC Media Player inside your Hass.io installation using the [hassio-local-vlc add-on](https://github.com/rodripf/hassio-local-vlc). Using it you can play files on the local network, Internet or files and playlist locally saved to the /share folder of your Hass.io installation.

View File

@ -106,7 +106,7 @@ custom_effects:
#### Music mode
Per default the bulb limits the amount of requests per minute to 60, a limitation which can be bypassed by enabling the music mode. In music mode the bulb is commanded to connect back to a socket provided by the integration and it tries to keep the connection open, which may not be wanted in all use-cases.
**Also note that bulbs in music mode will not update their state to "unavailable" if they are disconnected, which can cause delays in Home Assistant. Bulbs in music mode may also not react to commands from HASS the first time if the connection is dropped. If you experience this issue, turn the light off and back on again in the frontend and everything will return to normal.**
**Also note that bulbs in music mode will not update their state to "unavailable" if they are disconnected, which can cause delays in Home Assistant. Bulbs in music mode may also not react to commands from Home Assistant the first time if the connection is dropped. If you experience this issue, turn the light off and back on again in the frontend and everything will return to normal.**
### Initial setup

View File

@ -122,7 +122,7 @@ Go to the **Configuration** page and select the **ZHA** integration that was add
Click on **ADD DEVICES** to start a scan for new devices.
Reset your ZigBee devices according to the device instructions provided by the manufacturer (e.g., turn on/off lights up to 10 times, switches usually have a reset button/pin).
Reset your Zigbee devices according to the device instructions provided by the manufacturer (e.g., turn on/off lights up to 10 times, switches usually have a reset button/pin).
## Troubleshooting
@ -145,7 +145,7 @@ Follow the instructions on [https://github.com/vanviegen/hue-thief/](https://git
### ZHA Start up issue with Home-Assistant Docker/Hass.io installs on linux hosts
On Linux hosts ZHA can fail to start during HA startup or restarts because the zigbee USB device is being claimed by the host's modemmanager service. To fix this disable the modemmanger on the host system.
On Linux hosts ZHA can fail to start during HA startup or restarts because the Zigbee USB device is being claimed by the host's modemmanager service. To fix this disable the modemmanger on the host system.
To remove modemmanager from an Debian/Ubuntu host run this command:

View File

@ -11,14 +11,14 @@ The steps below only apply if you've installed Home Assistant via Hass.io. If yo
</div>
We are going to help you make your first changes to `configuration.yaml`. To do this, we are going to install an add-on from the Hass.io add-on store: the HASS Configurator. To get to the add-on store, click on the menu icon in the top left, then click on Hass.io. On the new page, open the add-on store tab.
We are going to help you make your first changes to `configuration.yaml`. To do this, we are going to install an add-on from the Hass.io add-on store: the Configurator. To get to the add-on store, click on the menu icon in the top left, then click on Hass.io. On the new page, open the add-on store tab.
<p class='img'>
<img src='/images/hassio/screenshots/main_panel_addon_store.png' />
From the Hass.io main panel, open the add-on store.
</p>
Under the "Core" section you will find HASS Configurator.
Under the "Core" section you will find Configurator.
- Click on Configurator and click on INSTALL. When installation is complete, the UI will go to the add-on details page for the configurator.
- Now start the add-on by clicking on START.

View File

@ -19,7 +19,7 @@ So here are guidelines:
- Do not talk about YAML if it can be partially/fully done in UI.
- Do not tell people about stuff they can do later. This can be added to a
2nd tier guide.
- The first page of the guide is for installation, hence hass.io specific.
- The first page of the guide is for installation, hence Hass.io specific.
Other pages should not refer to it except for the page introducing the last
page that introduces `configuration.yaml`.

View File

@ -39,7 +39,7 @@ The following will take you through the steps required to install Hass.io.
3. Optional - set up the WiFi or static IP. There are two possible places for that:
- on a blank USB stick with a FAT32 partition having partition label `CONFIG`, while in its root directory, create the `network/my-network` file, or
- on the Hassio SD card's first, bootable partition (labeled `hassio-boot`, might not be auto mounted in Linux) create the `CONFIG/network/my-network` file.
- on the Hass.io SD card's first, bootable partition (labeled `hassio-boot`, might not be auto mounted in Linux) create the `CONFIG/network/my-network` file.
For the content of this file, follow the [HassOS howto][hassos-network].