diff --git a/.textlintrc.json b/.textlintrc.json index d044e1bdf00a..d196f13a944a 100644 --- a/.textlintrc.json +++ b/.textlintrc.json @@ -77,11 +77,14 @@ "CalDAV", "CardDAV", "Cisco IOS", + "CLI", "Daikin", "Danfoss", "Dark Sky", "Debian", "deCONZ", + "Dialogflow", + "DIY", "DNS", "Docker Hub", "Docker", @@ -98,6 +101,7 @@ "ESPHome", "Essent", "Everspring", + "Fast.com", "FFmpeg", "Fibaro", "Flexit", @@ -112,6 +116,7 @@ "GraphiQL", "GraphQL", "Growatt", + "HDMI", "Heatmiser", "Home Assistant Companion", "Home Assistant Core", @@ -143,6 +148,7 @@ "Kafka", "KEF", "KNX", + "Kodi", "LaCrosse", "LED", "Let's Encrypt", @@ -150,11 +156,16 @@ "LinkedIn", "Linky", "Linux", + "LMS", + "Logitech Harmony", + "Logitech Media Server", + "Logitech", "Lovelace", "LTE", "MacBook", "macOS", "Markdown", + "mDNS", "Microsoft", "MikroTik", "MIME", @@ -169,6 +180,8 @@ "Norway", "NuHeat", "NZBGet", + "ODRIOD-N2", + "ODROID", "OpenTherm", "OpenWrt", "PayPal", @@ -204,8 +217,10 @@ "Sonarr", "Sonos", "Sony", + "Speedtest.net", "Spotify", "SQL", + "Squeezebox", "SSID", "SSL", "StarLine", @@ -236,8 +251,10 @@ "UI", "UniFi", "unRAID", + "UPnP", "UPS", "URL", + "USB", "Velbus", "Velux", "Venstar", @@ -273,6 +290,8 @@ [" HA ", "Home Assistant"], ["\\(s\\)he", "they"], ["2 ?steps? authentication", "two-step authentication"], + ["addon", "add-on"], + ["addons", "add-ons"], ["Alarm ?dot ?com", "Alarm.com"], ["an URL", "a URL"], ["analyse", "analyze"], @@ -287,13 +306,15 @@ ["end ?to ?end", "end-to-end"], ["FRITZ!? ?Box", "FRITZ!Box"], ["grey", "gray"], - ["Hass\\.?io", "Home Assistant"], ["hass", "Home Assistant"], + ["Hass\\.?io", "Home Assistant"], ["HassOS", "Home Assistant Operating System"], ["he or she", "they"], ["he/she", "they"], ["Home-?Ass?s?iss?tt?ant", "Home Assistant"], + ["IFF?TTT?T?", "IFTTT"], ["ISY ?994", "ISY994"], + ["JSONRPC", "JSON-RPC"], ["licence", "license"], ["licences", "licenses"], ["Mac ?OS", "macOS"], diff --git a/_config.yml b/_config.yml index 28f9d963f1f3..cd65908acd3f 100644 --- a/_config.yml +++ b/_config.yml @@ -101,8 +101,8 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 105 -current_patch_version: 3 -date_released: 2020-02-10 +current_patch_version: 4 +date_released: 2020-02-14 # 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/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index d8d91be4734d..f62ea7a62ab0 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -75,6 +75,8 @@ INFO (MainThread) [homeassistant.components.http.auth] You need to use a bearer ### Lost owner password +Before using the procedure below, make sure you explore options provided [here](/docs/locked_out). + While you should hopefully be storing your passwords in a password manager, if you lose the password associated with the owner account the only way to resolve this is to delete *all* the authentication data. You do this by shutting down Home Assistant and deleting the following files from the `.storage/` folder in your [configuration folder](/docs/configuration/): - `auth` diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index c15caf07ef98..dfca2518f234 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -179,10 +179,14 @@ The same thing can also be expressed as a filter: - Filter `timestamp_local` converts an UNIX timestamp to its string representation as date/time in your local timezone. - Filter `timestamp_utc` converts a UNIX timestamp to its string representation representation as date/time in UTC timezone. - Filter `timestamp_custom(format_string, local_time=True)` converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is default. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime). + Note: [UNIX timestamp](https://en.wikipedia.org/wiki/Unix_time) is the number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970. Therefore, if used as a function's argument, it can be substituted with a numeric value (`int` or `float`): + +{% raw %} ```yaml {{ 120 | timestamp_local }} ``` +{% endraw %} ### To/From JSON diff --git a/source/_docs/installation/armbian.markdown b/source/_docs/installation/armbian.markdown index cb6c1e983d73..2f6862973c40 100644 --- a/source/_docs/installation/armbian.markdown +++ b/source/_docs/installation/armbian.markdown @@ -3,7 +3,7 @@ title: "Installation on a Armbian system" description: "Instructions to install Home Assistant on an Armbian-powered systems." --- -[armbian](https://www.armbian.com) runs on a wide-variety of [ARM development boards](https://www.armbian.com/download/). Currently there are around 50 boards supported inclusive the OrangePi family, Cubieboard, Pine64, and Odroid. +[armbian](https://www.armbian.com) runs on a wide-variety of [ARM development boards](https://www.armbian.com/download/). Currently there are around 50 boards supported inclusive the OrangePi family, Cubieboard, Pine64, and ODROID. Setup Python and `pip`: diff --git a/source/_docs/locked_out.md b/source/_docs/locked_out.md new file mode 100644 index 000000000000..233492f11986 --- /dev/null +++ b/source/_docs/locked_out.md @@ -0,0 +1,64 @@ +--- +title: "I'm Locked Out!" +description: "Options for regaining access" +--- + +The sections below deal with recovering from a situation where you are not able to sign in, +or need to recover your data. + +## Forgot Password + +### Home Assistant (including Supervised) + +If you’ve forgotten your user, then deleting the files mentioned above will be necessary to start a new onboarding process. + +If you know the user, but not the password and you can access the [Home Assistant console](https://www.home-assistant.io/hassio/commandline/) and use the command below: + +Connect a keyboard and monitor to your device. + +`ha auth reset --username "" --password ""` + +### Home Assistant Core + +While you should hopefully be storing your passwords in a password manager, if you lose the password associated with the owner account the only way to resolve this is to delete *all* the authentication data. You do this by shutting down Home Assistant and deleting the following files from the `.storage/` folder in your [configuration folder](/docs/configuration/): + +- `auth` +- `auth_provider.homeassistant` +- `onboarding` +- `hassio` +- `cloud` + +## Recovering Data for Home Assistant (including Supervised) + +Unless your SD card/data is corrupted, you can still get to your files or troubleshoot further. +There are a few routes: + +- Connect a USB keyboard and HDMI monitor directly to the Raspberry Pi. +- Remove the SD and access the files from another machine (preferably one running Linux). + +## Connect directly + +If you’re using a Raspberry Pi, you're likely going to have to pull the power in order to get your monitor recognized at boot. Pulling power has a risk of corrupting the SD, but you may not have another option. Most standard USB keyboards should be recognized easily. + +Once you're connected, you'll see a running dmesg log. Hit the enter key to interrupt the log. +Sign in as "root". There is no password. + +You will then be at the Home Assistant CLI, where you can run the custom commands. These are the same as you would run using the SSH add-on but without using `ha` in front of it. For example: + +- `core logs` for Home Assistant Core log +- `supervisor logs` for supervisor logs +- `host reboot` to reboot the host +- `dns logs` for checking DNS +- etc (typing `help` will show more) + +## Accessing Files from the SD/HDD + +### Remove the SD and access the files from another computer + +The files are on an EXT4 partition (`hassos-data`) and the path is `/mnt/data/supervisor`. +These are easily accessed using another Linux machine with EXT support. + +For Windows or macOS you will need third party software. Below are some options. + +- Windows: (read-only access to the SD) +- Mac: diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown index a0c7f5fc4e13..9f5079e66cf9 100644 --- a/source/_docs/mqtt/broker.markdown +++ b/source/_docs/mqtt/broker.markdown @@ -10,7 +10,7 @@ The MQTT integration needs you to run an MQTT broker for Home Assistant to conne This is the most private option, is running your own MQTT broker. -The recommended setup method is to use the [Mosquitto MQTT broker addon](/addons/mosquitto). +The recommended setup method is to use the [Mosquitto MQTT broker add-on](/addons/mosquitto). ## Configuration diff --git a/source/_integrations/androidtv.markdown b/source/_integrations/androidtv.markdown index 3f34dcf58595..8bf346be58e5 100644 --- a/source/_integrations/androidtv.markdown +++ b/source/_integrations/androidtv.markdown @@ -180,7 +180,7 @@ Prior to Home Assistant 0.101, this approach did not work well for newer devices The second option is to use an ADB server to connect to your Android TV and Fire TV devices. -For Home Assistant users, you can install the [Android Debug Bridge](https://github.com/hassio-addons/addon-adb/blob/master/README.md) addon. Using this approach, Home Assistant will send the ADB commands to the server, which will then send them to the Android TV / Fire TV device and report back to Home Assistant. To use this option, add the `adb_server_ip` option to your configuration. If you are running the server on the same machine as Home Assistant, you can use `127.0.0.1` for this value. +For Home Assistant users, you can install the [Android Debug Bridge](https://github.com/hassio-addons/addon-adb/blob/master/README.md) add-on. Using this approach, Home Assistant will send the ADB commands to the server, which will then send them to the Android TV / Fire TV device and report back to Home Assistant. To use this option, add the `adb_server_ip` option to your configuration. If you are running the server on the same machine as Home Assistant, you can use `127.0.0.1` for this value. ## ADB Troubleshooting diff --git a/source/_integrations/apple_tv.markdown b/source/_integrations/apple_tv.markdown index 0428288424a3..ff6400072953 100644 --- a/source/_integrations/apple_tv.markdown +++ b/source/_integrations/apple_tv.markdown @@ -100,7 +100,7 @@ Found Apple TVs: Note: You must use 'pair' with devices that have home sharing disabled ``` -Just copy and paste the `login_id` from the device you want to add. For more details about `atvremote`, see: [this page](https://pyatv.readthedocs.io/en/master/atvremote.html). +Just copy and paste the `login_id` from the device you want to add. For more details about `atvremote`, see: [this page](https://postlund.github.io/pyatv). ### Setting up device authentication diff --git a/source/_integrations/climate.modbus.markdown b/source/_integrations/climate.modbus.markdown index 5a9bb057368b..a5cf70b4354b 100644 --- a/source/_integrations/climate.modbus.markdown +++ b/source/_integrations/climate.modbus.markdown @@ -61,15 +61,16 @@ data_type: required: false type: string default: float -count: +data_count: description: Number of registers to read. required: false type: integer + default: 2 precision: description: Number of valid decimals. required: false type: integer - default: 0 + default: 1 scale: description: Scale factor (output = scale * value + offset). required: false @@ -89,12 +90,12 @@ min_temp: description: Maximum setpoint temperature. required: false type: integer - default: 5 + default: 5 temp_step: description: The supported step size a target temperature can be increased/decreased. required: false type: float - default: 0.5 + default: 0.5 temperature_unit: description: Temperature unit reported by the current_temp_register. C or F required: false diff --git a/source/_integrations/cover.rfxtrx.markdown b/source/_integrations/cover.rfxtrx.markdown index 1a276eb8f611..7459244e7590 100644 --- a/source/_integrations/cover.rfxtrx.markdown +++ b/source/_integrations/cover.rfxtrx.markdown @@ -48,7 +48,7 @@ Example configuration: cover: - platform: rfxtrx automatic_add: false - signal_repetitions: 2 + signal_repetitions: 2 # signal_repetitions: 1 for the Somfy covers (avoid to stop the motion after start) devices: 0b1100ce3213c7f210010f70: # Siemens/LightwaveRF name: Bedroom Shutter diff --git a/source/_integrations/dialogflow.markdown b/source/_integrations/dialogflow.markdown index ea6f74184879..67f0b9c5bd38 100644 --- a/source/_integrations/dialogflow.markdown +++ b/source/_integrations/dialogflow.markdown @@ -10,7 +10,7 @@ ha_config_flow: true The `dialogflow` integration is designed to be used with the [webhook](https://dialogflow.com/docs/fulfillment#webhook) integration of [Dialogflow](https://dialogflow.com/). When a conversation ends with a user, Dialogflow sends an action and parameters to the webhook. -To be able to receive messages from DialogFlow, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([docs](/integrations/http/#base_url)). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds). +To be able to receive messages from Dialogflow, your Home Assistant instance needs to be accessible from the web and you need to have the `base_url` configured for the HTTP integration ([docs](/integrations/http/#base_url)). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds). Dialogflow could be [integrated](https://dialogflow.com/docs/integrations/) with many popular messaging, virtual assistant and IoT platforms. diff --git a/source/_integrations/discovery.markdown b/source/_integrations/discovery.markdown index ba492edc60c1..a553a27d9341 100644 --- a/source/_integrations/discovery.markdown +++ b/source/_integrations/discovery.markdown @@ -8,7 +8,7 @@ ha_release: 0.7 ha_quality_scale: internal --- -Home Assistant can discover and automatically configure [zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking)/[mDNS](https://en.wikipedia.org/wiki/Multicast_DNS) and [uPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play) devices on your network. Currently the `discovery` integration can detect: +Home Assistant can discover and automatically configure [zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking)/[mDNS](https://en.wikipedia.org/wiki/Multicast_DNS) and [UPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play) devices on your network. Currently the `discovery` integration can detect: * [Apple TV](/integrations/apple_tv/) * [Belkin WeMo switches](/integrations/wemo/) @@ -21,7 +21,7 @@ Home Assistant can discover and automatically configure [zeroconf](https://en.wi * [Frontier Silicon internet radios](/integrations/frontier_silicon) * [Linn / Openhome](/integrations/openhome) * [Logitech Harmony Hub](/integrations/harmony) - * [Logitech media server (Squeezebox)](/integrations/squeezebox) + * [Logitech Media Server (Squeezebox)](/integrations/squeezebox) * [NETGEAR routers](/integrations/netgear) * [Panasonic Viera](/integrations/panasonic_viera) * [Philips Hue](/integrations/hue) @@ -80,7 +80,7 @@ Valid values for ignore are: * `frontier_silicon`: Frontier Silicon internet radios * `harmony`: Logitech Harmony Hub * `igd`: Internet Gateway Device - * `logitech_mediaserver`: Logitech media server (Squeezebox) + * `logitech_mediaserver`: Logitech Media Server (Squeezebox) * `netgear_router`: NETGEAR routers * `octoprint`: Octoprint * `openhome`: Linn / Openhome @@ -106,7 +106,7 @@ Valid values for enable are: ### UPnP -Home Assistant must be on the same network as the devices for uPnP discovery to work. +Home Assistant must be on the same network as the devices for UPnP discovery to work. If running Home Assistant in a [Docker container](/docs/installation/docker/) use switch `--net=host` to put it on the host's network. ### Windows diff --git a/source/_integrations/fastdotcom.markdown b/source/_integrations/fastdotcom.markdown index c59a327bef97..cd8553db916a 100644 --- a/source/_integrations/fastdotcom.markdown +++ b/source/_integrations/fastdotcom.markdown @@ -15,7 +15,8 @@ The `fastdotcom` integration uses the [Fast.com](https://fast.com/) web service
-Currently fast.com only supports measuring download bandwidth. If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [speedtest](/integrations/speedtestdotnet) component. +Currently, the Fast.com integration only supports measuring download bandwidth. +If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [Speedtest.net](/integrations/speedtestdotnet) integration.
diff --git a/source/_integrations/fritzbox_netmonitor.markdown b/source/_integrations/fritzbox_netmonitor.markdown index e70187df7dd6..0730c20afb59 100644 --- a/source/_integrations/fritzbox_netmonitor.markdown +++ b/source/_integrations/fritzbox_netmonitor.markdown @@ -10,6 +10,10 @@ ha_iot_class: Local Polling The `fritzbox_netmonitor` sensor monitors the network statistics exposed by [AVM FRITZ!Box](https://avm.de/produkte/fritzbox/) routers. +## Configuration + +For this integration to function properly, you need to have "UPnP Statusinformation transfer" activated on the AVM FRITZ!Box. Please make sure you have that enabled. + To use the FRITZ!Box network monitor in your installation, add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_integrations/google_maps.markdown b/source/_integrations/google_maps.markdown index b5e387018b5e..51a1a7702275 100644 --- a/source/_integrations/google_maps.markdown +++ b/source/_integrations/google_maps.markdown @@ -30,7 +30,7 @@ device_tracker: username: YOUR_USERNAME ``` -Once enabled and you have rebooted devices discovered through this integration wil be listed in the `known_devices.yaml`file within your configuration directory. +Once enabled and you have rebooted devices discovered through this integration will be listed in the `known_devices.yaml` file within your configuration directory. They will be created with indentifiers like `google_maps_`. To be able to properly track entities you must set the `track` attribute to `true`. diff --git a/source/_integrations/greeneye_monitor.markdown b/source/_integrations/greeneye_monitor.markdown index 52eb8186ff09..6ae7309f4ca9 100644 --- a/source/_integrations/greeneye_monitor.markdown +++ b/source/_integrations/greeneye_monitor.markdown @@ -34,8 +34,10 @@ greeneye_monitor: counted_quantity_per_pulse: 1 time_unit: "min" temperature_sensors: - - number: 1 - name: back_porch_temperature + temperature_unit: "C" + sensors: + - number: 1 + name: back_porch_temperature voltage: - number: 1 name: house_volts diff --git a/source/_integrations/kodi.markdown b/source/_integrations/kodi.markdown index 94a0ac6066c6..03e41d3f45fb 100644 --- a/source/_integrations/kodi.markdown +++ b/source/_integrations/kodi.markdown @@ -99,17 +99,17 @@ Add music to the default playlist (i.e. playlistid=0). #### Service `kodi.call_method` -Call a [Kodi JSONRPC API](https://kodi.wiki/?title=JSON-RPC_API) method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: `kodi_call_method_result`. +Call a [Kodi JSON-RPC API](https://kodi.wiki/?title=JSON-RPC_API) method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: `kodi_call_method_result`. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | Name(s) of the Kodi entities where to run the API method. | -| `method` | yes | Name of the Kodi JSONRPC API method to be called. | +| `method` | yes | Name of the Kodi JSON-RPC API method to be called. | | any other parameter | no | Optional parameters for the Kodi API call. | ### Event triggering -When calling the `kodi.call_method` service, if the Kodi JSONRPC API returns data, when received by Home Assistant it will fire a `kodi_call_method_result` event on the event bus with the following `event_data`: +When calling the `kodi.call_method` service, if the Kodi JSON-RPC API returns data, when received by Home Assistant it will fire a `kodi_call_method_result` event on the event bus with the following `event_data`: ```yaml entity_id: "" @@ -237,7 +237,7 @@ media_player:
-This example and the following requires to have the [script.json-cec](https://github.com/joshjowen/script.json-cec) plugin installed on your kodi player. It'll also expose the endpoints standby, toggle and activate without authentication on your kodi player. Use this with caution. +This example and the following requires to have the [script.json-cec](https://github.com/joshjowen/script.json-cec) plugin installed on your Kodi player. It'll also expose the endpoints standby, toggle and activate without authentication on your Kodi player. Use this with caution.
@@ -340,7 +340,7 @@ port: default: 8080 type: integer proxy_ssl: - description: Connect to kodi with HTTPS. Useful if Kodi is behind an SSL proxy. + description: Connect to Kodi with HTTPS. Useful if Kodi is behind an SSL proxy. required: false default: "`false`" type: boolean diff --git a/source/_integrations/mobile_app.markdown b/source/_integrations/mobile_app.markdown index cb4e824df40d..9ca3ddcdcdb5 100644 --- a/source/_integrations/mobile_app.markdown +++ b/source/_integrations/mobile_app.markdown @@ -30,3 +30,7 @@ mobile_app: - [Home Assistant for iOS](https://apps.apple.com/us/app/home-assistant/id1099568401?ls=1) (official) - [Home Assistant for Android](https://play.google.com/store/apps/details?id=io.homeassistant.companion.android) (official) + +## Mobile App Documentation + +- [Companion documentation](https://companion.home-assistant.io/) diff --git a/source/_integrations/nuki.markdown b/source/_integrations/nuki.markdown index b032b57b6b15..159c40f69353 100644 --- a/source/_integrations/nuki.markdown +++ b/source/_integrations/nuki.markdown @@ -12,7 +12,7 @@ ha_codeowners: The `nuki` platform allows you to control [Nuki Smart Locks](https://nuki.io/en/smart-lock/) via either a [software bridge](https://play.google.com/store/apps/details?id=io.nuki.bridge) or a [physical bridge](https://nuki.io/en/bridge/). -To add a Nuki bridge to your installation, you need to enable developer mode on your bridge and define a port and an access token. This can be achieved using the [Android app](https://play.google.com/store/apps/details?id=io.nuki). Please note that the API token should be 6-20 characters long, even though the app allows you to set a longer one. +To add a Nuki bridge to your installation, you need to enable developer mode on your bridge and define a port and an access token. This can be achieved using the [Android app](https://play.google.com/store/apps/details?id=io.nuki) or [iPhone app](https://apps.apple.com/app/nuki-smart-lock/id1044998081). Please note that the API token should be 6-20 characters long, even though the app allows you to set a longer one. Then add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_integrations/onkyo.markdown b/source/_integrations/onkyo.markdown index 7641cd3515e9..11ed35597051 100644 --- a/source/_integrations/onkyo.markdown +++ b/source/_integrations/onkyo.markdown @@ -55,32 +55,32 @@ sources: List of source names: -- video1 -- video2 -- video3 -- video4 -- video5 -- video6 -- video7 -- dvd -- bd-dvd -- tape1 -- tv-tape -- tape2 -- phono -- cd -- tv-cd -- fm -- am -- tuner -- dlna -- internet-radio -- usb -- network -- universal-port -- multi-ch -- xm -- sirius +- `video1` +- `video2` +- `video3` +- `video4` +- `video5` +- `video6` +- `video7` +- `dvd` +- `bd-dvd` +- `tape1` +- `tv-tape` +- `tape2` +- `phono` +- `cd` +- `tv-cd` +- `fm` +- `am` +- `tuner` +- `dlna` +- `internet-radio` +- `usb` +- `network` +- `universal-port` +- `multi-ch` +- `xm` +- `sirius` If your source is not listed above, and you want to figure out how to format that source name so you can map its entry, you can use the `onkyo-eiscp` Python module to discover the exact naming needed. First, change your receiver's source to the one that you need to define, and then run: diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown index 42df78e6c53f..3292d62cb278 100644 --- a/source/_integrations/recorder.markdown +++ b/source/_integrations/recorder.markdown @@ -189,7 +189,7 @@ If you are using the default `FULL` recovery model for MS SQL Server you will ne ### Database startup -If you are running a database server instance on the same server as Home Assistant then you must ensure that this service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the service file. +If you are running a database server instance on the same server as Home Assistant then you must ensure that this service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) you should edit the service file. To help facilitate this, db_max_retry and db_retry_wait variables have been added to ensure the recorder retries the connection to your database enough times, for your database to start up. ```bash diff --git a/source/_integrations/squeezebox.markdown b/source/_integrations/squeezebox.markdown index cf50b3435fc2..c47723a06153 100644 --- a/source/_integrations/squeezebox.markdown +++ b/source/_integrations/squeezebox.markdown @@ -60,7 +60,7 @@ transporter_toslink: ### Service `call_method` -Call a custom Squeezebox JSONRPC API. +Call a custom Squeezebox JSON-RPC API. See documentation for this interface on `http://HOST:PORT/html/docs/cli-api.html?player=` where HOST and PORT are the host name and port for your Logitech Media Server. @@ -72,10 +72,10 @@ See documentation for this interface on `http://HOST:PORT/html/docs/cli-api.html This service can be used to integrate any Squeezebox action to an automation. -It can also be used to target a Squeezebox from IFTT (or DialogFlow, Alexa...). +It can also be used to target a Squeezebox from IFTTT (or Dialogflow, Alexa...). -For example, to play an album from your collection, create an IFTT applet like this: +For example, to play an album from your collection, create an IFTTT applet like this: - Trigger: Google assistant, with sentence: `I want to listen to album $` - Action: JSON post query with such JSON body: `{ "entity_id": "media_player.squeezebox_radio", "command": "playlist", "parameters": ["loadtracks", "album.titlesearch={{TextField}}"] }` -This can work with title search and basically any thing. The same wouldn't have worked by calling directly Squeezebox server as IFTT cannot escape the text field. +This can work with title search and basically any thing. The same wouldn't have worked by calling directly Squeezebox server as IFTTT cannot escape the text field. diff --git a/source/_integrations/universal.markdown b/source/_integrations/universal.markdown index 74fd4128e1d2..6a0a7ba16355 100644 --- a/source/_integrations/universal.markdown +++ b/source/_integrations/universal.markdown @@ -135,7 +135,7 @@ media_player: #### Kodi CEC-TV control -In this example, a [Kodi Media Player](/integrations/kodi) runs in a CEC capable device (OSMC/OpenElec running in a Raspberry Pi 24/7, for example), and, with the JSON-CEC Kodi addon installed, it can turn on and off the attached TV. +In this example, a [Kodi Media Player](/integrations/kodi) runs in a CEC capable device (OSMC/OpenElec running in a Raspberry Pi 24/7, for example), and, with the JSON-CEC Kodi add-on installed, it can turn on and off the attached TV. We store the state of the attached TV in a hidden [input boolean](/integrations/input_boolean/), so we can differentiate the TV being on or off, while Kodi is always 'idle', and use the universal media player to render its state with a template. We can hide the Kodi Media Player too, and only show the universal one, which now can differentiate between the 'idle' and the 'off' state (being the second when it is idle and the TV is off). diff --git a/source/_integrations/upnp.markdown b/source/_integrations/upnp.markdown index 902963751b13..3f1ad5e288de 100644 --- a/source/_integrations/upnp.markdown +++ b/source/_integrations/upnp.markdown @@ -44,7 +44,7 @@ port_mapping: type: boolean default: false sensors: - description: If the integration should enable the UPNP sensors. + description: If the integration should enable the UPnP sensors. required: false type: boolean default: true diff --git a/source/_integrations/yamaha.markdown b/source/_integrations/yamaha.markdown index 94b551021775..beb992fb2ab9 100644 --- a/source/_integrations/yamaha.markdown +++ b/source/_integrations/yamaha.markdown @@ -56,7 +56,7 @@ zone_names: ### Discovery notes - If the `discovery` integration is enabled, all units on the network - will be discovered using UPNP. + will be discovered using UPnP. - For receivers that support more than one zone, Home Assistant will add one media player per zone supported by the player, named "$name Zone 2" and "$name Zone 3". diff --git a/source/_posts/2020-02-05-release-105.markdown b/source/_posts/2020-02-05-release-105.markdown index 9720c20ef534..fa70420e8934 100644 --- a/source/_posts/2020-02-05-release-105.markdown +++ b/source/_posts/2020-02-05-release-105.markdown @@ -588,6 +588,46 @@ Hats over your heart for these shuttered integrations. Pour one out for: [nws docs]: /integrations/nws/ [zha docs]: /integrations/zha/ +## Release 0.105.4 - February 14 + +- Guard writing automation/scene/script config ([@balloob] - [#31568]) ([config docs]) +- For vizio integration, set unique ID early to prevent multiple zeroconf discovery items for the same device to appear ([@raman325] - [#31686]) ([vizio docs]) +- Fix missing device class in netatmo binary sensors ([@cgtobi] - [#31693]) ([netatmo docs]) +- Fix person reload service ([@balloob] - [#31716]) ([person docs]) +- Fix smoke detection for HomematicIP Cloud ([@SukramJ] - [#31753]) ([homematicip_cloud docs]) +- Updated frontend to 20200130.3 ([@bramkragten] - [#31771]) ([frontend docs]) +- Fix person device_trackers null ([@balloob] - [#31829]) ([person docs]) +- Google Assistant: Remove speaker type and earlier filter out devices from being locally exposed ([@balloob] - [#31830]) ([google_assistant docs]) +- Spotify integration hotfixes ([@frenck] - [#31835]) ([spotify docs]) + +[#31489]: https://github.com/home-assistant/home-assistant/pull/31489 +[#31568]: https://github.com/home-assistant/home-assistant/pull/31568 +[#31686]: https://github.com/home-assistant/home-assistant/pull/31686 +[#31693]: https://github.com/home-assistant/home-assistant/pull/31693 +[#31716]: https://github.com/home-assistant/home-assistant/pull/31716 +[#31753]: https://github.com/home-assistant/home-assistant/pull/31753 +[#31771]: https://github.com/home-assistant/home-assistant/pull/31771 +[#31829]: https://github.com/home-assistant/home-assistant/pull/31829 +[#31830]: https://github.com/home-assistant/home-assistant/pull/31830 +[#31835]: https://github.com/home-assistant/home-assistant/pull/31835 +[@SukramJ]: https://github.com/SukramJ +[@balloob]: https://github.com/balloob +[@bramkragten]: https://github.com/bramkragten +[@cgtobi]: https://github.com/cgtobi +[@frenck]: https://github.com/frenck +[@raman325]: https://github.com/raman325 +[abode docs]: /integrations/abode/ +[adguard docs]: /integrations/adguard/ +[airly docs]: /integrations/airly/ +[config docs]: /integrations/config/ +[frontend docs]: /integrations/frontend/ +[google_assistant docs]: /integrations/google_assistant/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[netatmo docs]: /integrations/netatmo/ +[person docs]: /integrations/person/ +[spotify docs]: /integrations/spotify/ +[vizio docs]: /integrations/vizio/ + ## Beta Fixes - ZHA dependencies bump ([@Adminiuga] - [#31295]) ([zha docs]) (beta fix) diff --git a/source/_redirects b/source/_redirects index 1c770df25dee..cd8f2f53ea85 100644 --- a/source/_redirects +++ b/source/_redirects @@ -2044,21 +2044,21 @@ /integrations/switch.pca /integrations/elv # App documentation -/ios/whats-new https://companion.home-assistant.io/getting_started/index.html +/ios/whats-new https://companion.home-assistant.io/docs/getting_started/getting-started /docs/ecosystem/ios/ https://companion.home-assistant.io/ /docs/ecosystem/ios/devices_file https://companion.home-assistant.io/ -/docs/ecosystem/ios/integration https://companion.home-assistant.io/integrations/ -/docs/ecosystem/ios/location https://companion.home-assistant.io/core/location -/docs/ecosystem/ios/notifications https://companion.home-assistant.io/notifications/basic -/docs/ecosystem/ios/notifications/actions https://companion.home-assistant.io/notifications/actionable -/docs/ecosystem/ios/notifications/architecture https://companion.home-assistant.io/notifications/details -/docs/ecosystem/ios/notifications/attachments https://companion.home-assistant.io/notifications/attachments -/docs/ecosystem/ios/notifications/basic https://companion.home-assistant.io/notifications/basic -/docs/ecosystem/ios/notifications/content_extensions https://companion.home-assistant.io/notifications/dynamic-content -/docs/ecosystem/ios/notifications/privacy_security_rate_limits https://companion.home-assistant.io/notifications/details -/docs/ecosystem/ios/notifications/requesting_location_updates https://companion.home-assistant.io/notifications/location -/docs/ecosystem/ios/notifications/sounds https://companion.home-assistant.io/notifications/sounds -/ecosystem/ios/notifications https://companion.home-assistant.io/en/getting_started/migration#5---known-issues +/docs/ecosystem/ios/integration https://companion.home-assistant.io/docs/integrations/integrations +/docs/ecosystem/ios/location https://companion.home-assistant.io/docs/core/location +/docs/ecosystem/ios/notifications https://companion.home-assistant.io/docs/notifications/notifications-basic +/docs/ecosystem/ios/notifications/actions https://companion.home-assistant.io/docs/notifications/actionable-notifications +/docs/ecosystem/ios/notifications/architecture https://companion.home-assistant.io/docs/notifications/notification-details +/docs/ecosystem/ios/notifications/attachments https://companion.home-assistant.io/docs/notifications/notification-attachments +/docs/ecosystem/ios/notifications/basic https://companion.home-assistant.io/docs/notifications/notifications-basic +/docs/ecosystem/ios/notifications/content_extensions https://companion.home-assistant.io/docs/notifications/dynamic-content +/docs/ecosystem/ios/notifications/privacy_security_rate_limits https://companion.home-assistant.io/docs/notifications/notifications-basic +/docs/ecosystem/ios/notifications/requesting_location_updates https://companion.home-assistant.io/docs/notifications/notifications-basic +/docs/ecosystem/ios/notifications/sounds https://companion.home-assistant.io/docs/notifications/notification-sounds +/ecosystem/ios/notifications https://companion.home-assistant.io/docs/notifications/notifications-basic # Add-ons /addons/cec_scan https://github.com/home-assistant/hassio-addons/blob/master/cec_scan/README.md