diff --git a/.gitignore b/.gitignore index 28eb6d32a30..6384f76a26c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ public source/_stash source/stylesheets/screen.css +source/.jekyll-cache/ vendor node_modules source/.jekyll-metadata diff --git a/.gitpod.yml b/.gitpod.yml index d51137f4222..6a0df4ab419 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -11,5 +11,5 @@ github: pullRequestsFromForks: true addCheck: true addComment: false - addBadge: true + addBadge: false addLabel: false diff --git a/Gemfile b/Gemfile index 1a06732930d..2f27c87fa72 100644 --- a/Gemfile +++ b/Gemfile @@ -3,8 +3,8 @@ source "https://rubygems.org" ruby "> 2.5.0" group :development do - gem 'rake', '12.3.2' - gem 'jekyll', '3.8.6' + gem 'rake', '12.3.3' + gem 'jekyll', '4.0.0' gem 'compass', '1.0.3' gem 'sass-globbing', '1.1.5' gem 'stringex', '2.8.5' @@ -15,8 +15,8 @@ group :jekyll_plugins do gem 'jekyll-redirect-from', '0.15.0' gem 'jekyll-sitemap', '1.3.1' gem 'jekyll-time-to-read', '0.1.2' - gem 'jekyll-commonmark-ghpages', '0.1.6' + gem 'jekyll-commonmark', '1.3.1' end -gem 'sinatra', '2.0.5' +gem 'sinatra', '2.0.7' gem 'nokogiri', '1.10.4' diff --git a/Gemfile.lock b/Gemfile.lock index 222b24c147a..baa5809420a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,11 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.6.0) - public_suffix (>= 2.0.2, < 4.0) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) chunky_png (1.3.11) colorator (1.1.0) - commonmarker (0.17.13) + commonmarker (0.20.1) ruby-enum (~> 0.5) compass (1.0.3) chunky_png (~> 1.2) @@ -27,40 +27,40 @@ GEM ffi (1.11.1) forwardable-extended (2.6.0) http_parser.rb (0.6.0) - i18n (0.9.5) + i18n (1.6.0) concurrent-ruby (~> 1.0) - jekyll (3.8.6) + jekyll (4.0.0) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) - i18n (~> 0.7) - jekyll-sass-converter (~> 1.0) + i18n (>= 0.9.5, < 2) + jekyll-sass-converter (~> 2.0) jekyll-watch (~> 2.0) - kramdown (~> 1.14) + kramdown (~> 2.1) + kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) - rouge (>= 1.7, < 4) + rouge (~> 3.0) safe_yaml (~> 1.0) + terminal-table (~> 1.8) jekyll-commonmark (1.3.1) commonmarker (~> 0.14) jekyll (>= 3.7, < 5.0) - jekyll-commonmark-ghpages (0.1.6) - commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1.2) - rouge (>= 2.0, < 4.0) jekyll-paginate (1.1.0) jekyll-redirect-from (0.15.0) jekyll (>= 3.3, < 5.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) + jekyll-sass-converter (2.0.0) + sassc (> 2.0.1, < 3.0) jekyll-sitemap (1.3.1) jekyll (>= 3.7, < 5.0) jekyll-time-to-read (0.1.2) jekyll jekyll-watch (2.2.1) listen (~> 3.0) - kramdown (1.17.0) + kramdown (2.1.0) + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) liquid (4.0.3) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) @@ -74,15 +74,15 @@ GEM mini_portile2 (~> 2.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.1.1) + public_suffix (4.0.1) rack (2.0.7) - rack-protection (2.0.5) + rack-protection (2.0.7) rack - rake (12.3.2) + rake (12.3.3) rb-fsevent (0.10.3) rb-inotify (0.10.0) ffi (~> 1.0) - rouge (3.6.0) + rouge (3.9.0) ruby-enum (0.7.2) i18n ruby_dep (1.5.0) @@ -90,29 +90,34 @@ GEM sass (3.4.25) sass-globbing (1.1.5) sass (>= 3.1) - sinatra (2.0.5) + sassc (2.2.0) + ffi (~> 1.9) + sinatra (2.0.7) mustermann (~> 1.0) rack (~> 2.0) - rack-protection (= 2.0.5) + rack-protection (= 2.0.7) tilt (~> 2.0) stringex (2.8.5) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) tilt (2.0.9) + unicode-display_width (1.6.0) PLATFORMS ruby DEPENDENCIES compass (= 1.0.3) - jekyll (= 3.8.6) - jekyll-commonmark-ghpages (= 0.1.6) + jekyll (= 4.0.0) + jekyll-commonmark (= 1.3.1) jekyll-paginate (= 1.1.0) jekyll-redirect-from (= 0.15.0) jekyll-sitemap (= 1.3.1) jekyll-time-to-read (= 0.1.2) nokogiri (= 1.10.4) - rake (= 12.3.2) + rake (= 12.3.3) sass-globbing (= 1.1.5) - sinatra (= 2.0.5) + sinatra (= 2.0.7) stringex (= 2.8.5) RUBY VERSION diff --git a/_config.yml b/_config.yml index e2bb0812a7f..79d7564c7f0 100644 --- a/_config.yml +++ b/_config.yml @@ -39,9 +39,11 @@ liquid: error_mode: strict commonmark: - options: ["SMART", "FOOTNOTES"] + options: ["SMART", "FOOTNOTES", "UNSAFE"] extensions: ["strikethrough", "autolink", "table"] +highlighter: none + plugins: - jekyll-redirect-from - jekyll-time-to-read @@ -98,9 +100,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 97 -current_patch_version: 2 -date_released: 2019-08-12 +current_minor_version: 98 +current_patch_version: 3 +date_released: 2019-09-04 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/plugins/linkable_title.rb b/plugins/linkable_title.rb deleted file mode 100644 index 06e9c2bbaf9..00000000000 --- a/plugins/linkable_title.rb +++ /dev/null @@ -1,15 +0,0 @@ -module Jekyll - class LinkableTitleTag < Liquid::Tag - def initialize(tag_name, text, token) - super - @title = text - end - - def render(context) - title = Liquid::Template.parse(@title).render context - "#{title}" - end - end -end - - Liquid::Template.register_tag('linkable_title', Jekyll::LinkableTitleTag) \ No newline at end of file diff --git a/source/_components/androidtv.markdown b/source/_components/androidtv.markdown index 47e26e2e6a1..577df4bc458 100644 --- a/source/_components/androidtv.markdown +++ b/source/_components/androidtv.markdown @@ -20,11 +20,11 @@ For Fire TV devices, the instructions are as follows: - Turn on ADB Debugging on your Amazon Fire TV: - From the main (Launcher) screen, select Settings. - - Select System > Developer Options. + - Select My Fire TV > Developer Options. - Select ADB Debugging. - Find Amazon Fire TV device IP address: - From the main (Launcher) screen, select Settings. - - Select System > About > Network. + - Select My Fire TV > About > Network. ## Configuration @@ -261,7 +261,7 @@ You can also use the command `GET_PROPERTIES` to retrieve the properties used by The `state_detection_rules` configuration parameter allows you to provide your own rules for state detection. The keys are app IDs, and the values are lists of rules that are evaluated in order. Valid rules are: -* `'standby'`, `'playing'`, `'paused'`, `'idle'`, `'stopped'`, or `'off'` +* `'standby'`, `'playing'`, `'paused'`, `'idle'`, or `'off'` * If this is not a map, then this state will always be reported when this app is the current app * If this is a map, then its entries are conditions that will be checked. If all of the conditions are true, then this state will be reported. Valid conditions pertain to 3 properties (see the example configuration above): 1. ``'media_session_state'`` diff --git a/source/_components/config.markdown b/source/_components/config.markdown index 95d346783ff..b94ae06d59a 100644 --- a/source/_components/config.markdown +++ b/source/_components/config.markdown @@ -27,15 +27,27 @@ This section enables you to manage your Home Assistant users. ### General +This section enables you to manage the name, location, and unit system of your Home Assistant installation. + +### Server Control + This section enables you to control Home Assistant from within Home Assistant. Check your configuration, reload the core, groups, scripts, automations, and the Home Assistant process itself with a single mouse click.

