diff --git a/.github/stale.yml b/.github/stale.yml index e5b0f5e954c..304bb82e08f 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -3,9 +3,8 @@ daysUntilStale: 60 # Number of days of inactivity before a stale issue is closed daysUntilClose: 7 # Issues with these labels will never be considered stale -#exemptLabels: -# - pinned -# - security +exemptLabels: + - has-parent # Label to use when marking an issue as stale staleLabel: Stale # Comment to post when marking an issue as stale. Set to `false` to disable diff --git a/_config.yml b/_config.yml index d5aa5c751ed..d6bb61393f3 100644 --- a/_config.yml +++ b/_config.yml @@ -138,9 +138,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 93 -current_patch_version: 2 -date_released: 2019-05-22 +current_minor_version: 94 +current_patch_version: 3 +date_released: 2019-06-13 # 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/.well-known/apple-developer-domain-association.txt b/source/.well-known/apple-developer-domain-association.txt new file mode 100644 index 00000000000..e7cfdc66f21 --- /dev/null +++ b/source/.well-known/apple-developer-domain-association.txt @@ -0,0 +1,76 @@ +MIIQ3QYJKoZIhvcNAQcCoIIQzjCCEMoCAQExCzAJBgUrDgMCGgUAMHMGCSqGSIb3DQEHAaBmBGR7 +InRlYW1JZCI6IlVUUUZDQlBRUkYiLCJkb21haW4iOiJob21lLWFzc2lzdGFudC5pbyIsImRhdGVD +cmVhdGVkIjoiMjAxOS0wNi0xMiwwODoxMToxOCIsInZlcnNpb24iOjF9oIINsTCCA_MwggLboAMC +AQICARcwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4x +JjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBS +b290IENBMB4XDTA3MDQxMjE3NDMyOFoXDTIyMDQxMjE3NDMyOFoweTELMAkGA1UEBhMCVVMxEzAR +BgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MS0wKwYDVQQDEyRBcHBsZSBpUGhvbmUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjHr7wR8C0nhBbRqS4IbhPhiFwKEVgXBzDyApkY4j7_Gnu +-FT86Vu3Bk4EL8NrM69ETOpLgAm0h_ZbtP1k3bNy4BOz_RfZvOeo7cKMYcIq-ezOpV7WaetkC40I +j7igUEYJ3Bnk5bCUbbv3mZjE6JtBTtTxZeMbUnrc6APZbh3aEFWGpClYSQzqR9cVNDP2wKBESnC- +LLUqMDeMLhXr0eRslzhVVrE1K1jqRKMmhe7IZkrkz4nwPWOtKd6tulqz3KWjmqcJToAWNWWkhQ1j +ez5jitp9SkbsozkYNLnGKGUYvBNgnH9XrBTJie2htodoUraETrjIg-z5nhmrs8ELhsefAgMBAAGj +gZwwgZkwDgYDVR0PAQH_BAQDAgGGMA8GA1UdEwEB_wQFMAMBAf8wHQYDVR0OBBYEFOc0Ki4i3jlg +a7SUzneDYS8xoHw1MB8GA1UdIwQYMBaAFCvQaUeUdgn-9GuNLkCm90dNfwheMDYGA1UdHwQvMC0w +K6ApoCeGJWh0dHA6Ly93d3cuYXBwbGUuY29tL2FwcGxlY2Evcm9vdC5jcmwwDQYJKoZIhvcNAQEF +BQADggEBAB3R1XvddE7XF_yCLQyZm15CcvJp3NVrXg0Ma0s-exQl3rOU6KD6D4CJ8hc9AAKikZG- +dFfcr5qfoQp9ML4AKswhWev9SaxudRnomnoD0Yb25_awDktJ-qO3QbrX0eNWoX2Dq5eu-FFKJsGF +QhMmjQNUZhBeYIQFEjEra1TAoMhBvFQe51StEwDSSse7wYqvgQiO8EYKvyemvtzPOTqAcBkjMqNr +Zl2eTahHSbJ7RbVRM6d0ZwlOtmxvSPcsuTMFRGtFvnRLb7KGkbQ-JSglnrPCUYb8T-WvO6q7RCwB +SeJ0szT6RO8UwhHyLRkaUYnTCEpBbFhW3ps64QVX5WLP0g8wggP4MIIC4KADAgECAgg9ciDjz4zy +JTANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQG +A1UECxMdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLTArBgNVBAMTJEFwcGxlIGlQaG9u +ZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNDA3MTEwMTM1MjVaFw0yMjA0MTIxNzQzMjha +MFkxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMTUwMwYDVQQDDCxBcHBsZSBpUGhv +bmUgT1MgUHJvdmlzaW9uaW5nIFByb2ZpbGUgU2lnbmluZzCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAOfZmsMXo8npB9XHmaS0dSFMEQNoHzAsB5x3iDFIyEQEjYHNesb40_ZHHG1O7rrm +FIVxxO95s0t12miFpnNVosaHUXvXHIG1AWrjjJHueir8z5Ve-XGgKH75q9Thzg5PlfPK7beVCjL_ +JZk29pidJItkV7b1_b5FIfmuRHa36rA7aZ9tf37XEZuy6kOi5f0mR87MxAfi53XG2_x-FrWkk8Z8 +rz293cAvgHh2Ok582GRPKiVRh0F2Dm7gk6Qhqj5dyl-niwtApS-zs2pKx8ZTtR9cLIqI7uSQL5_d +Uj4WQcY4HmgkjzEt22lxz6DzQhooEUp0nKbWeElYDcS8HFvxPXsCAwEAAaOBozCBoDAdBgNVHQ4E +FgQUpF5rO_x6R3KRcAnBJL0vO8l7oL4wDAYDVR0TAQH_BAIwADAfBgNVHSMEGDAWgBTnNCouIt45 +YGu0lM53g2EvMaB8NTAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vY3JsLmFwcGxlLmNvbS9pcGhv +bmUuY3JsMAsGA1UdDwQEAwIHgDARBgsqhkiG92NkBgICAQQCBQAwDQYJKoZIhvcNAQEFBQADggEB +AIq2Vk5B0rHzIUOdC9nH_7SYWJntQacw8e_b2oBtIbazXNy-h_E5IbzEodom0u2m8e3AEZUZrEe4 +Kg5pmNTm5s5r6iLBK6cBbkFMLB3jI4yGJ6OMF5zMG-7YZDMPRA6LO0hiE2JU03FNki2BOv-my45c +Q3FsiDMiPCA_HXi5_xoqIehzac-boaHhPekMF7ypc9fpUrrCth-hIoU-uFwaspp7n8zLUDr-lsf8 +SEf0JKKtPkz7SttnnANxFSc_g1L7svQZFqk-qewU7F7CCqfzTdEwqtStuDKhUC9NVchCJ6wcznJk +8CzgCeRMuQsgNTec1QuRxDEd0CviXIK9fdD-CJkwggW6MIIEoqADAgECAgEBMA0GCSqGSIb3DQEB +BQUAMIGGMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUQXBwbGUgQ29tcHV0ZXIsIEluYy4xLTArBgNV +BAsTJEFwcGxlIENvbXB1dGVyIENlcnRpZmljYXRlIEF1dGhvcml0eTEpMCcGA1UEAxMgQXBwbGUg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDUwMjEwMDAxODE0WhcNMjUwMjEwMDAxODE0 +WjCBhjELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEFwcGxlIENvbXB1dGVyLCBJbmMuMS0wKwYDVQQL +EyRBcHBsZSBDb21wdXRlciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxKTAnBgNVBAMTIEFwcGxlIFJv +b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA +5JGpCR-R2x5HUOsF7V55hC3rNqJXTFXsixmJ3vlLbPUHqyIwAugYPvhQCdN_QaiY-dHKZpwkaxHQ +o7vkGyrDH5WeegykR4tb1BY3M8vED03OFGnRyRly9V0O1X9fm_IlA7pVj01dDfFkNSMVSxVZHbOU +9_acns9QusFYUGePCLQg98usLCBvcLY_ATCMt0PPD5098ytJKBrI_s61uQ7ZXhzWyz21Oq30Dw4A +kguxIRYudNU8DdtiFqujcZJHU1XBry9Bs_j743DN5qNMRX4fTGtQlkGJxHRiCxCDQYczioGxMFjs +WgQyjGizjx3eZXP_Z15lvEnYdp8zFGWhd5TJLQIDAQABo4ICLzCCAiswDgYDVR0PAQH_BAQDAgEG +MA8GA1UdEwEB_wQFMAMBAf8wHQYDVR0OBBYEFCvQaUeUdgn-9GuNLkCm90dNfwheMB8GA1UdIwQY +MBaAFCvQaUeUdgn-9GuNLkCm90dNfwheMIIBKQYDVR0gBIIBIDCCARwwggEYBgkqhkiG92NkBQEw +ggEJMEEGCCsGAQUFBwIBFjVodHRwczovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3Jp +dHkvdGVybXMuaHRtbDCBwwYIKwYBBQUHAgIwgbYagbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGlj +eSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjBEBgNVHR8EPTA7MDmgN6A1 +hjNodHRwczovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvcm9vdC5jcmwwVQYI +KwYBBQUHAQEESTBHMEUGCCsGAQUFBzAChjlodHRwczovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNh +dGVhdXRob3JpdHkvY2FzaWduZXJzLmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAJ3aLShYL312BLkE +0z7Ot2ZjTo8v1P5LrXK9oznGUk0FmFL1iVEBJHm-GjL35USLS0QHOYLWWsq0IF7ZrhVdHYwdMr84 +MWJIXcfhkLH4JED4X1ibUV1XncHl_zzMciFuxOnpoXfXLBcmwz_rmugLA7rps0py6zMJW63mYjFq +6K8v1a8eV3aPfzctLgJc3WPJ8nG4JkDfFY11RD95veYdmeFDLD6tb765pP4ONRlRY7HD3rWSPlF4 +AXOKpCPKpIjxHlwfQRYtfpUKqumJQZgbGt3LIL9HXgwmxVU1TcYwi5lnFMcJH7pHx9oBCYckQpW9 +E2AZCu_qfw5uzcFEQzpK1eMxggKMMIICiAIBATCBhTB5MQswCQYDVQQGEwJVUzETMBEGA1UEChMK +QXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLTArBgNV +BAMTJEFwcGxlIGlQaG9uZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQIIPXIg48-M8iUwCQYFKw4D +AhoFAKCB3DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xOTA2MTIw +ODExMThaMCMGCSqGSIb3DQEJBDEWBBTcNAQ84q3p1JpA4YADPkvxYG9QnjApBgkqhkiG9w0BCTQx +HDAaMAkGBSsOAwIaBQChDQYJKoZIhvcNAQEBBQAwUgYJKoZIhvcNAQkPMUUwQzAKBggqhkiG9w0D +BzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw +DQYJKoZIhvcNAQEBBQAEggEAPdMEunJrRbCBu0BHComwqNhFZwpBumcnD1IOq_9FfwN1XK2WJFxt +Oad41ZZdFe4ku1ARAven-h_EdKaaaTeBddaUj6hl3fj6IVxMYKg0owRRR2HIjNjseLBSxFYl8j6u +Mo1qXfzwEeAiUPxAme5q_EXLye3by0CxdSbx3WTXHzi47r8t8a7fb-SqQtgLYiehQO8ROO1OgTrO +rqnOFRAsbwZy_m_Dmx5nqqzN1vLYKbo6sc4YWt8E_YmEqv-nXQDn8y7bI_24vOTz5FWZCOUDVsJc +fOUtmLOmsw78uqdqbO3LjqQlIIcqecYPyBH5zxaA5iC_aLNYPxnxyljawyMzJQ diff --git a/source/_addons/snips.markdown b/source/_addons/snips.markdown index d8d1255bfe1..90ae974b03c 100644 --- a/source/_addons/snips.markdown +++ b/source/_addons/snips.markdown @@ -17,7 +17,7 @@ The Snips add-on depends on the Mosquitto add on to bridge to Home Assistant, so Home Assistant comes with certain Intents builtin to handle common tasks. A complete list of Intents can be found in this wiki [Hass Snips Bundle](https://github.com/tschmidty69/hass-snips-bundle-intents/wiki). -The Snips add-on by default comes with an assistant that allows you to turn on lights or switches, open covers, or add and list items to a shopping list if that component is enabled. +The Snips add-on by default comes with an assistant that allows you to turn on lights or switches, open covers, or add and list items to a shopping list if that integration is enabled. If using a USB microphone and speakers plugged into the Raspberry Pi output, Snips will work without any change to the configuration. Trying saying things like: diff --git a/source/_components/ads.markdown b/source/_components/ads.markdown index 2c285b2ebbc..96adb3de43d 100644 --- a/source/_components/ads.markdown +++ b/source/_components/ads.markdown @@ -102,7 +102,7 @@ name: required: false type: string device_class: - description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string {% endconfiguration %} @@ -250,6 +250,6 @@ name: type: string device_class: required: false - description: Sets the class of the device, changing the device state and icon that is displayed on the UI (awning, blind, curtain, damper, door, garage, shade, shutter, window) + description: Sets the [class of the device](/components/cover/), changing the device state and icon that is displayed on the frontend. type: device_class {% endconfiguration %} diff --git a/source/_components/alarm_control_panel.markdown b/source/_components/alarm_control_panel.markdown index 8ae3f922130..3c39b71b480 100644 --- a/source/_components/alarm_control_panel.markdown +++ b/source/_components/alarm_control_panel.markdown @@ -7,12 +7,11 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Alarm +ha_qa_scale: internal ha_release: 0.7.3 --- -Home Assistant can give you an interface with is similar to a classic alarm system. There are several panels supported: - -- [Alarm.com](/components/alarm_control_panel.alarmdotcom/) -- [Manual](/components/alarm_control_panel.manual/) -- [MQTT](/components/alarm_control_panel.mqtt/) -- [Verisure](/components/verisure/) +Home Assistant can give you an interface with is similar to a classic alarm system. diff --git a/source/_components/alert.markdown b/source/_components/alert.markdown index 30c42c90a5e..e1d74c78cc0 100644 --- a/source/_components/alert.markdown +++ b/source/_components/alert.markdown @@ -237,29 +237,6 @@ alert: The resulting message could be `Plant Officeplant needs help (moisture low)`. -The next example uses a template for the alert name. - -{% raw %} -```yaml -alert: - garage_door: - name: Garage has been open for {{ relative_time(states.binary_sensor.garage.last_changed) }} - done_message: Garage is closed - entity_id: binary_sensor.garage - state: 'on' - repeat: - - 30 - - 60 - - 120 - can_acknowledge: true - skip_first: true - notifiers: - - ryans_phone -``` -{% endraw %} - -The resulting title of the alert could be `Garage has been open for 30 min`. - ### {% linkable_title Additional parameters for notifiers %} Some notifiers support more parameters (e.g., to set text color or action diff --git a/source/_components/apcupsd.markdown b/source/_components/apcupsd.markdown index b341b1b8168..24ba1f4e0fb 100644 --- a/source/_components/apcupsd.markdown +++ b/source/_components/apcupsd.markdown @@ -26,6 +26,12 @@ There is currently support for the following device types within Home Assistant: - [Binary Sensor](#binary-sensor) - [Sensor](#sensor) +## {% linkable_title Hass.io Installation %} + +Install this [unofficial add-on](https://github.com/korylprince/hassio-apcupsd/) to use this integration with Hass.io. Keep in mind that we can't give you support for this add-on. + +After installation, follow the instructions on the Github page to configure the plugin. Then continue to follow the integration configurations below. + ## {% linkable_title Configuration %} To enable this sensor, add the following lines to your `configuration.yaml`: @@ -127,13 +133,33 @@ OUTPUTV : 218.4 Volts [...] ``` -Use the (case insensitive) values from the left hand column: +Use the values from the left hand column (lower case required). + +Full Example Configuration: ```yaml sensor: - platform: apcupsd resources: + - apc + - date + - hostname + - version + - upsname + - cable + - driver + - upsmode + - starttime + - model + - status - linev - loadpct + - bcharge - timeleft + - mbattchg + - mintimel + - maxtime + - maxlinev + - minlinev + - outputv ``` diff --git a/source/_components/automation.markdown b/source/_components/automation.markdown index 19adad1599b..04f3da4413b 100644 --- a/source/_components/automation.markdown +++ b/source/_components/automation.markdown @@ -26,6 +26,7 @@ Starting with 0.28 your automation rules can be controlled with the frontend. This allows one to reload the automation without restarting Home Assistant itself. If you don't want to see the automation rule in your frontend use `hide_entity: true` to hide it. + You can also use `initial_state: 'false'` so that the automation is not automatically turned on after a Home Assistant reboot. @@ -33,7 +34,7 @@ is not automatically turned on after a Home Assistant reboot. automation: - alias: Door alarm hide_entity: true - initial_state: 'true' + initial_state: true trigger: - platform: state ... diff --git a/source/_components/binary_sensor.knx.markdown b/source/_components/binary_sensor.knx.markdown index f144ff47952..c0351d17788 100644 --- a/source/_components/binary_sensor.knx.markdown +++ b/source/_components/binary_sensor.knx.markdown @@ -37,7 +37,7 @@ name: required: false type: string device_class: - description: HASS device class e.g., "motion". + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string significant_bit: diff --git a/source/_components/binary_sensor.markdown b/source/_components/binary_sensor.markdown index 41193b16c9a..2d83527eed8 100644 --- a/source/_components/binary_sensor.markdown +++ b/source/_components/binary_sensor.markdown @@ -7,10 +7,14 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Binary Sensor +ha_qa_scale: internal ha_release: 0.9 --- -Binary sensors gather information about the state of devices which have a "digital" return value (either 1 or 0). These can be switches, contacts, pins, etc. These sensors only have two states: **0/off/low/closed/false** and **1/on/high/open/true**. Knowing that there are only two states allows Home Assistant to represent these sensors in a better way in the frontend according to their functionality. +Binary sensors gather information about the state of devices which have a "digital" return value (either 1 or 0). These can be switches, contacts, pins, etc. These sensors only have two states: **0/off/low/closed/false** and **1/on/high/open/true**. Knowing that there are only two states allows Home Assistant to represent these sensors in a better way in the frontend according to their functionality. ### {% linkable_title Device Class %} diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index 7cccd22aa10..3aec89fc491 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -87,7 +87,7 @@ unique_id: required: false type: string device_class: - description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string value_template: diff --git a/source/_components/binary_sensor.rest.markdown b/source/_components/binary_sensor.rest.markdown index 46ece211e90..b35c6ba008a 100644 --- a/source/_components/binary_sensor.rest.markdown +++ b/source/_components/binary_sensor.rest.markdown @@ -73,9 +73,7 @@ name: type: string default: REST Binary Sensor device_class: - description: > - The [type/class](/components/binary_sensor/) of - the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string value_template: diff --git a/source/_components/binary_sensor.rflink.markdown b/source/_components/binary_sensor.rflink.markdown index bfc0979f0a8..11426bff5e6 100644 --- a/source/_components/binary_sensor.rflink.markdown +++ b/source/_components/binary_sensor.rflink.markdown @@ -55,7 +55,7 @@ devices: required: false type: list device_class: - description: The [type or class of the sensor](/components/binary_sensor/#device-class) to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string off_delay: diff --git a/source/_components/binary_sensor.rfxtrx.markdown b/source/_components/binary_sensor.rfxtrx.markdown index 571af036e8d..1049752bb7c 100644 --- a/source/_components/binary_sensor.rfxtrx.markdown +++ b/source/_components/binary_sensor.rfxtrx.markdown @@ -63,7 +63,7 @@ devices: required: false type: string device_class: - description: "The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend." + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: device_class fire_event: diff --git a/source/_components/binary_sensor.template.markdown b/source/_components/binary_sensor.template.markdown index 71cb01894b7..521757fbb1e 100644 --- a/source/_components/binary_sensor.template.markdown +++ b/source/_components/binary_sensor.template.markdown @@ -56,7 +56,7 @@ sensors: required: false type: string, list device_class: - description: The type/class of the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: device_class default: None diff --git a/source/_components/camera.markdown b/source/_components/camera.markdown index bde3c074194..a8a4b967042 100644 --- a/source/_components/camera.markdown +++ b/source/_components/camera.markdown @@ -7,10 +7,26 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Camera +ha_qa_scale: internal ha_release: 0.7 --- -The camera component allows you to use IP cameras with Home Assistant. With a little additional work you could use [USB cameras](/blog/2016/06/23/usb-webcams-and-home-assistant/) as well. +The camera component allows you to use IP cameras with Home Assistant. + +### {% linkable_title Streaming Video %} + +If your camera supports it, and the [`stream`](/components/stream) component is setup, you will be able to stream your cameras in the frontend and on supported media players. + +This option will keep the stream alive, and preload the feed on Home Assistant startup. This will result in reduced latency when opening the stream in the frontend, as well as when using the `play_stream` service or Google Assistant integration. It does, however, utilize more resources on your machine, so it is recommended to check CPU usage if you plan to use this feature. + +

+ Screenshot showing Preload Stream option in Home Assistant front end. + Example showing the Preload Stream option in the camera dialog. +

+ ### {% linkable_title Services %} @@ -18,6 +34,26 @@ Once loaded, the `camera` platform will expose services that can be called to pe Available services: `turn_on`, `turn_off`, `enable_motion_detection`, `disable_motion_detection`, `snapshot`, and `play_stream`. +#### {% linkable_title Service `play_stream` %} + +Play a live stream from a camera to selected media player(s). Requires [`stream`](/components/stream) component to be set up. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | Name of entity to fetch stream from, e.g., `camera.living_room_camera`. | +| `media_player` | no | Name of media player to play stream on, e.g., `media_player.living_room_tv`. | +| `format` | yes | Stream format supported by `stream` component and selected `media_player`. Default: `hls` | + +For example, the following action in an automation would send an `hls` live stream to your chromecast. + +```yaml +action: + service: camera.play_stream + data: + entity_id: camera.yourcamera + media_player: media_player.chromecast +``` + #### {% linkable_title Service `turn_on` %} Turn on camera. Not all camera models support this service, please consult individual camera page. @@ -100,26 +136,6 @@ action: ``` {% endraw %} -#### {% linkable_title Service `play_stream` %} - -Play a live stream from a camera to selected media player(s). Requires [`stream`](/components/stream) component to be set up. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | no | Name of entity to fetch stream from, e.g., `camera.living_room_camera`. | -| `media_player` | no | Name of media player to play stream on, e.g., `media_player.living_room_tv`. | -| `format` | yes | Stream format supported by `stream` component and selected `media_player`. Default: `hls` | - -For example, the following action in an automation would send an `hls` live stream to your chromecast. - -```yaml -action: - service: camera.play_stream - data: - entity_id: camera.yourcamera - media_player: media_player.chromecast -``` - ### {% linkable_title Test if it works %} A simple way to test if you have set up your `camera` platform correctly, is to use service developer tool icon **Services** from the **Developer Tools**. Choose your service from the dropdown menu **Service**, enter something like the sample below into the **Service Data** field, and hit **CALL SERVICE**. @@ -128,13 +144,4 @@ A simple way to test if you have set up your `camera` platform correctly, is to { "entity_id": "camera.living_room_camera" } -``` - -### {% linkable_title Preload Stream %} - -If your camera supports it, and the [`stream`](/components/stream) component is setup, You will notice a "Preload Stream" option in the top right of the dialog when clicking to view the camera stream. This option will keep the stream alive, and preload the feed on Home Assistant startup. This will result in reduced latency when opening the stream in the frontend, as well as when using the `play_stream` service or Google Assistant integration. It does, however, utilize more resources on your machine, so it is recommended to check CPU usage if you plan to use this feature. - -

- Screenshot showing Preload Stream option in Home Assistant front end. - Example showing the Preload Stream option in the camera dialog. -

\ No newline at end of file +``` \ No newline at end of file diff --git a/source/_components/climate.markdown b/source/_components/climate.markdown index 86b2d5e7ce9..131d13309b4 100644 --- a/source/_components/climate.markdown +++ b/source/_components/climate.markdown @@ -7,19 +7,14 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Climate +ha_qa_scale: internal ha_release: 0.19 --- - The `climate` component is built for the controlling and monitoring of HVAC (heating, ventilating, and air conditioning) and thermostat devices. - -To enable this component, pick one of the platforms, and add it to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -climate: - platform: demo -``` ## {% linkable_title Services %} @@ -238,13 +233,3 @@ Turn climate device off | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Targets all when omitted. - -#### {% linkable_title Customization %} - -The step for the setpoint can be adjusted (default to 0,5 increments) by adding the following line into configuration - -```yaml -customize: - - entity_id - target_temp_step: 1 -``` diff --git a/source/_components/command_line.markdown b/source/_components/command_line.markdown index 3fe4193a592..76fd3b8e9c4 100644 --- a/source/_components/command_line.markdown +++ b/source/_components/command_line.markdown @@ -31,6 +31,7 @@ binary_sensor:

