From e0956517f4826e6f04da4980ed032038addd3480 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 3 Jan 2020 18:49:21 +0100 Subject: [PATCH 01/16] Clarify Hass.io ecosystem in glossary (#11617) * Clarify Hass.io ecosystem in glosarry * Process review suggestions * Process review suggestions * Spelling --- source/_data/glossary.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/source/_data/glossary.yml b/source/_data/glossary.yml index 2ba4458766f..b0388379976 100644 --- a/source/_data/glossary.yml +++ b/source/_data/glossary.yml @@ -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 @@ -7,7 +9,7 @@ - topic: Component description: "Integrations (see below) used to be known as components." - topic: Condition - description: "[Conditions](/docs/scripts/conditions/) are an optional part of an automation that will prevent an action from firing if they are not met." + description: "[Conditions](/docs/scripts/conditions/) are an optional part of an automation that will prevent an action from firing if they are not met." - topic: Cookbook description: "The [Cookbook](/cookbook/) contains a set of configuration examples of Home Assistant from the community." - topic: Cover @@ -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 @@ -45,7 +51,7 @@ - topic: Platform description: "[Platforms](/docs/configuration/platform_options/) make the connection to a specific software or hardware platform. For example, the `pushbullet` platform works with the service pushbullet.com to send notifications." - topic: Scene - description: "[Scenes](/integrations/scene/) capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red." + description: "[Scenes](/integrations/scene/) capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red." - topic: Script description: "[Scripts](/docs/scripts/) are components that allow users to specify a sequence of actions to be executed by Home Assistant when turned on." - topic: Sensor From ffec20f7920e67242965d9f28f7238bb25455ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 3 Jan 2020 19:50:06 +0200 Subject: [PATCH 02/16] Spell Zigbee consistently, with lowercase "b" (#11618) https://zigbeealliance.org/developer_resources/zigbee-specification/ "Please note that this uses old branding, Zigbee is always a lowercase B, not a capital. This change occurred shortly after the official release of this document." Also other docs at https://zigbeealliance.org/solution_type/zigbee/, https://github.com/zigpy/zigpy/issues/111 --- source/_integrations/tradfri.markdown | 2 +- source/_integrations/zha.markdown | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_integrations/tradfri.markdown b/source/_integrations/tradfri.markdown index 4a43f7baa50..84cf716fc91 100644 --- a/source/_integrations/tradfri.markdown +++ b/source/_integrations/tradfri.markdown @@ -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*. diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index c74a8e76a96..fea43dc9d6d 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -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: From d82aaa88d1aa0e73cd8aa31be078a574ca23a90e Mon Sep 17 00:00:00 2001 From: John Hollowell Date: Fri, 3 Jan 2020 13:09:23 -0500 Subject: [PATCH 03/16] Add service information to homeassistant integration (#11607) * Update homeassistant.markdown Add services and descriptions for `homeassistant` * Update service-calls.markdown Add link to homeassistant services information * Update homeassistant.markdown adhere to documentation standards * Apply suggestions from code review Fix heading levels and a copy/paste typo Co-Authored-By: Franck Nijhof * Apply suggestions from code review make entity_id's optional Co-Authored-By: Franck Nijhof Co-authored-by: Franck Nijhof --- source/_docs/scripts/service-calls.markdown | 3 + source/_integrations/homeassistant.markdown | 110 ++++++++++++++++++++ 2 files changed, 113 insertions(+) diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown index 38d65358f10..9166b959477 100644 --- a/source/_docs/scripts/service-calls.markdown +++ b/source/_docs/scripts/service-calls.markdown @@ -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 diff --git a/source/_integrations/homeassistant.markdown b/source/_integrations/homeassistant.markdown index 62dda476583..6cfa9a9fe10 100644 --- a/source/_integrations/homeassistant.markdown +++ b/source/_integrations/homeassistant.markdown @@ -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 +``` From b8a087266186cd1c9a84b179a1bbe9447ade5ce4 Mon Sep 17 00:00:00 2001 From: Ross Cullen <35301905+rosscullen@users.noreply.github.com> Date: Fri, 3 Jan 2020 22:53:27 +0000 Subject: [PATCH 04/16] Improved & simplified documentation - Doorbird (#11621) * Improved & simplified documentation * New amendments tested and validated on both IOS and Android - instructions updated to reflect this. * Improved & simplified documentation. I've gone through the menus on Android and IOS and can confirm this is where the information required is located * Minor grammar tweaks * Update source/_integrations/doorbird.markdown Co-Authored-By: Franck Nijhof * Update source/_integrations/doorbird.markdown Co-Authored-By: Franck Nijhof * Update source/_integrations/doorbird.markdown Co-Authored-By: Franck Nijhof * Update source/_integrations/doorbird.markdown Co-Authored-By: Franck Nijhof Co-authored-by: Franck Nijhof --- source/_integrations/doorbird.markdown | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/_integrations/doorbird.markdown b/source/_integrations/doorbird.markdown index 5f21c87d629..23295f83fd2 100644 --- a/source/_integrations/doorbird.markdown +++ b/source/_integrations/doorbird.markdown @@ -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 From 0fcd54373d078a0c683e2cfb0768f53ea9bcad9c Mon Sep 17 00:00:00 2001 From: Dubh Ad Date: Fri, 3 Jan 2020 22:54:41 +0000 Subject: [PATCH 05/16] Removing reference to `api_password` (#11626) Removing the reference to the (deprecated) `api_password` --- source/_docs/ecosystem/certificates/lets_encrypt.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown index 163ef2fe511..be1a62d2bd8 100644 --- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown +++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown @@ -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 From 1ef6a09dbe3dc2a62bd2751af5bb67328f1ef635 Mon Sep 17 00:00:00 2001 From: Petro31 <35082313+Petro31@users.noreply.github.com> Date: Fri, 3 Jan 2020 17:55:47 -0500 Subject: [PATCH 06/16] Update example to show variable used in set_fan_speed template. (#11624) Update to the example to let users know what set_fan_speed passes as a variable to the template. --- source/_integrations/vacuum.template.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_integrations/vacuum.template.markdown b/source/_integrations/vacuum.template.markdown index bee77c70187..129114c287a 100644 --- a/source/_integrations/vacuum.template.markdown +++ b/source/_integrations/vacuum.template.markdown @@ -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 From 9f42bbb5d68e47d3df5e7b4d21a92dac118eb89f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 4 Jan 2020 23:07:08 +0200 Subject: [PATCH 07/16] Point to Telegram chatbot page from Telegram config example (#11631) * Point to Telegram chatbot page from Telegram config example * Refer to chatbot platforms consistently as platform, not method --- source/_integrations/telegram.markdown | 4 ++++ source/_integrations/telegram_chatbot.markdown | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/source/_integrations/telegram.markdown b/source/_integrations/telegram.markdown index 7dec6354cb3..ebb7cb2d1bb 100644 --- a/source/_integrations/telegram.markdown +++ b/source/_integrations/telegram.markdown @@ -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`. diff --git a/source/_integrations/telegram_chatbot.markdown b/source/_integrations/telegram_chatbot.markdown index eb91c44efeb..ad5cf09e8fe 100644 --- a/source/_integrations/telegram_chatbot.markdown +++ b/source/_integrations/telegram_chatbot.markdown @@ -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. From d63223783fd708fd49b10717a0f3e558f1b658bb Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 4 Jan 2020 23:22:11 +0100 Subject: [PATCH 08/16] Cleanup Rakefile by removing obsolete tasks (#11622) --- Rakefile | 241 ------------------------------------------------------- 1 file changed, 241 deletions(-) diff --git a/Rakefile b/Rakefile index 860f95e79c4..182f8178a11 100644 --- a/Rakefile +++ b/Rakefile @@ -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 From 2675661e67721b126a162e0282794959df0c7f5a Mon Sep 17 00:00:00 2001 From: Jeff Irion Date: Sun, 5 Jan 2020 01:22:17 -0800 Subject: [PATCH 09/16] Add troubleshooting solution for devices that drop off WiFi (#11634) --- source/_integrations/androidtv.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_integrations/androidtv.markdown b/source/_integrations/androidtv.markdown index dd311db046d..34f4d7a3e8d 100644 --- a/source/_integrations/androidtv.markdown +++ b/source/_integrations/androidtv.markdown @@ -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 From a4e6ff1e7adb6997d054384d1b8c30c3152ff09b Mon Sep 17 00:00:00 2001 From: Troy Prelog <35702532+tprelog@users.noreply.github.com> Date: Sun, 5 Jan 2020 04:29:16 -0500 Subject: [PATCH 10/16] Update Freenas docs (#11585) * updated rc.d script Add extra_commands check_config - checks config using `hass --script check_config` upgrade - stops HA / upgrade / checks config / starts HA (only starts if config check passes) test - simple test to check directories / activate venv / check version of python and homeassistant restart - (modified) check_config / stop HA /start HA (only restart if config check passes) NOTE: All extra_commands REQUIRE bash to be installed `pkg install bash` I also removed the check_config from the pre_start function because because it will prevent HA from starting if the configuration is missing (Like a clean install from example). NO BUENO! Another case to consider haveing no configuration even after initial install is troubleshooting or testing. For instance with rc.d script createing a fresh config is simple. Let's suppose my working config is at `/home/hass/homeassistant` Now to get a clean configuration I can just do this service homeassistant stop sysrc sysrc homeassistant_config_dir="/home/hass/ha_test_config" service homeassistant start That's it! Configuration wise, it's a clean install. To switch back to working config I just service homeassistant stop sysrc sysrc homeassistant_config_dir="/home/hass/homeassistant" service homeassistant start Awesome right?! But that doesn't work if check_config fails during pre_start * add pkgs These are not required to install HA but they are quickly missed once you start to actual use it. Let's just avoid some fustration from the start. I don't think this list should be all inclusive but these basic things seem to be frequently needed from the start. autoconf | gmake | - looking at you Z-Wave, Stream, IKEA Tradfri pkgconf | bash - Give me bash or give me death! Seriously, it makes life easier. There's not alot of *BSD focus around HA. I only use *BSD because of FreeNAS -- Typically (with the exception of jails) FreeNAS is webui. I'm ok with Linux cli and it's very similiar to FreeNAS but not the same. It's not bash. I don't think it needs to be for the root user either. But having bash installed and used by the HA user makes it easier to follow along with exising documentation for other virtualenv type installs when trying to further expand your HA installation * give me bash or give me death! Most people won't notice a differene but we'll know in our hearts we did the right thing. * fix typo I'm lucky I can spell my name * whitespace * use venv Use the built-in venv instead of virtualenv which must be installed seperate. --- source/_docs/installation/freenas.markdown | 155 ++++++++++++++------- 1 file changed, 101 insertions(+), 54 deletions(-) diff --git a/source/_docs/installation/freenas.markdown b/source/_docs/installation/freenas.markdown index 78945280e6b..476cfb1332f 100644 --- a/source/_docs/installation/freenas.markdown +++ b/source/_docs/installation/freenas.markdown @@ -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" ``` @@ -204,8 +251,8 @@ vi /etc/devfs.rules Add the following lines ```bash -[devfsrules_jail_allow_usb=7] -add path 'cu\*' mode 0660 group 8123 unhide +[devfsrules_jail_allow_usb=7] +add path 'cu\*' mode 0660 group 8123 unhide ``` Reload devfs @@ -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: From f8abed18e094876249a05f94deac752f5b2d34c5 Mon Sep 17 00:00:00 2001 From: trentjw Date: Sun, 5 Jan 2020 03:01:00 -0700 Subject: [PATCH 11/16] Update tplink.markdown (#11635) * Update tplink.markdown * :pencil2: Removal of non-existing platform to list. Co-authored-by: Franck Nijhof --- source/_integrations/tplink.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown index f612c9eeb80..8a315124467 100644 --- a/source/_integrations/tplink.markdown +++ b/source/_integrations/tplink.markdown @@ -32,11 +32,12 @@ The following devices are known to work with this component. - HS105 - HS110 -### Multi-Plug Strips +### Strip (Multi-Plug) - HS107 (indoor 2-outlet) - HS300 (powerstrip 6-outlet) - KP400 (outdoor 2-outlet) +- KP200 (indoor 2-outlet) ### Wall Switches From 8fba0f8c74b8d5f35604c9de3b6b137f787d78fe Mon Sep 17 00:00:00 2001 From: GoSpursGoNL Date: Sun, 5 Jan 2020 12:00:25 +0100 Subject: [PATCH 12/16] Fix typo (#11636) --- source/_integrations/switch.rfxtrx.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/switch.rfxtrx.markdown b/source/_integrations/switch.rfxtrx.markdown index 31f1860b734..e1f1ecaa38c 100644 --- a/source/_integrations/switch.rfxtrx.markdown +++ b/source/_integrations/switch.rfxtrx.markdown @@ -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 From 301edb9bd25976b14ab99c4bcf3105cb2fbf29a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sun, 5 Jan 2020 13:44:21 +0200 Subject: [PATCH 13/16] Home Assistant etc spelling consistency fixes (#11637) * Be consistent with Home Assistant spelling * Refer to the Configurator without "HASS" That's what's it calls itself and how it is in the add-on store. * Be consistent with Hass.io spelling * Tell vscode to spell HassOS like that --- .vscode/cSpell.json | 4 ++-- source/_addons/configurator.markdown | 4 ++-- source/_addons/snips.markdown | 4 ++-- source/_docs/authentication.markdown | 2 +- .../certificates/tls_self_signed_certificate.markdown | 2 +- source/_docs/ecosystem/hass-configurator.markdown | 6 +++--- source/_docs/mqtt/broker.markdown | 2 +- source/_docs/z-wave/controllers.markdown | 2 +- source/_docs/z-wave/installation.markdown | 2 +- source/_includes/asides/docs_navigation.html | 2 +- source/_integrations/apcupsd.markdown | 2 +- source/_integrations/dlna_dmr.markdown | 2 +- source/_integrations/elkm1.markdown | 2 +- source/_integrations/homekit.markdown | 2 +- source/_integrations/keba.markdown | 4 ++-- source/_integrations/openuv.markdown | 2 +- source/_integrations/owntracks.markdown | 2 +- source/_integrations/ptvsd.markdown | 6 +++--- source/_integrations/recorder.markdown | 2 +- source/_integrations/remote_rpi_gpio.markdown | 2 +- source/_integrations/rfxtrx.markdown | 2 +- source/_integrations/rpi_gpio.markdown | 2 +- source/_integrations/sinch.markdown | 2 +- source/_integrations/smartthings.markdown | 2 +- source/_integrations/tts.markdown | 2 +- source/_integrations/unifiled.markdown | 2 +- source/_integrations/upnp.markdown | 2 +- source/_integrations/utility_meter.markdown | 2 +- source/_integrations/vlc_telnet.markdown | 2 +- source/_integrations/yeelight.markdown | 2 +- source/getting-started/configuration.markdown | 4 ++-- source/getting-started/index.markdown | 2 +- source/hassio/installation.markdown | 2 +- 33 files changed, 42 insertions(+), 42 deletions(-) diff --git a/.vscode/cSpell.json b/.vscode/cSpell.json index 1951a92694f..dbff6649d46 100644 --- a/.vscode/cSpell.json +++ b/.vscode/cSpell.json @@ -18,8 +18,8 @@ "geizhals", "Harman", "hass", - "hass.io", - "hassos", + "Hass.io", + "HassOS", "hcitool", "heos", "hikvision", diff --git a/source/_addons/configurator.markdown b/source/_addons/configurator.markdown index 2f7bc108843..2560a866ded 100644 --- a/source/_addons/configurator.markdown +++ b/source/_addons/configurator.markdown @@ -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

-Screenshot of the HASS Configurator. +Screenshot of the Configurator.

### Feature list diff --git a/source/_addons/snips.markdown b/source/_addons/snips.markdown index a229a9bf0b6..b418fa00ef5 100644 --- a/source/_addons/snips.markdown +++ b/source/_addons/snips.markdown @@ -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 diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index be648d36981..ce51136927b 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -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. diff --git a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown index 22fde562eba..22d866ad873 100644 --- a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown +++ b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown @@ -40,7 +40,7 @@ http: ssl_key: /ssl/privkey.pem ``` -Non-hass.io: +Non-Hass.io: ```yaml http: diff --git a/source/_docs/ecosystem/hass-configurator.markdown b/source/_docs/ecosystem/hass-configurator.markdown index 48df2d527e8..5225cc79ab8 100644 --- a/source/_docs/ecosystem/hass-configurator.markdown +++ b/source/_docs/ecosystem/hass-configurator.markdown @@ -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

-Screenshot of the HASS Configurator. +Screenshot of the Configurator.

### Feature list diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown index 553fcbb36dc..b6b9a0be12b 100644 --- a/source/_docs/mqtt/broker.markdown +++ b/source/_docs/mqtt/broker.markdown @@ -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 diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown index 552ce14d680..261e84da83f 100644 --- a/source/_docs/z-wave/controllers.markdown +++ b/source/_docs/z-wave/controllers.markdown @@ -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.
- 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.
## Stick Alternatives diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 0c7a2228ce7..875a00463e5 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -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 diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 8f54340183b..5d7c4855a38 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -349,7 +349,7 @@
  • {% active_link /docs/ecosystem/synology/ Synology %}
  • - {% active_link /docs/ecosystem/hass-configurator/ HASS Configurator + {% active_link /docs/ecosystem/hass-configurator/ Configurator %}
  • diff --git a/source/_integrations/apcupsd.markdown b/source/_integrations/apcupsd.markdown index 93649d924b7..d7a27f6feb0 100644 --- a/source/_integrations/apcupsd.markdown +++ b/source/_integrations/apcupsd.markdown @@ -47,7 +47,7 @@ port:
    -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.
    diff --git a/source/_integrations/dlna_dmr.markdown b/source/_integrations/dlna_dmr.markdown index 67dac15e57b..d91b8a568e7 100644 --- a/source/_integrations/dlna_dmr.markdown +++ b/source/_integrations/dlna_dmr.markdown @@ -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 %} diff --git a/source/_integrations/elkm1.markdown b/source/_integrations/elkm1.markdown index c56d4f3231a..d64ed7c4897 100644 --- a/source/_integrations/elkm1.markdown +++ b/source/_integrations/elkm1.markdown @@ -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: diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown index dc0e98fdddf..61dd0e05c39 100644 --- a/source/_integrations/homekit.markdown +++ b/source/_integrations/homekit.markdown @@ -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. diff --git a/source/_integrations/keba.markdown b/source/_integrations/keba.markdown index 07ba54e7cbb..add2df55143 100644 --- a/source/_integrations/keba.markdown +++ b/source/_integrations/keba.markdown @@ -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 diff --git a/source/_integrations/openuv.markdown b/source/_integrations/openuv.markdown index b52a39fbce0..ff3488b3e46 100644 --- a/source/_integrations/openuv.markdown +++ b/source/_integrations/openuv.markdown @@ -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: diff --git a/source/_integrations/owntracks.markdown b/source/_integrations/owntracks.markdown index 77e265ac160..d56fb57c66d 100644 --- a/source/_integrations/owntracks.markdown +++ b/source/_integrations/owntracks.markdown @@ -33,7 +33,7 @@ In the OwnTracks app, open sidebar and click on preferences, then on connection. - Device ID: `` - Tracker ID: `` Two character tracker ID. (can be left blank) -Your tracker device will be known in home assistant as `_`. 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 `_`. If you entered a Tracker ID the tid attribute will be set to that ID. ### Configuring the app - iOS diff --git a/source/_integrations/ptvsd.markdown b/source/_integrations/ptvsd.markdown index 34f5fb95294..f0a42bc051a 100644 --- a/source/_integrations/ptvsd.markdown +++ b/source/_integrations/ptvsd.markdown @@ -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. diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown index 6fe93a8a3f4..466b4237636 100644 --- a/source/_integrations/recorder.markdown +++ b/source/_integrations/recorder.markdown @@ -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: diff --git a/source/_integrations/remote_rpi_gpio.markdown b/source/_integrations/remote_rpi_gpio.markdown index b4e40e7d975..e9edffb006b 100644 --- a/source/_integrations/remote_rpi_gpio.markdown +++ b/source/_integrations/remote_rpi_gpio.markdown @@ -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.
    -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.
    A common question is what does port refer to, this number is the actual GPIO #, not the pin #. diff --git a/source/_integrations/rfxtrx.markdown b/source/_integrations/rfxtrx.markdown index a42d39e681b..af64619e50d 100644 --- a/source/_integrations/rfxtrx.markdown +++ b/source/_integrations/rfxtrx.markdown @@ -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 diff --git a/source/_integrations/rpi_gpio.markdown b/source/_integrations/rpi_gpio.markdown index ecebf0b117f..cc33003e8b1 100644 --- a/source/_integrations/rpi_gpio.markdown +++ b/source/_integrations/rpi_gpio.markdown @@ -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.
    -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.
    A common question is what does Port refer to, this number is the actual GPIO #, not the pin #. diff --git a/source/_integrations/sinch.markdown b/source/_integrations/sinch.markdown index e2ed441979f..b3ffba7bbe2 100644 --- a/source/_integrations/sinch.markdown +++ b/source/_integrations/sinch.markdown @@ -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 ``` diff --git a/source/_integrations/smartthings.markdown b/source/_integrations/smartthings.markdown index 1986c58684e..78ba7bd2987 100644 --- a/source/_integrations/smartthings.markdown +++ b/source/_integrations/smartthings.markdown @@ -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. diff --git a/source/_integrations/tts.markdown b/source/_integrations/tts.markdown index 0cfbe44a62c..4ae608c7fec 100644 --- a/source/_integrations/tts.markdown +++ b/source/_integrations/tts.markdown @@ -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 diff --git a/source/_integrations/unifiled.markdown b/source/_integrations/unifiled.markdown index 8b13a079709..66fa88c0527 100644 --- a/source/_integrations/unifiled.markdown +++ b/source/_integrations/unifiled.markdown @@ -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. diff --git a/source/_integrations/upnp.markdown b/source/_integrations/upnp.markdown index 83f2d8376ba..73f2120adbb 100644 --- a/source/_integrations/upnp.markdown +++ b/source/_integrations/upnp.markdown @@ -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 diff --git a/source/_integrations/utility_meter.markdown b/source/_integrations/utility_meter.markdown index 0af65a471c4..80905cda023 100644 --- a/source/_integrations/utility_meter.markdown +++ b/source/_integrations/utility_meter.markdown @@ -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).
    -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.
    ## Configuration diff --git a/source/_integrations/vlc_telnet.markdown b/source/_integrations/vlc_telnet.markdown index be761f1c8f4..a0c48e3c46e 100644 --- a/source/_integrations/vlc_telnet.markdown +++ b/source/_integrations/vlc_telnet.markdown @@ -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. diff --git a/source/_integrations/yeelight.markdown b/source/_integrations/yeelight.markdown index 11ff99f2eda..d24968a0429 100644 --- a/source/_integrations/yeelight.markdown +++ b/source/_integrations/yeelight.markdown @@ -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 diff --git a/source/getting-started/configuration.markdown b/source/getting-started/configuration.markdown index 4f9f83fcc52..a8133667aac 100644 --- a/source/getting-started/configuration.markdown +++ b/source/getting-started/configuration.markdown @@ -11,14 +11,14 @@ The steps below only apply if you've installed Home Assistant via Hass.io. If yo -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.

    From the Hass.io main panel, open the add-on store.

    -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. diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 515f5e422ae..f908d0b5698 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -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`. diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 05aedbfcc8c..6ecdb6dcc81 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -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]. From d383a5432482a976e8a45afe939e8221da2f1fac Mon Sep 17 00:00:00 2001 From: sdekker90 Date: Sun, 5 Jan 2020 14:57:37 +0100 Subject: [PATCH 14/16] Update samsungtv.markdown (#11639) Works on ES6100 --- source/_integrations/samsungtv.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown index 26fd4920b91..2942629fede 100644 --- a/source/_integrations/samsungtv.markdown +++ b/source/_integrations/samsungtv.markdown @@ -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 From d6cdd63b4952c69f64764ab28b1d922eeeb89ef3 Mon Sep 17 00:00:00 2001 From: ha14937 <56581105+ha14937@users.noreply.github.com> Date: Mon, 6 Jan 2020 02:04:27 -0500 Subject: [PATCH 15/16] HS110 clarifications (#11642) Hi all - my first proposed change, and it's minor. I ran into this issue where I misread the original and believed other devices (HS103's in my case) were supported for everything (control and sensors) when it's really just the HS110 that can create sensors. Anyway, I thought I would make it more clear for anyone else who may have misread it like I did. Cheers! --- source/_integrations/tplink.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown index 8a315124467..3fb5d2860ea 100644 --- a/source/_integrations/tplink.markdown +++ b/source/_integrations/tplink.markdown @@ -30,7 +30,7 @@ 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) ### Strip (Multi-Plug) @@ -129,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 %} From 1a2bcf023d68747349573f0a38f30ec15bf3d7a0 Mon Sep 17 00:00:00 2001 From: mannte Date: Mon, 6 Jan 2020 08:06:44 +0100 Subject: [PATCH 16/16] Update of the Google assistant SDK manual (#11640) The previous edit I made was not completely correct and only worked (partially) because I already had the Google Assistant Component API (not voice) activated. This is my previous pull request: https://github.com/home-assistant/home-assistant.io/pull/11600 --- source/_addons/google_assistant.markdown | 45 ++++++++++++++---------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/source/_addons/google_assistant.markdown b/source/_addons/google_assistant.markdown index 8af7a422b50..402a66ac34d 100644 --- a/source/_addons/google_assistant.markdown +++ b/source/_addons/google_assistant.markdown @@ -6,56 +6,65 @@ featured: true
    -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].
    -[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