-### Customization +### Persons -This section enables you to customize entities within Home Assistant. Use this to set friendly names, change icons, hide entities, and modify other attributes. +This section enables you to associate users with their device tracker entities using the person component. + +### Entity Registry + +This section enables you to override the name, change the entity ID or disable an entity in Home Assistant. + +### Area Registry + +This section enables you to organize entities to physical areas of your home. ### Automation @@ -48,3 +60,8 @@ Similar to the automation editor, this section enables you to create and modify ### Z-Wave This section enables you to control your Z-Wave network and devices from within Home Assistant. You can add and remove devices, as well as change device specific configuration variables. + +### Customization + +This section enables you to customize entities within Home Assistant. Use this to set friendly names, change icons, hide entities, and modify other attributes. + diff --git a/source/_components/counter.markdown b/source/_components/counter.markdown index 8449140c273..d7a8538a8f1 100644 --- a/source/_components/counter.markdown +++ b/source/_components/counter.markdown @@ -23,9 +23,8 @@ counter: ``` {% configuration %} -# 'alias' should be replaced by the user for their actual value. "[alias]": - description: Alias for the counter. Multiple entries are allowed. + description: Alias for the counter. Multiple entries are allowed. `alias` should be replaced by the user for their actual value. required: true type: map keys: @@ -120,3 +119,37 @@ Select serv
   "entity_id": "counter.my_custom_counter"
 }
 ```
+
+## Examples
+
+### Counting Home Assistant errors
+
+To use a counter to count errors as caught by Home Assistant, you need to add `fire_event: true` to your `configuration.yaml`, like so:
+
+```yaml
+# Example configuration.yaml entry
+system_log:
+  fire_event: true
+```
+
+### Error counting - example configuration
+
+```yaml
+# Example configuration.yaml entry
+automation:
+- id: -It might be necessary to install additional packages: sudo apt-get install python3-lxml libxslt-dev libxml2-dev zlib1g-dev +If not running Hass.io it might be necessary to install additional packages: sudo apt-get install python3-lxml libxslt-dev libxml2-dev zlib1g-dev If you installed Home Assistant in a virtualenv, run the following commands inside it: pip3 install lxml; be patient this will take a while. ## Configuration diff --git a/source/_components/haveibeenpwned.markdown b/source/_components/haveibeenpwned.markdown index 067c142799b..4ef3b816e4b 100644 --- a/source/_components/haveibeenpwned.markdown +++ b/source/_components/haveibeenpwned.markdown @@ -12,16 +12,19 @@ redirect_from: The `haveibeenpwned` sensor platform creates sensors that check for breached email accounts on [haveibeenpwned](https://haveibeenpwned.com). +## Configuration +
- The HaveIBeenPwned API now requires you to pay $3.50 a month in order to query the API. More info can be found [here](https://www.troyhunt.com/authentication-and-the-have-i-been-pwned-api/) + The HaveIBeenPwned API is no longer a free API. For more information about this change read the HIBP creator's [blogpost regarding the change](https://www.troyhunt.com/authentication-and-the-have-i-been-pwned-api/).
+In order to use this integration you need to purchase an API key. Visit the [API key page](https://haveibeenpwned.com/API/Key) on the HIBP website to purchase one. + ## Configuration -To enable this sensor, add the following lines to your `configuration.yaml`, it will list every specified email address as a sensor showing -the number of breaches on that email account. +To enable this sensor, add the following lines to your `configuration.yaml`, it will list every specified email address as a sensor showing the number of breaches on that email account. ```yaml # Example configuration.yaml entry using cloud based emoncms diff --git a/source/_components/heos.markdown b/source/_components/heos.markdown index d49f308d4d5..6215885e0cc 100644 --- a/source/_components/heos.markdown +++ b/source/_components/heos.markdown @@ -76,7 +76,7 @@ You can play a HEOS favorite by number or name with the `media_player.play_media | Attribute | Description | ---------------------- | ---------------------------------------------------------| | `entity_id` | `entity_id` of the player -| `media_content_type` | Set to the value `playlist` +| `media_content_type` | Set to the value `favorite` | `media_content_id` | The nubmer (i.e. `1`) or name (i.e. `Thumbprint Radio`) of the HEOS favorite #### Play Playlist @@ -157,4 +157,4 @@ logger: If the HEOS controller is not signed in to a HEOS account, HEOS favorites will not be populated in the media player source selection and the service `media_player.play_media` for `favorite` and `playlist` will fail. Additionally, the following warning will be logged at startup: > IP_ADDRESS is not logged in to a HEOS account and will be unable to retrieve HEOS favorites: Use the 'heos.sign_in' service to sign-in to a HEOS account -To resolve this issue, use the `heos.sign_out` service to sign the controller into an account as documented above. This only needs to be performed once, as the controller will remain signed in while the account credentials are valid. +To resolve this issue, use the `heos.sign_in` service to sign the controller into an account as documented above. This only needs to be performed once, as the controller will remain signed in while the account credentials are valid. diff --git a/source/_components/hp_ilo.markdown b/source/_components/hp_ilo.markdown index 2c39ad3a75f..6fc1dcf4d43 100644 --- a/source/_components/hp_ilo.markdown +++ b/source/_components/hp_ilo.markdown @@ -85,7 +85,7 @@ Valid sensor_types: - **server_oa_info**: Get information about the Onboard Administrator of the enclosing chassis. - **server_power_status**: Whether the server is powered on or not. - **server_power_readings**: Get current, min, max and average power readings. -- **server_power_on_time**: How many minutes ago has the server been powered on. +- **server_power_on_time**: How many minutes ago has the server been powered on (Non-resetting counter, akin to hours used). - **server_asset_tag**: Gets the server asset tag. - **server_uid_status**: Get the status of the UID light. - **server_health**: Get server health information. diff --git a/source/_components/ifttt.markdown b/source/_components/ifttt.markdown index 36d15bcdfad..1c6afdd4a84 100644 --- a/source/_components/ifttt.markdown +++ b/source/_components/ifttt.markdown @@ -29,7 +29,7 @@ For example, set the body of the IFTTT webhook to: { "action": "call_service", "service": "light.turn_on", "entity_id": "light.living_room" } ``` -You then need to consume that incoming information with the following automation: +You then need to consume that incoming information with the following automation. It need to be added to the `configuration.yaml` file and not `automation.yaml` file. You may want to rename `automation:` to `automation old:` if you are also using the `automation.yaml` file and the online editor: ```yaml automation: diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index f9c43ccf489..caaad4b4864 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -50,7 +50,7 @@ The automation equivalent would be: ```yaml action: service: notify.notify - data: + data_template: message: "The sun is {% raw %}{% if is_state('sun.sun', 'above_horizon') %}up{% else %}down{% endif %}{% endraw %}!" ``` diff --git a/source/_components/persistent_notification.markdown b/source/_components/persistent_notification.markdown index 4be8e781ae7..bb0354a7407 100644 --- a/source/_components/persistent_notification.markdown +++ b/source/_components/persistent_notification.markdown @@ -8,7 +8,7 @@ ha_release: 0.23 ha_qa_scale: internal --- -The `persistent_notification` integration can be used to show a notfication on the frontend that has to be dismissed by the user. +The `persistent_notification` integration can be used to show a notification on the frontend that has to be dismissed by the user.

diff --git a/source/_components/plugwise.markdown b/source/_components/plugwise.markdown index efd96c7108e..8f16749cfa7 100644 --- a/source/_components/plugwise.markdown +++ b/source/_components/plugwise.markdown @@ -67,7 +67,7 @@ max_temp: ```yaml climate: - - platform: anna + - platform: plugwise name: YOUR_THERMOSTAT_NAME password: YOUR_SHORT_ID host: YOUR_SMILE_LOCAL_IP diff --git a/source/_components/rejseplanen.markdown b/source/_components/rejseplanen.markdown index 03bee9fefbc..c152d4e9884 100644 --- a/source/_components/rejseplanen.markdown +++ b/source/_components/rejseplanen.markdown @@ -53,6 +53,11 @@ stop_id: description: The ID of the public transport stop. required: true type: string +name: + description: "The name of the sensor. Entity ID for the sensor will be created based on this name. E.g., Glostrup St becomes `sensor.glostrup_st`. It's optional but recommended if you define more than one sensor." + required: false + type: string + default: "Next departure" route: description: List of route names. required: false @@ -105,6 +110,7 @@ A more extensive example on how to use this sensor: # Example configuration.yaml entry sensor: - platform: rejseplanen + name: 'Elmegade 350S' stop_id: '000045740' route: 'Bus 350S' direction: diff --git a/source/_components/remote_rpi_gpio.markdown b/source/_components/remote_rpi_gpio.markdown index 6d2c0583f29..f3fe6b23129 100644 --- a/source/_components/remote_rpi_gpio.markdown +++ b/source/_components/remote_rpi_gpio.markdown @@ -10,7 +10,13 @@ ha_release: 0.94 ha_iot_class: Local Push --- -The `rpi_gpio` integration is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the integration itself, for the platforms please check their corresponding sections. +The `rpi_gpio` integration is the base for all related GPIO platforms in Home Assistant. For the platform configurations, please check their corresponding sections. + +The remote RPi and the control computer where Home Assistant is running must be prepared to run remote_rpi_gpio, see details [here](https://gpiozero.readthedocs.io/en/stable/remote_gpio.html). + +Note that for virtual environments you may need to set an environment variable when starting the environment to set the pin factory, example: + +`Environment = GPIOZERO_PIN_FACTORY=pigpio PIGPIO_ADDR=YOUR_RPi_IP_ADDRESS` ## Binary Sensor @@ -113,3 +119,7 @@ switch: ports: 17: Speaker Relay ``` + +### Troubleshooting + +If you receive an error such as `gpiozero.exc.BadPinFactory: Unable to load any default pin factory!` try changing the pinfactory from `pigpio` to `mock`, this adresses a [known issue](https://www.raspberrypi.org/forums/viewtopic.php?p=1417922). diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index d09e1b88356..11ada47e64a 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -73,7 +73,7 @@ payload_not_available: type: string default: offline json_attributes_topic: - description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. + description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Implies `force_update` of the current sensor state when a message is received on this topic. required: false type: string json_attributes_template: @@ -171,6 +171,8 @@ sensor: ``` {% endraw %} +The state and the attributes of the sensor by design do not update in a synchronous manner if they share the same MQTT topic. Temporal mismatches between the state and the attribute data may occur if both the state and the attributes are changed simultaneously by the same MQTT message. An automation that triggers on any state change of the sensor will also trigger both on the change of the state or a change of the attributes. Such automations will be triggered twice if both the state and the attributes change. Please use a [MQTT trigger](/docs/automation/trigger/#mqtt-trigger) and process the JSON in the automation directly via the {% raw %}`{{ trigger.payload_json }}`{% endraw %} [trigger data](/docs/automation/templating/#mqtt) for automations that must synchronously handle multiple JSON values within the same MQTT message. + ### Get battery level If you are using the [OwnTracks](/components/device_tracker.owntracks/) and enable the reporting of the battery level then you can use a MQTT sensor to keep track of your battery. A regular MQTT message from OwnTracks looks like this: diff --git a/source/_components/stream.markdown b/source/_components/stream.markdown index acb08911a28..215c201f939 100644 --- a/source/_components/stream.markdown +++ b/source/_components/stream.markdown @@ -59,7 +59,7 @@ To do this add either [picture-entity](/lovelace/picture-entity/), [picture-glan Some users on manual installs may see the following error in their logs after restarting: -``` +```text 2019-03-12 08:49:59 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package av==6.1.2: Command "/home/pi/home-assistant/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-udfl2b3t/av/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-ftn5zmh2/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/home-assistant/include/site/python3.6/av" failed with error code 1 in /tmp/pip-install-udfl2b3t/av/ 2019-03-12 08:49:59 ERROR (MainThread) [homeassistant.requirements] Not initializing stream because could not install requirement av==6.1.2 2019-03-12 08:49:59 ERROR (MainThread) [homeassistant.setup] Setup failed for stream: Could not install all requirements. @@ -67,6 +67,6 @@ Some users on manual installs may see the following error in their logs after re If you see this error you can solve it by running the following commands and restarting Home Assistant (commands do not need to be ran as the `homeassistant` user): -``` +```text sudo apt-get install -y python-dev pkg-config libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev ``` diff --git a/source/_components/trafikverket_train.markdown b/source/_components/trafikverket_train.markdown index 0c78712b0c4..383e66fa81d 100644 --- a/source/_components/trafikverket_train.markdown +++ b/source/_components/trafikverket_train.markdown @@ -92,7 +92,7 @@ Click [here](https://www.trafikverket.se/trafikinformation/tag/?ArrDep=departure ```yaml sensor: -- platform: trafikverket +- platform: trafikverket_train api_key: !secret trafikverket_api_key trains: - name: "Train to work" diff --git a/source/_components/unifi.markdown b/source/_components/unifi.markdown index df7ccad1d65..735ce44cd6d 100644 --- a/source/_components/unifi.markdown +++ b/source/_components/unifi.markdown @@ -44,17 +44,17 @@ unifi: {% configuration %} host: - description: Same address as relevant config entry, needed to identify config entry + description: Same address as relevant config entry, needed to identify config entry. type: string required: true default: None site: - description: Same site as relevant config entry, needed to identify config entry + description: Same site as relevant config entry, needed to identify config entry. type: string required: true default: None block_client: - description: Clients that can be blocked from the network + description: A list of Clients MAC Addresses that can be blocked from the network. type: list required: false default: None @@ -111,7 +111,7 @@ If Home Assistant and the UniFi controller are running on separate machines or V ### Block network access for clients -Allow control of network access to clients configured in `configuration.yaml` +Allow control of network access to clients configured in the `configuration.yaml` file by adding a list of the MAC addresses. Items in this list will have a Home Assistant switch created, using the Unifi Device name, allowing for blocking and unblocking. ### Control clients powered by POE diff --git a/source/_components/updater.markdown b/source/_components/updater.markdown index 052c01e9e5e..b30426c05a7 100644 --- a/source/_components/updater.markdown +++ b/source/_components/updater.markdown @@ -56,6 +56,7 @@ It is possible to report the integrations that you are using to the Home Assista For an added bonus, an automation integration can be created to send a message with a notifier when that state of this component's entity changes. +{% raw %} ```yaml # Example configuration.yaml entry automation: @@ -67,6 +68,7 @@ automation: to: 'on' action: - service: notify.notify - data: - message: 'Update for Home Assistant is available.' + data_template: + message: "Home Assistant {{ state_attr('binary_sensor.updater', 'newest_version') }} is available." ``` +{% endraw %} diff --git a/source/_components/webostv.markdown b/source/_components/webostv.markdown index e459f3f59a6..131dbbd2cd7 100644 --- a/source/_components/webostv.markdown +++ b/source/_components/webostv.markdown @@ -23,9 +23,9 @@ There is currently support for the following device types within Home Assistant: To begin with enable *LG Connect Apps* feature in *Network* settings of the TV [instructions](http://www.lg.com/uk/support/product-help/CT00008334-1437131798537-others). -Once basic configuration is added to your `configuration.yaml` *Configuration* card should prompt on your Home Assistants's states. Follow the instructions and accept pairing request on your TV. +Once basic configuration is added to your `configuration.yaml` file. A notification should be visible in the frontend's **Notification** section. Follow the instructions and accept the pairing request on your TV. -Pairing information will be saved to the `filename:` provided in configuration. This process is IP sensitive, in case the IP address of your TV would change in future. +Pairing information will be saved to the `filename:` provided in the configuration. This process is IP address-sensitive, in case the IP address of your TV would change in future. ### Configuration @@ -227,4 +227,4 @@ automation: message: "Movement detected: Front Door" data: icon: "/home/homeassistant/images/doorbell.png" -``` \ No newline at end of file +``` diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown index f6de79bbb49..590c3ac2d92 100644 --- a/source/_components/zoneminder.markdown +++ b/source/_components/zoneminder.markdown @@ -17,7 +17,7 @@ redirect_from: - /components/switch.zoneminder/ --- -The ZoneMinder integration sets up the integration with your [ZoneMinder](https://www.zoneminder.com) instance. +The `zoneminder` integration sets up Home Assistant with your [ZoneMinder](https://www.zoneminder.com) instance. There is currently support for the following device types within Home Assistant: diff --git a/source/_cookbook/perform_actions_based_on_input_select.markdown b/source/_cookbook/perform_actions_based_on_input_select.markdown index bead33bdf04..eca0910f8a7 100644 --- a/source/_cookbook/perform_actions_based_on_input_select.markdown +++ b/source/_cookbook/perform_actions_based_on_input_select.markdown @@ -38,7 +38,7 @@ automation: data: entity_id: media_player.nursery media_content_id: http://fileserver/rain.mp3 - media_content_type: audio/mp4 + media_content_type: music # If you select "Babbling Brook", play the "babbling_brook.mp3" file @@ -54,7 +54,7 @@ automation: data: entity_id: media_player.nursery media_content_id: http://fileserver/babbling_brook.mp3 - media_content_type: audio/mp4 + media_content_type: music # If you select "None, turn the Chromecast off - alias: Stop the Lullaby @@ -160,5 +160,5 @@ automation: {% else %}{% endraw %} none{% raw %} {% endif %}{% endraw %} - media_content_type: 'audio/mp4' + media_content_type: 'music' ``` diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index 28e34f78761..41b1486ad45 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -57,5 +57,5 @@ Note that this example uses the `voicerss` text-to-speech platform. There are ma If you want to use this TTS engine, change the line in the example provided to: ``` -- service: tts.google_say +- service: tts.google_translate_say ``` diff --git a/source/_docs/automation/editor.markdown b/source/_docs/automation/editor.markdown index f75b9eba187..278cb9d3b2d 100644 --- a/source/_docs/automation/editor.markdown +++ b/source/_docs/automation/editor.markdown @@ -87,7 +87,7 @@ For example, the below automation will be triggered when the sun goes from below from: below_horizon to: above_horizon condition: - - condition: numeric state + - condition: numeric_state entity_id: sensor.temperature above: 17 below: 25 diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 32afab597a9..efa40b6cfde 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -293,7 +293,7 @@ automation: ### Time pattern trigger -With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value. +With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value (when using the web interface this is required, the fields cannot be left empty). ```yaml automation: diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 08789841c4a..59260edf7cf 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -61,7 +61,7 @@ Extensions allow templates to access all of the Home Assistant specific states a

- Avoid using `states.sensor.temperature`, instead use `states('sensor.temperature')`. It is strongly advised to use the `states()`, `is_state()`, `state_attr()` and `is_state_attr()` as much as possible, to avoid errors and error message when the entity isn't ready yet (e.g., during Home Assistant startup). + Avoid using `states.sensor.temperature.state`, instead use `states('sensor.temperature')`. It is strongly advised to use the `states()`, `is_state()`, `state_attr()` and `is_state_attr()` as much as possible, to avoid errors and error message when the entity isn't ready yet (e.g., during Home Assistant startup).
@@ -74,7 +74,7 @@ The next two statements result in the same value if the state exists. The second {% raw %} ```text {{ states('device_tracker.paulus') }} -{{ states.device_tracker.paulus }} +{{ states.device_tracker.paulus.state }} ``` {% endraw %} diff --git a/source/_docs/ecosystem/notebooks/database.markdown b/source/_docs/ecosystem/notebooks/database.markdown index b300d0d110f..b91fdadb3fe 100644 --- a/source/_docs/ecosystem/notebooks/database.markdown +++ b/source/_docs/ecosystem/notebooks/database.markdown @@ -4,4 +4,4 @@ description: "Accessing the Home-Assistant database from a Jupyter notebook." redirect_from: /ecosystem/notebooks/database/ --- -You can directly access the Home-Assistant database from Jupyter notebooks. The [Database example](http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/database-examples.ipynb) shows you how you can work with stored database values. +You can directly access the Home-Assistant database from Jupyter notebooks. The [Database example](https://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/other/database-examples.ipynb) shows you how you can work with stored database values. diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 72ae3082e0d..d5430e0c6bc 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -11,19 +11,19 @@ Installation with Docker is straightforward. Adjust the following command so tha ### Linux ```bash -$ docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/home-assistant +$ docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/home-assistant:stable ``` ### Raspberry Pi 3 (Raspbian) ```bash -$ docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/raspberrypi3-homeassistant +$ docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/raspberrypi3-homeassistant:stable ``` You need to replace `/PATH_TO_YOUR_CONFIG` with your path to the configuration, for example if you choose your configuration path to be `/home/pi/homeassistant`, then command would be: ```bash -$ docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /home/pi/homeassistant:/config --net=host homeassistant/raspberrypi3-homeassistant +$ docker run --init -d --name="home-assistant" -e "TZ=America/New_York" -v /home/pi/homeassistant:/config --net=host homeassistant/raspberrypi3-homeassistant:stable ``` ### macOS @@ -33,7 +33,7 @@ When using `docker-ce` (or `boot2docker`) on macOS, you are unable to map the lo If you wish to browse directly to `http://localhost:8123` from your macOS host, meaning forward ports directly to the container, replace the `--net=host` switch with `-p 8123:8123`. More detail can be found in [the docker forums](https://forums.docker.com/t/should-docker-run-net-host-work/14215/10). ```bash -$ docker run --init -d --name="home-assistant" -e "TZ=America/Los_Angeles" -v /PATH_TO_YOUR_CONFIG:/config -p 8123:8123 homeassistant/home-assistant +$ docker run --init -d --name="home-assistant" -e "TZ=America/Los_Angeles" -v /PATH_TO_YOUR_CONFIG:/config -p 8123:8123 homeassistant/home-assistant:stable ``` Alternatively, `docker-compose` works with any recent release of `docker-ce` on macOS. Note that (further down this page) we provide an example `docker-compose.yml` however it differs from the `docker run` example above. To make the .yml directives match, you would need to make _two_ changes: first add the equivalent `ports:` directive, then _remove_ the `network_mode: host` section. This is because `Port mapping is incompatible with network_mode: host:`. More details can be found at [Docker networking docs](https://docs.docker.com/engine/userguide/networking/#default-networks). Note also the `/dev/tty*` device name used by your Arduino etc. devices will differ from the Linux example, so the compose `mount:` may require updates. @@ -41,7 +41,7 @@ Alternatively, `docker-compose` works with any recent release of `docker-ce` on ### Windows ```powershell -$ docker run --init -d --name="home-assistant" -e "TZ=America/Los_Angeles" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/home-assistant +$ docker run --init -d --name="home-assistant" -e "TZ=America/Los_Angeles" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/home-assistant:stable ``` When running Home Assistant in Docker on Windows, you may have some difficulty getting ports to map for routing (since the `--net=host` switch actually applies to the hypervisor's network interface). To get around this, you will need to add port proxy ipv4 rules to your local Windows machine, like so (Replacing '192.168.1.10' with whatever your Windows IP is, and '10.0.50.2' with whatever your Docker container's IP is): @@ -91,7 +91,7 @@ Adjust the following Terminal command as follows : Run it in Terminal. ```bash -sudo docker run --restart always -d --name="homeassistant" -v /PATH_TO_YOUR_CONFIG:/config --device=/PATH_TO_YOUR_USB_STICK -e TZ=Australia/Melbourne --net=host homeassistant/home-assistant +sudo docker run --restart always -d --name="homeassistant" -v /PATH_TO_YOUR_CONFIG:/config --device=/PATH_TO_YOUR_USB_STICK -e TZ=Australia/Melbourne --net=host homeassistant/home-assistant:stable ``` Complete the remainder of the Z-Wave configuration by [following the instructions here.](/docs/z-wave/installation) @@ -148,7 +148,7 @@ If you want to use a USB Bluetooth adapter or Z-Wave USB stick with Home Assista The above command should show you any USB devices plugged into your NAS. If you have more than one, you may get multiple items returned. Like : `ttyACM0` - Run Docker command: - `docker run --init --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London --device /dev/ttyACM0 homeassistant/home-assistant` + `docker run --init --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London --device /dev/ttyACM0 homeassistant/home-assistant:stable` `-v` is your config path `-e` is set timezone @@ -166,7 +166,7 @@ That will tell Home Assistant where to look for our Z-wave radio. - Connect to your NAS over SSH - Run Docker command: - `docker run --init --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus homeassistant/home-assistant` + `docker run --init --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus homeassistant/home-assistant:stable` First `-v` is your config path `-e` is set timezone @@ -194,7 +194,7 @@ As the docker command becomes more complex, switching to `docker-compose` can be services: homeassistant: container_name: home-assistant - image: homeassistant/home-assistant + image: homeassistant/home-assistant:stable volumes: - /PATH_TO_YOUR_CONFIG:/config environment: @@ -222,7 +222,7 @@ In order to use Z-Wave, Zigbee or other integrations that require access to devi ```bash $ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config \ -e "TZ=Australia/Melbourne" --device /dev/ttyUSB0:/dev/ttyUSB0 \ - --net=host homeassistant/home-assistant + --net=host homeassistant/home-assistant:stable ``` or in a `docker-compose.yml` file: @@ -232,7 +232,7 @@ or in a `docker-compose.yml` file: services: homeassistant: container_name: home-assistant - image: homeassistant/home-assistant + image: homeassistant/home-assistant:stable volumes: - /PATH_TO_YOUR_CONFIG:/config devices: diff --git a/source/_docs/installation/freenas.markdown b/source/_docs/installation/freenas.markdown index 5ea23f33090..e7057b16d6a 100644 --- a/source/_docs/installation/freenas.markdown +++ b/source/_docs/installation/freenas.markdown @@ -10,24 +10,24 @@ This has been tested on FreeNAS 11.2 and should also work on FreeBSD 11.x as wel 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 - +pw groupadd -n homeassistant -g 8123 +echo 'homeassistant:8123:8123::::::/bin/csh:' | adduser -f - ``` Install the necessary Python packages: ```bash -# pkg update -# pkg upgrade -# pkg install -y python37 py37-sqlite3 ca_root_nss -# python3.7 -m ensurepip +pkg update +pkg upgrade +pkg install -y python37 py37-sqlite3 ca_root_nss +python3.7 -m ensurepip ``` Create the configuration directory: ```bash -# mkdir -p /usr/local/homeassistant -# chown -R homeassistant:homeassistant /usr/local/homeassistant +mkdir -p /usr/local/homeassistant +chown -R homeassistant:homeassistant /usr/local/homeassistant ``` Create the installation directory: @@ -40,13 +40,13 @@ chown -R homeassistant:homeassistant /usr/local/share/homeassistant Install Home Assistant itself: ```bash -# su homeassistant -% cd /usr/local/share/homeassistant -% virtualenv -p python3.7 . -% source ./bin/activate.csh -% pip3 install homeassistant -% deactivate -% exit +su homeassistant +cd /usr/local/share/homeassistant +virtualenv -p python3.7 . +source ./bin/activate.csh +pip3 install homeassistant +deactivate +exit ``` Create an `rc.d` script for the system-level service that enables Home Assistant to start when the jail starts. Create a file at `/usr/local/etc/rc.d/homeassistant` with the following contents: @@ -133,8 +133,8 @@ Make the `rc.d` script executable: Configure the service to start on boot and start the Home Assistant service: ```bash -# sysrc homeassistant_enable="YES" -# service homeassistant start +sysrc homeassistant_enable="YES" +service homeassistant start ``` You can also restart the jail to ensure that Home Assistant starts on boot. diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 70fca524001..0ed1c2f870c 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -60,7 +60,7 @@ The discovery topic need to follow a specific format: The payload must be a JSON dictionary and will be checked like an entry in your `configuration.yaml` file if a new device is added. This means that missing variables will be filled with the platform's default values. All configuration variables which are *required* must be present in the initial payload send to `/config`. -If the integration is `alarm_control_panel`, `binary_sensor`, or `sensor` and the mandatory `state_topic` is not present in the payload, `state_topic` will be automatically set to //[/]/state. The automatic setting of `state_topic` id depracated and may be removed in a future version of Home Assistant. +If the integration is `alarm_control_panel`, `binary_sensor`, or `sensor` and the mandatory `state_topic` is not present in the payload, `state_topic` will be automatically set to //[/]/state. The automatic setting of `state_topic` is deprecated and may be removed in a future version of Home Assistant. An empty payload will cause a previously discovered device to be deleted. diff --git a/source/_docs/security/porosity.markdown b/source/_docs/security/porosity.markdown index 72f61ad4e11..6da453ee98d 100644 --- a/source/_docs/security/porosity.markdown +++ b/source/_docs/security/porosity.markdown @@ -5,7 +5,7 @@ description: "Use nmap to scan your Home Assistant instance." As a large amount of users are running [Hass.io](/hassio/), here we are using a Raspberry Pi 3 B and Hass.io 0.70.0 to show how Home Assistant looks from the network side. This is not a full blown investigation, just a quick overview. -The IP address of the Home Assistant machine is 192.168.0.215. The system which is the source of the scans is a machine running Fedora 27 and Nmap 7.60 is used to preform the port scans. Both systems are in the same network. +The IP address of the Home Assistant machine is 192.168.0.215. The system which is the source of the scans is a machine running Fedora 27 and Nmap 7.60 is used to perform the port scans. Both systems are in the same network. ## SSH server Add-on diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index 4ca4f65005a..6853c447e0a 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -12,6 +12,10 @@ {%- assign imp_name = file_parts | first -%} {%- assign imp_url = imp_name | prepend: '/components/' | append: '/' -%} +
+ +
+ {%- if page.ha_iot_class -%}
IoT class: {{ page.ha_iot_class }} @@ -63,3 +67,5 @@
{%- endif -%} + + diff --git a/source/_includes/site/footer.html b/source/_includes/site/footer.html index 2e075aad9c7..697c6cdf3e9 100644 --- a/source/_includes/site/footer.html +++ b/source/_includes/site/footer.html @@ -12,9 +12,10 @@ - + - + +### Preparation + To prepare your machine for the Hass.io installation, run the following commands: ```bash @@ -192,8 +194,8 @@ A detailed guide about running Hass.io as a virtual machine is available in the [pi2]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi2-2.12.img.gz [pi3-32]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi3-2.12.img.gz [pi3-64]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_rpi3-64-2.12.img.gz -[pi4-32]: https://github.com/home-assistant/hassos/releases/download/3.3/hassos_rpi4-3.3.img.gz -[pi4-64]: https://github.com/home-assistant/hassos/releases/download/3.3/hassos_rpi4-64-3.3.img.gz +[pi4-32]: https://github.com/home-assistant/hassos/releases/download/3.4/hassos_rpi4-3.4.img.gz +[pi4-64]: https://github.com/home-assistant/hassos/releases/download/3.4/hassos_rpi4-64-3.4.img.gz [tinker]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_tinker-2.12.img.gz [odroid-c2]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_odroid-c2-2.12.img.gz [odroid-xu4]: https://github.com/home-assistant/hassos/releases/download/2.12/hassos_odroid-xu4-2.12.img.gz diff --git a/source/images/blog/2019-08-0.98/batcave.png b/source/images/blog/2019-08-0.98/batcave.png new file mode 100644 index 00000000000..5d9d55b1f74 Binary files /dev/null and b/source/images/blog/2019-08-0.98/batcave.png differ diff --git a/source/images/blog/2019-08-0.98/components.png b/source/images/blog/2019-08-0.98/components.png new file mode 100644 index 00000000000..ec03d185157 Binary files /dev/null and b/source/images/blog/2019-08-0.98/components.png differ diff --git a/source/images/blog/2019-08-0.98/options_flow.png b/source/images/blog/2019-08-0.98/options_flow.png new file mode 100644 index 00000000000..69f883ba969 Binary files /dev/null and b/source/images/blog/2019-08-0.98/options_flow.png differ diff --git a/source/images/blog/2019-08-0.98/system_options.png b/source/images/blog/2019-08-0.98/system_options.png new file mode 100644 index 00000000000..1242c9f130e Binary files /dev/null and b/source/images/blog/2019-08-0.98/system_options.png differ