It's highly recommended to enclose the command in single quotes `'` as it ensures all characters can be used in the command and reduces the risk of unintentional escaping. To include a single quote in a command enclosed in single quotes, double it: `''`.

+ {% configuration %} command: description: The action to take to get the value. @@ -42,7 +43,7 @@ name: type: string default: "*name* from the device" device_class: - description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string payload_on: diff --git a/source/_components/configurator.markdown b/source/_components/configurator.markdown index bb862023a4c..1778daa4ee7 100644 --- a/source/_components/configurator.markdown +++ b/source/_components/configurator.markdown @@ -24,6 +24,6 @@ The configurator component allows components to request information from the use - Input fields can be defined with a description, and optional type - It will trigger a callback when the button is pressed -The Hue component in [the demo](/demo) and Plex are implemented using the configurator. See [the source of the demo component](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/demo.py#L132) for a simple example. +The Hue component in [the demo](/demo) and Plex are implemented using the configurator. See [the source of the demo component](https://github.com/home-assistant/home-assistant/tree/dev/homeassistant/components/demo) for a simple example. -See [the source](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/configurator.py#L39) for more details on how to use the configurator component. +See [the source](https://github.com/home-assistant/home-assistant/tree/dev/homeassistant/components/configurator) for more details on how to use the configurator component. diff --git a/source/_components/cover.markdown b/source/_components/cover.markdown index edd086e9cc0..99c934289e7 100644 --- a/source/_components/cover.markdown +++ b/source/_components/cover.markdown @@ -7,19 +7,16 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Cover +ha_qa_scale: internal ha_release: 0.27 --- Home Assistant can give you an interface to control covers such as rollershutters, blinds, and garage doors. -The display style of each entity can be modified in the [customize section](/getting-started/customizing-devices/). Besides the basic ones like `friendly_name` or `hidden`, the following attributes are supported for covers: - -| Attribute | Default | Description | -| --------- | ------- | ----------- | -| `device_class` | | see below -| `assumed_state` | `false` | If set to `true`, cover buttons will always be enabled - -### {% linkable_title Device Class %} +## {% linkable_title Device Class %} The way these sensors are displayed in the frontend can be modified in the [customize section](/docs/configuration/customizing-devices/). The following device classes are supported for covers: @@ -74,7 +71,7 @@ Set cover tilt position of one or multiple covers. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | String or list of strings that point at `entity_id`'s of covers. Else targets all. -| `position` | no | Integer between 0 and 100. +| `tilt_position` | no | Integer between 0 and 100. #### {% linkable_title Automation example %} @@ -87,5 +84,5 @@ automation: - service: cover.set_cover_tilt_position data: entity_id: cover.demo - position: 50 + tilt_position: 50 ``` diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown index 6542d85615f..72b3dca8660 100644 --- a/source/_components/cover.mqtt.markdown +++ b/source/_components/cover.mqtt.markdown @@ -179,7 +179,7 @@ tilt_invert_state: type: boolean default: false device_class: - description: The [type/class](/components/cover/#device-class) of the cover to set the icon in the frontend. + description: Sets the [class of the device](/components/cover/), changing the device state and icon that is displayed on the frontend. required: false type: string json_attributes_topic: diff --git a/source/_components/cover.template.markdown b/source/_components/cover.template.markdown index e4813769784..5f1188e5493 100644 --- a/source/_components/cover.template.markdown +++ b/source/_components/cover.template.markdown @@ -69,7 +69,7 @@ cover: required: false type: template device_class: - description: The [type/class](/components/cover/#device-class) of the cover to set the icon in the frontend. + description: Sets the [class of the device](/components/cover/), changing the device state and icon that is displayed on the frontend. required: false type: string open_cover: diff --git a/source/_components/denonavr.markdown b/source/_components/denonavr.markdown index b910bfa5066..ad60ff2f242 100644 --- a/source/_components/denonavr.markdown +++ b/source/_components/denonavr.markdown @@ -99,6 +99,7 @@ A few notes: - An additional option for the control of Denon AVR receivers with a built-in web server is using the HTTP interface with `denonavr` platform. - The `denonavr` platform supports some additional functionalities like album covers, custom input source names and auto discovery. - Marantz receivers seem to a have quite a similar interface. Thus if you own one, give it a try. +- To remotely power on Marantz receivers with Home Assistant, the Auto-Standby feature must be enabled in the receiver's settings. - Sound mode: The command to set a specific sound mode is different from the value of the current sound mode reported by the receiver (sound_mode_raw). There is a key-value structure (sound_mode_dict) that matches the raw sound mode to one of the possible commands to set a sound mode (for instance {'MUSIC':['PLII MUSIC']}. If you get a "Not able to match sound mode" warning, please open an issue on the [denonavr library](https://github.com/scarface-4711/denonavr), stating which raw sound mode could not be matched so it can be added to the matching dictionary. You can find the current raw sound mode under "Development Tools/States" in the front panel. [Denon]: /components/media_player.denon/ diff --git a/source/_components/device_tracker.markdown b/source/_components/device_tracker.markdown index d4f699982b4..dc671bfc810 100644 --- a/source/_components/device_tracker.markdown +++ b/source/_components/device_tracker.markdown @@ -7,14 +7,14 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Presence Detection +ha_qa_scale: internal ha_release: 0.7 --- -Home Assistant can get information from your wireless router or third party services like iCloud or OwnTracks to track which devices are connected and considered "in home". Please check the sidebar for a list of brands of supported wireless routers and services. - -There are also trackers available which use different technologies like [MQTT](/components/mqtt/) or [Nmap](/components/nmap_tracker/) to scan the network for devices. - -An [event](/getting-started/automation-trigger/#event-trigger) (`device_tracker_new_device`) will be fired when a device is discovered for the first time. +The device tracker allows you to track devices in Home Assistant. This can happen by querying your wireless router or by having applications push location info. ## {% linkable_title Configuring a `device_tracker` platform %} @@ -24,8 +24,8 @@ To get started add the following lines to your `configuration.yaml` (example for # Example configuration.yaml entry for Netgear device device_tracker: - platform: netgear - host: 192.168.1.1 - username: admin + host: IP_ADDRESS + username: YOUR_USERNAME password: YOUR_PASSWORD new_device_defaults: track_new_devices: true @@ -54,8 +54,8 @@ The extended example from above would look like the following sample: # Example configuration.yaml entry for Netgear device device_tracker: - platform: netgear - host: 192.168.1.1 - username: admin + host: IP_ADDRESS + username: YOUR_USERNAME interval_seconds: 10 consider_home: 180 new_device_defaults: @@ -66,6 +66,10 @@ Multiple device trackers can be used in parallel, such as [Owntracks](/component ## {% linkable_title `known_devices.yaml` %} +

+As of 0.94 `known_devices.yaml` is being phased out, and no longer used by all trackers. Depending on the component you use this section may no longer apply. This includes the mobile app, OwnTracks, GeoFency, GPSLogger, and Locative. +

+ Once `device_tracker` is enabled, a file will be created in your config dir named `known_devices.yaml`. Edit this file to adjust which devices to be tracked. Here's an example configuration for a single device: @@ -94,24 +98,6 @@ devicename: | `hide_if_away` | false | If `yes`/`on`/`true` then the device will be hidden if it is not at home. | | `consider_home` | [uses platform setting] | Seconds to wait till marking someone as not home after not being seen. Allows you to override the global `consider_home` setting from the platform configuration on a per device level. | -## {% linkable_title Using GPS device trackers with local network device trackers %} - -GPS based device trackers (like [OwnTracks](/components/owntracks/), [GPSLogger](/components/gpslogger) and others) can also be used with local network device trackers, such as [Nmap](/components/nmap_tracker/) or [Netgear](/components/netgear/). To do this, fill in the `mac` field to the entry in `known_devices.yaml` with the MAC address of the device you want to track. This way the state of the device will be determined by *the source that reported last*. The naming convention for known device list is `_` and could be set in the app configuration. - -An example showing the inclusion of the `mac` field for multiple platform tracking. The `mac` field was added to the GPS based device tracker entry and will enable tracking by all platforms that track via the `mac` address. - -```yaml -USERNAME_DEVICE_ID: - name: Friendly Name - mac: EA:AA:55:E7:C6:94 - picture: https://www.home-assistant.io/images/favicon-192x192.png - gravatar: test@example.com - track: true - hide_if_away: false -``` - -If you want to track whether either your GPS based tracker or your local network tracker, identify you as being at home, use [a group](/components/group/) instead. - ## {% linkable_title Device states %} The state of your tracked device will be `'home'` if it is in the [home zone](/components/zone#home-zone), detected by your network or Bluetooth based presence detection. If you're using a presence detection method that includes coordinates then when it's in a zone the state will be the name of the zone (case sensitive). When a device isn't at home and isn't in any zone, the state will be `'not_home'`. diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown index adf5f0fd84b..05805997bb7 100644 --- a/source/_components/doorbird.markdown +++ b/source/_components/doorbird.markdown @@ -112,7 +112,7 @@ Events can be defined for each configured DoorBird device independently. These e See [Schedules](#schedules) section below for details on how to configure schedules. -Event names will be prefixed by `doorbird_`. For example, the example event `somebody_pressed_the_button` will be seen in Home Assistant as `doorbird_somebody_pressed_the_button`. This is to prevent conflicts with other events. +Event names will be prefixed by `doorbird_devicename`. For example, the example event `somebody_pressed_the_button` for the device 'Driveway Gate' will be seen in Home Assistant as `doorbird_driveway_gate_somebody_pressed_the_button`. This is to prevent conflicts with other events. See [Automation Example](#automation_example) section below for details on how to use the event names in an automation. @@ -167,7 +167,7 @@ Remember to complete the schedule assignment steps above for each event type tha - alias: Doorbird Ring trigger: platform: event - event_type: doorbird_somebody_pressed_the_button + event_type: doorbird_driveway_gate_somebody_pressed_the_button action: service: light.turn_on entity_id: light.side_entry_porch diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index 50111254a4e..fc20a8e1730 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -320,7 +320,7 @@ are not implemented for this thermostat. ### {% linkable_title Service `set_away_mode` %} -Turns the away mode on or off for the thermostat. +Turns Away Mode on or off, ignoring the next scheduled activity. This setting will override the thermostat Hold Duration setting, even if you set the hold duration to "Until the next scheduled activity" within thermostat preferences. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | @@ -330,12 +330,12 @@ Turns the away mode on or off for the thermostat. ### {% linkable_title Service `set_hold_mode` %} Puts the thermostat into the given hold mode. For 'home', 'away', 'sleep', -and any other hold based on a reference climate, the -target temperature is taken from the reference climate. +and any other hold based on a comfort setting, the +target temperature is set to whatever is programmed in the comfort setting. For 'temp', the current temperature is taken as the target temperature. When None is provided as parameter, the hold_mode is turned off. -It is not possible to set a vacation hold; such hold has to be -defined on the thermostat directly. However, a vacation hold can be +If the thermostat Hold Duration is set to "Until the next scheduled activity" within thermostat preferences, then the next scheduled activity will change this hold mode. +Note that it is not possible to set a vacation hold; this must be defined on the thermostat directly. However, a vacation hold can be canceled. | Service data attribute | Optional | Description | diff --git a/source/_components/emulated_hue.markdown b/source/_components/emulated_hue.markdown index 2eea6c16acd..46baf20fee9 100644 --- a/source/_components/emulated_hue.markdown +++ b/source/_components/emulated_hue.markdown @@ -32,7 +32,7 @@ It is recommended to assign a static IP address to the computer running Home Ass

-Both Google Home and Alexa use the device they were initially set up with for communication with emulated_hue. In other words: if you remove/replace this device you will also break emulated_hue. +Both Google Home and Alexa use the device they were initially set up with for communication with `emulated_hue`. In other words: if you remove/replace this device you will also break `emulated_hue`. To recover your `emulated_hue` functionality, backup your `config/emulated_hue_ids.json` file, delete the original one and reboot your Home Assistant instance.

### {% linkable_title Configuration %} diff --git a/source/_components/enocean.markdown b/source/_components/enocean.markdown index 5cbce8bce6b..ada39a33b6e 100644 --- a/source/_components/enocean.markdown +++ b/source/_components/enocean.markdown @@ -102,7 +102,7 @@ name: type: string default: EnOcean binary sensor device_class: - description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: device_class {% endconfiguration %} @@ -193,7 +193,7 @@ name: type: string default: EnOcean sensor device_class: - description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: device_class default: powersensor diff --git a/source/_components/fan.markdown b/source/_components/fan.markdown index 4b306d1ef68..37631338b93 100644 --- a/source/_components/fan.markdown +++ b/source/_components/fan.markdown @@ -7,17 +7,11 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Fan +ha_qa_scale: internal ha_release: 0.27 --- - -The `fan` component is built for the controlling of fan devices. It can be called the little brother of the [climate](/components/climate/) component. - -To enable this component, pick one of the platforms, and add it to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -climate: - platform: fan -``` - +The `fan` component is built for the controlling of fan devices. diff --git a/source/_components/geofency.markdown b/source/_components/geofency.markdown index 86d38f99d84..70abf05f026 100644 --- a/source/_components/geofency.markdown +++ b/source/_components/geofency.markdown @@ -16,15 +16,13 @@ redirect_from: - /components/device_tracker.geofency/ --- -This component sets up integration with [Geofency](http://www.geofency.com/). Geofency is a [paid app](https://itunes.apple.com/app/id615538630) for iOS that lets users to configure a request that will be sent when a geofence or iBeacon region is entered or exited. This can be configured with Home Assistant to update your location. - -Enabling this component will automatically enable the Geofency Device Tracker. +This component sets up integration with [Geofency](http://www.geofency.com/). Geofency is a paid app for iOS that lets users to configure a request that will be sent when a geofence or iBeacon region is entered or exited. This can be configured with Home Assistant to update your location. ## {% linkable_title Configuration %} To configure Geofency, you must set it up via the integrations panel in the configuration screen. You must then configure the iOS app (via the Webhook feature) to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. Use the default POST format. Make sure to enable the 'Update Geo-Position' functionality for mobile beacons. -Geofency will automatically generate the device tracker name used for geofences, and you will find it in `known_devices.yaml` after the first request. For beacons, the device name will be `beacon_`, e.g., `device_tracker.beacon_car`. +Geofency will automatically generate the device tracker name used for geofences, and you will find it in the integrations section after the first request. For beacons, the device name will be `beacon_`, e.g., `device_tracker.beacon_car`. When using mobile beacons (optional) an entry in `configuration.yaml` is still needed as this can't be added via the integrations panel. @@ -49,4 +47,4 @@ geofency: When you enter a geofence or stationary beacon, your location name in Home Assistant will be set to the name of the geofence or beacon location in Geofency. When you exit a geofence or stationary beacon, your location name in Home Assistant will be set to `not home`. For mobile beacons, the location name will be `not_home` whenever the beacon is entered or exited outside of a [zone](/components/zone/), otherwise, it will be set to the name of the zone. -To make Geofency work better with the [proximity](/components/proximity/) component, you should enable the 'Send Current Location' feature in the Webhook configuration screen. This ensures that the _current_ GPS coordinates are included in exit events instead of the coordinates of the (center of) the zone that was exited. \ No newline at end of file +To make Geofency work better with the [proximity](/components/proximity/) component, you should enable the 'Send Current Location' feature in the Webhook configuration screen. This ensures that the _current_ GPS coordinates are included in exit events instead of the coordinates of the (center of) the zone that was exited. diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index 5f1c75b766f..498a9910ae3 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -193,6 +193,7 @@ Currently, the following domains are available to be used with Google Assistant, - media_player (on/off/set volume (via set brightness)/source (via set input source)) - climate (temperature setting, operation_mode) - vacuum (dock/start/stop/pause) +- sensor (temperature setting, only for temperature sensor)

The domain groups contains groups containing all items, by example group.all_automations. When telling Google Assistant to shut down everything, this will lead in this example to disabling all automations diff --git a/source/_components/gpslogger.markdown b/source/_components/gpslogger.markdown index 8f4e5549ac0..3174e7b7892 100644 --- a/source/_components/gpslogger.markdown +++ b/source/_components/gpslogger.markdown @@ -16,9 +16,7 @@ redirect_from: - /components/device_tracker.gpslogger/ --- -This component sets up integration with [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `POST` request to update GPS coordinates. This can be configured with Home Assistant to update your location. - -Enabling this component will automatically enable the GPSLogger Device Tracker. +This component sets up integration with [GPSLogger](https://gpslogger.app/). GPSLogger is an open source app for Android that allows users to update your location in Home Assistant. ## {% linkable_title Configuration %} @@ -77,4 +75,4 @@ If your battery drains too fast then you can tune the performance of GPSLogger u Performance

-A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number. +A request can be forced from the app to test if everything is working fine. diff --git a/source/_components/group.markdown b/source/_components/group.markdown index 095b9522dae..830f5de89d5 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -14,10 +14,80 @@ ha_qa_scale: internal ha_release: pre 0.7 --- -Groups allow the user to combine multiple entities into one. A group can be promoted to a **view** by setting `view: true` under the group definition. This will make the group available as a new tab in the frontend. +Groups allow the user to combine multiple entities into one. Check the **Set State** page from the **Developer Tools** and browse the **Current entities:** listing for all available entities. +```yaml +# Example configuration.yaml entry +group: + kitchen: + name: Kitchen + entities: + - switch.kitchen_pin_3 + climate: + name: Climate + entities: + - sensor.bedroom_temp + - sensor.porch_temp + awesome_people: + name: Awesome People + entities: + - device_tracker.dad_smith + - device_tracker.mom_smith +``` + +{% configuration %} +name: + description: Name of the group. + required: false + type: string +entities: + description: Array or comma delimited string, list of entities to group. + required: true + type: list +all: + description: Set this to `true` if the group state should only turn *on* if **all** grouped entities are *on*. + required: false + type: boolean +icon: + description: The icon that shows in the front end. **The rest of this only applies to the deprecated UI `/states`**. If the group is a view, this icon will show at the top in the frontend instead of the name. If the group is a view and both name and icon have been specified, the icon will appear at the top of the frontend and the name will be displayed as the mouse-over text. + required: false + type: string +view: + description: "**Only applies to the deprecated UI `/states`**. If yes then the entry will be shown as a view (tab) at the top. Groups that are set to `view: true` cannot be used as entities in other views. *Does not apply to Lovelace.*" + required: false + type: boolean +control: + description: "**Only applies to the deprecated UI `/states`**. Set value to `hidden`. If hidden then the group switch will be hidden. *Does not apply to Lovelace.*" + required: false + type: string +{% endconfiguration %} + +## {% linkable_title Default groups %} + +Some components automatically create special groups containing component entities. These groups are named like `group.all_...`, for example: + +- `group.all_switches` +- `group.all_lights` +- `group.all_devices` +- `group.all_scripts` +- `group.all_automations` + +You can see list of these groups in **State** page of the **Developer Tools**. + +## {% linkable_title Group behavior %} + +By default when any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. If you set the `all` option to `true` though, this behavior is inverted and all members of the group have to be `on` for the group to turn on as well. + +--- + +## {% linkable_title Old user interface %} + +This section only applies if you've not moved off the deprecated `/states` user interface. + +A group can be promoted to a **view** by setting `view: true` under the group definition. This will make the group available as a new tab in the frontend. + By default, every group appears in the HOME tab. If you create a group `default_view` it will REPLACE the contents of the HOME tab so you can customize the HOME tab as you wish. ```yaml @@ -57,33 +127,6 @@ group: - device_tracker.mom_smith ``` -{% configuration %} -name: - description: Name of the group. - required: false - type: string -view: - description: "If yes then the entry will be shown as a view (tab) at the top. Groups that are set to `view: true` cannot be used as entities in other views." - required: false - type: boolean -icon: - description: If the group is a view, this icon will show at the top in the frontend instead of the name. If the group is a view and both name and icon have been specified, the icon will appear at the top of the frontend and the name will be displayed as the mouse-over text. If it's not a view, then the icon shows when this group is used in another group. - required: false - type: string -control: - description: Set value to `hidden`. If hidden then the group switch will be hidden. - required: false - type: string -entities: - description: Array or comma delimited string, list of entities to group. - required: true - type: list -all: - description: Set this to `true` if the group state should only turn *on* if **all** grouped entities are *on*. - required: false - type: boolean -{% endconfiguration %} -

Example of groups shown as views in the frontend. @@ -110,18 +153,6 @@ Notice in the example below that in order to refer to the group "Living Room", y - group.bedroom ``` -## {% linkable_title Default groups %} - -Some components automatically create special groups containing component entities. These groups are named like `group.all_...`, for example: - -- `group.all_switches` -- `group.all_lights` -- `group.all_devices` -- `group.all_scripts` -- `group.all_automations` - -You can see list of these groups in **State** page of the **Developer Tools**. - Default groups appear in the HOME tab, if not overridden by user views and groups. Default groups are hidden by default, so you must [customize](/docs/configuration/customizing-devices/) them to be visible in your custom groups and views. ```yaml @@ -140,10 +171,6 @@ group: - group.all_scripts ``` -## {% linkable_title Group behavior %} - -By default when any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. If you set the `all` option to `true` though, this behavior is inverted and all members of the group have to be `on` for the group to turn on as well. - ## {% linkable_title Customize group order %} You can also order your groups using [customize](/docs/configuration/customizing-devices/) with `order: ` if they don't show up in the order you want them in. diff --git a/source/_components/homematic.markdown b/source/_components/homematic.markdown index 98d16c3ac84..d8bb9127752 100644 --- a/source/_components/homematic.markdown +++ b/source/_components/homematic.markdown @@ -354,6 +354,20 @@ action: value: 23.0 ``` +Manually set the active profile on thermostat: + +```yaml +... +action: + service: homematic.set_device_value + data: + address: LEQ1234567 + channel: 1 + param: ACTIVE_PROFILE + value: 1 + value_type: int +``` + Set the week program of a wall thermostat: ```yaml diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown index 46b59f29eca..94aa7655f32 100644 --- a/source/_components/homematicip_cloud.markdown +++ b/source/_components/homematicip_cloud.markdown @@ -116,7 +116,6 @@ authtoken: * Temperature and humidity Sensor with display (*HmIP-STHD*) * homematicip_cloud.cover - * Blind actuator for brand switches (*HmIP-BBL*) * Shutter actuator brand-mount (*HmIP-BROLL*) * Shutter actuator flush-mount (*HmIP-FROLL*) diff --git a/source/_components/http.markdown b/source/_components/http.markdown index de1a455dde8..3235e4667eb 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -119,8 +119,7 @@ http: - https://www.home-assistant.io use_x_forwarded_for: true trusted_proxies: - - 127.0.0.1 - - ::1 + - 10.0.0.200 ip_ban_enabled: true login_attempts_threshold: 5 ``` diff --git a/source/_components/hyperion.markdown b/source/_components/hyperion.markdown index 3d9397635b6..a5142049d84 100644 --- a/source/_components/hyperion.markdown +++ b/source/_components/hyperion.markdown @@ -44,7 +44,7 @@ light: required: false type: string priority: - description: The priority of the Hyperion instance. + description: The priority of the Hyperion instance make sure this is higher then the system prio in hyperion itself. required: false type: int default: 128 @@ -65,7 +65,7 @@ light: default: "['HDMI', 'Cinema brighten lights', 'Cinema dim lights', 'Knight rider', 'Blue mood blobs', 'Cold mood blobs', 'Full color mood blobs', 'Green mood blobs', 'Red mood blobs', 'Warm mood blobs', 'Police Lights Single', 'Police Lights Solid', 'Rainbow mood', 'Rainbow swirl fast', 'Rainbow swirl', 'Random', 'Running dots', 'System Shutdown', 'Snake', 'Sparks Color', 'Sparks', 'Strobe blue', 'Strobe Raspbmc', 'Strobe white', 'Color traces', 'UDP multicast listener', 'UDP listener', 'X-Mas']" {% endconfiguration %} -## {% linkable_title Example %} +## {% linkable_title Examples %} To start Hyperion with an effect, use the following automation: @@ -83,3 +83,39 @@ automation: entity_id: light.hyperion effect: "Full color mood blobs" ``` + +To have the lights playing a effect when pausing, idle or turn off a media player like plex you can use this example: + +``` +- alias: Set hyperion effect after playback + trigger: + - platform: state + entity_id: media_player.plex + to: 'off' + - platform: state + entity_id: media_player.plex.plex + to: 'paused' + - platform: state + entity_id: media_player.plex.plex + to: 'idle' + action: + - service: light.turn_on + data: + entity_id: light.hyperion + effect: "Full color mood blobs" +``` + +To capture the screen when playing something of a media_player you can use this example: + +``` +- alias: Set hyperion when playback starts + trigger: + - platform: state + entity_id: media_player.plex + to: 'playing' + action: + - service: light.turn_on + data: + entity_id: light.hyperion + effect: HDMI +``` diff --git a/source/_components/integration.markdown b/source/_components/integration.markdown index 990e7b1467e..892421583fa 100644 --- a/source/_components/integration.markdown +++ b/source/_components/integration.markdown @@ -18,7 +18,7 @@ redirect_from: - /components/sensor.integration/ --- -The `integration` platform provides the [Riemann sum](https://en.wikipedia.org/wiki/Riemann_sum) of the values provided by a source sensor. The Riemann sum is an approximation of an **integral** by a finite sum. In this implementation, the default is the Trapezoidal method, but Left and Right methods can optionally be used. +The `integration` platform provides the [Riemann sum](https://en.wikipedia.org/wiki/Riemann_sum) of the values provided by a source sensor. The Riemann sum is an approximation of an **integral** by a finite sum. The integration sensors is updated upon changes of the the **source**. Fast sampling source sensors provide better results. In this implementation, the default is the Trapezoidal method, but Left and Right methods can optionally be used. ## {% linkable_title Configuration %} diff --git a/source/_components/light.markdown b/source/_components/light.markdown index 45c0bd022b9..cc0563c73c6 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -7,14 +7,14 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Light +ha_qa_scale: internal ha_release: pre 0.7 --- -This component allows you to track and control various light bulbs. Read the platform documentation for your particular light hardware to learn how to enable it. - -

-The light component supports multiple entries in configuration.yaml by appending a sequential number to the section: light 2:, light 3: etc. -

+This component allows you to track and control various light bulbs. Read the integration documentation for your particular light hardware to learn how to enable it. ### {% linkable_title Default turn-on values %} @@ -26,7 +26,7 @@ The `.default` suffix should be added to the entity identifier of each light to Turns one light on or multiple lights on using [groups]({{site_root}}/components/group/). -Most lights do not support all attributes. You can check the platform documentation of your particular light for hints, but in general, you will have to try things out and see what works. +Most lights do not support all attributes. You can check the integration documentation of your particular light for hints, but in general, you will have to try things out and see what works. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | diff --git a/source/_components/locative.md b/source/_components/locative.md index 7aeecdfa8a3..03f9efa289a 100644 --- a/source/_components/locative.md +++ b/source/_components/locative.md @@ -17,7 +17,7 @@ redirect_from: ---

-Locative is no longer under active development. Read more here +Locative is no longer under active development.

This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an open source app for [iOS](https://github.com/LocativeHQ/ios-app) and [Android](https://github.com/LocativeHQ/Locative-Android) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location. @@ -27,12 +27,10 @@ Install on your smartphone: - [Android](https://play.google.com/store/apps/details?id=io.locative.app) - [iOS](https://itunes.apple.com/us/app/geofancy/id725198453) -To configure Locative, you must set it up via the integrations panel in the configuration screen. You must set up the app to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. When you enter or exit a geofence, Locative will send the appropriate request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated. +To configure Locative, you must set it up via the integrations panel in the configuration screen. You must set up the app to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. When you enter or exit a geofence, Locative will send the appropriate request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your `dev-state` menu for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated.

When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home". - -To use Locative in combination with another device tracker, such as [Nmap](/components/device_tracker.nmap_tracker/) or [Netgear](/components/device_tracker.netgear/), fill in the `mac` field to the Locative entry in `known_devices.yaml` with the MAC address of the device you want to track. The state of the device will be determined by the source that reported last. diff --git a/source/_components/lock.markdown b/source/_components/lock.markdown index f57fa53b0bb..065cf915907 100644 --- a/source/_components/lock.markdown +++ b/source/_components/lock.markdown @@ -7,6 +7,10 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Lock +ha_qa_scale: internal ha_release: 0.9 --- diff --git a/source/_components/logger.markdown b/source/_components/logger.markdown index bfeb048e5a1..9d186deb679 100644 --- a/source/_components/logger.markdown +++ b/source/_components/logger.markdown @@ -33,8 +33,7 @@ components: logger: default: info logs: - homeassistant.components.device_tracker: critical - homeassistant.components.camera: critical + homeassistant.components.yamaha: critical custom_components.my_integration: critical ``` @@ -46,11 +45,20 @@ components: logger: default: critical logs: - homeassistant.components: info - homeassistant.components.rfxtrx: debug - homeassistant.components.device_tracker: critical - homeassistant.components.camera: critical + # log level for HA core + homeassistant.core: fatal + + # log level for MQTT integration + homeassistant.components.mqtt: warning + + # log level for SmartThings lights + homeassistant.components.smartthings.light: info + + # log level for a custom component custom_components.my_integration: debug + + # log level for the `aiohttp` Python package + aiohttp: error ``` {% configuration %} @@ -107,9 +115,11 @@ An example call might look like this: ```yaml service: logger.set_level data: - homeassistant.components: warning - homeassistant.components.media_player.yamaha: debug + homeassistant.core: fatal + homeassistant.components.mqtt: warning + homeassistant.components.smartthings.light: info custom_components.my_integration: debug + aiohttp: error ``` The log information are stored in the diff --git a/source/_components/mastodon.markdown b/source/_components/mastodon.markdown index 49ae65074f7..dafa44fbbaa 100644 --- a/source/_components/mastodon.markdown +++ b/source/_components/mastodon.markdown @@ -15,7 +15,7 @@ redirect_from: - /components/notify.mastodon/ --- -The `mastodon` platform uses [Mastodon](https://joinmastodon.org/) to delivery notifications from Home Assistant. +The `mastodon` platform uses [Mastodon](https://joinmastodon.org/) to deliver notifications from Home Assistant. ### {% linkable_title Setup %} diff --git a/source/_components/media_player.markdown b/source/_components/media_player.markdown index 5bfb1c3fd08..7a0bbe6d858 100644 --- a/source/_components/media_player.markdown +++ b/source/_components/media_player.markdown @@ -7,10 +7,14 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Media Player +ha_qa_scale: internal ha_release: 0.7 --- -Interacts with media players on your network. Please check the right sidebar for a full list of supported devices. +Interacts with media players on your network. ## {% linkable_title Services %} diff --git a/source/_components/meteoalarm.markdown b/source/_components/meteoalarm.markdown index 0dfd60cd43f..5bb38e0a088 100644 --- a/source/_components/meteoalarm.markdown +++ b/source/_components/meteoalarm.markdown @@ -99,7 +99,7 @@ automation: action: - service: notify.notify data_template: - title: '{{state_attr('binary_sensor.meteoalarm', 'headline')}}' + title: "{{state_attr('binary_sensor.meteoalarm', 'headline')}}" message: "{{state_attr('binary_sensor.meteoalarm', 'description')}} is effective on {{state_attr('binary_sensor.meteoalarm', 'effective')}}" ``` {% endraw %} diff --git a/source/_components/modbus.markdown b/source/_components/modbus.markdown index 77ddbcee795..c62832b0e0f 100644 --- a/source/_components/modbus.markdown +++ b/source/_components/modbus.markdown @@ -128,12 +128,12 @@ modbus: - type: tcp host: IP_ADDRESS_1 port: 2020 - hub: hub1 + name: hub1 - type: tcp host: IP_ADDRESS_2 port: 501 - hub: hub2 + name: hub2 ``` ### {% linkable_title Services %} @@ -147,7 +147,7 @@ modbus: | Attribute | Description | | --------- | ----------- | -| hub | Hub name (defaults to 'default' when omitted) | +| name | Hub name (defaults to 'default' when omitted) | | unit | Slave address (set to 255 you talk to Modbus via TCP) | | address | Address of the Register (e.g., 138) | | value | A single value or an array of 16-bit values. Single value will call modbus function code 6. Array will call modbus function code 16. Array might need reverse ordering. E.g., to set 0x0004 you might need to set `[4,0]` | diff --git a/source/_components/netdata.markdown b/source/_components/netdata.markdown index a1e9444d8a5..6246eb756f2 100644 --- a/source/_components/netdata.markdown +++ b/source/_components/netdata.markdown @@ -43,21 +43,45 @@ $ curl -X GET "http://[Netdata_Instance]:19999/api/v1/data?chart=[data_group]&po - `dimension_names`: Names shown in the frontend. - `dimension_ids`: Names to use for `element`. +Alternatively you can browse to the built in Netdata API in your browser `http://[Netdata_Instance]:19999/api/v1/allmetrics?format=json` and search for the `data_group` identified in the Netdata frontend. In the example JSON below the data group is "system.load". + +```json + "system.load": { + "name":"system.load", + "context":"system.load", + "units":"load", + "last_updated": 1558446920, + "dimensions": { + "load1": { + "name": "load1", + "value": 0.1250000 + }, + "load5": { + "name": "load5", + "value": 0.1290000 + }, + "load15": { + "name": "load15", + "value": 0.1430000 + } + } + }, +``` + +Once the `data_group` "system.load" and the `element` "load15" have been identified from the JSON it can be configured in your configuration.yaml like the example below. + ## {% linkable_title Configuration %} -To add this platform to your installation, add the following to your `configuration.yaml` file: +Add the following to your `configuration.yaml`. ```yaml # Example configuration.yaml entry sensor: - platform: netdata - resources: + resources: load: data_group: system.load element: load15 - cpu: - data_group: system.cpu - element: system ``` {% configuration %} @@ -105,3 +129,22 @@ resources: type: boolean default: false {% endconfiguration %} + +### {% linkable_title Full Example %} + +```yaml +# Example configuration.yaml entry +sensor: + - platform: netdata + host: '192.168.1.2' + port: '19999' + name: SomeHostName + resources: + system_load: + data_group: system.load + element: load15 + core0_freq: + data_group: 'cpu.cpufreq' + element: 'cpu0' + icon: mdi:chip +``` diff --git a/source/_components/nmap_tracker.markdown b/source/_components/nmap_tracker.markdown index 1003cc26778..fe414f96646 100644 --- a/source/_components/nmap_tracker.markdown +++ b/source/_components/nmap_tracker.markdown @@ -92,7 +92,7 @@ An example of how the Nmap scanner can be customized: ### {% linkable_title Linux capabilities %} -On Linux systems you can extend the functionality of Nmap, without having to run it as root, by using *Linux capabilities*. Be sure to specify the full path to wherever you installed Nmap: +On Linux systems (such as Hass.io) you can extend the functionality of Nmap, without having to run it as root, by using *Linux capabilities*. Be sure to specify the full path to wherever you installed Nmap: ```bash $ sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip /usr/bin/nmap diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index bab55206cc5..87df0e81f63 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -7,6 +7,10 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Notifications +ha_qa_scale: internal ha_release: 0.7 --- @@ -14,19 +18,7 @@ The `notify` component makes it possible to send notifications to a wide variety If you want to send notifications to the Home Assistant Web Interface you may use the [Persistent Notification Component](/components/persistent_notification/). -## {% linkable_title Configuration %} - -```yaml -# Example configuration.yaml entry -notify: - - platform: pushbullet - name: NOTIFY_NAME - api_key: YOUR_API_KEY -``` - -The **name** parameter is optional but needed if you want to use multiple platforms. The platform will be exposed as service `notify.`. The name will default to `notify` if not supplied. - -### {% linkable_title Service %} +## {% linkable_title Service %} Once loaded, the `notify` platform will expose a service that can be called to send notifications. diff --git a/source/_components/owntracks.markdown b/source/_components/owntracks.markdown index 7dc33ac5b0e..fafb7ab9573 100644 --- a/source/_components/owntracks.markdown +++ b/source/_components/owntracks.markdown @@ -24,17 +24,9 @@ By default the integration will listen for incoming messages from OwnTracks via -### {% linkable_title Configuring the component %} +## {% linkable_title Configuration %} -1. Open the Home Assistant frontend -1. Open Settings -> integrations -1. If you see an Owntracks component under 'Configured', delete it. - - Click on it. - - Click on the trashcan icon in the upper right corner. -1. Now, look for Owntracks in 'Setup new integration' and click on CONFIGURE. -1. The login credentials and configuration for owntracks will be presented to you. - in a popup window. You will need these in the configuration for the app as mentioned below. -1. Save these credentials somewhere, as there is no way to get it back at a later point in time if it is lost, besides repeating step 1-5 +To configure OwnTracks, you must set it up via the integrations panel in the configuration screen. This will give you the webhook URL to use during mobile device configuration (below). ### {% linkable_title Configuring the app - Android %} @@ -43,7 +35,7 @@ By default the integration will listen for incoming messages from OwnTracks via In the OwnTracks app, open sidebar and click on preferences, then on connection. Change the following settings: - Mode: Private HTTP - - Host: `` + - Host: `` - Identification: - Username: `` - Password: Can be left blank. @@ -167,19 +159,3 @@ By default, any Owntracks user connected to Home Assistant can export their wayp 1. The configuration variable `waypoints` can be set to `false` which will disable importing waypoints for all users. 2. The configuration variable `waypoint_whitelist` can contain a list of users who are allowed to import waypoints. - -## {% linkable_title Using Owntracks with other device trackers %} - -Owntracks can also be used with other device trackers, such as [Nmap](/components/device_tracker.nmap_tracker/) or [Netgear](/components/device_tracker.netgear/). To do this, fill in the `mac` field to the Owntracks entry in `known_devices.yaml` with the MAC address of the device you want to track. This way the state of the device will be determined by the source that reported last. The naming convention for known device list is `_` and could be set in app configuration. More details about this config can found in [device tracker](/components/device_tracker/). - -An example showing the inclusion of the `mac` field for multiple component tracking. The `mac` field will need to be added to the `owntracks` device and will enable tracking by all components that track via the `mac` address. - -```yaml -USERNAME_DEVICE_ID: - name: Friendly Name - mac: EA:AA:55:E7:C6:94 - picture: https://www.home-assistant.io/images/favicon-192x192.png - gravatar: test@example.com - track: true - hide_if_away: false -``` diff --git a/source/_components/ptvsd.markdown b/source/_components/ptvsd.markdown index d47a02605a4..ba7c77531ff 100644 --- a/source/_components/ptvsd.markdown +++ b/source/_components/ptvsd.markdown @@ -52,6 +52,10 @@ If the home assistant server is behind your firewall with only the http(s) port 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. +### {% linkable_title Memory Use %} + +There have been reports of continually increasing memory use while the debugger is running, although this doesn't seem to appear on all systems. Only configure the debugger on a persistent server when it's actually required. + ### {% linkable_title Waiting at startup %} If you want to debug something in the boot-up sequence, configure the component to wait for a connection first: diff --git a/source/_components/pushbullet.markdown b/source/_components/pushbullet.markdown index ecab9b1caca..98f67c88305 100644 --- a/source/_components/pushbullet.markdown +++ b/source/_components/pushbullet.markdown @@ -23,6 +23,10 @@ There is currently support for the following device types within Home Assistant: - [Sensor](#sensor) - [Notifications](#notifications) +

+The free tier is [limited](https://docs.pushbullet.com/#push-limit) to 500 pushes per month. +

+ ### {% linkable_title Sensor %} The `pushbullet` sensor platform reads messages from [Pushbullet](https://www.pushbullet.com/), a free service to send information between your phones, browsers, and friends. This sensor platform provides sensors that show the properties of the latest received Pushbullet notification mirror. @@ -83,7 +87,7 @@ All properties will be displayed as attributes. The properties array are just fo ## {% linkable_title Notifications %} -The `pushbullet` notification platform sends messages to [Pushbullet](https://www.pushbullet.com/), a free service to send information between your phones, browsers, and friends. +The `pushbullet` notification platform sends messages to [Pushbullet](https://www.pushbullet.com/), a free service to send information between your phones, browsers, and friends. The free tier is [limited](https://docs.pushbullet.com/#push-limit) to 500 pushes per month. To enable Pushbullet notifications in your installation, add the following to your `configuration.yaml` file: @@ -191,4 +195,4 @@ action:

Don't forget to [whitelist external directories](/docs/configuration/basic/), so Home Assistant has access to them. -

\ No newline at end of file +

diff --git a/source/_components/rainbird.markdown b/source/_components/rainbird.markdown index 5da5d99c906..82211c4c199 100644 --- a/source/_components/rainbird.markdown +++ b/source/_components/rainbird.markdown @@ -106,11 +106,11 @@ friendly_name: required: false type: string trigger_time: - description: The default duration to sprinkle the zone. + description: The default duration to sprinkle the zone in minutes. required: true type: integer scan_interval: - description: How fast to refresh the switch. + description: How fast to refresh the switch in minutes. required: false type: integer {% endconfiguration %} diff --git a/source/_components/raspihats.markdown b/source/_components/raspihats.markdown index fc266f4975c..bf229a3eb14 100644 --- a/source/_components/raspihats.markdown +++ b/source/_components/raspihats.markdown @@ -78,7 +78,7 @@ i2c_hats: default: false type: boolean device_class: - description: See device classes in [binary_sensor component](/components/binary_sensor/). + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false default: "None" type: string diff --git a/source/_components/remote_rpi_gpio.markdown b/source/_components/remote_rpi_gpio.markdown index 50f75828065..8ae40a89946 100644 --- a/source/_components/remote_rpi_gpio.markdown +++ b/source/_components/remote_rpi_gpio.markdown @@ -16,7 +16,7 @@ ha_release: 0.94 ha_iot_class: Local Push --- -The `rpi_gpio` component is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages. +The `rpi_gpio` component is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding sections. ## {% linkable_title Binary Sensor %} @@ -28,21 +28,15 @@ To use your Remote Raspberry Pi's GPIO in your installation, add the following t # Example configuration.yaml entry binary_sensor: - platform: remote_rpi_gpio - address:
+ host: IP_ADDRESS_OF_REMOTE_PI ports: 11: PIR Office 12: PIR Bedroom - -switch: - - platform: remote_rpi_gpio - address:
- ports: - 4: Garage Relay ``` {% configuration %} -address: - description: IP Address of remote Raspberry Pi +host: + description: IP Address of remote Raspberry Pi. required: true type: string ports: @@ -81,15 +75,15 @@ To use your Remote Raspberry Pi's GPIO in your installation, add the following t # Example configuration.yaml entry switch: - platform: remote_rpi_gpio - address: 192.168.0.123 + host: IP_ADDRESS_OF_REMOTE_PI ports: 11: Fan Office 12: Light Desk ``` {% configuration %} -address: - description: IP Address of remote Raspberry Pi +host: + description: IP Address of remote Raspberry Pi. required: true type: string ports: @@ -114,14 +108,14 @@ For more details about the GPIO layout, visit the Wikipedia [article](https://en Note that a pin managed by HASS is expected to be exclusive to HASS.

-A common question is what does Port refer to, this number is the actual GPIO #, not the pin #. +A common question is what does port refer to, this number is the actual GPIO #, not the pin #. For example, if you have a relay connected to pin 11 its GPIO # is 17. ```yaml # Example configuration.yaml entry switch: - platform: remote_rpi_gpio - address: 192.168.0.123 + host: 192.168.0.123 ports: 17: Speaker Relay ``` diff --git a/source/_components/rest.markdown b/source/_components/rest.markdown index 835a7b98218..5536b035395 100644 --- a/source/_components/rest.markdown +++ b/source/_components/rest.markdown @@ -55,9 +55,7 @@ name: type: string default: REST Sensor device_class: - description: > - The [type/class](/components/sensor/) of - the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string value_template: diff --git a/source/_components/sensor.markdown b/source/_components/sensor.markdown index 3e021d1d06a..e7b677297c3 100644 --- a/source/_components/sensor.markdown +++ b/source/_components/sensor.markdown @@ -7,12 +7,16 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Sensor +ha_qa_scale: internal ha_release: 0.7 --- Sensors are gathering information about states and conditions. -Home Assistant currently supports a wide range of sensors. They are able to display information which are provides by Home Assistant directly, are gathered from web services, and, of course, physical devices. Please check the sidebar for a full list of supported sensor platforms. +Home Assistant currently supports a wide range of sensors. They are able to display information which are provides by Home Assistant directly, are gathered from web services, and, of course, physical devices. ## {% linkable_title Device Class %} diff --git a/source/_components/sonos.markdown b/source/_components/sonos.markdown index d7b259d8123..096ac6d69a0 100644 --- a/source/_components/sonos.markdown +++ b/source/_components/sonos.markdown @@ -35,7 +35,7 @@ The queue is not snapshotted and must be left untouched until the restore. Using | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | The speakers to snapshot. -| `with_group` | yes | Should we also snapshot the group layout and the state of other speakers in the group. +| `with_group` | yes | Should we also snapshot the group layout and the state of other speakers in the group, defaults to true. ### {% linkable_title Service `sonos.restore` %} @@ -53,7 +53,7 @@ A cloud queue cannot be restarted. This includes queues started from within Spot | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | String or list of `entity_id`s that should have their snapshot restored. -| `with_group` | yes | Should we also restore the group layout and the state of other speakers in the group. +| `with_group` | yes | Should we also restore the group layout and the state of other speakers in the group, defaults to true. ### {% linkable_title Service `sonos.join` %} diff --git a/source/_components/ssdp.markdown b/source/_components/ssdp.markdown new file mode 100644 index 00000000000..2a126bf4cca --- /dev/null +++ b/source/_components/ssdp.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "SSDP - Simple Service Discovery Protocol" +description: "Discover integrations on the network using the SSDP protocol." +date: 2019-06-02 18:50 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: + - Network +ha_release: 0.94 +--- + +The `ssdp` "Simple Service Discovery Protocol" integration will scan the network for supported devices and services. Discovered integrations will show up in the discovered section on the integrations page in the config panel. + +Integrations can opt-in to be found by adding [an SSDP section](https://developers.home-assistant.io/docs/en/next/creating_integration_manifest.html#ssdp) to their manifest.json. + +## {% linkable_title Configuration %} + +To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +ssdp: +``` + +## {% linkable_title Discovered Integrations %} + +The following integrations are automatically discovered by the SSDP integration: + + - Deconz + - Philips Hue diff --git a/source/_components/switch.markdown b/source/_components/switch.markdown index 097a394df9b..acf851afdf6 100644 --- a/source/_components/switch.markdown +++ b/source/_components/switch.markdown @@ -7,6 +7,10 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png +ha_category: + - Switch +ha_qa_scale: internal ha_release: 0.7 --- diff --git a/source/_components/trend.markdown b/source/_components/trend.markdown index 78c22c87c7b..1d9637e8319 100644 --- a/source/_components/trend.markdown +++ b/source/_components/trend.markdown @@ -54,9 +54,7 @@ sensors: required: false type: string device_class: - description: > - The [type/class](/components/binary_sensor/#device-class) of - the sensor to set the icon in the frontend. + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string friendly_name: diff --git a/source/_components/utility_meter.markdown b/source/_components/utility_meter.markdown index a186c0ad8e1..509c03984dc 100644 --- a/source/_components/utility_meter.markdown +++ b/source/_components/utility_meter.markdown @@ -184,3 +184,23 @@ utility_meter: source: sensor.gas_consumption cycle: monthly ``` + +Additionally, you can add template sensors to compute daily and monthly total usage. + +{% raw %} +```yaml +sensor: + - platform: template + sensors: + daily_power: + friendly_name: Daily Power + icon: mdi:counter + unit_of_measurement: kWh + value_template: {{ states('sensor.daily_power_offpeak')|float + states('sensor.daily_power_peak')|float }} + monthly_power: + friendly_name: Monthly Power + icon: mdi:counter + unit_of_measurement: kWh + value_template: {{ states('sensor.monthly_power_offpeak')|float + states('sensor.monthly_power_peak')|float }} +``` +{% endraw %} diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown index 1d956cfcdd4..750b8d12e1b 100644 --- a/source/_components/vacuum.xiaomi_miio.markdown +++ b/source/_components/vacuum.xiaomi_miio.markdown @@ -250,7 +250,7 @@ The information output is: To fetch the token follow these instructions depending on your mobile phone platform. -1. Configure the robot with the Mi-Home app. +1. Configure the robot with [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/). 2. Download and extract the [MiToolKit.zip](https://github.com/ultrara1n/MiToolkit/releases). 3. Enable developer mode and USB debugging on the Android phone and plug it into the computer. 4. Change the MiToolKit language to English if you need to. @@ -278,7 +278,7 @@ source /srv/homeassistant/bin/activate To fetch the token follow these instructions depending on your mobile phone platform. -1. Configure the robot with the Mi-Home app. +1. Configure the robot with [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/). 2. Enable developer mode, USB debugging and plug the Android phone into the computer. 3. Get ADB by running `apt-get install android-tools-adb` or `apt-get install adb`. 4. `adb devices` should list your device. Consult the ADB manual if necessary. @@ -313,7 +313,7 @@ source /srv/homeassistant/bin/activate To fetch the token follow these instructions depending on your mobile phone platform. -1. Configure the robot with the Mi-Home app. +1. Configure the robot with [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/). 2. Enable developer mode, USB debugging and root permission only for ADB on the Android phone and plug it into the computer. 3. Get ADB (e.g, using `apt-get install android-tools-adb`). 4. The command `adb devices` should list your device. @@ -326,7 +326,7 @@ To fetch the token follow these instructions depending on your mobile phone plat ### {% linkable_title iOS %} -1. Configure the robot with the Mi-Home app. +1. Configure the robot with the Mi Home app. 2. Using iTunes, create an unencrypted backup of your iPhone. 3. Install [iBackup Viewer](https://www.imactools.com/iphonebackupviewer/), open it, and open your backup. 4. Open the "Raw Data" module. @@ -351,7 +351,7 @@ To fetch the token follow these instructions depending on your mobile phone plat 1. Configure the robot with the Mi-Home app. 2. Install [BlueStacks](https://www.bluestacks.com). -3. Set up the Mi-Home app in BlueStacks and login to synchronize devices. +3. Set up [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/) in BlueStacks and login to synchronize devices. 4. Use [BlueStacks Tweaker](https://forum.xda-developers.com/general/general/bluestacks-tweaker-2-tool-modifing-t3622681) to access the filesystem and retrieve the token. ### {% linkable_title Selecting token manually (Windows and Android) %} @@ -361,10 +361,10 @@ The following instruction explained an alternative method, in case the MiToolKit Software Required: - Android ADB is contained in [Android SDK](https://developer.android.com/studio/releases/platform-tools) -- [Mi-Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/) +- [Mi Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/) - [Android Backup Extractor](https://sourceforge.net/projects/adbextractor/) - [SQLite Browser](https://sqlitebrowser.org/) -1. Install an old Version of MiHome (e.g. Mi-Home version 5.0.30) on your Android-Device +1. Install an old Version of MiHome (e.g. Mi Home version 5.0.30) on your Android-Device 2. Open MiHome, log-in and add your devices 3. Enable USB-Debugging on your Android 4. Create a backup from your MiHome App, by using adb diff --git a/source/_components/w800rf32.markdown b/source/_components/w800rf32.markdown index f2b7cece328..0012c015039 100644 --- a/source/_components/w800rf32.markdown +++ b/source/_components/w800rf32.markdown @@ -68,7 +68,7 @@ devices: required: false type: string device_class: - description: "The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend." + description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: device_class off_delay: diff --git a/source/_components/watson_tts.markdown b/source/_components/watson_tts.markdown index 8418d70a9dd..dc058f963dc 100644 --- a/source/_components/watson_tts.markdown +++ b/source/_components/watson_tts.markdown @@ -14,7 +14,7 @@ ha_release: 0.94 --- The `watson_tts` text-to-speech platform that works with [IBM Watson Cloud](https://www.ibm.com/watson/services/text-to-speech/) to create the spoken output. -Polly is a paid service via IBM Cloud but there is a decent [free tier](https://www.ibm.com/cloud/watson-text-to-speech/pricing) which offers 10000 free characters every month. +Watson is a paid service via IBM Cloud but there is a decent [free tier](https://www.ibm.com/cloud/watson-text-to-speech/pricing) which offers 10000 free characters every month. ## {% linkable_title Setup %} diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown index 7d5783c893a..ff5af82c1a4 100644 --- a/source/_components/zeroconf.markdown +++ b/source/_components/zeroconf.markdown @@ -7,53 +7,21 @@ sidebar: true comments: false sharing: true footer: true -logo: avahi.png ha_category: - Network ha_qa_scale: internal ha_release: 0.18 --- -The `zeroconf` integration exposes your Home Assistant to the local network using [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking). It can also discover and automatically configure devices on your network. Zeroconf is also sometimes known as Bonjour, Rendezvous, and Avahi. +The `zeroconf` integration will scan the network for supported devices and services. Discovered integrations will show up in the discovered section on the integrations page in the config panel. It will also make Home Assistant discoverable for other services in the network. Zeroconf is also sometimes known as Bonjour, Rendezvous, and Avahi. + +Integrations can opt-in to be found by adding either [a Zeroconf section](https://developers.home-assistant.io/docs/en/next/creating_integration_manifest.html#zeroconf) or [a HomeKit section](https://developers.home-assistant.io/docs/en/next/creating_integration_manifest.html#homekit) to their manifest.json. ## {% linkable_title Configuration %} -To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: +To have Home Assistant scan for integrations using zeroconf and HomeKit, add the following section to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry zeroconf: ``` - -### {% linkable_title Discoverable services %} - -Currently the `zeroconf` integration can detect: - - * [Axis Communications security devices](/components/axis/) - * [ESPHome](/components/esphome/) - * [HomeKit](/components/homekit_controller/) - * [IKEA Trådfri (Tradfri)](/components/tradfri/) - -### {% linkable_title Discovering Home Assistant %} - -The registration will include meta-data about the Home Assistant instance, including a base URL that can be used to access Home Assistant, the currently running Home Assistant version, and whether an API password is needed to access the instance. The examples below show two ways to retrieve the details for testing. - -```bash -$ avahi-browse -alr -+ eth0 IPv4 Home _home-assistant._tcp local -= eth0 IPv4 Home _home-assistant._tcp local - hostname = [Home._home-assistant._tcp.local] - address = [192.168.0.70] - port = [8123] - txt = ["base_url=http://192.168.0.70:8123" "requires_api_password=true" "version=0.41.0"] -``` - -```bash -$ avahi-discover -Browsing domain 'local' on -1.-1 ... -Browsing for services of type '_home-assistant._tcp' in domain 'local' on 4.0 ... -Found service 'Home' of type '_home-assistant._tcp' in domain 'local' on 4.0. -Service data for service 'Home' of type '_home-assistant._tcp' in domain 'local' on 4.0: - Host Home._home-assistant._tcp.local (192.168.0.70), port 8123, TXT data: -['requires_api_password=true', 'base_url=http://192.168.0.70:8123', 'version=0.41.0'] -``` diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 385855994e7..69f4fbbf2e5 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -104,3 +104,15 @@ enable_quirks: To add new devices to the network, call the `permit` service on the `zha` domain. Do this by clicking the Service icon in Developer tools and typing `zha.permit` in the **Service** dropdown box. Next, follow the device instructions for adding, scanning or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/) + +## {% linkable_title Troubleshooting %} + +### {% linkable_title 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. + +To remove modemmanager from an Debian/Ubuntu host run this command: + +```bash +sudo apt-get purge modemmanager +``` diff --git a/source/_cookbook/custom_panel_using_react.markdown b/source/_cookbook/custom_panel_using_react.markdown index e526487b0c5..7a1d132618a 100644 --- a/source/_cookbook/custom_panel_using_react.markdown +++ b/source/_cookbook/custom_panel_using_react.markdown @@ -15,10 +15,10 @@ This is a [React](https://facebook.github.io/react/) implementation of [TodoMVC] - It uses React to render the data. - It hooks into Home Assistant JS which means updates pushed from the server are instantly rendered. - It accesses properties made available from Polymer. -- It uses the user configuration for the component in the `configuration.yaml` file for rendering. +- It uses the user configuration for the integration in the `configuration.yaml` file for rendering. - It allows toggling the sidebar. -Download the source [here](https://github.com/home-assistant/example-custom-config/blob/master/panels/react.html). Copy the file to `/panels/` (you might have to create the directory if it doesn't exist). +[Download the source for React Starter Kit here](https://github.com/home-assistant/custom-panel-starter-kit-react). Copy the file to `/panels/` (you might have to create the directory if it doesn't exist). Create an entry for the panel in your `configuration.yaml` file to enable it. diff --git a/source/_cookbook/notify_if__new_ha_release.markdown b/source/_cookbook/notify_if__new_ha_release.markdown index bb32d0e32e4..e502d7b5a8c 100644 --- a/source/_cookbook/notify_if__new_ha_release.markdown +++ b/source/_cookbook/notify_if__new_ha_release.markdown @@ -48,7 +48,7 @@ automation: service: notify.pushbullet data_template: title: 'New Home Assistant Release' - target: 'YOUR_TARGET_HERE' #See Pushbullet component for usage + target: 'YOUR_TARGET_HERE' #See Pushbullet integration for usage message: "Home Assistant {% raw %} {{ states.updater.updater.state }} {% endraw %} is now available." ``` diff --git a/source/_cookbook/python_component_automation.markdown b/source/_cookbook/python_component_automation.markdown index f04b37ed002..e511c8b118d 100644 --- a/source/_cookbook/python_component_automation.markdown +++ b/source/_cookbook/python_component_automation.markdown @@ -10,7 +10,7 @@ footer: true ha_category: Automation in Python Examples --- -Example component to target an `entity_id` to: +Example integration to target an `entity_id` to: - turn it on at 7AM in the morning - turn it on if anyone comes home and it is off @@ -57,7 +57,7 @@ from homeassistant.helpers.event import (async_track_state_change, # The domain of your component. Should be equal to the name of your component. DOMAIN = "example" -# List of component names (string) your component depends upon. +# List of integration names (string) your integration depends upon. # We depend on group because group will be loaded after all the components that # initialize devices have been setup. DEPENDENCIES = ['group', 'device_tracker', 'light'] diff --git a/source/_cookbook/python_component_mqtt_basic.markdown b/source/_cookbook/python_component_mqtt_basic.markdown index 8012f01ab2e..c7e09c8ee25 100644 --- a/source/_cookbook/python_component_mqtt_basic.markdown +++ b/source/_cookbook/python_component_mqtt_basic.markdown @@ -24,7 +24,7 @@ import homeassistant.loader as loader # The domain of your component. Should be equal to the name of your component. DOMAIN = 'hello_mqtt' -# List of component names (string) your component depends upon. +# List of integration names (string) your integration depends upon. DEPENDENCIES = ['mqtt'] @@ -63,7 +63,7 @@ def setup(hass, config): return True ``` -Load the component by adding the following to your `configuration.yaml`. When your component is loaded, a new entity should popup and there should be a new service available to call. +Load the integration by adding the following to your `configuration.yaml`. When your integration is loaded, a new entity should popup and there should be a new service available to call. ```yaml # configuration.yaml entry diff --git a/source/_cookbook/python_component_simple_alarm.markdown b/source/_cookbook/python_component_simple_alarm.markdown index e212f5d5255..80ae163161b 100644 --- a/source/_cookbook/python_component_simple_alarm.markdown +++ b/source/_cookbook/python_component_simple_alarm.markdown @@ -10,9 +10,9 @@ footer: true ha_category: Automation in Python Examples --- -This example component will detect intruders. It does so by checking if lights are being turned on while there is no one at home. When this happens it will turn the lights red, flash them for 30 seconds and send a message via [the notify component](/components/notify/). It will also flash a specific light when a known person comes home. +This example integration will detect intruders. It does so by checking if lights are being turned on while there is no one at home. When this happens it will turn the lights red, flash them for 30 seconds and send a message via [the notify component](/components/notify/). It will also flash a specific light when a known person comes home. -This component depends on the components [device_tracker](/components/device_tracker/) and [light](/components/light/) being setup. +This integration depends on the integrations [device_tracker](/components/device_tracker/) and [light](/components/light/) being setup. To set it up, add the following lines to your `configuration.yaml` file: diff --git a/source/_cookbook/track_battery_level.markdown b/source/_cookbook/track_battery_level.markdown index 902e2e4aaa2..f0203b3f252 100644 --- a/source/_cookbook/track_battery_level.markdown +++ b/source/_cookbook/track_battery_level.markdown @@ -12,7 +12,7 @@ ha_category: Automation Examples ### {% linkable_title iOS Devices %} -If you have a device running iOS (iPhone, iPad, etc), The [iCloud](/components/device_tracker.icloud/) component is gathering various details about your device including the battery level. To display it in the Frontend use a [template sensor](/components/sensor.template/). You can also use the `battery` [sensor device class](/components/sensor/#device-class) to dynamically change the icon with the battery level. +If you have a device running iOS (iPhone, iPad, etc), The [iCloud](/components/device_tracker.icloud/) integration is gathering various details about your device including the battery level. To display it in the Frontend use a [template sensor](/components/sensor.template/). You can also use the `battery` [sensor device class](/components/sensor/#device-class) to dynamically change the icon with the battery level. {% raw %} ```yaml diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index c466826a196..084846798c5 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -73,7 +73,7 @@ If you see this, you need to add an [`api_password`](/components/http/#api_passw ### {% linkable_title Bearer token informational messages %} -If you see the following, then this is a message for component developers, to tell them they need to update how they authenticate to Home Assistant. As an end user you don't need to do anything: +If you see the following, then this is a message for integration developers, to tell them they need to update how they authenticate to Home Assistant. As an end user you don't need to do anything: ```txt INFO (MainThread) [homeassistant.components.http.auth] You need to use a bearer token to access /blah/blah from 192.0.2.4 diff --git a/source/_docs/authentication/multi-factor-auth.markdown b/source/_docs/authentication/multi-factor-auth.markdown index 16ecd5b8e87..92a518d7a11 100644 --- a/source/_docs/authentication/multi-factor-auth.markdown +++ b/source/_docs/authentication/multi-factor-auth.markdown @@ -75,15 +75,17 @@ Add Notify MFA to your `configuration.yaml` file like this: homeassistant: auth_mfa_modules: - type: notify + include: + - notify_entity ``` {% configuration %} exclude: - description: The list of notifying services you want to exclude. + description: The list of notifying service entities you want to exclude. required: false type: list include: - description: The list of notifying services you want to include. + description: The list of notifying service entities you want to include. required: false type: list message: diff --git a/source/_docs/automation.markdown b/source/_docs/automation.markdown index 2c21c495286..b8a1ee47167 100644 --- a/source/_docs/automation.markdown +++ b/source/_docs/automation.markdown @@ -49,14 +49,14 @@ Actions are all about calling services. To explore the available services open t ### {% linkable_title Automation initial state %} -When you create a new automation, it will be disabled (and therefore won't trigger) unless you explicitly add `initial_state: true` to it or turn it on manually via UI/another automation/developer tools. +When you create a new automation, it will be enabled unless you explicitly add `initial_state: false` to it or turn it off manually via UI/another automation/developer tools. In case automations need to be always enabled or disabled when Home Assistant starts, then you can set the `initial_state` in your automations. Otherwise, the previous state will be restored. -In case automations need to be enabled or disabled upon Home Assistant restart, then you have to set the `initial_state` in your automations. Otherwise, the previous state will be restored. Please note that if for some reason Home Assistant cannot restore the previous state, e.g., because of an interrupted or failed startup, it will result in the automation being disabled on the next Home Assistant startup. +Please note that if for some reason Home Assistant cannot restore the previous state, it will result in the automation being enabled. ```text automation: - alias: Automation Name - initial_state: true + initial_state: false trigger: ... ``` diff --git a/source/_docs/automation/editor.markdown b/source/_docs/automation/editor.markdown index 31bced2ddb0..736efb0a3c1 100644 --- a/source/_docs/automation/editor.markdown +++ b/source/_docs/automation/editor.markdown @@ -52,7 +52,7 @@ config: The automation editor reads and writes to the file `automations.yaml` in the root of your [configuration](/docs/configuration/) folder. Currently, both the name of this file and its location are fixed. -Make sure that you have set up the automation component to read from it: +Make sure that you have set up the automation integration to read from it: ```yaml # Configuration.yaml example @@ -103,6 +103,6 @@ For example, the below automation will be triggered when the sun goes from below ```

-Any comments in the YAML file will be lost when you update an automation via the editor. +Any comments in the YAML file will be lost and templates will be reformatted when you update an automation via the editor.

diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index d8fecee5286..0b5bcab21ee 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -16,7 +16,7 @@ Triggers are what starts the processing of an automation rule. It is possible to Triggers when an event is being processed. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data to be present. -Events can be fired by components or via the API. There is no limitation to the types. A list of built-in events can be found [here](/docs/configuration/events/). +Events can be fired by integrations or via the API. There is no limitation to the types. A list of built-in events can be found [here](/docs/configuration/events/). ```yaml automation: @@ -130,9 +130,17 @@ automation: ### {% linkable_title Sun trigger %} -Triggers when the sun is setting or rising. An optional time offset can be given to have it trigger a set time before or after the sun event (i.e. 45 minutes before sunset, when dusk is setting in). +#### {% linkable_title Sunset / Sunrise trigger %} -Sunrise as a trigger may need special attention as explained in time triggers below. This is due to the date changing at midnight and sunrise is at an earlier time on the following day. +Triggers when the sun is setting or rising, i.e. when the sun elevation reaches 0°. + +An optional time offset can be given to have it trigger a set time before or after the sun event (e.g. 45 minutes before sunset). + +

+Since the duration of twilight is different throughout the year, it is recommended to use [sun elevation triggers][sun_elevation_trigger] instead of `sunset` or `sunrise` with a time offset to trigger automations during dusk or dawn. +

+ +[sun_elevation_trigger]: /docs/automation/trigger/#sun-elevation-trigger ```yaml automation: @@ -140,11 +148,13 @@ automation: platform: sun # Possible values: sunset, sunrise event: sunset - # Optional time offset. This example is 45 minutes. + # Optional time offset. This example will trigger 45 minutes before sunrise. offset: '-00:45:00' ``` -Sometimes you may want more granular control over an automation based on the elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. For most things, a general number like -4 degrees is suitable and is used in this example: +#### {% linkable_title Sun elevation trigger %} + +Sometimes you may want more granular control over an automation than simply sunset or sunrise and specify an exact elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. For most things intended to trigger during dusk or dawn, a number between 0° and -6° is suitable; -4° is used in this example: {% raw %} ```yaml @@ -162,11 +172,15 @@ automation: ``` {% endraw %} -If you want to get more precise, start with the US Naval Observatory [tool](http://aa.usno.navy.mil/data/docs/AltAz.php) that will help you estimate what the solar angle will be at any specific time. Then from this, you can select from the defined twilight numbers. Although the actual amount of light depends on weather, topography and land cover, they are defined as: +If you want to get more precise, start with the US Naval Observatory [tool](http://aa.usno.navy.mil/data/docs/AltAz.php) which will help you estimate what the solar elevation will be at any specific time. Then from this, you can select from the defined twilight numbers. -- Civil twilight: Solar angle > -6° -- Nautical twilight: Solar angle > -12° -- Astronomical twilight: Solar angle > -18° +Although the actual amount of light depends on weather, topography and land cover, they are defined as: + +- Civil twilight: 0° > Solar angle > -6° + + This is what is meant by twilight for the average person: Under clear weather conditions, civil twilight approximates the limit at which solar illumination suffices for the human eye to clearly distinguish terrestrial objects. Enough illumination renders artificial sources unnecessary for most outdoor activities. +- Nautical twilight: 6° > Solar angle > -12° +- Astronomical twilight: 12° > Solar angle > -18° A very thorough explanation of this is available in the Wikipedia article about the [Twilight](https://en.wikipedia.org/wiki/Twilight). diff --git a/source/_docs/automation/troubleshooting.markdown b/source/_docs/automation/troubleshooting.markdown index 86cf9c9e479..e6780407d05 100644 --- a/source/_docs/automation/troubleshooting.markdown +++ b/source/_docs/automation/troubleshooting.markdown @@ -19,7 +19,7 @@ INFO [homeassistant.components.automation] Initialized rule Rainy Day INFO [homeassistant.components.automation] Initialized rule Rain is over ``` -The Logbook component will show a line entry when an automation is triggered. You can look at the previous entry to determine which trigger in the rule triggered the event. +The Logbook integration will show a line entry when an automation is triggered. You can look at the previous entry to determine which trigger in the rule triggered the event. ![Logbook example](/images/components/automation/logbook.png) diff --git a/source/_docs/autostart/init.d.markdown b/source/_docs/autostart/init.d.markdown index db3ff12fee1..9363ed07be6 100644 --- a/source/_docs/autostart/init.d.markdown +++ b/source/_docs/autostart/init.d.markdown @@ -14,7 +14,7 @@ Home Assistant can run as a daemon within init.d with the script below. ### {% linkable_title 1. Copy script %} -Copy either the daemon script or the Python environment scrip at the end of this page to `/etc/init.d/hass-daemon` depending on your installation. +Copy either the daemon script or the Python environment script at the end of this page to `/etc/init.d/hass-daemon` depending on your installation. After that, set the script to be executable: diff --git a/source/_docs/backend/updater.markdown b/source/_docs/backend/updater.markdown index 8551fff955e..e7a5ea9ad7d 100644 --- a/source/_docs/backend/updater.markdown +++ b/source/_docs/backend/updater.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Updater" -description: "Details what the updater component is reporting about your Home Assistant instance." +description: "Details what the updater integration is reporting about your Home Assistant instance." date: 2016-10-22 08:00 sidebar: true comments: false @@ -12,7 +12,7 @@ redirect_from: /details/updater/ Starting with 0.31 the [updater component](/components/updater/) sends an optional report about Home Assistant instance. -If you want to opt-in to include component information, add `include_used_components` to your config. This will allow the Home Assistant developers to focus development efforts on the most popular components. +If you want to opt-in to include integration information, add `include_used_components` to your config. This will allow the Home Assistant developers to focus development efforts on the most popular components. ```yaml updater: diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown index 2955704fbcf..ff8f705d276 100644 --- a/source/_docs/configuration.markdown +++ b/source/_docs/configuration.markdown @@ -25,7 +25,7 @@ The location of the folder differs between operating systems: If you want to use a different folder for configuration, use the config command line parameter: `hass --config path/to/config`. -Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains components to be loaded with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable functionality. +Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains integrations to be loaded with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable functionality. If you run into trouble while configuring Home Assistant, have a look at the [configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [configuration.yaml examples](/cookbook/#example-configurationyaml). diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index 22215e1dda4..6d88f07afcb 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -58,7 +58,7 @@ entity_picture: required: false type: string icon: - description: Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com) ([Cheatsheet](https://cdn.materialdesignicons.com/3.5.95/)). Prefix name with `mdi:`, ie `mdi:home`. + description: "Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com) ([Cheatsheet](https://cdn.materialdesignicons.com/3.5.95/)). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release. You can check when an icon was added to MaterialDesignIcons.com at [MDI History](https://materialdesignicons.com/history)." required: false type: string assumed_state: diff --git a/source/_docs/configuration/events.markdown b/source/_docs/configuration/events.markdown index 187e757e0f1..714842fa24a 100644 --- a/source/_docs/configuration/events.markdown +++ b/source/_docs/configuration/events.markdown @@ -10,12 +10,12 @@ footer: true redirect_from: /topics/events/ --- -The core of Home Assistant is the event bus. The event bus allows any component to fire or listen for events. It is the core of everything. For example, any state change will be announced on the event bus as a `state_changed` event containing the previous and the new state of an entity. +The core of Home Assistant is the event bus. The event bus allows any integration to fire or listen for events. It is the core of everything. For example, any state change will be announced on the event bus as a `state_changed` event containing the previous and the new state of an entity. Home Assistant contains a few built-in events that are used to coordinate between various components. ### {% linkable_title Event `homeassistant_start` %} -Event `homeassistant_start` is fired when all components from the configuration have been initialized. This is the event that will start the timer firing off `time_changed` events. +Event `homeassistant_start` is fired when all integrations from the configuration have been initialized. This is the event that will start the timer firing off `time_changed` events.

Starting 0.42, it is no longer possible to listen for event `homeassistant_start`. Use the 'homeassistant' [platform](/docs/automation/trigger) instead. @@ -84,8 +84,8 @@ Field | Description ### {% linkable_title Event `component_loaded` %} -Event `component_loaded` is fired when a new component has been loaded and initialized. +Event `component_loaded` is fired when a new integration has been loaded and initialized. Field | Description ----- | ----------- -`component` | Domain of the component that has just been initialized. Example: `light`. +`component` | Domain of the integration that has just been initialized. Example: `light`. diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown index 91285f8c301..f8cdb5dc628 100644 --- a/source/_docs/configuration/packages.markdown +++ b/source/_docs/configuration/packages.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /topics/packages/ --- -Packages in Home Assistant provide a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the component key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration). +Packages in Home Assistant provide a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the integration key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).

Note that if you use packages for your configuration, the configuration reloading buttons in the configuration panel will not reload your packages. @@ -26,7 +26,7 @@ homeassistant: ...package configuration here... ``` -The package configuration can include: `switch`, `light`, `automation`, `groups`, or most other Home Assistant components including hardware platforms. +The package configuration can include: `switch`, `light`, `automation`, `groups`, or most other Home Assistant integrations including hardware platforms. It can be specified inline or in a separate YAML file using `!include`. @@ -67,7 +67,7 @@ light: There are some rules for packages that will be merged: -1. Platform based components (`light`, `switch`, etc) can always be merged. +1. Platform based integrations (`light`, `switch`, etc) can always be merged. 2. Components where entities are identified by a key that will represent the entity_id (`{key: config}`) need to have unique 'keys' between packages and the main configuration file. For example if we have the following in the main config. You are not allowed to re-use "my_input" again for `input_boolean` in a package: @@ -76,10 +76,10 @@ There are some rules for packages that will be merged: input_boolean: my_input: ``` -3. Any component that is not a platform [2], or dictionaries with Entity ID keys [3] can only be merged if its keys, except those for lists, are solely defined once. +3. Any integration that is not a platform [2], or dictionaries with Entity ID keys [3] can only be merged if its keys, except those for lists, are solely defined once.

-Components inside packages can only specify platform entries using configuration style 1, where all the platforms are grouped under the component name. +Components inside packages can only specify platform entries using configuration style 1, where all the platforms are grouped under the integration name.

### {% linkable_title Create a packages folder %} diff --git a/source/_docs/configuration/platform_options.markdown b/source/_docs/configuration/platform_options.markdown index 86ad9d7a7cd..b0240f5507e 100644 --- a/source/_docs/configuration/platform_options.markdown +++ b/source/_docs/configuration/platform_options.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Entity component platform options" -description: "Shows how to customize polling interval for any component via configuration.yaml." +title: "Entity integration platform options" +description: "Shows how to customize polling interval for any integration via configuration.yaml." date: 2016-02-12 23:17 -0800 sidebar: true comments: false @@ -12,7 +12,7 @@ redirect_from: /topics/platform_options/

These options are being phased out and are only available for single platform integrations.

-Some components or platforms (those that are based on the [entity](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity.py) class) allows various extra options to be set. +Some integrations or platforms (those that are based on the [entity](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity.py) class) allows various extra options to be set. ### {% linkable_title Entity namespace %} diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown index 8a7ce30eb1f..4c2078e029f 100644 --- a/source/_docs/configuration/securing.markdown +++ b/source/_docs/configuration/securing.markdown @@ -19,7 +19,7 @@ Here's the summary of what you *must* do to secure your Home Assistant system: - Configure [secrets](/docs/configuration/secrets/) (but do remember to back them up) - Regularly keep the system up to date -If you only want to use components supported by [Home Assistant cloud](/cloud/) then you don't need to enable remote access. This is obviously the most secure option, but does mean that you're relying on a cloud service for that functionality. +If you only want to use integrations supported by [Home Assistant cloud](/cloud/) then you don't need to enable remote access. This is obviously the most secure option, but does mean that you're relying on a cloud service for that functionality. - For remote access to the UI, use a [VPN](http://www.pivpn.io/), [Tor](/docs/ecosystem/tor/) or an [SSH tunnel](/blog/2017/11/02/secure-shell-tunnel/) - For remote access for components, use a [TLS/SSL](/docs/ecosystem/certificates/lets_encrypt/) certificate @@ -45,7 +45,7 @@ If you only want remote access for access to the web UI then we advise that you - [Tor](/docs/ecosystem/tor/), which also avoids the need for port forwarding - An [SSH tunnel](/blog/2017/11/02/secure-shell-tunnel/) to connect to your frontend -### {% linkable_title Remote access for components %} +### {% linkable_title Remote access for integrations %} For remote access for a component, for example, a device tracker, you have to enable access to the API by: diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index a789dec549c..40e33efb01e 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -38,7 +38,7 @@ Note that each line after `homeassistant:` is indented two (2) spaces. Since the `!include filename.yaml` is the statement that tells Home Assistant to insert the contents of `filename.yaml` at that point. This is how we are going to break a monolithic and hard to read file (when it gets big) into more manageable chunks. -Now before we start splitting out the different components, let's look at the other components (in our example) that will stay in the base file: +Now before we start splitting out the different components, let's look at the other integrations (in our example) that will stay in the base file: ```yaml history: @@ -62,9 +62,9 @@ zwave: mqtt: broker: 127.0.0.1 ``` -As with the core snippet, indentation makes a difference. The component headers (`mqtt:`) should be fully left aligned (aka no indent), and the parameters (`broker:`) should be indented two (2) spaces. +As with the core snippet, indentation makes a difference. The integration headers (`mqtt:`) should be fully left aligned (aka no indent), and the parameters (`broker:`) should be indented two (2) spaces. -While some of these components can technically be moved to a separate file they are so small or "one off's" where splitting them off is superfluous. Also, you'll notice the # symbol (hash/pound). This represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored. This makes breaking up files for human readability really convenient, not to mention turning off features while leaving the entry intact. +While some of these integrations can technically be moved to a separate file they are so small or "one off's" where splitting them off is superfluous. Also, you'll notice the # symbol (hash/pound). This represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored. This makes breaking up files for human readability really convenient, not to mention turning off features while leaving the entry intact. Now, lets assume that a blank file has been created in the Home Assistant configuration directory for each of the following: @@ -77,7 +77,7 @@ device_tracker.yaml customize.yaml ``` -`automation.yaml` will hold all the automation component details. `zones.yaml` will hold the zone component details and so forth. These files can be called anything but giving them names that match their function will make things easier to keep track of. +`automation.yaml` will hold all the automation integration details. `zones.yaml` will hold the zone integration details and so forth. These files can be called anything but giving them names that match their function will make things easier to keep track of. Inside the base configuration file add the following entries: @@ -89,9 +89,9 @@ switch: !include switch.yaml device_tracker: !include device_tracker.yaml ``` -Note that there can only be one `!include:` for each component so chaining them isn't going to work. If that sounds like Greek, don't worry about it. +Note that there can only be one `!include:` for each integration so chaining them isn't going to work. If that sounds like Greek, don't worry about it. -Alright, so we've got the single components and the include statements in the base file, what goes in those extra files? +Alright, so we've got the single integrations and the include statements in the base file, what goes in those extra files? Let's look at the `device_tracker.yaml` file from our example: diff --git a/source/_docs/configuration/state_object.markdown b/source/_docs/configuration/state_object.markdown index fdb99ea0756..61fdcf126c4 100644 --- a/source/_docs/configuration/state_object.markdown +++ b/source/_docs/configuration/state_object.markdown @@ -23,11 +23,11 @@ Field | Description `state.domain` | Domain of the entity. Example: `light`. `state.object_id` | Object ID of entity. Example: `kitchen`. `state.name` | Name of the entity. Based on `friendly_name` attribute with fall back to object ID. Example: `Kitchen Ceiling`. -`state.last_updated` | Time the state was written to the state machine. Note that writing the exact same state including attributes will not result in this field being updated. Example: `2017-10-28 08:13:36.715874+00:00`. -`state.last_changed` | Time the state changed. This is not updated when there are only updated attributes. Example: `2017-10-28 08:13:36.715874+00:00`. +`state.last_updated` | Time the state was written to the state machine in UTC time. Note that writing the exact same state including attributes will not result in this field being updated. Example: `2017-10-28 08:13:36.715874+00:00`. +`state.last_changed` | Time the state changed in the state machine in UTC time. This is not updated when there are only updated attributes. Example: `2017-10-28 08:13:36.715874+00:00`. `state.attributes` | A dictionary with extra attributes related to the current state. -The attributes of an entity are optional. There are a few attributes that are used by Home Assistant for representing the entity in a specific way. Each component will also have its own attributes to represent extra state data about the entity. For example, the light component has attributes for the current brightness and color of the light. When an attribute is not available, Home Assistant will not write it to the state. +The attributes of an entity are optional. There are a few attributes that are used by Home Assistant for representing the entity in a specific way. Each integration will also have its own attributes to represent extra state data about the entity. For example, the light integration has attributes for the current brightness and color of the light. When an attribute is not available, Home Assistant will not write it to the state. When using templates, attributes will be available by their name. For example `state.attributes.assumed_state`. diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 4771a94aa88..c7922331d79 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -232,9 +232,9 @@ Some of these functions can also be used in a [filter](http://jinja.pocoo.org/do ## {% linkable_title Processing incoming data %} -The other part of templating is processing incoming data. It allows you to modify incoming data and extract only the data you care about. This will only work for platforms and components that mention support for this in their documentation. +The other part of templating is processing incoming data. It allows you to modify incoming data and extract only the data you care about. This will only work for platforms and integrations that mention support for this in their documentation. -It depends per component or platform, but it is common to be able to define a template using the `value_template` configuration key. When a new value arrives, your template will be rendered while having access to the following values on top of the usual Home Assistant extensions: +It depends per integration or platform, but it is common to be able to define a template using the `value_template` configuration key. When a new value arrives, your template will be rendered while having access to the following values on top of the usual Home Assistant extensions: | Variable | Description | |--------------|------------------------------------| diff --git a/source/_docs/configuration/troubleshooting.markdown b/source/_docs/configuration/troubleshooting.markdown index 03efee288be..e461420f8d7 100644 --- a/source/_docs/configuration/troubleshooting.markdown +++ b/source/_docs/configuration/troubleshooting.markdown @@ -10,15 +10,15 @@ footer: true redirect_from: /getting-started/troubleshooting-configuration/ --- -It can happen that you run into trouble while configuring Home Assistant. Perhaps a component is not showing up or is acting strangely. This page will discuss a few of the most common problems. +It can happen that you run into trouble while configuring Home Assistant. Perhaps a integration is not showing up or is acting strangely. This page will discuss a few of the most common problems. Before we dive into common issues, make sure you know where your configuration directory is. Home Assistant will print out the configuration directory it is using when starting up. -Whenever a component or configuration option results in a warning, it will be stored in `home-assistant.log` in the configuration directory. This file is reset on start of Home Assistant. +Whenever a integration or configuration option results in a warning, it will be stored in `home-assistant.log` in the configuration directory. This file is reset on start of Home Assistant. -### {% linkable_title My component does not show up %} +### {% linkable_title My integration does not show up %} -When a component does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your component you are trying to set up. +When a integration does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your integration you are trying to set up. If you have incorrect entries in your configuration files you can use the [`check_config`](/docs/tools/check_config/) script to assist in identifying them: `hass --script check_config`. If you need to provide the path for your configuration you can do this using the `-c` argument like this: `hass --script check_config -c /path/to/your/config/dir`. @@ -40,21 +40,21 @@ sensor: ... ``` -Another common problem is that a required configuration setting is missing. If this is the case, the component will report this to `home-assistant.log`. You can have a look at [the various component pages](/components/) for instructions on how to setup the components. +Another common problem is that a required configuration setting is missing. If this is the case, the integration will report this to `home-assistant.log`. You can have a look at [the various integration pages](/components/) for instructions on how to setup the components. -See the [logger](/components/logger/) component for instructions on how to define the level of logging you require for specific modules. +See the [logger](/components/logger/) integration for instructions on how to define the level of logging you require for specific modules. If you find any errors or want to expand the documentation, please [let us know](https://github.com/home-assistant/home-assistant.io/issues). #### {% linkable_title Problems with dependencies %} -Almost all components have external dependencies to communicate with your devices and services. Sometimes Home Assistant is unable to install the necessary dependencies. If this is the case, it should show up in `home-assistant.log`. +Almost all integrations have external dependencies to communicate with your devices and services. Sometimes Home Assistant is unable to install the necessary dependencies. If this is the case, it should show up in `home-assistant.log`. The first step is trying to restart Home Assistant and see if the problem persists. If it does, look at the log to see what the error is. If you can't figure it out, please [report it](https://github.com/home-assistant/home-assistant/issues) so we can investigate what is going on. -#### {% linkable_title Problems with components %} +#### {% linkable_title Problems with integrations %} -It can happen that some components either do not work right away or stop working after Home Assistant has been running for a while. If this happens to you, please [report it](https://github.com/home-assistant/home-assistant/issues) so that we can have a look. +It can happen that some integrations either do not work right away or stop working after Home Assistant has been running for a while. If this happens to you, please [report it](https://github.com/home-assistant/home-assistant/issues) so that we can have a look. #### {% linkable_title Multiple files %} diff --git a/source/_docs/configuration/yaml.markdown b/source/_docs/configuration/yaml.markdown index c73d6522142..e31e617f8b5 100644 --- a/source/_docs/configuration/yaml.markdown +++ b/source/_docs/configuration/yaml.markdown @@ -12,7 +12,7 @@ redirect_from: /getting-started/yaml/ Home Assistant uses the [YAML](http://yaml.org/) syntax for configuration. YAML might take a while to get used to but is really powerful in allowing you to express complex configurations. -For each component that you want to use in Home Assistant, you add code in your `configuration.yaml` file to specify its settings. +For each integration that you want to use in Home Assistant, you add code in your `configuration.yaml` file to specify its settings. The following example entry specifies that you want to use the [notify component](/components/notify) with the [pushbullet platform](/components/notify.pushbullet). @@ -40,7 +40,7 @@ Please pay attention on not storing private data (passwords, API keys, etc.) dir Text following a `#` are comments and are ignored by the system. -The next example shows an [input_select](/components/input_select) component that uses a block collection for the options values. +The next example shows an [input_select](/components/input_select) integration that uses a block collection for the options values. The other properties (like name) are specified using mappings. Note that the second line just has `threat:` with no value on the same line. Here threat is the name of the input_select and the values for it are everything nested below it. ```yaml diff --git a/source/_docs/ecosystem/appdaemon/api.markdown b/source/_docs/ecosystem/appdaemon/api.markdown index 6346fd933d4..5f031b7f464 100755 --- a/source/_docs/ecosystem/appdaemon/api.markdown +++ b/source/_docs/ecosystem/appdaemon/api.markdown @@ -282,7 +282,7 @@ In most cases, the attribute `state` has the most important value in it, e.g., f get_state(entity = None, attribute = None) ``` -`get_state()` is used to query the state of any component within Home Assistant. State updates are continuously tracked so this call runs locally and does not require AppDaemon to call back to Home Assistant and as such is very efficient. +`get_state()` is used to query the state of any integration within Home Assistant. State updates are continuously tracked so this call runs locally and does not require AppDaemon to call back to Home Assistant and as such is very efficient. #### {% linkable_title Returns %} @@ -788,7 +788,7 @@ Function to be invoked when the requested state change occurs. It must conform t ##### {% linkable_title time %} -A Python `time` object that specifies when the callback will occur, the hour component of the time object is ignored. If the time specified is in the past, the callback will occur the next hour at the specified time. If time is not supplied, the callback will start an hour from the time that `run_hourly()` was executed. +A Python `time` object that specifies when the callback will occur, the hour integration of the time object is ignored. If the time specified is in the past, the callback will occur the next hour at the specified time. If time is not supplied, the callback will start an hour from the time that `run_hourly()` was executed. ##### {% linkable_title \*\*kwargs %} @@ -1348,7 +1348,7 @@ self.notify("", "Switching mode to Evening") ### {% linkable_title About Events %} -Events are a fundamental part of how Home Assistant works under the covers. HA has an event bus that all components can read and write to, enabling components to inform other components when important events take place. We have already seen how state changes can be propagated to AppDaemon - a state change however is merely an example of an event within Home Assistant. There are several other event types, among them are: +Events are a fundamental part of how Home Assistant works under the covers. HA has an event bus that all integrations can read and write to, enabling integrations to inform other integrations when important events take place. We have already seen how state changes can be propagated to AppDaemon - a state change however is merely an example of an event within Home Assistant. There are several other event types, among them are: - `homeassistant_start` - `homeassistant_stop` @@ -1490,7 +1490,7 @@ service, kwargs = self.info_listen_event(handle) ### {% linkable_title fire_event() %} -Fire an event on the Home Assistant bus, for other components to hear. +Fire an event on the Home Assistant bus, for other integrations to hear. #### {% linkable_title Synopsis %} @@ -1536,7 +1536,7 @@ A dictionary containing any additional information associated with the event. ### {% linkable_title Use of Events for Signaling between Home Assistant and AppDaemon %} -Home Assistant allows for the creation of custom events and existing components can send and receive them. This provides a useful mechanism for signaling back and forth between Home Assistant and AppDaemon. For instance, if you would like to create a UI Element to fire off some code in Home Assistant, all that is necessary is to create a script to fire a custom event, then subscribe to that event in AppDaemon. The script would look something like this: +Home Assistant allows for the creation of custom events and existing integrations can send and receive them. This provides a useful mechanism for signaling back and forth between Home Assistant and AppDaemon. For instance, if you would like to create a UI Element to fire off some code in Home Assistant, all that is necessary is to create a script to fire a custom event, then subscribe to that event in AppDaemon. The script would look something like this: ```yaml alias: Day diff --git a/source/_docs/ecosystem/appdaemon/operation.markdown b/source/_docs/ecosystem/appdaemon/operation.markdown index 536f474aee0..4ef343f3533 100644 --- a/source/_docs/ecosystem/appdaemon/operation.markdown +++ b/source/_docs/ecosystem/appdaemon/operation.markdown @@ -10,4 +10,4 @@ footer: true redirect_from: /ecosystem/appdaemon/tutorial/ --- -Since `AppDaemon` under the covers uses the exact same APIs as the frontend UI, you typically see it react at about the same time to a given event. Calling back to Home Assistant is also pretty fast especially if they are running on the same machine. In action, observed latency above the built in automation component is usually sub-second. +Since `AppDaemon` under the covers uses the exact same APIs as the frontend UI, you typically see it react at about the same time to a given event. Calling back to Home Assistant is also pretty fast especially if they are running on the same machine. In action, observed latency above the built in automation integration is usually sub-second. diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown index 024044abddc..72506055769 100644 --- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown +++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown @@ -341,7 +341,7 @@ http: base_url: examplehome.duckdns.org ``` -You may wish to set up other options for the [http](/components/http/) component at this point, these extra options are beyond the scope of this guide. +You may wish to set up other options for the [http](/components/http/) integration at this point, these extra options are beyond the scope of this guide. Save the changes to configuration.yaml. Restart Home Assistant. @@ -429,7 +429,7 @@ sensor: Save the configuration.yaml. Restart Home Assistant. -On your default_view you should now see a sensor badge containing your number of days until expiry. If you've been following this guide from the start and have not taken any breaks in between, this should be 89 or 90. The sensor will update every 3 hours. You can place this reading on a card using groups, or hide it using customize. These topics are outside of the scope of this guide, but information can be found on their respective components pages: [Group](/components/group/) and [Customize](/docs/configuration/customizing-devices/) +On your default_view you should now see a sensor badge containing your number of days until expiry. If you've been following this guide from the start and have not taken any breaks in between, this should be 89 or 90. The sensor will update every 3 hours. You can place this reading on a card using groups, or hide it using customize. These topics are outside of the scope of this guide, but information can be found on their respective integrations pages: [Group](/components/group/) and [Customize](/docs/configuration/customizing-devices/) Got your sensor up and running and where you want it? Top drawer! Nearly there, now move on to the final steps to ensure that you're never without a secure connection in the future. diff --git a/source/_docs/ecosystem/ios.markdown b/source/_docs/ecosystem/ios.markdown index 57c9ad0c579..f5f614ed8ba 100644 --- a/source/_docs/ecosystem/ios.markdown +++ b/source/_docs/ecosystem/ios.markdown @@ -27,9 +27,9 @@ The app is available on the iOS App Store in every country that Apple supports. * Home Assistant 0.42.4 or higher for push notification support. * SSL is strongly recommended. Self-signed SSL certificates will not work due to Apple's limitations. -The `ios` component is the companion component for the Home Assistant iOS app. While not required, adding the `ios` component to your setup will greatly enhance the iOS app with new notification, location and sensor functions not possible with a standalone app. +The `ios` integration is the companion integration for the Home Assistant iOS app. While not required, adding the `ios` integration to your setup will greatly enhance the iOS app with new notification, location and sensor functions not possible with a standalone app. -Loading the `ios` component will also load the [`device_tracker`](/components/device_tracker), [`zeroconf`](/components/zeroconf) and [`notify`](/components/notify) platforms. +Loading the `ios` integration will also load the [`device_tracker`](/components/device_tracker), [`zeroconf`](/components/zeroconf) and [`notify`](/components/notify) platforms. The Home Assistant for iOS app supports the new authentication system introduced in Home Assistant 0.77. @@ -37,18 +37,18 @@ The Home Assistant for iOS app supports the new authentication system introduced ### {% linkable_title Automated Setup %} -The `ios` component will automatically be loaded under the following circumstances: +The `ios` integration will automatically be loaded under the following circumstances: -1. The [`discovery`](/components/discovery) component is enabled. +1. The [`discovery`](/components/discovery) integration is enabled. 2. You have just installed the app and are at the getting started screen. -Automated discovery and component loading only happens at first install of the app. You may need to wait a few minutes for the iOS component to load as the `discovery` component only scans the network every 5 minutes. +Automated discovery and integration loading only happens at first install of the app. You may need to wait a few minutes for the iOS integration to load as the `discovery` integration only scans the network every 5 minutes. -After the first automated setup you need to add `ios:` to your configuration so that the component loads by default even after restarting Home Assistant. +After the first automated setup you need to add `ios:` to your configuration so that the integration loads by default even after restarting Home Assistant. ### {% linkable_title Manual Setup %} -You may also manually load the `ios` component by adding the following to your configuration: +You may also manually load the `ios` integration by adding the following to your configuration: ```yaml # Example configuration.yaml entry diff --git a/source/_docs/ecosystem/ios/notifications.markdown b/source/_docs/ecosystem/ios/notifications.markdown index c1eee576e3a..9d382585761 100644 --- a/source/_docs/ecosystem/ios/notifications.markdown +++ b/source/_docs/ecosystem/ios/notifications.markdown @@ -12,8 +12,8 @@ redirect_from: /ecosystem/ios/notifications/ The `ios` notify platform enables sending push notifications to the Home Assistant iOS app. -The 'ios' component will automatically load the notify service. -The service component can be called using `service: notify.ios_`. +The 'ios' integration will automatically load the notify service. +The service integration can be called using `service: notify.ios_`. Your device ID can be found in the `ios.conf` file in your configuration folder. The file is compressed JSON. You can view it easier by copying the file contents and pasting them into [JSONLint](http://jsonlint.com). In this example, the device ID is `robbiet480_7plus`, so the notify service to use is `notify.ios_robbiet480_7plus`: diff --git a/source/_docs/ecosystem/nginx.markdown b/source/_docs/ecosystem/nginx.markdown index 4f4fcfa4a24..f627b9584db 100644 --- a/source/_docs/ecosystem/nginx.markdown +++ b/source/_docs/ecosystem/nginx.markdown @@ -145,7 +145,7 @@ server { proxy_buffering off; location / { - proxy_pass http://localhost:8123; + proxy_pass http://127.0.0.1:8123; proxy_set_header Host $host; proxy_redirect http:// https://; proxy_http_version 1.1; diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown index 3663edab5ec..0a8d6dcc2c4 100644 --- a/source/_docs/installation.markdown +++ b/source/_docs/installation.markdown @@ -45,7 +45,7 @@ NUC i7/i9 | Pure power, you should not have *any* performance issues ## {% linkable_title Recommended %} -These install options are fully supported by Home Assistant's documentation. For example, if a component requires that you install something to make it work on one of these methods then the component page will document the steps required. +These install options are fully supported by Home Assistant's documentation. For example, if a integration requires that you install something to make it work on one of these methods then the integration page will document the steps required. **Method**|**You have**|**Recommended for** :-----|:-----|:----- @@ -55,16 +55,16 @@ These install options are fully supported by Home Assistant's documentation. For ## {% linkable_title Alternative installs %} -If you use these install methods, we assume that you know how to manage and administer the operating system you're using. Due to the range of platforms on which these install methods can be used, component documentation may only tell you what you have to install, not how to install it. +If you use these install methods, we assume that you know how to manage and administer the operating system you're using. Due to the range of platforms on which these install methods can be used, integration documentation may only tell you what you have to install, not how to install it. **Method**|**You have**|**Recommended for** :-----|:-----|:----- -[venv
(as another user)](/docs/installation/raspberry-pi/)|Any Linux, Python 3.5.3 or later|Those familiar with their operating system -[venv
(as your user)](/docs/installation/virtualenv/)|Any Python 3.5.3 or later|Developers +[venv
(as another user)](/docs/installation/raspberry-pi/)|Any Linux, Python 3.6 or later|Those familiar with their operating system +[venv
(as your user)](/docs/installation/virtualenv/)|Any Python 3.6 or later|Developers ## {% linkable_title Community provided guides %} -These guides are provided as-is. Some of these install methods are more limited than the methods above. Some components may not work due to limitations of the platform or because required Python packages aren't available for that platform. +These guides are provided as-is. Some of these install methods are more limited than the methods above. Some integrations may not work due to limitations of the platform or because required Python packages aren't available for that platform.
diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index f9c7affff37..59c7d7f435c 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -71,7 +71,7 @@ The steps would be: * Choose a container-name you want (e.g., "homeassistant") * Click on "Advanced Settings" * Set "Enable auto-restart" if you like -* Within "Volume" click on "Add Folder" and choose either an existing folder or add a new folder. The "mount path" has to be "/config", so that Home Assistant will use it for the configs and logs. +* Within "Volume" click on "Add Folder" and choose either an existing folder or add a new folder. The "mount path" has to be "/config", so that Home Assistant will use it for the configs and logs. It is therefore recommended that the folder you choose should be named "config" or "homeassistant/config" to avoid confusion when referencing it within service calls. * Within "Network" select "Use same network as Docker Host" * To ensure that Home Assistant displays the correct timezone go to the "Environment" tab and click the plus sign then add `variable` = `TZ` & `value` = `Europe/London` choosing [your correct timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones) * Confirm the "Advanced Settings" @@ -220,7 +220,7 @@ $ docker-compose restart ### {% linkable_title Exposing Devices %} -In order to use Z-Wave, Zigbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command: +In order to use Z-Wave, Zigbee or other integrations that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command: ```bash $ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config \ diff --git a/source/_docs/installation/hassbian/integrations.markdown b/source/_docs/installation/hassbian/integrations.markdown index d6f7a3fd0c1..9e16275662d 100644 --- a/source/_docs/installation/hassbian/integrations.markdown +++ b/source/_docs/installation/hassbian/integrations.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /docs/hassbian/integrations/ --- -Some components that are specific for the Raspberry Pi can require some further configuration outside of Home Assistant. All commands below are assumed to be executed with the `pi` account. For full documentation of these components refer to the [components](/components) page. +Some integrations that are specific for the Raspberry Pi can require some further configuration outside of Home Assistant. All commands below are assumed to be executed with the `pi` account. For full documentation of these integrations refer to the [components](/components) page. ### {% linkable_title Bluetooth Tracker %} @@ -23,8 +23,8 @@ Software needed for the tracker is pre-installed so just follow the [Bluetooth T Each of the following devices are connected to the GPIO pins on the Raspberry Pi. For more details about the GPIO layout, visit the [documentation](https://www.raspberrypi.org/documentation/usage/gpio/) from the Raspberry Pi foundation. -Permission have been given to the `homeassistant` user to use the GPIO pins and all of the following components should require no underlying changes to work. -Just follow the component pages for each on how to add them to your Home Assistant installation. +Permission have been given to the `homeassistant` user to use the GPIO pins and all of the following integrations should require no underlying changes to work. +Just follow the integration pages for each on how to add them to your Home Assistant installation. - [DHT Sensor](/components/sensor.dht/) - [Raspberry Pi Cover](/components/cover.rpi_gpio/) diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown index a8a9c858923..b5b3780372c 100644 --- a/source/_docs/installation/raspberry-pi.markdown +++ b/source/_docs/installation/raspberry-pi.markdown @@ -12,7 +12,7 @@ redirect_from: /getting-started/installation-raspberry-pi/ This installation of Home Assistant requires the Raspberry Pi to run [Raspbian Lite](https://www.raspberrypi.org/downloads/raspbian/). The installation will be installed in a [Virtual Environment](/docs/installation/virtualenv) with minimal overhead. Instructions assume this is a new installation of Raspbian Lite. -You must have Python 3.5.3 or later installed (including the package `python3-dev`) which is the case for Raspbian Stretch. +You must have Python 3.6 or later installed (including the package `python3-dev`) which is *not* the case for Raspbian Stretch.

Although these installation steps specifically mention a Raspberry Pi, you can go ahead and proceed on any Linux install as well. This guide is also referred to as the "Advanced Guide" for a virtual environment install. diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown index 3b4c5914c42..d8459e9de32 100644 --- a/source/_docs/installation/virtualenv.markdown +++ b/source/_docs/installation/virtualenv.markdown @@ -10,9 +10,9 @@ footer: true redirect_from: /getting-started/installation-virtualenv/ --- -If you already have Python 3.5.3 or later installed, you can easily give Home Assistant a spin. +If you already have Python 3.6 or later installed (we suggest 3.7 or later), you can easily give Home Assistant a spin. -It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.5/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems. +It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.6/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems. _(If you're on a Debian based system, you will need to install Python virtual environment support using `apt-get install python3-pip python3-venv`. You may also need to install development libraries using `apt-get install build-essential libssl-dev libffi-dev python3-dev`.)_ @@ -109,7 +109,7 @@ Looking for more advanced guides? Check our [Raspbian guide](/docs/installation/ ### {% linkable_title After upgrading Python %} -If you've upgraded Python (for example, you were running 3.5.2 and now you've installed 3.5.4) then you'll need to build a new virtual environment. Simply rename your existing virtual environment directory: +If you've upgraded Python (for example, you were running 3.7.1 and now you've installed 3.7.3) then you'll need to build a new virtual environment. Simply rename your existing virtual environment directory: ```bash $ mv homeassistant homeassistant.old diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown index 1160ed99887..349b041e4e2 100644 --- a/source/_docs/mqtt/broker.markdown +++ b/source/_docs/mqtt/broker.markdown @@ -10,7 +10,7 @@ footer: true logo: mqtt.png --- -The MQTT component needs you to run an MQTT broker for Home Assistant to connect to. There are four options, each with various degrees of ease of setup and privacy. +The MQTT integration needs you to run an MQTT broker for Home Assistant to connect to. There are four options, each with various degrees of ease of setup and privacy. ### {% linkable_title Run your own %} diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 99e0e88435c..ed2df43c76b 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -64,7 +64,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 component 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` id depracated and may be removed in a future version of Home Assistant. An empty payload will cause a previously discovered device to be deleted. @@ -288,7 +288,7 @@ Setting up a switch using topic prefix and abbreviated configuration variable na - State topic: `homeassistant/switch/irrigation/state` - Payload: `{"~": "homeassistant/switch/irrigation", "name": "garden", "cmd_t": "~/set", "stat_t": "~/state"}` -Setting up a climate component (heat only) with abbreviated configuration variable names to reduce payload length. +Setting up a climate integration (heat only) with abbreviated configuration variable names to reduce payload length. - Configuration topic: `homeassistant/climate/livingroom/config` - Configuration payload: diff --git a/source/_docs/mqtt/logging.markdown b/source/_docs/mqtt/logging.markdown index 64c627a84f2..b282e6df557 100644 --- a/source/_docs/mqtt/logging.markdown +++ b/source/_docs/mqtt/logging.markdown @@ -10,7 +10,7 @@ footer: true logo: mqtt.png --- -The [logger](/components/logger/) component allows the logging of received MQTT messages. +The [logger](/components/logger/) integration allows the logging of received MQTT messages. ```yaml # Example configuration.yaml entry diff --git a/source/_docs/mqtt/service.markdown b/source/_docs/mqtt/service.markdown index 223d554d3f9..894de9e2219 100644 --- a/source/_docs/mqtt/service.markdown +++ b/source/_docs/mqtt/service.markdown @@ -10,7 +10,7 @@ footer: true logo: mqtt.png --- -The MQTT component will register the service `mqtt.publish` which allows publishing messages to MQTT topics. There are two ways of specifying your payload. You can either use `payload` to hard-code a payload or use `payload_template` to specify a [template](/topics/templating/) that will be rendered to generate the payload. +The MQTT integration will register the service `mqtt.publish` which allows publishing messages to MQTT topics. There are two ways of specifying your payload. You can either use `payload` to hard-code a payload or use `payload_template` to specify a [template](/topics/templating/) that will be rendered to generate the payload. ### {% linkable_title Service `mqtt.publish` %} diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index e77ed5d4c17..72bc4b0cd72 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -15,7 +15,7 @@ Scripts are a sequence of actions that Home Assistant will execute. Scripts are The script syntax basic structure is a list of key/value maps that contain actions. If a script contains only 1 action, the wrapping list can be omitted. ```yaml -# Example script component containing script syntax +# Example script integration containing script syntax script: example_script: sequence: @@ -144,7 +144,7 @@ You can also get the script to abort after the timeout by using `continue_on_tim ### {% linkable_title Fire an Event %} -This action allows you to fire an event. Events can be used for many things. It could trigger an automation or indicate to another component that something is happening. For instance, in the below example it is used to create an entry in the logbook. +This action allows you to fire an event. Events can be used for many things. It could trigger an automation or indicate to another integration that something is happening. For instance, in the below example it is used to create an entry in the logbook. ```yaml - event: LOGBOOK_ENTRY diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index ed261f6c874..26968f97601 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -120,10 +120,59 @@ condition: ### {% linkable_title Sun condition %} -The sun condition can test if the sun has already set or risen when a trigger occurs. The `before` and `after` keys can only be set to `sunset` or `sunrise`. They have a corresponding optional offset value (`before_offset`, `after_offset`) that can be added, similar to the [sun trigger][sun_trigger]. +#### {% linkable_title Sun state condition %} + +The sun state can be used to test if the sun has set or risen. + +```yaml +condition: + condition: state # 'day' condition: from sunrise until sunset + entity_id: sun.sun + state: 'above_horizon' +``` + +```yaml +condition: + condition: state # from sunset until sunrise + entity_id: sun.sun + state: 'below_horizon' +``` + +#### {% linkable_title Sun elevation condition %} + +The sun elevation can be used to test if the sun has set or risen, it is dusk, it is night etc. when a trigger occurs. +For an in depth explanation of sun elevation see [sun elevation trigger][sun_elevation_trigger]. + +[sun_elevation_trigger]: /docs/automation/trigger/#sun-elevation-trigger + +```yaml +condition: + condition: and # 'twilight' condition: dusk and dawn, in typical locations + conditions: + - condition: template + value_template: {% raw %}'{{ states.sun.sun.attributes.elevation < 0 }}'{% endraw %} + - condition: template + value_template: {% raw %}'{{ states.sun.sun.attributes.elevation > -6 }}'{% endraw %} +``` + +```yaml +condition: + condition: template # 'night' condition: from dusk to dawn, in typical locations + value_template: {% raw %}'{{ states.sun.sun.attributes.elevation < -6 }}'{% endraw %} +``` + +#### {% linkable_title Sunset/sunrise condition %} + +The sun condition can also test if the sun has already set or risen when a trigger occurs. The `before` and `after` keys can only be set to `sunset` or `sunrise`. They have a corresponding optional offset value (`before_offset`, `after_offset`) that can be added, similar to the [sun trigger][sun_trigger]. [sun_trigger]: /docs/automation/trigger/#sun-trigger +

+The sunset/sunrise conditions do not work in locations inside the polar circles, and also not in locations with highly skewed local time zone. + +It is advised to use conditions evaluating the solar elevation instead of the before/after sunset/sunrise conditions. +

+ ```yaml condition: condition: sun diff --git a/source/_docs/scripts/editor.markdown b/source/_docs/scripts/editor.markdown index 9ccc8252d42..7a78f133856 100644 --- a/source/_docs/scripts/editor.markdown +++ b/source/_docs/scripts/editor.markdown @@ -18,7 +18,7 @@ In Home Assistant 0.52 we introduced the first version of our script editor. If ## {% linkable_title Updating your configuration to use the editor %} -The script editor reads and writes to the file `scripts.yaml` in your [configuration](/docs/configuration/) folder. Make sure that you have set up the script component to read from it: +The script editor reads and writes to the file `scripts.yaml` in your [configuration](/docs/configuration/) folder. Make sure that you have set up the script integration to read from it: ```yaml # Configuration.yaml example diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown index 616ef6ffd3e..05d222d9b64 100644 --- a/source/_docs/scripts/service-calls.markdown +++ b/source/_docs/scripts/service-calls.markdown @@ -10,11 +10,11 @@ footer: true redirect_from: /getting-started/scripts-service-calls/ --- -Various components allow calling services when a certain event occurs. The most common one is calling a service when an automation trigger happens. But a service can also be called from a script or via the Amazon Echo. +Various integrations allow calling services when a certain event occurs. The most common one is calling a service when an automation trigger happens. But a service can also be called from a script or via the Amazon Echo. -The configuration options to call a config are the same between all components and are described on this page. +The configuration options to call a config are the same between all integrations and are described on this page. -Examples on this page will be given as part of an automation component configuration but different approaches can be used for other components too. +Examples on this page will be given as part of an automation integration configuration but different approaches can be used for other integrations too.

Use the service developer tool in the frontend to discover available services. diff --git a/source/_docs/security.markdown b/source/_docs/security.markdown index 9f3c199703a..db321bb51fb 100644 --- a/source/_docs/security.markdown +++ b/source/_docs/security.markdown @@ -21,7 +21,7 @@ Further [details about the fingerprint/server banner](/docs/security/webserver/) ## {% linkable_title Porosity %} -The default port of Home Assistant is 8123. This is the port where the [`frontend`](/components/frontend/) and the [`API`](/components/api/) is served. Both are depending on the [`http`](/components/http/) component which contains the capability to adjust the settings like `server_host` or `server_port`. +The default port of Home Assistant is 8123. This is the port where the [`frontend`](/components/frontend/) and the [`API`](/components/api/) is served. Both are depending on the [`http`](/components/http/) integration which contains the capability to adjust the settings like `server_host` or `server_port`. See the [open ports](/docs/security/porosity/) of a Hass.io instance with various add-ons. diff --git a/source/_docs/tools/dev-tools.markdown b/source/_docs/tools/dev-tools.markdown index a8fd1310717..a5220b4a64a 100644 --- a/source/_docs/tools/dev-tools.markdown +++ b/source/_docs/tools/dev-tools.markdown @@ -18,7 +18,7 @@ Screenshot of Home Assistant's Developer Tools. | Section | Icon | Description | | ------- |------| ----- | -| Services | service developer tool icon | Calls services from components | +| Services | service developer tool icon | Calls services from integrations | | States | service developer tool icon | Sets the representation of an entity | | Events | service developer tool icon | Fires events | | Templates | service developer tool icon | Renders templates | @@ -31,7 +31,7 @@ The Developer Tools is meant for **all** (not just for the developers) to quickl This section is used to call Services that are available in the ServiceRegistry. -The list of services in the “Service” drop down are automatically populated based on the components that are found in the configuration, automation and script files. If a desired service does not exist, it means either the component is not configured properly or not defined in the configuration, automation or script files. +The list of services in the “Service” drop down are automatically populated based on the integrations that are found in the configuration, automation and script files. If a desired service does not exist, it means either the integration is not configured properly or not defined in the configuration, automation or script files. When a Service is selected, and if that service requires an `entity_id` to be passed, the “Entity” drop down will automatically be populated with corresponding entities. @@ -94,7 +94,7 @@ For more information about jinja2, visit [jinja2 documentation](http://jinja.poc {% linkable_title mqtt %} -This section is only visible if the MQTT component is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to the [mqtt](/components/mqtt/) component. +This section is only visible if the MQTT integration is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to the [mqtt](/components/mqtt/) component. Even though MQTT in general provides deeper functionality, the developer tools section of MQTT is limited to publishing messages to a given topic. It supports templates for the payload. To publish a message, simply specify the topic name and the payload and click “PUBLISH” button. diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index aacb9b3da27..94f6edb9c40 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -167,7 +167,7 @@ Some models of the Zooz Toggle switches ship with an instruction manual with inc ## {% linkable_title Central Scene configuration %} -To provide Central Scene support you need to shut Home Assistant down and modify your `zwcfg_*.xml` file according to the following guides. +To provide Central Scene support you need to **shutdown Home Assistant** and modify your `zwcfg_*.xml` file according to the following guides. ### {% linkable_title Inovelli Scene Capable On/Off and Dimmer Wall Switches %} @@ -386,7 +386,7 @@ Button four release|4|1 Use the same configuration as for the Aeotec Wallmote. -### {% linkable_title HANK One-key Scene Controller HKZN-SCN01 %} +### {% linkable_title HANK One-key Scene Controller HKZN-SCN01/HKZW-SCN01 %} For the HANK One-key Scene Controller, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: diff --git a/source/_docs/z-wave/devices.markdown b/source/_docs/z-wave/devices.markdown index e20afed3536..1c77a12e6f5 100644 --- a/source/_docs/z-wave/devices.markdown +++ b/source/_docs/z-wave/devices.markdown @@ -22,7 +22,7 @@ Many sensors and actors can directly control other devices through a capability The *node* is the presence of the device on the Z-Wave mesh. Once you've added a device to Home Assistant, the node is represented by an `entity_id` that starts with `zwave`. -The *entity* is an individual component of the node. It may be a sensor that you read from, or a control that you operate. For any node, there will be at least one entity (for the node itself) and if it exposes any controls or sensors there will be at least one entity per control or sensor. The [entities](/docs/z-wave/entities) that are created depend on the Command Class the device supports. +The *entity* is an individual integration of the node. It may be a sensor that you read from, or a control that you operate. For any node, there will be at least one entity (for the node itself) and if it exposes any controls or sensors there will be at least one entity per control or sensor. The [entities](/docs/z-wave/entities) that are created depend on the Command Class the device supports. ## {% linkable_title Z-Wave, Plus, Security 2 %} diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 7db0e78eb96..4c9e0812e8c 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -48,7 +48,7 @@ debug: type: boolean default: false autoheal: - description: Allows enabling auto Z-Wave heal at midnight. Warning, this is in efficient and [should not be used](https://github.com/home-assistant/architecture/issues/81#issuecomment-478444085). + description: Allows enabling auto Z-Wave heal at midnight. Warning, this is inefficient and [should not be used](https://github.com/home-assistant/architecture/issues/81#issuecomment-478444085). required: false type: boolean default: false @@ -68,12 +68,12 @@ device_config / device_config_domain / device_config_glob: type: integer default: 0 refresh_value: - description: Enable refreshing of the node value. Only the light component uses this. + description: Enable refreshing of the node value. Only the light integration uses this. required: false type: boolean default: false delay: - description: Specify the delay for refreshing of node value. Only the light component uses this. + description: Specify the delay for refreshing of node value. Only the light integration uses this. required: false type: integer default: 5 @@ -112,7 +112,7 @@ Ensure you keep a backup of this key. If you have to rebuild your system and don On platforms other than Hass.io and Docker, the compilation and installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed. -The first run after adding a device is when the `zwave` component will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process. +The first run after adding a device is when the `zwave` integration will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process. ## {% linkable_title Platform specific instructions %} @@ -128,6 +128,8 @@ You can also check what hardware has been found using the [hassio command](/hass $ hassio hardware info ``` +The `modemmanager` package will interfere with any Z-Wave (or Zigbee) stick and should be removed or disabled. Failure to do so will result in random failures of those components. For example you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager` + ### {% linkable_title Docker %} You do not need to install any software to use Z-Wave. @@ -144,6 +146,8 @@ If the path of `/dev/ttyACM0` doesn't work then you can find the path of the sti $ ls -1tr /dev/tty*|tail -n 1 ``` +The `modemmanager` package will interfere with any Z-Wave (or Zigbee) stick and should be removed or disabled. Failure to do so will result in random failures of those components. For example you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager` + ### {% linkable_title Hassbian %} You do not need to install any software to use Z-Wave. diff --git a/source/_docs/z-wave/services.markdown b/source/_docs/z-wave/services.markdown index 3c2e5f4664c..017c7844006 100644 --- a/source/_docs/z-wave/services.markdown +++ b/source/_docs/z-wave/services.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -The `zwave` component exposes multiple services to help maintain the network. All of these are available through the Z-Wave control panel. +The `zwave` integration exposes multiple services to help maintain the network. All of these are available through the Z-Wave control panel. | Service | Description | | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/source/_faq/component.markdown b/source/_faq/component.markdown index 9d4aaadff0b..1c8194ec1df 100644 --- a/source/_faq/component.markdown +++ b/source/_faq/component.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "My component does not show up" -description: "My component does not show up" +title: "My integration does not show up" +description: "My integration does not show up" date: 2017-06-18 09:00 comments: false sharing: true @@ -9,6 +9,6 @@ footer: true ha_category: Configuration --- -When a component does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your component you are trying to set up. +When a integration does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your integration you are trying to set up. If you have incorrect entries in your configuration files you can use the `check_config` script to assist in identifying them: `hass --script check_config`. diff --git a/source/_faq/problems-with-dependencies.markdown b/source/_faq/problems-with-dependencies.markdown index a2535ee7943..4af26ecc082 100644 --- a/source/_faq/problems-with-dependencies.markdown +++ b/source/_faq/problems-with-dependencies.markdown @@ -9,6 +9,6 @@ footer: true ha_category: Usage --- -Almost all components have external dependencies to communicate with your devices and services. Sometimes Home Assistant is unable to install the necessary dependencies. If this is the case, it should show up in `home-assistant.log`. +Almost all integrations have external dependencies to communicate with your devices and services. Sometimes Home Assistant is unable to install the necessary dependencies. If this is the case, it should show up in `home-assistant.log`. The first step is trying to restart Home Assistant and see if the problem persists. If it does, look at the log to see what the error is. If you can't figure it out, please [report it](https://github.com/home-assistant/home-assistant/issues) so we can investigate what is going on. diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index dddc682c23d..c6806297017 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -43,7 +43,7 @@ {%- if page.ha_config_flow -%}

- This component is configurable via UI + This integration is configurable via UI
{%- endif -%} diff --git a/source/_includes/custom/navigation.html b/source/_includes/custom/navigation.html index 6af93d4b49e..62da4e0523c 100644 --- a/source/_includes/custom/navigation.html +++ b/source/_includes/custom/navigation.html @@ -10,7 +10,7 @@ {% endcomment %}
  • Getting started
  • -
  • Components
  • +
  • Integrations
  • Docs
  • Examples
  • Blog
  • diff --git a/source/_lovelace/light.markdown b/source/_lovelace/light.markdown index a4d2fdbc786..a50186a67dd 100644 --- a/source/_lovelace/light.markdown +++ b/source/_lovelace/light.markdown @@ -11,7 +11,6 @@ footer: true --- The Light card allows you to change the brightness of the light. -Note: Long-press on the bulb to bring up the `more-info` dialog.

    Screenshot of the Light card diff --git a/source/_posts/2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown b/source/_posts/2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown index 81fd5620f0a..e6573538ed6 100644 --- a/source/_posts/2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown +++ b/source/_posts/2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown @@ -15,6 +15,10 @@ og_image: /images/blog/2017-05-hassbian-pi-zero/home_assistant_plus_rpi_600x315.

    +

    + ***This article is very outdated*** guide. If you follow it you will be installing a very outdated version of Hassbian, on a hardware platform only suitable for testing. ***We strongly recommend you do not follow this article***. +

    + Saw the [announcement](/blog/2017/04/30/hassbian-1.21-its-about-time/) yesterday for HASSbian 1.21 and got super excited? Today we'll flash the latest HASSbian to a [Raspberry Pi Zero W](https://www.raspberrypi.org/products/pi-zero/). diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown new file mode 100644 index 00000000000..f8c89eaf35e --- /dev/null +++ b/source/_posts/2019-06-05-release-94.markdown @@ -0,0 +1,733 @@ +--- +layout: post +title: "0.94: SmartHab, Watson TTS, Azure Event Hub" +description: "Onboarding: This is the first release that can be installed and configured without touching a text editor!" +date: 2019-06-05 04:11:03 +date_formatted: "June 5, 2019" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2019-06-release-94/google-ui.png +redirect_from: /blog/2019/05/29/release-94/ +--- + + + +It is time for the 0.94 release and there is some seriously good stuff in this release. We're working hard on polishing everything and getting ready for the big Home Assistant 1.0 release. And we're getting closer. So close actually, that this is the first release that can be installed and configured without touching a text editor! Onboard, configure integrations, manage automations and scripts all from the UI. + +
    + +
    + +This milestone has been achieved thanks to the hard work by [@emontnemery] who contributed the ability to store the core config in storage: name, location, unit system, time zone. We still allow users to store their core configuration in `configuration.yaml`, which will take precedent when defined. This means that it is a non-breaking change. Core config is now set during onboarding and can be edited in the general page of the config panel. + +Another cool new feature is the total revamp of how you manage which entities are exposed to Google Assistant via Home Assistant Cloud. From the cloud UI you can now click "Manage Entities" and you are brought to the Google Assistant entity manager. From here you can enable which entities are exposed and, if you deem appropriate, choose to disable the two factor authentication on your garage door (the asking for a pin). + +

    +Screenshot of the new user interface to manage which entities are exposed to Google Assistant. +Screenshot of the new user interface to manage which entities are exposed to Google Assistant. +

    + + + +## {% linkable_title Discovery %} + +Discovery has been modernized thanks to [@Kane610] and with the input from [@Jc2k]. Each integration is now able to specify how they can be discovered in their manifest, and the new `zeroconf` and `ssdp` integrations will do the rest. The new discovery is non-obtrusive: no devices are set up without approval by the user. Instead, you will need to approve each discovered integration. You can find them in the discovered section of the integrations page in the config. Only a handful of integrations have been migrated to the new approach in this release: Hue, LIFX, Deconz, Trådfri, Axis, ESPHome, HomeKit Controller. + +The new discovery is now part of the default config. If you are not using the default config, add `ssdp:` and `zeroconf:` to your configuration.yaml. + +## {% linkable_title Deprecating Python 3.5 support %} + +This release has deprecated support for the almost 4 year old version 3.5 of Python. The first Home Assistant release after August 1 will drop support. This is part of our newly adopted [Python support approach](https://github.com/home-assistant/architecture/blob/master/adr/0002-minimum-supported-python-version.md). + +This will only impact you if you are running a custom installation of Home Assistant. This will not impact anyone using Hass.io or Docker. If you are using hassbian, you can upgrade Python by following [these instructions](https://github.com/home-assistant/hassbian-scripts/blob/dev/docs/suites/python.md). + +## {% linkable_title Modernizing the device tracker %} + +This release also introduces a long overdue overhaul of how the device tracker works. We are introducing this overhaul piece by piece, focusing first on device tracker platforms that push their updates to Home Assistant: mobile app, OwnTracks, GeoFency, GPSLogger and Locative. + +These integrations will no longer use `known_devices.yaml` but instead use entities, like all other integrations in Home Assistant. You can change the name and entity ID via the UI. It is no longer posible to merge the devices with other device tracker entities, this includes using the `see` service. This was flaky at best. You should now use the new person integration for this. + +## {% linkable_title Improved hass.io builds %} + +We have been working hard on improving Hass.io builds. It's our goal to make the update process faster and more predictable. A build can now be online in as little as 30 minutes after a new release has been tagged. This is thanks to a new wheel-based infrastructure build by [@pvizeli] with input from [@frenck]. With Python wheels, we will build all the requirements of integrations ahead of time, and so a new version of Home Assistant is now just putting pieces together. + +Because of this, we changed how packages are installed when running Home Assistant inside a Docker container. It will now install the packages into the Python environment inside the container, instead of storing them in the `config/deps` folder, which lived outside the container. + +**Note:** Because of the new way packages are installed, Home Assistant on Hass.io will take longer to start the first time it is launched after an upgrade. Don't worry and let it finish! We are working on making this process faster in the future. + +**Note 2:** If you are using Hass.io or a dockerized version of Home Assistant, this release will one time clear the `deps` folder in your config folder. + +[@frenck]: https://github.com/frenck + +## {% linkable_title New Integrations %} + +- Adding Watson TTS (IBM Cloud) ([@rutkai] - [#23299]) ([watson_tts docs]) (new-integration) +- MCP23017 ([@jardiamj] - [#23127]) ([mcp23017 docs]) (new-integration) +- Solax Inverter Sensor Component ([@squishykid] - [#22579]) ([solax docs]) (new-integration) +- Add Remote RPi Component ([@jgriff2] - [#23518]) ([remote_rpi_gpio docs]) (new-integration) +- Azure Event Hub history component ([@eavanvalkenburg] - [#23878]) ([azure_event_hub docs]) (new-integration) +- Add SSDP integration ([@balloob] - [#24090]) ([default_config docs]) ([discovery docs]) ([hue docs]) ([ssdp docs]) ([zeroconf docs]) (new-integration) +- Add Repetier-Server Component ([@MTrab] - [#21658]) ([repetier docs]) (new-integration) + +## {% linkable_title New Platforms %} + +- Add LCN climate platform ([@alengwenus] - [#22542]) ([lcn docs]) (new-platform) +- Add incomfort climate and bump client ([@zxdavb] - [#23830]) ([incomfort docs]) (new-platform) +- Add new SmartHab light and cover platform ([@outadoc] - [#21225]) ([smarthab docs]) (new-platform) +- Add geniushub sensor and binary_sensor ([@zxdavb] - [#23811]) ([geniushub docs]) (new-platform) +- Mobile app to use device tracker config entry ([@balloob] - [#24238]) ([mobile_app docs]) (beta fix) (new-platform) + +## {% linkable_title Release 0.94.1 - June 7 %} + +- Add a discovery config flow to Wemo ([@balloob] - [#24208]) ([discovery docs]) ([wemo docs]) +- Initiate websession inside event loop ([@balloob] - [#24331]) ([tado docs]) +- Bump dependency ([@Kane610] - [#24376]) ([axis docs]) +- Updated pubnubsub-handler to 1.0.7 to fix crash on slow startup ([@w1ll1am23] - [#24388]) ([wink docs]) +- Fix automation failing to restore state ([@balloob] - [#24390]) ([automation docs]) +- Add more HomeKit models for discovery ([@balloob] - [#24391]) ([homekit_controller docs]) ([hue docs]) ([tradfri docs]) ([wemo docs]) +- Check cloud trusted proxies ([@balloob] - [#24395]) ([cloud docs]) ([http docs]) +- Fix for sun issues ([@Swamp-Ig] - [#24309]) ([sun docs]) +- deCONZ - properly identify configured bridge ([@Kane610] - [#24378]) ([deconz docs]) + +[#24208]: https://github.com/home-assistant/home-assistant/pull/24208 +[#24309]: https://github.com/home-assistant/home-assistant/pull/24309 +[#24331]: https://github.com/home-assistant/home-assistant/pull/24331 +[#24376]: https://github.com/home-assistant/home-assistant/pull/24376 +[#24378]: https://github.com/home-assistant/home-assistant/pull/24378 +[#24388]: https://github.com/home-assistant/home-assistant/pull/24388 +[#24390]: https://github.com/home-assistant/home-assistant/pull/24390 +[#24391]: https://github.com/home-assistant/home-assistant/pull/24391 +[#24395]: https://github.com/home-assistant/home-assistant/pull/24395 +[@Kane610]: https://github.com/Kane610 +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@balloob]: https://github.com/balloob +[@w1ll1am23]: https://github.com/w1ll1am23 +[automation docs]: /components/automation/ +[axis docs]: /components/axis/ +[cloud docs]: /components/cloud/ +[deconz docs]: /components/deconz/ +[discovery docs]: /components/discovery/ +[homekit_controller docs]: /components/homekit_controller/ +[http docs]: /components/http/ +[hue docs]: /components/hue/ +[sun docs]: /components/sun/ +[tado docs]: /components/tado/ +[tradfri docs]: /components/tradfri/ +[wemo docs]: /components/wemo/ +[wink docs]: /components/wink/ + +## {% linkable_title Release 0.94.2 - June 11 %} + +- Load the SSDP component only when it's needed ([@aerialls] - [#24420]) ([deconz docs]) ([hue docs]) +- Axis discovery MAC filter ([@Kane610] - [#24442]) ([axis docs]) +- Remember gpslogger entities across restarts (fixes #24432) ([@andkit] - [#24444]) ([gpslogger docs]) +- Update Hass.io when core config is updated ([@balloob] - [#24461]) ([hassio docs]) +- Sun listener to adapt to core config updates ([@balloob] - [#24464]) +- Update home zone when core config updated ([@balloob] - [#24237]) ([config docs]) ([zone docs]) + +[#24237]: https://github.com/home-assistant/home-assistant/pull/24237 +[#24420]: https://github.com/home-assistant/home-assistant/pull/24420 +[#24442]: https://github.com/home-assistant/home-assistant/pull/24442 +[#24444]: https://github.com/home-assistant/home-assistant/pull/24444 +[#24461]: https://github.com/home-assistant/home-assistant/pull/24461 +[#24464]: https://github.com/home-assistant/home-assistant/pull/24464 +[@Kane610]: https://github.com/Kane610 +[@aerialls]: https://github.com/aerialls +[@andkit]: https://github.com/andkit +[@balloob]: https://github.com/balloob +[axis docs]: /components/axis/ +[config docs]: /components/config/ +[deconz docs]: /components/deconz/ +[gpslogger docs]: /components/gpslogger/ +[hassio docs]: /components/hassio/ +[hue docs]: /components/hue/ +[zone docs]: /components/zone/ + +## {% linkable_title Release 0.94.3 - June 12 %} + +- Fix errors when renewing remote UI certs ([@balloob] - [#24481]) ([cloud docs]) +- Watson TTS: Fix missing comma preventing other voices ([@aidbish] - [#24487]) ([watson_tts docs]) +- Fix owntracks source_type for location messages with default trigger ([@pnbruckner] - [#24503]) ([owntracks docs]) + +[#24481]: https://github.com/home-assistant/home-assistant/pull/24481 +[#24487]: https://github.com/home-assistant/home-assistant/pull/24487 +[#24503]: https://github.com/home-assistant/home-assistant/pull/24503 +[@aidbish]: https://github.com/aidbish +[@balloob]: https://github.com/balloob +[@pnbruckner]: https://github.com/pnbruckner +[cloud docs]: /components/cloud/ +[owntracks docs]: /components/owntracks/ +[watson_tts docs]: /components/watson_tts/ + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + +## {% linkable_title Breaking Changes %} + +- __Sun__ - Inspired by a [reddit](https://www.reddit.com/r/homeassistant/comments/bm62hl/sunsun_chatty_sensor_psa/) report, the sun.sun sensor has been tuned so that it doesn't update nearly as frequently. Previously the sun.sun sensor was updating every 30 seconds, day and night. Now it updates dependent on the solar elevation. This could possibly be a breaking change for some users as it updates less frequently. ([@Swamp-Ig] - [#23832]) ([sun docs]) +- __Doorbird__ -_Refactored_- This change cleans up the code for the component quite a bit. Schedule manipulation has been removed and HTTP views have been consolidated. The configuration changes should result in an overall easier experience for setting up a Doorbird in HA and allow for new Doorbird events to be utilized without having to update the component as often. No changes for switches or camera integrations of this component. ([@oblogic7] - [#23892]) ([doorbird docs]) + + Example configuration: + ``` + doorbird: + devices: + - host: 10.10.10.10 + token: 12345678abcd + name: Side Entry + username: abcd1234 + password: abcd4321 + events: + - button_1 + - unit_1_button + - movement + - relay_1 + - lock_relay + ``` + + - __Plex__ + * Configuration option `include_non_clients` has been removed. The component was unnecessarily complicated with separate update methods for Plex devices and Plex sessions. This change always updates all known Plex clients regardless of type. The previous design also had issues where the Plex sessions are never polled if there are no Plex clients connected at startup and only 'session' client types connect after that point. This leads to a failure to discover new devices. This is a breaking change if the config option `include_non_clients` is being used since it has been removed. ([@jjlawren] - [#24038]) ([plex docs]) + + * Configuration options use_custom_entity_ids and entity_namespace have been removed. This change will prepend the display name (and therefore the default entity_id) of each newly created entity with 'Plex' for easy identification. Users may customize each display name and entity_id as desired via the Entity Registry. Entities created before this PR will not be affected as the unique_id remains the same. ([@jjlawren] - [#24072]) ([plex docs]) + +- __Verisure__ - Base entity_id of alarm_control_panel on alias of installation set by giid rather than first installation. This is a breaking change as it will change entity_id of alarm_control_panel in cases where a user is configuring an installation using giid that is not the first installation. ([@tkjacobsen] - [#23606]) ([verisure docs]) +- __Zestimate__ - Changed name property to return Zestimate and the property address. This will make it easier to distinguish multiple Zestimate sensor entities in the UI and is a breaking change as it will change entity_id of Zestimate sensors. If you have automations relying on your Zestimate sensor(s) you may need to revisit them to fix the ID's to the new ones. Also, you may need to update your Zestimate sensor(s) in your Lovelace UI. ([@dreed47] - [#23770]) ([zestimate docs]) + +- __Python__ - _Deprecation_ - Python 3.5.3 support will be removed in the first release after August 1, 2019. This release will print a warning if a soon to be unsupported Python version is used. A notification will be present if Home Assistant is run under 3.6.0. ([@balloob] - [#24177]) +- __Async__ - _Developers only_ - `hass.components.frontend.async_register_built_in_panel` is no longer an async function. This allows removing panels form the frontend on the fly, and fires and event when panels are added/removed so the frontend knows when to reload. ([@balloob] - [#24184]) +- __TP-Link__ - _Distress Signal_ - Add a deprecation warning for tplink device_tracker ([@rytilahti] - [#24236]) ([tplink docs]) + +## {% linkable_title Beta Fixes %} + +- Dynamic panels ([@balloob] - [#24184]) (breaking change) (beta fix) +- Fix ESPHome discovered when already exists ([@OttoWinter] - [#24187]) ([esphome docs]) (beta fix) +- homekit_controller no longer logs with transient network errors causing crypto failures as it will auto recover ([@Jc2k] - [#24193]) ([homekit_controller docs]) (beta fix) +- Update hass-nabucasa ([@balloob] - [#24197]) ([cloud docs]) (beta fix) +- Bump oauthlib version ([@therve] - [#24111]) ([fitbit docs]) (beta fix) +- Allow discovery flows to be discovered via zeroconf/ssdp ([@balloob] - [#24199]) (beta fix) +- Instantiate lock inside event loop ([@balloob] - [#24203]) (beta fix) +- Improve error handling ([@balloob] - [#24204]) ([ssdp docs]) (beta fix) +- Axis - Handle Vapix error messages ([@Kane610] - [#24215]) ([axis docs]) (beta fix) +- Don't follow redirect on ingress itself ([@pvizeli] - [#24218]) ([hassio docs]) (beta fix) +- Use resource for index routing. ([@balloob] - [#24223]) ([frontend docs]) (beta fix) +- Add manifest support for homekit discovery ([@balloob] - [#24225]) ([lifx docs]) ([zeroconf docs]) (beta fix) +- Log HomeKit model ([@balloob] - [#24229]) ([homekit_controller docs]) (beta fix) +- Don't allow more than one config flow per discovered Axis device ([@Kane610] - [#24230]) ([axis docs]) (beta fix) +- Add GPSLogger device_info and unique_id ([@balloob] - [#24231]) ([gpslogger docs]) (beta fix) +- GeoFency unique ID and device info ([@balloob] - [#24232]) ([geofency docs]) (beta fix) +- add a deprecation warning for tplink device_tracker ([@rytilahti] - [#24236]) ([tplink docs]) (breaking change) (beta fix) +- Mobile app to use device tracker config entry ([@balloob] - [#24238]) ([mobile_app docs]) (beta fix) (new-platform) +- Do not use the cache dir for PIP installs ([@balloob] - [#24233]) (beta fix) +- Add restore state to OwnTracks device tracker ([@balloob] - [#24256]) ([owntracks docs]) (beta fix) +- Mobile app device tracker to restore state ([@balloob] - [#24266]) ([mobile_app docs]) (beta fix) +- Add restore state to Geofency ([@balloob] - [#24268]) ([geofency docs]) (beta fix) +- deCONZ migrate to SSDP discovery ([@Kane610] - [#24252]) ([deconz docs]) ([hue docs]) ([ssdp docs]) (beta fix) +- Add temperature sensor support to google smarthome thermostat device ([@piitaya] - [#24264]) ([google_assistant docs]) (beta fix) +- Bump aioesphomeapi to 2.1.0 ([@OttoWinter] - [#24278]) ([esphome docs]) (beta fix) +- Fix cors on the index view ([@balloob] - [#24283]) ([http docs]) (beta fix) +- Remove deps folder in config when on Docker ([@balloob] - [#24284]) (beta fix) +- Guard against bad states in Mobile App/OwnTracks ([@balloob] - [#24292]) ([mobile_app docs]) ([owntracks docs]) (beta fix) +- Create progress file for pip installs ([@pvizeli] - [#24297]) (beta fix) +- Run SSDP discovery in parallel ([@balloob] - [#24299]) ([ssdp docs]) (beta fix) +- Upgrade Zeroconf to 0.23 ([@balloob] - [#24300]) ([zeroconf docs]) (beta fix) +- address is deprecated in favor of addresses ([@Kane610] - [#24302]) ([zeroconf docs]) (beta fix) +- Fix OwnTracks race condition ([@balloob] - [#24303]) ([owntracks docs]) (beta fix) + +## {% linkable_title All changes %} + +- Add Presence Detector Indoor to Homematic IP ([@SukramJ] - [#23755]) ([homematicip_cloud docs]) +- Split up yaml loaders into multiple files ([@ties] - [#23774]) +- Add config entry for IQVIA ([@bachya] - [#23765]) ([iqvia docs]) +- Add stepped volume to demo ([@elupus] - [#23759]) ([demo docs]) +- Add battery binary sensor to homematic ([@sander76] - [#23067]) ([homematic docs]) +- fix two times creating JWT headers. ([@pszafer] - [#23777]) ([html5 docs]) +- Bumped keenetic NDMS2 client version ([@foxel] - [#23786]) ([keenetic_ndms2 docs]) +- Add support for an external step in config flow ([@balloob] - [#23782]) +- Centralize geniushub updates ([@zxdavb] - [#23764]) ([geniushub docs]) +- Move tests to right folder ([@balloob] - [#23790]) +- Add LCN climate platform ([@alengwenus] - [#22542]) ([lcn docs]) (new-platform) +- Bump venstarcolortouch to v0.7 ([@stbenjam] - [#23806]) ([venstar docs]) +- Upgrade youtube_dl to 2019.05.11 ([@fabaff] - [#23808]) ([media_extractor docs]) +- Bump pyotgw to 0.4b4, fix Opentherm Gateway name in manifest.json ([@mvn23] - [#23810]) ([opentherm_gw docs]) +- Fix patching right import ([@balloob] - [#23816]) +- Add incomfort climate and bump client ([@zxdavb] - [#23830]) ([incomfort docs]) (new-platform) +- Make broadlink switch restore its state ([@akloeckner] - [#23829]) ([broadlink docs]) +- Catch import error when processing config ([@balloob] - [#23833]) +- Remove badges from README [skipci] ([@balloob] - [#23815]) +- HomeKit Controller: Adopt config entries for pairing with homekit accessories ([@Jc2k] - [#23825]) ([discovery docs]) ([homekit_controller docs]) +- Automatically generate config flow list ([@balloob] - [#23802]) +- Add new SmartHab light and cover platform ([@outadoc] - [#21225]) ([smarthab docs]) (new-platform) +- Daikin adaptions for AirBase units ([@fredrike] - [#23734]) ([daikin docs]) +- Fix for battery device: new_device referenced before assignment. ([@sander76] - [#23793]) ([homematic docs]) +- Better handle large amounts of data being sent over WS ([@balloob] - [#23842]) ([camera docs]) ([lovelace docs]) ([media_player docs]) ([websocket_api docs]) +- Zeroconf - replace library ([@Kane610] - [#23835]) ([zeroconf docs]) +- WS: Improve service calling errors ([@balloob] - [#23840]) ([script docs]) ([websocket_api docs]) +- Allow deletion of automations and scripts ([@balloob] - [#23845]) ([config docs]) +- Use Cloudhooks for OwnTracks ([@balloob] - [#23847]) ([owntracks docs]) +- Fix aiohttp response serialize ([@balloob] - [#23858]) ([cloud docs]) +- Add geniushub sensor and binary_sensor ([@zxdavb] - [#23811]) ([geniushub docs]) (new-platform) +- Quiet the chatty sun.sun ([@Swamp-Ig] - [#23832]) ([sun docs]) (breaking change) +- Take code owner for sun.sun ([@Swamp-Ig] - [#23877]) ([sun docs]) +- Fix homekit test assert no messages ([@scop] - [#23856]) +- Restructure device tracker ([@balloob] - [#23862]) ([device_tracker docs]) +- Update Pynetgear to v0.6.1 ([@starkillerOG] - [#23886]) ([netgear docs]) +- Fix ecobee 3 homekit pairing ([@Jc2k] - [#23882]) ([homekit_controller docs]) +- Enable Homematic IP cloud climate device with HeatingThermostat only ([@SukramJ] - [#23776]) ([homematicip_cloud docs]) +- Load HA core config from storage ([@emontnemery] - [#23872]) +- Netatmo, handle offline device ([@Danielhiversen] - [#23907]) ([netatmo docs]) +- [WIP] Simplify zeroconf ([@robbiet480] - [#23890]) ([zeroconf docs]) +- Version bump insteonplm to 0.15.4 ([@nugget] - [#23918]) +- Fix bug when IQVIA API fails to return data ([@bachya] - [#23916]) ([iqvia docs]) +- Fix icons for homekit_controller sensors ([@Jc2k] - [#23921]) ([homekit_controller docs]) +- Fix additional IQVIA data bug ([@bachya] - [#23931]) ([iqvia docs]) +- Have homekit_controller use device registry ([@Jc2k] - [#23874]) ([homekit_controller docs]) +- Fix for non existing Daikin zones ([@fredrike] - [#23792]) ([daikin docs]) +- Fix fan rates for Daikin ([@fredrike] - [#23860]) ([daikin docs]) +- Added support for sensor other than temperature and humidity ([@Bouni] - [#23863]) ([spaceapi docs]) +- Add unit of measurement to Tautulli sensor ([@SiliconAvatar] - [#23873]) ([tautulli docs]) +- Update requests to 2.22.0 ([@BKPepe] - [#23958]) +- show battery level also when vacuum has no map support ([@adrianschroeter] - [#23947]) ([neato docs]) +- Upate xiaomi voltage parser, fix #23898 ([@Danielhiversen] - [#23962]) ([xiaomi_aqara docs]) +- Doorbird Refactor ([@oblogic7] - [#23892]) ([doorbird docs]) (breaking change) +- Update russound_rio dependency to version 0.1.7 ([@wickerwaka] - [#23973]) ([russound_rio docs]) +- Adding Watson TTS (IBM Cloud) ([@rutkai] - [#23299]) ([watson_tts docs]) (new-integration) +- Entity Cleanup on Z-Wave node removal ([@cgarwood] - [#23633]) ([zwave docs]) +- Use the timezone defined in Home Assistant when making the API call ([@ludeeus] - [#23284]) ([vasttrafik docs]) +- Updated non-blocking timout to 10 seconds for fixing timeout issues. ([@TomerFi] - [#23930]) ([switcher_kis docs]) +- Delete devices / entities when we remove a config entry. ([@Swamp-Ig] - [#23983]) +- Better handle file not found when loading YAML ([@balloob] - [#23908]) ([apns docs]) ([http docs]) +- daikin version bump ([@fredrike] - [#23991]) ([daikin docs]) +- Bump loopenergy library version - catches runtime exception. ([@pavoni] - [#23989]) ([loopenergy docs]) +- Update owner frontend integrations [skip ci] ([@balloob] - [#24001]) ([frontend docs]) ([lovelace docs]) ([panel_custom docs]) ([panel_iframe docs]) +- Axis IO-port support ([@Kane610] - [#23312]) ([axis docs]) +- Fire event when core config is updated ([@emontnemery] - [#23922]) +- Update CODEOWNERS ([@emontnemery] - [#24015]) +- Add websocket API for updating core config ([@emontnemery] - [#24009]) ([config docs]) +- Add geniushub sensors for issues ([@zxdavb] - [#23976]) ([geniushub docs]) +- Fix iterating over NoneType exception ([@iamtpage] - [#23648]) ([darksky docs]) +- bump geniushub-client to 0.4.9 ([@zxdavb] - [#24022]) ([geniushub docs]) +- Zeroconf discovery for config entries ([@Kane610] - [#23919]) ([axis docs]) ([zeroconf docs]) +- Improve yeelight imports ([@zewelor] - [#24020]) ([yeelight docs]) +- Downgrade Hue warning ([@balloob] - [#24033]) ([hue docs]) +- Ambiclimate test, mock ([@Danielhiversen] - [#24034]) +- Upgrade Mastodon.py to 1.4.2 ([@fabaff] - [#24004]) ([mastodon docs]) +- Require core config detection to be triggerd manually ([@balloob] - [#24019]) ([config docs]) ([onboarding docs]) +- Don't pass in loop ([@balloob] - [#23984]) +- Update ambiclimate library ([@Danielhiversen] - [#24049]) ([ambiclimate docs]) +- ESPHome component to use zeroconf discovery ([@Kane610] - [#24043]) ([esphome docs]) +- Add support for available property for broadlink ([@Danielhiversen] - [#23981]) ([broadlink docs]) +- Always update all Plex client types ([@jjlawren] - [#24038]) ([plex docs]) (breaking change) +- Convert stream source to method ([@balloob] - [#23905]) +- Fix entity id naming when not using first install ([@tkjacobsen] - [#23606]) ([verisure docs]) (breaking change) +- Daikin airbase beta fixes ([@fredrike] - [#24050]) ([daikin docs]) +- Better logging of method used for ADB connection ([@JeffLIrion] - [#24037]) ([androidtv docs]) +- Fix zeroconf sorting ([@balloob] - [#24068]) +- Rfxtrx, add data types ([@Danielhiversen] - [#24066]) ([rfxtrx docs]) +- Update the name of Zestimate sensors ([@dreed47] - [#23770]) ([zestimate docs]) (breaking change) +- Added possibility to define the data type of Homematic ([@p0l0] - [#24078]) ([homematic docs]) +- Add 'adb_response' attribute to Android TV / Fire TV ([@JeffLIrion] - [#23960]) ([androidtv docs]) +- Adjust logging ([@elupus] - [#24082]) +- Fix Hue bridge timeout ([@terual] - [#24084]) ([hue docs]) +- MCP23017 ([@jardiamj] - [#23127]) ([mcp23017 docs]) (new-integration) +- Remove device tracker unnecessary separate except clause ([@elupus] - [#24081]) ([device_tracker docs]) +- Refactoring of LCN component ([@alengwenus] - [#23824]) ([lcn docs]) +- Update code owner for Xiaomi TV ([@simse] - [#24102]) ([xiaomi_tv docs]) +- Issue #23514 - fix invalid hue response ([@techfreek] - [#23909]) ([emulated_hue docs]) +- Config entry device tracker ([@balloob] - [#24040]) ([device_tracker docs]) ([geofency docs]) ([gpslogger docs]) ([icloud docs]) ([locative docs]) ([owntracks docs]) ([zone docs]) +- Solax Inverter Sensor Component ([@squishykid] - [#22579]) ([solax docs]) (new-integration) +- Set assumed_state property to True. ([@jardiamj] - [#24118]) ([mcp23017 docs]) +- Remove custom entity_id naming ([@jjlawren] - [#24072]) ([plex docs]) (breaking change) +- Move imports to top ([@andrewsayre] - [#24108]) ([heos docs]) +- Use name in ESPHome discovery title ([@OttoWinter] - [#24100]) +- Add Remote RPi Component ([@jgriff2] - [#23518]) ([remote_rpi_gpio docs]) (new-integration) +- Azure Event Hub history component ([@eavanvalkenburg] - [#23878]) ([azure_event_hub docs]) (new-integration) +- geniushub: fix sensor battery level, and bump client ([@zxdavb] - [#24123]) ([geniushub docs]) +- Use importlib metadata to check installed packages ([@balloob] - [#24114]) +- Avoid useless Sonos state updates ([@amelchio] - [#24135]) ([sonos docs]) +- Add SSDP integration ([@balloob] - [#24090]) ([default_config docs]) ([discovery docs]) ([hue docs]) ([ssdp docs]) ([zeroconf docs]) (new-integration) +- Lovelace: Fire event on save ([@bramkragten] - [#24104]) ([lovelace docs]) +- Use central polling to update entities ([@jjlawren] - [#24059]) ([plex docs]) +- Library refactorization of deCONZ ([@Kane610] - [#23725]) ([deconz docs]) +- Retrieve wire and wireless devices with the SRM device tracker ([@aerialls] - [#24117]) ([synology_srm docs]) +- bump dependency envoy_reader to 0.4 ([@jesserizzo] - [#24145]) ([enphase_envoy docs]) +- Debug log when polling ZHA light. ([@Adminiuga] - [#24167]) ([zha docs]) +- Upgrade huawei-lte-api to 1.2.0 ([@chmielowiec] - [#24165]) ([huawei_lte docs]) +- Use device name for device_tracker entry ([@robbiet480] - [#24155]) ([mobile_app docs]) +- Use global imports for ESPHome ([@OttoWinter] - [#24158]) ([esphome docs]) +- Add Repetier-Server Component ([@MTrab] - [#21658]) ([repetier docs]) (new-integration) +- Cloud: Websocket API to manage Google assistant entity config ([@balloob] - [#24153]) ([cloud docs]) ([google_assistant docs]) +- Fix calling notify.notify with mobile_app targets in play. Fixes #24064 ([@robbiet480] - [#24156]) ([mobile_app docs]) +- Remove unused Sonos turn on/off methods ([@amelchio] - [#24174]) ([sonos docs]) +- Reinstate passing loop to DSMR ([@balloob] - [#24127]) ([dsmr docs]) +- Trådfri component to use new zeroconf discovery ([@Kane610] - [#24041]) ([discovery docs]) ([tradfri docs]) +- Move Homekit controller component to user zeroconf discovery ([@Kane610] - [#24042]) ([discovery docs]) ([homekit_controller docs]) +- Revert Zeroconf back to previously used library ([@Kane610] - [#24139]) ([zeroconf docs]) +- Deprecate Python 3.5.3 ([@balloob] - [#24177]) (breaking change) +- Keep integrations in discovery ([@Kane610] - [#24179]) ([discovery docs]) +- Avoid slow updates with unavailable Sonos devices ([@amelchio] - [#24180]) ([sonos docs]) +- Support Hass.io wheels / docker env ([@pvizeli] - [#24175]) +- Remove discovery from initial config ([@balloob] - [#24183]) +- Fix duplicated discovered homekit devices ([@Jc2k] - [#24178]) ([homekit_controller docs]) +- Add service calls for LCN component ([@alengwenus] - [#24105]) ([lcn docs]) +- Update azure-pipelines.yml for check version ([@pvizeli] - [#24194]) +- Dynamic panels ([@balloob] - [#24184]) (breaking change) (beta fix) +- Fix ESPHome discovered when already exists ([@OttoWinter] - [#24187]) ([esphome docs]) (beta fix) +- homekit_controller no longer logs with transient network errors causing crypto failures as it will auto recover ([@Jc2k] - [#24193]) ([homekit_controller docs]) (beta fix) +- Update hass-nabucasa ([@balloob] - [#24197]) ([cloud docs]) (beta fix) +- Fix ESPHome config flow with invalid config entry ([@OttoWinter] - [#24213]) ([esphome docs]) +- Bump oauthlib version ([@therve] - [#24111]) ([fitbit docs]) (beta fix) +- Allow discovery flows to be discovered via zeroconf/ssdp ([@balloob] - [#24199]) (beta fix) +- Instantiate lock inside event loop ([@balloob] - [#24203]) (beta fix) +- Improve error handling ([@balloob] - [#24204]) ([ssdp docs]) (beta fix) +- Axis - Handle Vapix error messages ([@Kane610] - [#24215]) ([axis docs]) (beta fix) +- Don't follow redirect on ingress itself ([@pvizeli] - [#24218]) ([hassio docs]) (beta fix) +- Use resource for index routing. ([@balloob] - [#24223]) ([frontend docs]) (beta fix) +- Add manifest support for homekit discovery ([@balloob] - [#24225]) ([lifx docs]) ([zeroconf docs]) (beta fix) +- Log HomeKit model ([@balloob] - [#24229]) ([homekit_controller docs]) (beta fix) +- Don't allow more than one config flow per discovered Axis device ([@Kane610] - [#24230]) ([axis docs]) (beta fix) +- Add GPSLogger device_info and unique_id ([@balloob] - [#24231]) ([gpslogger docs]) (beta fix) +- GeoFency unique ID and device info ([@balloob] - [#24232]) ([geofency docs]) (beta fix) +- add a deprecation warning for tplink device_tracker ([@rytilahti] - [#24236]) ([tplink docs]) (breaking change) (beta fix) +- Mobile app to use device tracker config entry ([@balloob] - [#24238]) ([mobile_app docs]) (beta fix) (new-platform) +- Do not use the cache dir for PIP installs ([@balloob] - [#24233]) (beta fix) +- Add restore state to OwnTracks device tracker ([@balloob] - [#24256]) ([owntracks docs]) (beta fix) +- Mobile app device tracker to restore state ([@balloob] - [#24266]) ([mobile_app docs]) (beta fix) +- Add restore state to Geofency ([@balloob] - [#24268]) ([geofency docs]) (beta fix) +- deCONZ migrate to SSDP discovery ([@Kane610] - [#24252]) ([deconz docs]) ([hue docs]) ([ssdp docs]) (beta fix) +- Add temperature sensor support to google smarthome thermostat device ([@piitaya] - [#24264]) ([google_assistant docs]) (beta fix) +- Bump aioesphomeapi to 2.1.0 ([@OttoWinter] - [#24278]) ([esphome docs]) (beta fix) +- Fix cors on the index view ([@balloob] - [#24283]) ([http docs]) (beta fix) +- Remove deps folder in config when on Docker ([@balloob] - [#24284]) (beta fix) +- Guard against bad states in Mobile App/OwnTracks ([@balloob] - [#24292]) ([mobile_app docs]) ([owntracks docs]) (beta fix) +- Create progress file for pip installs ([@pvizeli] - [#24297]) (beta fix) +- Run SSDP discovery in parallel ([@balloob] - [#24299]) ([ssdp docs]) (beta fix) +- Upgrade Zeroconf to 0.23 ([@balloob] - [#24300]) ([zeroconf docs]) (beta fix) +- address is deprecated in favor of addresses ([@Kane610] - [#24302]) ([zeroconf docs]) (beta fix) +- Fix OwnTracks race condition ([@balloob] - [#24303]) ([owntracks docs]) (beta fix) + +[#21225]: https://github.com/home-assistant/home-assistant/pull/21225 +[#21658]: https://github.com/home-assistant/home-assistant/pull/21658 +[#22542]: https://github.com/home-assistant/home-assistant/pull/22542 +[#22579]: https://github.com/home-assistant/home-assistant/pull/22579 +[#23067]: https://github.com/home-assistant/home-assistant/pull/23067 +[#23127]: https://github.com/home-assistant/home-assistant/pull/23127 +[#23284]: https://github.com/home-assistant/home-assistant/pull/23284 +[#23299]: https://github.com/home-assistant/home-assistant/pull/23299 +[#23312]: https://github.com/home-assistant/home-assistant/pull/23312 +[#23518]: https://github.com/home-assistant/home-assistant/pull/23518 +[#23606]: https://github.com/home-assistant/home-assistant/pull/23606 +[#23633]: https://github.com/home-assistant/home-assistant/pull/23633 +[#23648]: https://github.com/home-assistant/home-assistant/pull/23648 +[#23725]: https://github.com/home-assistant/home-assistant/pull/23725 +[#23734]: https://github.com/home-assistant/home-assistant/pull/23734 +[#23755]: https://github.com/home-assistant/home-assistant/pull/23755 +[#23759]: https://github.com/home-assistant/home-assistant/pull/23759 +[#23764]: https://github.com/home-assistant/home-assistant/pull/23764 +[#23765]: https://github.com/home-assistant/home-assistant/pull/23765 +[#23770]: https://github.com/home-assistant/home-assistant/pull/23770 +[#23774]: https://github.com/home-assistant/home-assistant/pull/23774 +[#23776]: https://github.com/home-assistant/home-assistant/pull/23776 +[#23777]: https://github.com/home-assistant/home-assistant/pull/23777 +[#23782]: https://github.com/home-assistant/home-assistant/pull/23782 +[#23786]: https://github.com/home-assistant/home-assistant/pull/23786 +[#23790]: https://github.com/home-assistant/home-assistant/pull/23790 +[#23792]: https://github.com/home-assistant/home-assistant/pull/23792 +[#23793]: https://github.com/home-assistant/home-assistant/pull/23793 +[#23802]: https://github.com/home-assistant/home-assistant/pull/23802 +[#23806]: https://github.com/home-assistant/home-assistant/pull/23806 +[#23808]: https://github.com/home-assistant/home-assistant/pull/23808 +[#23810]: https://github.com/home-assistant/home-assistant/pull/23810 +[#23811]: https://github.com/home-assistant/home-assistant/pull/23811 +[#23815]: https://github.com/home-assistant/home-assistant/pull/23815 +[#23816]: https://github.com/home-assistant/home-assistant/pull/23816 +[#23824]: https://github.com/home-assistant/home-assistant/pull/23824 +[#23825]: https://github.com/home-assistant/home-assistant/pull/23825 +[#23829]: https://github.com/home-assistant/home-assistant/pull/23829 +[#23830]: https://github.com/home-assistant/home-assistant/pull/23830 +[#23832]: https://github.com/home-assistant/home-assistant/pull/23832 +[#23833]: https://github.com/home-assistant/home-assistant/pull/23833 +[#23835]: https://github.com/home-assistant/home-assistant/pull/23835 +[#23840]: https://github.com/home-assistant/home-assistant/pull/23840 +[#23842]: https://github.com/home-assistant/home-assistant/pull/23842 +[#23845]: https://github.com/home-assistant/home-assistant/pull/23845 +[#23847]: https://github.com/home-assistant/home-assistant/pull/23847 +[#23856]: https://github.com/home-assistant/home-assistant/pull/23856 +[#23858]: https://github.com/home-assistant/home-assistant/pull/23858 +[#23860]: https://github.com/home-assistant/home-assistant/pull/23860 +[#23862]: https://github.com/home-assistant/home-assistant/pull/23862 +[#23863]: https://github.com/home-assistant/home-assistant/pull/23863 +[#23872]: https://github.com/home-assistant/home-assistant/pull/23872 +[#23873]: https://github.com/home-assistant/home-assistant/pull/23873 +[#23874]: https://github.com/home-assistant/home-assistant/pull/23874 +[#23877]: https://github.com/home-assistant/home-assistant/pull/23877 +[#23878]: https://github.com/home-assistant/home-assistant/pull/23878 +[#23882]: https://github.com/home-assistant/home-assistant/pull/23882 +[#23886]: https://github.com/home-assistant/home-assistant/pull/23886 +[#23890]: https://github.com/home-assistant/home-assistant/pull/23890 +[#23892]: https://github.com/home-assistant/home-assistant/pull/23892 +[#23905]: https://github.com/home-assistant/home-assistant/pull/23905 +[#23907]: https://github.com/home-assistant/home-assistant/pull/23907 +[#23908]: https://github.com/home-assistant/home-assistant/pull/23908 +[#23909]: https://github.com/home-assistant/home-assistant/pull/23909 +[#23916]: https://github.com/home-assistant/home-assistant/pull/23916 +[#23918]: https://github.com/home-assistant/home-assistant/pull/23918 +[#23919]: https://github.com/home-assistant/home-assistant/pull/23919 +[#23921]: https://github.com/home-assistant/home-assistant/pull/23921 +[#23922]: https://github.com/home-assistant/home-assistant/pull/23922 +[#23930]: https://github.com/home-assistant/home-assistant/pull/23930 +[#23931]: https://github.com/home-assistant/home-assistant/pull/23931 +[#23947]: https://github.com/home-assistant/home-assistant/pull/23947 +[#23958]: https://github.com/home-assistant/home-assistant/pull/23958 +[#23960]: https://github.com/home-assistant/home-assistant/pull/23960 +[#23962]: https://github.com/home-assistant/home-assistant/pull/23962 +[#23973]: https://github.com/home-assistant/home-assistant/pull/23973 +[#23976]: https://github.com/home-assistant/home-assistant/pull/23976 +[#23981]: https://github.com/home-assistant/home-assistant/pull/23981 +[#23983]: https://github.com/home-assistant/home-assistant/pull/23983 +[#23984]: https://github.com/home-assistant/home-assistant/pull/23984 +[#23989]: https://github.com/home-assistant/home-assistant/pull/23989 +[#23991]: https://github.com/home-assistant/home-assistant/pull/23991 +[#24001]: https://github.com/home-assistant/home-assistant/pull/24001 +[#24004]: https://github.com/home-assistant/home-assistant/pull/24004 +[#24009]: https://github.com/home-assistant/home-assistant/pull/24009 +[#24015]: https://github.com/home-assistant/home-assistant/pull/24015 +[#24019]: https://github.com/home-assistant/home-assistant/pull/24019 +[#24020]: https://github.com/home-assistant/home-assistant/pull/24020 +[#24022]: https://github.com/home-assistant/home-assistant/pull/24022 +[#24033]: https://github.com/home-assistant/home-assistant/pull/24033 +[#24034]: https://github.com/home-assistant/home-assistant/pull/24034 +[#24037]: https://github.com/home-assistant/home-assistant/pull/24037 +[#24038]: https://github.com/home-assistant/home-assistant/pull/24038 +[#24040]: https://github.com/home-assistant/home-assistant/pull/24040 +[#24041]: https://github.com/home-assistant/home-assistant/pull/24041 +[#24042]: https://github.com/home-assistant/home-assistant/pull/24042 +[#24043]: https://github.com/home-assistant/home-assistant/pull/24043 +[#24049]: https://github.com/home-assistant/home-assistant/pull/24049 +[#24050]: https://github.com/home-assistant/home-assistant/pull/24050 +[#24059]: https://github.com/home-assistant/home-assistant/pull/24059 +[#24066]: https://github.com/home-assistant/home-assistant/pull/24066 +[#24068]: https://github.com/home-assistant/home-assistant/pull/24068 +[#24072]: https://github.com/home-assistant/home-assistant/pull/24072 +[#24078]: https://github.com/home-assistant/home-assistant/pull/24078 +[#24081]: https://github.com/home-assistant/home-assistant/pull/24081 +[#24082]: https://github.com/home-assistant/home-assistant/pull/24082 +[#24084]: https://github.com/home-assistant/home-assistant/pull/24084 +[#24090]: https://github.com/home-assistant/home-assistant/pull/24090 +[#24100]: https://github.com/home-assistant/home-assistant/pull/24100 +[#24102]: https://github.com/home-assistant/home-assistant/pull/24102 +[#24104]: https://github.com/home-assistant/home-assistant/pull/24104 +[#24105]: https://github.com/home-assistant/home-assistant/pull/24105 +[#24108]: https://github.com/home-assistant/home-assistant/pull/24108 +[#24111]: https://github.com/home-assistant/home-assistant/pull/24111 +[#24114]: https://github.com/home-assistant/home-assistant/pull/24114 +[#24117]: https://github.com/home-assistant/home-assistant/pull/24117 +[#24118]: https://github.com/home-assistant/home-assistant/pull/24118 +[#24123]: https://github.com/home-assistant/home-assistant/pull/24123 +[#24127]: https://github.com/home-assistant/home-assistant/pull/24127 +[#24135]: https://github.com/home-assistant/home-assistant/pull/24135 +[#24139]: https://github.com/home-assistant/home-assistant/pull/24139 +[#24145]: https://github.com/home-assistant/home-assistant/pull/24145 +[#24153]: https://github.com/home-assistant/home-assistant/pull/24153 +[#24155]: https://github.com/home-assistant/home-assistant/pull/24155 +[#24156]: https://github.com/home-assistant/home-assistant/pull/24156 +[#24158]: https://github.com/home-assistant/home-assistant/pull/24158 +[#24165]: https://github.com/home-assistant/home-assistant/pull/24165 +[#24167]: https://github.com/home-assistant/home-assistant/pull/24167 +[#24174]: https://github.com/home-assistant/home-assistant/pull/24174 +[#24175]: https://github.com/home-assistant/home-assistant/pull/24175 +[#24177]: https://github.com/home-assistant/home-assistant/pull/24177 +[#24178]: https://github.com/home-assistant/home-assistant/pull/24178 +[#24179]: https://github.com/home-assistant/home-assistant/pull/24179 +[#24180]: https://github.com/home-assistant/home-assistant/pull/24180 +[#24183]: https://github.com/home-assistant/home-assistant/pull/24183 +[#24184]: https://github.com/home-assistant/home-assistant/pull/24184 +[#24187]: https://github.com/home-assistant/home-assistant/pull/24187 +[#24193]: https://github.com/home-assistant/home-assistant/pull/24193 +[#24194]: https://github.com/home-assistant/home-assistant/pull/24194 +[#24197]: https://github.com/home-assistant/home-assistant/pull/24197 +[#24199]: https://github.com/home-assistant/home-assistant/pull/24199 +[#24203]: https://github.com/home-assistant/home-assistant/pull/24203 +[#24204]: https://github.com/home-assistant/home-assistant/pull/24204 +[#24213]: https://github.com/home-assistant/home-assistant/pull/24213 +[#24215]: https://github.com/home-assistant/home-assistant/pull/24215 +[#24218]: https://github.com/home-assistant/home-assistant/pull/24218 +[#24223]: https://github.com/home-assistant/home-assistant/pull/24223 +[#24225]: https://github.com/home-assistant/home-assistant/pull/24225 +[#24229]: https://github.com/home-assistant/home-assistant/pull/24229 +[#24230]: https://github.com/home-assistant/home-assistant/pull/24230 +[#24231]: https://github.com/home-assistant/home-assistant/pull/24231 +[#24232]: https://github.com/home-assistant/home-assistant/pull/24232 +[#24233]: https://github.com/home-assistant/home-assistant/pull/24233 +[#24236]: https://github.com/home-assistant/home-assistant/pull/24236 +[#24238]: https://github.com/home-assistant/home-assistant/pull/24238 +[#24252]: https://github.com/home-assistant/home-assistant/pull/24252 +[#24256]: https://github.com/home-assistant/home-assistant/pull/24256 +[#24264]: https://github.com/home-assistant/home-assistant/pull/24264 +[#24266]: https://github.com/home-assistant/home-assistant/pull/24266 +[#24268]: https://github.com/home-assistant/home-assistant/pull/24268 +[#24278]: https://github.com/home-assistant/home-assistant/pull/24278 +[#24283]: https://github.com/home-assistant/home-assistant/pull/24283 +[#24284]: https://github.com/home-assistant/home-assistant/pull/24284 +[#24292]: https://github.com/home-assistant/home-assistant/pull/24292 +[#24297]: https://github.com/home-assistant/home-assistant/pull/24297 +[#24299]: https://github.com/home-assistant/home-assistant/pull/24299 +[#24300]: https://github.com/home-assistant/home-assistant/pull/24300 +[#24302]: https://github.com/home-assistant/home-assistant/pull/24302 +[#24303]: https://github.com/home-assistant/home-assistant/pull/24303 +[@Adminiuga]: https://github.com/Adminiuga +[@BKPepe]: https://github.com/BKPepe +[@Bouni]: https://github.com/Bouni +[@Danielhiversen]: https://github.com/Danielhiversen +[@Jc2k]: https://github.com/Jc2k +[@JeffLIrion]: https://github.com/JeffLIrion +[@Kane610]: https://github.com/Kane610 +[@MTrab]: https://github.com/MTrab +[@OttoWinter]: https://github.com/OttoWinter +[@SiliconAvatar]: https://github.com/SiliconAvatar +[@SukramJ]: https://github.com/SukramJ +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@TomerFi]: https://github.com/TomerFi +[@adrianschroeter]: https://github.com/adrianschroeter +[@aerialls]: https://github.com/aerialls +[@akloeckner]: https://github.com/akloeckner +[@alengwenus]: https://github.com/alengwenus +[@amelchio]: https://github.com/amelchio +[@andrewsayre]: https://github.com/andrewsayre +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bramkragten]: https://github.com/bramkragten +[@cgarwood]: https://github.com/cgarwood +[@chmielowiec]: https://github.com/chmielowiec +[@dreed47]: https://github.com/dreed47 +[@eavanvalkenburg]: https://github.com/eavanvalkenburg +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@fabaff]: https://github.com/fabaff +[@foxel]: https://github.com/foxel +[@fredrike]: https://github.com/fredrike +[@iamtpage]: https://github.com/iamtpage +[@jardiamj]: https://github.com/jardiamj +[@jesserizzo]: https://github.com/jesserizzo +[@jgriff2]: https://github.com/jgriff2 +[@jjlawren]: https://github.com/jjlawren +[@ludeeus]: https://github.com/ludeeus +[@mvn23]: https://github.com/mvn23 +[@nugget]: https://github.com/nugget +[@oblogic7]: https://github.com/oblogic7 +[@outadoc]: https://github.com/outadoc +[@p0l0]: https://github.com/p0l0 +[@pavoni]: https://github.com/pavoni +[@piitaya]: https://github.com/piitaya +[@pszafer]: https://github.com/pszafer +[@pvizeli]: https://github.com/pvizeli +[@robbiet480]: https://github.com/robbiet480 +[@rutkai]: https://github.com/rutkai +[@rytilahti]: https://github.com/rytilahti +[@sander76]: https://github.com/sander76 +[@scop]: https://github.com/scop +[@simse]: https://github.com/simse +[@squishykid]: https://github.com/squishykid +[@starkillerOG]: https://github.com/starkillerOG +[@stbenjam]: https://github.com/stbenjam +[@techfreek]: https://github.com/techfreek +[@terual]: https://github.com/terual +[@therve]: https://github.com/therve +[@ties]: https://github.com/ties +[@tkjacobsen]: https://github.com/tkjacobsen +[@wickerwaka]: https://github.com/wickerwaka +[@zewelor]: https://github.com/zewelor +[@zxdavb]: https://github.com/zxdavb +[ambiclimate docs]: /components/ambiclimate/ +[androidtv docs]: /components/androidtv/ +[apns docs]: /components/apns/ +[axis docs]: /components/axis/ +[azure_event_hub docs]: /components/azure_event_hub/ +[broadlink docs]: /components/broadlink/ +[camera docs]: /components/camera/ +[cloud docs]: /components/cloud/ +[config docs]: /components/config/ +[daikin docs]: /components/daikin/ +[darksky docs]: /components/darksky/ +[deconz docs]: /components/deconz/ +[default_config docs]: /components/default_config/ +[demo docs]: /components/demo/ +[device_tracker docs]: /components/device_tracker/ +[discovery docs]: /components/discovery/ +[doorbird docs]: /components/doorbird/ +[dsmr docs]: /components/dsmr/ +[emulated_hue docs]: /components/emulated_hue/ +[enphase_envoy docs]: /components/enphase_envoy/ +[esphome docs]: /components/esphome/ +[fitbit docs]: /components/fitbit/ +[frontend docs]: /components/frontend/ +[geniushub docs]: /components/geniushub/ +[geofency docs]: /components/geofency/ +[google_assistant docs]: /components/google_assistant/ +[gpslogger docs]: /components/gpslogger/ +[hassio docs]: /components/hassio/ +[heos docs]: /components/heos/ +[homekit_controller docs]: /components/homekit_controller/ +[homematic docs]: /components/homematic/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[html5 docs]: /components/html5/ +[http docs]: /components/http/ +[huawei_lte docs]: /components/huawei_lte/ +[hue docs]: /components/hue/ +[icloud docs]: /components/icloud/ +[incomfort docs]: /components/incomfort/ +[iqvia docs]: /components/iqvia/ +[keenetic_ndms2 docs]: /components/keenetic_ndms2/ +[lcn docs]: /components/lcn/ +[lifx docs]: /components/lifx/ +[locative docs]: /components/locative/ +[loopenergy docs]: /components/loopenergy/ +[lovelace docs]: /components/lovelace/ +[mastodon docs]: /components/mastodon/ +[mcp23017 docs]: /components/mcp23017/ +[media_extractor docs]: /components/media_extractor/ +[media_player docs]: /components/media_player/ +[mobile_app docs]: /components/mobile_app/ +[neato docs]: /components/neato/ +[netatmo docs]: /components/netatmo/ +[netgear docs]: /components/netgear/ +[onboarding docs]: /components/onboarding/ +[opentherm_gw docs]: /components/opentherm_gw/ +[owntracks docs]: /components/owntracks/ +[panel_custom docs]: /components/panel_custom/ +[panel_iframe docs]: /components/panel_iframe/ +[plex docs]: /components/plex/ +[remote_rpi_gpio docs]: /components/remote_rpi_gpio/ +[repetier docs]: /components/repetier/ +[rfxtrx docs]: /components/rfxtrx/ +[russound_rio docs]: /components/russound_rio/ +[script docs]: /components/script/ +[smarthab docs]: /components/smarthab/ +[solax docs]: /components/solax/ +[sonos docs]: /components/sonos/ +[spaceapi docs]: /components/spaceapi/ +[ssdp docs]: /components/ssdp/ +[sun docs]: /components/sun/ +[switcher_kis docs]: /components/switcher_kis/ +[synology_srm docs]: /components/synology_srm/ +[tautulli docs]: /components/tautulli/ +[tplink docs]: /components/tplink/ +[tradfri docs]: /components/tradfri/ +[vasttrafik docs]: /components/vasttrafik/ +[venstar docs]: /components/venstar/ +[verisure docs]: /components/verisure/ +[watson_tts docs]: /components/watson_tts/ +[websocket_api docs]: /components/websocket_api/ +[xiaomi_aqara docs]: /components/xiaomi_aqara/ +[xiaomi_tv docs]: /components/xiaomi_tv/ +[yeelight docs]: /components/yeelight/ +[zeroconf docs]: /components/zeroconf/ +[zestimate docs]: /components/zestimate/ +[zha docs]: /components/zha/ +[zone docs]: /components/zone/ +[zwave docs]: /components/zwave/ diff --git a/source/components/index.html b/source/components/index.html index 6278af8d5f4..6183e25b41a 100644 --- a/source/components/index.html +++ b/source/components/index.html @@ -1,7 +1,7 @@ --- layout: page -title: "Components" -description: "List of the built-in components of Home Assistant." +title: "Integrations" +description: "List of the built-in integrations of Home Assistant." date: 2014-12-21 13:35 sidebar: false comments: false @@ -30,7 +30,7 @@ regenerate: false {%- assign categories = components | map: 'ha_category' | join: ',' | join: ',' | split: ',' | uniq | sort -%}

    -Support for these components is provided by the Home Assistant community. +Support for these integrations is provided by the Home Assistant community.

    @@ -61,7 +61,7 @@ Support for these components is provided by the Home Assistant community.
    diff --git a/source/cookbook/index.markdown b/source/cookbook/index.markdown index 3bdc79511bf..40a6aba4e05 100644 --- a/source/cookbook/index.markdown +++ b/source/cookbook/index.markdown @@ -11,7 +11,7 @@ regenerate: true hide_github_edit: true --- -This is a community curated list of different ways to use Home Assistant. Most of these examples are using the [automation] component and other built-in [automation related][sec-automation] and [organization] components available. +This is a community curated list of different ways to use Home Assistant. Most of these examples are using the [automation] integration and other built-in [automation related][sec-automation] and [organization] integrations available. For [`python_script:` examples](/components/python_script/) visit the [Scripts section](https://community.home-assistant.io/c/projects/scripts) in our forum. diff --git a/source/developers/architecture_components.markdown b/source/developers/architecture_components.markdown index fcd66a99ec2..b92ea5019b8 100644 --- a/source/developers/architecture_components.markdown +++ b/source/developers/architecture_components.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Components Architecture" -description: "Overview of components within the Home Assistant architecture." +description: "Overview of integrations within the Home Assistant architecture." date: 2016-04-16 14:24 -07:00 sidebar: true comments: false diff --git a/source/developers/component_discovery.markdown b/source/developers/component_discovery.markdown index 69fb672d5f5..39ab95f80a4 100644 --- a/source/developers/component_discovery.markdown +++ b/source/developers/component_discovery.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Component Discovery" -description: "How to make component discovery work." +description: "How to make integration discovery work." date: 2017-11-23 07:27 +02:00 sidebar: true comments: false diff --git a/source/developers/component_loading.markdown b/source/developers/component_loading.markdown index f5c6e04e9f0..04acd1294de 100644 --- a/source/developers/component_loading.markdown +++ b/source/developers/component_loading.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Loading your components" -description: "Instructions on how to get your component loaded by Home Assistant." +description: "Instructions on how to get your integration loaded by Home Assistant." date: 2016-04-16 13:32 sidebar: true comments: false diff --git a/source/developers/creating_components.markdown b/source/developers/creating_components.markdown index 678014da4f5..ea6d5678cb7 100644 --- a/source/developers/creating_components.markdown +++ b/source/developers/creating_components.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Creating components" -description: "Guidelines to get you create your first component for Home Assistant." +description: "Guidelines to get you create your first integration for Home Assistant." date: 2014-12-21 13:32 sidebar: true comments: false diff --git a/source/developers/internationalization/custom_component_localization.markdown b/source/developers/internationalization/custom_component_localization.markdown index d0c6ecdc2f9..e74d018c53b 100644 --- a/source/developers/internationalization/custom_component_localization.markdown +++ b/source/developers/internationalization/custom_component_localization.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Custom Component Localization" -description: "Translating custom components in Home Assistant" +description: "Translating custom integrations in Home Assistant" date: 2018-03-01 18:00 sidebar: true comments: false diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 112653f51bd..8c90ce1f509 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -115,6 +115,10 @@ The packages you need to have available on your system that will run Hass.io may - socat - software-properties-common +

    + The `modemmanager` package will interfere with any Z-Wave or Zigbee stick and should be removed or disabled. Failure to do so will result in random failures of those components. For example you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager` +

    + ### {% linkable_title Arch Linux %} - apparmor diff --git a/source/hassio/run_local.markdown b/source/hassio/run_local.markdown index 8085f77f1f3..ff94891a927 100644 --- a/source/hassio/run_local.markdown +++ b/source/hassio/run_local.markdown @@ -13,7 +13,7 @@ Hass.io is a managed environment, which means you can't install applications tha There are three options if you need to run a script which reads data from a sensor or sends commands to other devices on Hass.io. -The first option is to write a custom component for Home Assistant. This implies that you can communicate with your device using Python. For more information about developing a custom component, take a look at [custom-component development][custom-component]. +The first option is to write a custom integration for Home Assistant. This implies that you can communicate with your device using Python. For more information about developing a custom component, take a look at [custom-component development][custom-component]. The second option is to use STDIN inside an add-on and use the service `hassio.addon_stdin` to send data. For more information, have a look at [internal add-on communication][communication]. Here you will also find how you can easily access the Home Assistant Rest API. diff --git a/source/help/reporting_issues.markdown b/source/help/reporting_issues.markdown index 5193c739e3c..25a3b321f3b 100644 --- a/source/help/reporting_issues.markdown +++ b/source/help/reporting_issues.markdown @@ -27,7 +27,7 @@ Please provide the release which contains the issue. ### {% linkable_title Last working Home Assistant release (if known) %} -If possible, provide the latest release of which you know that the component or platform was working. Home Assistant is evolving very fast and issues may already be addressed or be introduced by a recent change. +If possible, provide the latest release of which you know that the integration or platform was working. Home Assistant is evolving very fast and issues may already be addressed or be introduced by a recent change. ### {% linkable_title Operating environment (Hass.io/Docker/Windows/etc.) %} @@ -44,7 +44,7 @@ Please add the link to the documention of the component/platform in question. E. Provide a summary of your issue and tell us what's wrong. -There are components and platform which require additional steps (installing third-party tools, compilers, etc.) to get your setup working. Please describe the steps you took and the ones to reproduce the issue if needed. +There are integrations and platform which require additional steps (installing third-party tools, compilers, etc.) to get your setup working. Please describe the steps you took and the ones to reproduce the issue if needed. ### {% linkable_title Problem-relevant `configuration.yaml` entries %} diff --git a/source/images/blog/2019-06-release-94/components.png b/source/images/blog/2019-06-release-94/components.png new file mode 100644 index 00000000000..70a278d782a Binary files /dev/null and b/source/images/blog/2019-06-release-94/components.png differ diff --git a/source/images/blog/2019-06-release-94/google-ui.png b/source/images/blog/2019-06-release-94/google-ui.png new file mode 100644 index 00000000000..2e2913a34e6 Binary files /dev/null and b/source/images/blog/2019-06-release-94/google-ui.png differ diff --git a/source/lovelace/yaml-mode.markdown b/source/lovelace/yaml-mode.markdown index 7d8e5c6c357..ab9ffaf495a 100644 --- a/source/lovelace/yaml-mode.markdown +++ b/source/lovelace/yaml-mode.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -It is possible to write your Lovelace config in YAML instead of via the UI. To do so, you will need to configure the Lovelace component to be in yaml mode by adding the following to your `configuration.yaml`: +It is possible to write your Lovelace config in YAML instead of via the UI. To do so, you will need to configure the Lovelace integration to be in yaml mode by adding the following to your `configuration.yaml`: ```yaml lovelace: @@ -46,9 +46,7 @@ resources: # Optional background for all views. Check https://developer.mozilla.org/en-US/docs/Web/CSS/background for more examples. background: center / cover no-repeat url("/background.png") fixed -# Exclude entities from "Unused entities" view -excluded_entities: - - weblink.router + views: # View tab title. - title: Example diff --git a/source/privacy/index.markdown b/source/privacy/index.markdown index 706b1e67c8e..213d0fe0011 100644 --- a/source/privacy/index.markdown +++ b/source/privacy/index.markdown @@ -29,7 +29,7 @@ Certain visitors to Home Assistant’s websites choose to interact with Home Ass ## {% linkable_title Aggregated Statistics %} -Home Assistant may collect statistics about the behavior of visitors to its websites. For instance, Home Assistant may monitor the most popular component documentation. Home Assistant may display this information publicly or provide it to others. However, Home Assistant does not disclose personally-identifying information other than as described below. +Home Assistant may collect statistics about the behavior of visitors to its websites. For instance, Home Assistant may monitor the most popular integration documentation. Home Assistant may display this information publicly or provide it to others. However, Home Assistant does not disclose personally-identifying information other than as described below. ## {% linkable_title Information We Collect from Other Sources %}