diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 30f074df148f..bfbe7bd2c02d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,7 +5,7 @@ ## Checklist: - - [ ] Branch: Fixes, changes and adjustments should be created against `current`. New documentation for platforms/components and features should go to `next`. - - [ ] The documentation follow the [standards][standards]. +- [ ] Branch: Fixes, changes and adjustments should be created against `current`. New documentation for platforms/components and features should go to `next`. +- [ ] The documentation follow the [standards][standards]. [standards]: https://home-assistant.io/developers/documentation/standards/ diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 5d2149dce05e..de2de6f6b5bb 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -23,7 +23,7 @@ include: Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or -advances + advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic diff --git a/source/_components/abode.markdown b/source/_components/abode.markdown index 3314bcc90386..34ceaada848d 100644 --- a/source/_components/abode.markdown +++ b/source/_components/abode.markdown @@ -13,7 +13,7 @@ ha_release: 0.52 ha_iot_class: "Cloud Push" --- -The `abode` component will allow users to integrate their Abode Home Security systems into Home Assistant and use its alarm system and sensors to automate their homes. +The `abode` component will allow users to integrate their Abode Home Security systems into Home Assistant and use its alarm system and sensors to automate their homes. Please visit the [Abode website](https://goabode.com/) for further information about Abode Security. diff --git a/source/_components/ads.markdown b/source/_components/ads.markdown index cea2088d32ec..9e8463add0be 100644 --- a/source/_components/ads.markdown +++ b/source/_components/ads.markdown @@ -53,7 +53,6 @@ The ADS component will register the service `write_by_name` allowing you to writ Service parameters: -- **adsvar**: Name of the variable on the ADS device. To access global variables on *TwinCAT2* use a prepending dot `.myvariable`, for TwinCAT3 use -`GBL.myvariable`. +- **adsvar**: Name of the variable on the ADS device. To access global variables on *TwinCAT2* use a prepending dot `.myvariable`, for TwinCAT3 use `GBL.myvariable`. - **adstype**: Specify the type of the variable. Use one of the following: `int`, `byte`, `uint`, `bool` - **value**: The value that will be written in the variable. diff --git a/source/_components/alarm_control_panel.abode.markdown b/source/_components/alarm_control_panel.abode.markdown index 99889db76d46..5df73f1c05db 100644 --- a/source/_components/alarm_control_panel.abode.markdown +++ b/source/_components/alarm_control_panel.abode.markdown @@ -13,7 +13,6 @@ ha_release: 0.52 ha_iot_class: "Cloud Push" --- - The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms. The requirement is that you have setup your [Abode hub](/components/abode/). diff --git a/source/_components/alarm_control_panel.alarmdecoder.markdown b/source/_components/alarm_control_panel.alarmdecoder.markdown index 991bdeb77241..d677173ebb46 100644 --- a/source/_components/alarm_control_panel.alarmdecoder.markdown +++ b/source/_components/alarm_control_panel.alarmdecoder.markdown @@ -13,7 +13,6 @@ ha_release: 0.43 ha_iot_class: "Local Push" --- - The `alarmdecoder` alarm control panel platform allows you to control your [AlarmDecoder](https://www.alarmdecoder.com) alarms. The requirement is that you have setup your [AlarmDecoder hub](/components/alarmdecoder/). diff --git a/source/_components/alarm_control_panel.alarmdotcom.markdown b/source/_components/alarm_control_panel.alarmdotcom.markdown index ebffcc5c0df7..895cde8e350c 100644 --- a/source/_components/alarm_control_panel.alarmdotcom.markdown +++ b/source/_components/alarm_control_panel.alarmdotcom.markdown @@ -30,4 +30,3 @@ Configuration variables: - **password** (*Required*): Password for Alarm.com account. - **name** (*Optional*): The name of the alarm. Default is 'Alarm.com'. - **code** (*Optional*): Specifies a code to enable or disable the alarm in the frontend. - diff --git a/source/_components/alarm_control_panel.arlo.markdown b/source/_components/alarm_control_panel.arlo.markdown index 19294db81b17..6d66bef11b25 100644 --- a/source/_components/alarm_control_panel.arlo.markdown +++ b/source/_components/alarm_control_panel.arlo.markdown @@ -13,7 +13,6 @@ ha_release: 0.56 ha_iot_class: "Cloud Polling" --- - The `arlo` alarm control panel allows you to control your [Arlo](https://arlo.netgear.com/) base stations. You can use it to switch modes and trigger alarms from Home Assistant. To get your [Arlo](https://arlo.netgear.com/) base stations working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). diff --git a/source/_components/alarm_control_panel.concord232.markdown b/source/_components/alarm_control_panel.concord232.markdown index 8a9c00b7b314..86be0b75176b 100644 --- a/source/_components/alarm_control_panel.concord232.markdown +++ b/source/_components/alarm_control_panel.concord232.markdown @@ -14,7 +14,7 @@ ha_release: 0.31 The `concord232` platform provides integration with GE, Interlogix (and other brands) alarm panels that support the RS-232 Automation Control Panel interface module (or have it built in). Supported panels include Concord 4. -To use this platform, you will need to have the external concord232 client and server installed. The server must be running on the device which is connected to the automation module's serial port. The client must be installed on the machine running Home Assistant. These may often be the same machine, but do not have to be. For additional details in setting up and testing the client and server, see https://github.com/JasonCarter80/concord232. +To use this platform, you will need to have the external concord232 client and server installed. The server must be running on the device which is connected to the automation module's serial port. The client must be installed on the machine running Home Assistant. These may often be the same machine, but do not have to be. For additional details in setting up and testing the client and server, see To enable this platform in home assistant, add the following lines to your `configuration.yaml`: @@ -28,4 +28,3 @@ Configuration variables: - **host** (*Optional*): The host where the concord232 server process is running. Defaults to localhost. - **port** (*Optional*): The port where the Alarm panel is listening. Defaults to 5007. - diff --git a/source/_components/alarm_control_panel.egardia.markdown b/source/_components/alarm_control_panel.egardia.markdown index 20c555587e4b..3fdd4d575329 100644 --- a/source/_components/alarm_control_panel.egardia.markdown +++ b/source/_components/alarm_control_panel.egardia.markdown @@ -43,25 +43,25 @@ Note that this basic configuration will only enable you to read the armed/armed You can change this, however, using the following procedure. This is a more advanced configuration. 1. Log in into your alarm system's control panel. You will need to access http://[IP of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password. -2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. You can leave the port number set to 52010 or change it to anything you like. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'. -3. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. You will need the codes to include in your configuration.yaml. Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).** -4. Once you have the codes, update your `configuration.yaml`: -```yaml -# Example configuration.yaml entry -alarm_control_panel: -  - platform: egardia -   host: YOUR_HOST -   username: YOUR_USERNAME -   password: YOUR_PASSWORD - report_server_enabled: True - report_server_port: PORT_OF_EGARDIASERVER (optional, defaults to 52010) - report_server_codes: - arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX - disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX - home: XXXXXXXXXXXXXXXX - triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX - ignore: XXXXXXXXXXXXXXXX -``` +1. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. You can leave the port number set to 52010 or change it to anything you like. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'. +1. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. You will need the codes to include in your configuration.yaml. Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).** +1. Once you have the codes, update your `configuration.yaml`: + ```yaml + # Example configuration.yaml entry + alarm_control_panel: +  - platform: egardia +   host: YOUR_HOST +   username: YOUR_USERNAME +   password: YOUR_PASSWORD + report_server_enabled: True + report_server_port: PORT_OF_EGARDIASERVER (optional, defaults to 52010) + report_server_codes: + arm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX + disarm: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX + home: XXXXXXXXXXXXXXXX + triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX + ignore: XXXXXXXXXXXXXXXX + ``` Note that for *triggered*, *arm* and *disarm* multiple codes can be entered since each sensor triggers with a different code and each user of the system has its own arm and disarm codes. Also note that your system will do regular system checks which will be reported as well. Since Home Assistant provides no way of handling them properly, you can enter those codes as *ignore* (again, multiple codes can be used here). The egardia component will ignore these codes and continue returning the old status if it receives any of the codes that are listed as ignore. This is useful for example when you have armed your alarm at night: normally a system check will occur at least once during the night and if that code is not specified anywhere Home Assistant will set the status of the alarm to its default, which is unarmed. This is in fact wrong. Listing the code as ignore changes this behavior and Home Assistant will continue to show the status the alarm is in (disarm, arm, home, triggered) even when system checks occur. diff --git a/source/developers/releasing.markdown b/source/developers/releasing.markdown index 55ef646a995a..5ddce8541816 100644 --- a/source/developers/releasing.markdown +++ b/source/developers/releasing.markdown @@ -9,22 +9,22 @@ sharing: true footer: true --- -This page describes the steps for publishing a new Home Assistant release. Those steps requires that you don't use forks but work with the repositories themself. The [hass-release](https://github.com/home-assistant/hass-release) script is a helper to do a release. +This page describes the steps for publishing a new Home Assistant release. Those steps requires that you don't use forks but work with the repositories themself. The [hass-release](https://github.com/home-assistant/hass-release) script is a helper to do a release. ### {% linkable_title Release preparation (3 days before release) %} ### {% linkable_title GitHub %} 1. Merge `master` into `dev` to make the PR mergeable. -2. Cut a release branch from `dev`. Example name `release-0-57`. -3. Create a pull request from the release branch to `master` with the upcoming release number as the title. -4. Update `homeassistant/const.py` with the correct version number (remove the `dev` tag) and push that commit to release branch. +1. Cut a release branch from `dev`. Example name `release-0-57`. +1. Create a pull request from the release branch to `master` with the upcoming release number as the title. +1. Update `homeassistant/const.py` with the correct version number (remove the `dev` tag) and push that commit to release branch. ### {% linkable_title Website %} 1. Merge `current` into `next` -2. Cut release branch of `next`. For example `release-0-57`. -3. Open a PR from release branch to `current` with the upcoming release number as the title. +1. Cut release branch of `next`. For example `release-0-57`. +1. Open a PR from release branch to `current` with the upcoming release number as the title. ## {% linkable_title Release day %} @@ -33,22 +33,22 @@ From creating the release branch till it has been merged, we tag bugfixes with t ### {% linkable_title GitHub %} 1. Cherry-pick the milestoned PRs that need to get into the release `python3 -m hassrelease milestone_cherry_pick 0.57` -2. Run `python3 -m hassrelease release_notes 0.56` for the release notes. -3. Once the release notes has been generated, issue `python3 -m hassrelease milestone_close 0.56` -4. Merge pull request (DO NOT SQUASH!). Use `Merge pull request`. -5. Go to [releases](https://github.com/home-assistant/home-assistant/releases), click `Draft a new release` and tag a new release on the `master` branch. "Tag version" and "Release title" are the version number (`O.x` for major version, `0.x.y` for minor and bug fix releases). Release description is the text from PR. Press "Publish release" to finish the process. -6. Merge `master` into `dev`. -7. Update `homeassistant/const.py` with the upcoming version number (including the `dev` tag) and push that commit to the `dev` branch. +1. Run `python3 -m hassrelease release_notes 0.56` for the release notes. +1. Once the release notes has been generated, issue `python3 -m hassrelease milestone_close 0.56` +1. Merge pull request (DO NOT SQUASH!). Use `Merge pull request`. +1. Go to [releases](https://github.com/home-assistant/home-assistant/releases), click `Draft a new release` and tag a new release on the `master` branch. "Tag version" and "Release title" are the version number (`O.x` for major version, `0.x.y` for minor and bug fix releases). Release description is the text from PR. Press "Publish release" to finish the process. +1. Merge `master` into `dev`. +1. Update `homeassistant/const.py` with the upcoming version number (including the `dev` tag) and push that commit to the `dev` branch. ### {% linkable_title Website %} 1. Create a blog post in the release branch and base it on the text of the PR in the main repository. Add images, additional text, links, etc. if it adds value. Tag each platform/component in a message to documentation. -2. Create missing documentation as stubs. -3. Run `credits_generator`. -4. Update `_config.yml` with a link to the new release blog post and version number (at the bottom of the file). -5. Merge `current` into release branch (`$ git checkout release-0-40 && git merge current`) to make the PR mergeable. -6. Merge pull request (blog post, updated frontpage, and all new documentation) to `current`. DO NOT SQUASH! -7. Merge `current` into `next`. +1. Create missing documentation as stubs. +1. Run `credits_generator`. +1. Update `_config.yml` with a link to the new release blog post and version number (at the bottom of the file). +1. Merge `current` into release branch (`$ git checkout release-0-40 && git merge current`) to make the PR mergeable. +1. Merge pull request (blog post, updated frontpage, and all new documentation) to `current`. DO NOT SQUASH! +1. Merge `current` into `next`. ### {% linkable_title Docker Hub %} @@ -65,10 +65,10 @@ Checkout the `master` branch and run `script/release` to publish the new release ## {% linkable_title Bugfix Release %} 1. Checkout `master` and update it. `git checkout master && git pull --rebase` -2. Create a new release branch from `master`. `git checkout -b release-0-56-2` -3. Cherry-pick the PRs which were milestoned. -4. Update `homeassistant/const.py` with the correct version number (increment `PATCH_VERSION`) and push that commit to release branch. -5. Create a pull request from the release branch to `master` with the upcoming release number as the title. -6. Merge pull request (DO NOT SQUASH!). Use `Merge pull request`. -7. Go to [releases](https://github.com/home-assistant/home-assistant/releases), click `Draft a new release` and tag a new release on the `master` branch. "Tag version" and "Release title" are the version number (`O.x` for major version, `0.x.y` for minor and bug fix releases). Release description is the text from PR. Press "Publish release" to finish the process. -8. [Publish](/developers/releasing/#python-package-index) the new release on PyPI. +1. Create a new release branch from `master`. `git checkout -b release-0-56-2` +1. Cherry-pick the PRs which were milestoned. +1. Update `homeassistant/const.py` with the correct version number (increment `PATCH_VERSION`) and push that commit to release branch. +1. Create a pull request from the release branch to `master` with the upcoming release number as the title. +1. Merge pull request (DO NOT SQUASH!). Use `Merge pull request`. +1. Go to [releases](https://github.com/home-assistant/home-assistant/releases), click `Draft a new release` and tag a new release on the `master` branch. "Tag version" and "Release title" are the version number (`O.x` for major version, `0.x.y` for minor and bug fix releases). Release description is the text from PR. Press "Publish release" to finish the process. +1. [Publish](/developers/releasing/#python-package-index) the new release on PyPI. diff --git a/source/developers/rest_api.markdown b/source/developers/rest_api.markdown index cf850cfbec43..2395c1f6ea68 100644 --- a/source/developers/rest_api.markdown +++ b/source/developers/rest_api.markdown @@ -11,8 +11,8 @@ footer: true Home Assistant runs a web server accessible on port 8123. - * http://IP_ADDRESS:8123/ is an interface to control Home Assistant. - * http://IP_ADDRESS:8123/api/ is a Rest API. +* http://IP_ADDRESS:8123/ is an interface to control Home Assistant. +* http://IP_ADDRESS:8123/api/ is a Rest API. The API accepts and returns only JSON encoded objects. All API calls have to be accompanied by the header `X-HA-Access: YOUR_PASSWORD` (YOUR_PASSWORD as specified in your `configuration.yaml` file in the [`http:` section](/components/http/)). @@ -25,7 +25,7 @@ curl -X GET \ http://IP_ADDRESS:8123/ENDPOINT ``` -Another option is to use Python and the [Requests](http://docs.python-requests.org/en/latest/) module. +Another option is to use Python and the [Requests](http://docs.python-requests.org/en/latest/) module. = ```python from requests import get @@ -44,16 +44,17 @@ You can append `?api_password=YOUR_PASSWORD` to any URL to log in automatically. Successful calls will return status code 200 or 201. Other status codes that can return are: - - 400 (Bad Request) - - 401 (Unauthorized) - - 404 (Not Found) - - 405 (Method not allowed) +- 400 (Bad Request) +- 401 (Unauthorized) +- 404 (Not Found) +- 405 (Method not allowed) ### {% linkable_title Actions %} The API supports the following actions: #### {% linkable_title GET /api/ %} + Returns a message if the API is up and running. ```json @@ -70,11 +71,12 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/config %} + Returns the current configuration as JSON. ```json -{ - "components":[ +{ + "components":[ "sensor.cpuspeed", "frontend", "config.core", @@ -106,7 +108,7 @@ Returns the current configuration as JSON. "volume":"L" }, "version":"0.56.2", - "whitelist_external_dirs":[ + "whitelist_external_dirs":[ "/home/ha/.homeassistant/www", "/home/ha/.homeassistant/" ] @@ -121,6 +123,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/discovery_info %} + Returns basic information about the Home Assistant instance as JSON. ```json @@ -140,6 +143,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/events %} + Returns an array of event objects. Each event object contains event name and listener count. ```json @@ -163,6 +167,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/services %} + Returns an array of service objects. Each object contains the domain and which services it contains. ```json @@ -191,13 +196,15 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/history/period/<timestamp> %} + Returns an array of state changes in the past. Each object contains further details for the entities. The `` (`YYYY-MM-DDThh:mm:ssTZD`) is optional and defaults to 1 day before the time of the request. It determines the beginning of the period. You can pass the following optional GET parameters: - - `filter_entity_id=` to filter on a single entity - - `end_time=` to choose the end of the period in URL encoded format (defaults to 1 day). + +- `filter_entity_id=` to filter on a single entity +- `end_time=` to choose the end of the period in URL encoded format (defaults to 1 day). ```json [ @@ -247,6 +254,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/states %} + Returns an array of state objects. Each state has the following attributes: entity_id, state, last_changed and attributes. ```json @@ -274,6 +282,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/states/<entity_id> %} + Returns a state object for specified entity_id. Returns 404 if not found. ```json @@ -301,6 +310,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/error_log %} + Retrieve all errors logged during the current session of Home Assistant as a plaintext response. ```text @@ -318,6 +328,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title GET /api/camera_proxy/camera.<entity_id> %} + Returns the data (image) from the specified camera entity_id. Sample `curl` command: @@ -329,6 +340,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title POST /api/states/<entity_id> %} + Updates or creates the current state of an entity. Expects a JSON object that has at least a state attribute: @@ -368,6 +380,7 @@ $ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title POST /api/events/<event_type> %} + Fires an event with event_type You can pass an optional JSON object to be used as `event_data`. @@ -387,6 +400,7 @@ Returns a message if successful. ``` #### {% linkable_title POST /api/services/<domain>/<service> %} + Calls a service within a specific domain. Will return when the service has been executed or after 10 seconds, whichever comes first. You can pass an optional JSON object to be used as `service_data`. @@ -442,6 +456,7 @@ The result will include any states that changed while the service was being exec

#### {% linkable_title POST /api/template %} + Render a Home Assistant template. [See template docs for more information.](/topics/templating/) ```json @@ -465,6 +480,7 @@ $ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title POST /api/event_forwarding %} + Set up event forwarding to another Home Assistant instance. Requires a JSON object that represents the API to forward to. @@ -486,6 +502,7 @@ It will return a message if event forwarding was set up successfully. ``` #### {% linkable_title DELETE /api/event_forwarding %} + Cancel event forwarding to another Home Assistant instance.
Requires a JSON object that represents the API to cancel forwarding to. @@ -509,4 +526,3 @@ It will return a message if event forwarding was cancelled successfully.

If your client does not support DELETE HTTP requests you can add an optional attribute _METHOD and set its value to DELETE.

- diff --git a/source/developers/websocket_api.markdown b/source/developers/websocket_api.markdown index 3cf5796c1b39..2927b9df48e9 100644 --- a/source/developers/websocket_api.markdown +++ b/source/developers/websocket_api.markdown @@ -11,27 +11,27 @@ footer: true Home Assistant contains a WebSocket API. This API can be used to stream information from a Home Assistant instance to any client that implements WebSocket. Implementations in different languages: - - [JavaScript](https://github.com/home-assistant/home-assistant-js-websocket) - powers the frontend - - [Python](https://raw.githubusercontent.com/home-assistant/home-assistant-dev-helper/master/ha-websocket-client.py) - CLI client using [`asyncws`](https://async-websockets.readthedocs.io/en/latest/) - - [JavaScript/HTML](https://raw.githubusercontent.com/home-assistant/home-assistant-dev-helper/master/ha-websocket.html) - WebSocket connection in your browser +- [JavaScript](https://github.com/home-assistant/home-assistant-js-websocket) - powers the frontend +- [Python](https://raw.githubusercontent.com/home-assistant/home-assistant-dev-helper/master/ha-websocket-client.py) - CLI client using [`asyncws`](https://async-websockets.readthedocs.io/en/latest/) +- [JavaScript/HTML](https://raw.githubusercontent.com/home-assistant/home-assistant-dev-helper/master/ha-websocket.html) - WebSocket connection in your browser Connect your websocket implementation to `ws://localhost:8123/api/websocket`. ## {% linkable_title Server states %} - 1. Client connects - 2. Authentication phase starts +1. Client connects +1. Authentication phase starts - If no further authentication necessary for the user: go to 3 - Server sends `auth_required` message - Client sends `auth` message - If `auth` message correct: go to 3. - Server sends `auth_invalid`. Go to 6. - 3. Send `auth_ok` message - 4. Authentication phase ends. - 5. Command phase starts. +1. Send `auth_ok` message +1. Authentication phase ends. +1. Command phase starts. 1. Client can send commands. - 2. Server can send results of previous commands. - 6. Client or server disconnects session. + 1. Server can send results of previous commands. +1. Client or server disconnects session. During the command phase, the client attaches a unique identifier to each message. The server will add this identifier to each message so that the client can link each message to it's origin. @@ -217,7 +217,6 @@ The server will respond with a result message to indicate that unsubscribing was } ``` - ### {% linkable_title Calling a service %} This will call a service in Home Assistant. Right now there is no return value. The client can listen to `state_changed` events if it is interested in changed entities as a result of a service call. diff --git a/source/docs/index.markdown b/source/docs/index.markdown index 65a6e87c6b95..cbc6b8e364c5 100644 --- a/source/docs/index.markdown +++ b/source/docs/index.markdown @@ -52,5 +52,4 @@ The documentation covers from beginner to advanced topic around the installation
- To see what Home Assistant can do, take a look at the [demo page](/demo). diff --git a/source/faq/index.markdown b/source/faq/index.markdown index cdf865abf483..f3af719ffb51 100644 --- a/source/faq/index.markdown +++ b/source/faq/index.markdown @@ -17,11 +17,14 @@ This is a community curated list of frequently asked questions (FAQ) about the i {% assign categories = faq | map: 'ha_category' | uniq | sort %} {% for category in categories %} + ## {% linkable_title {{ category }} %} {% for entry in faq %} {% if entry.ha_category == category %} + ### {% linkable_title {{ entry.title }} %} + {{entry.content}} {% endif %} {% endfor %} diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 00af92bbd0f4..0c0150e1c02a 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -17,30 +17,30 @@ Follow this guide if you want to easily get started with Home Assistant, or if y We will need a few things to get started with installing Home Assistant. Links below are linking to Amazon US. If you're not in the US, you should be able to find these items in web stores in your country. - - [Raspberry Pi 3 model B](http://a.co/gEfMqL4) + [Power Supply](http://a.co/cgKUgkt) (at least 2.5A) - - [Micro SD Card](http://a.co/gslOydD). Get one that is Class 10 as they are more reliable. Size 32GB or bigger recommended. - - SD Card reader. Part of most laptops, and also available as [standalone USB sticks](http://a.co/5FCyb0N) (the brand doesn't matter, just pick the cheapest) - - Ethernet cable (optional, Hass.io can work with WiFi too) +- [Raspberry Pi 3 model B](http://a.co/gEfMqL4) + [Power Supply](http://a.co/cgKUgkt) (at least 2.5A) +- [Micro SD Card](http://a.co/gslOydD). Get one that is Class 10 as they are more reliable. Size 32GB or bigger recommended. +- SD Card reader. Part of most laptops, and also available as [standalone USB sticks](http://a.co/5FCyb0N) (the brand doesn't matter, just pick the cheapest) +- Ethernet cable (optional, Hass.io can work with WiFi too) ### {% linkable_title Software requirements %} - - Download [Hass.io image for Raspberry Pi 3][pi3] - - Download [Etcher] to write the image to an SD card - - Text Editor like [Visual Studio Code](https://code.visualstudio.com/) +- Download [Hass.io image for Raspberry Pi 3][pi3] +- Download [Etcher] to write the image to an SD card +- Text Editor like [Visual Studio Code](https://code.visualstudio.com/) [Etcher]: https://etcher.io/ [pi3]: https://github.com/home-assistant/hassio-build/releases/download/1.1/resinos-hassio-1.1-raspberrypi3.img.bz2 ### Installing Hass.io - 1. Put the SD card in your SD card reader. - 2. Open Etcher, select the Hass.io image and flash it to the SD card. - 3. WiFi setup only: open the file `system-connections/resin-sample` with a text editor. Change `ssid` to be your network name and `psk` to be your password. - 4. Unmount the SD card and remove it from your SD card reader. - 5. Insert the SD card into your Raspberry Pi 3. If you are going to use an Ethernet cable, connect that too. - 6. Connect your Raspberry Pi to the power supply so it turns on. - 7. The Raspberry Pi will now boot up, connect to the Internet and download the latest version of Home Assistant. This will take about 20 minutes. - 8. Home Assistant will be available at [http://hassio.local:8123][local]. +1. Put the SD card in your SD card reader. +1. Open Etcher, select the Hass.io image and flash it to the SD card. +1. WiFi setup only: open the file `system-connections/resin-sample` with a text editor. Change `ssid` to be your network name and `psk` to be your password. +1. Unmount the SD card and remove it from your SD card reader. +1. Insert the SD card into your Raspberry Pi 3. If you are going to use an Ethernet cable, connect that too. +1. Connect your Raspberry Pi to the power supply so it turns on. +1. The Raspberry Pi will now boot up, connect to the Internet and download the latest version of Home Assistant. This will take about 20 minutes. +1. Home Assistant will be available at [http://hassio.local:8123][local]. [local]: http://hassio.local:8123 diff --git a/source/getting-started/presence-detection.markdown b/source/getting-started/presence-detection.markdown index 8fe44b35c7aa..6861f89e3079 100644 --- a/source/getting-started/presence-detection.markdown +++ b/source/getting-started/presence-detection.markdown @@ -15,8 +15,8 @@ We care about privacy. Collected data is only stored in your instance of Presence detection detects if people are home, which is the most valuable input for automation. Knowing who is home or where they are, will open a whole range of other automation options: - - Send me a notification when my child arrives at school - - Turn on the AC when I leave work +- Send me a notification when my child arrives at school +- Turn on the AC when I leave work

diff --git a/source/hassio/external_storage.markdown b/source/hassio/external_storage.markdown index a69b7b8a7834..b4a930bc1941 100644 --- a/source/hassio/external_storage.markdown +++ b/source/hassio/external_storage.markdown @@ -9,7 +9,6 @@ sharing: true footer: true --- - ### {% linkable_title ResinOS / Generic %} Map the USB drive into add-on with `devices` options. If you need it on multiple add-ons, you can use the `/share` folder which is accessible from various add-ons. diff --git a/source/hassio/index.markdown b/source/hassio/index.markdown index 35eb09a523b5..21b11a2e0503 100644 --- a/source/hassio/index.markdown +++ b/source/hassio/index.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Hass.io" -description: "Manage your Home Assistant and custom addons." +description: "Manage your Home Assistant and custom add-ons." date: 2017-04-30 13:28 sidebar: true comments: false @@ -15,14 +15,14 @@ Hass.io turns your Raspberry Pi (or another device) into the ultimate home autom The advantages of using Hass.io: - - Free and open source - - Optimized for embedded devices like Raspberry Pi - - 100% local home automation - - Easy installation and updates (powered by [ResinOS] and [Docker]) - - Management user interface integrated into Home Assistant - - Easily create and restore full backups of your whole configuration. - - Easily install many popular add-ons including [Google Assistant], encryption via [Let's Encrypt] and dynamic DNS via [Duck DNS].

[Browse available add-ons »][all]

- - Active community that is helpful and sharing add-ons including AppDaemon, Homebridge and InfluxDB.

[Browse the forums »][forums]
[Join the Hass.io chat »][chat]
[Browse community add-on repositories »][comm-add-ons]

+- Free and open source +- Optimized for embedded devices like Raspberry Pi +- 100% local home automation +- Easy installation and updates (powered by [ResinOS] and [Docker]) +- Management user interface integrated into Home Assistant +- Easily create and restore full backups of your whole configuration. +- Easily install many popular add-ons including [Google Assistant], encryption via [Let's Encrypt] and dynamic DNS via [Duck DNS].

[Browse available add-ons »][all]

+- Active community that is helpful and sharing add-ons including AppDaemon, Homebridge and InfluxDB.

[Browse the forums »][forums]
[Join the Hass.io chat »][chat]
[Browse community add-on repositories »][comm-add-ons]

@@ -30,7 +30,7 @@ The advantages of using Hass.io: ### {% linkable_title Upgrading %} -Hass.io users can update Home Assistant via the 'Hass.io' page in the UI. However please note that Home Assistant updates take time to roll into the Hass.io builds. Therefore there is often a slight delay between the availability of a Home Assistant update and an update being available in Hass.io, be patient. When a Hass.io update is available it will be shown as available on the ‘Hass.io' page in your UI. +Hass.io users can update Home Assistant via the 'Hass.io' page in the UI. However please note that Home Assistant updates take time to roll into the Hass.io builds. Therefore there is often a slight delay between the availability of a Home Assistant update and an update being available in Hass.io, be patient. When a Hass.io update is available, it will be shown as available on the ‘Hass.io' page in your UI.

diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index cb752fe2a4b0..be34f95a3031 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -21,7 +21,7 @@ Hass.io images are available for all available Raspberry Pi and Intel NUC platfo - Insert SD card to Raspberry Pi and turn it on. On first boot, it downloads the latest version of Home Assistant which takes ~20 minutes (slower/faster depending on the platform).

-Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/help/faqs/#powerReqs) with your Pi. Mobile chargers may not be suitable, since some are designed to only provide the full power with that manufacturer's handsets. +Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/help/faqs/#powerReqs) with your Pi. Mobile chargers may not be suitable since some are designed to only provide the full power with that manufacturer's handsets.

@@ -42,7 +42,7 @@ curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/in ```

-When you use this installation method, some add-ons will not be available and the documentation might not work for your installation. +When you use this installation method, some add-ons will not be available, and the documentation might not work for your installation.

A detailed guide about running Hass.io as a virtual machine is available in the [blog](/blog/2017/11/29/hassio-virtual-machine/). diff --git a/source/hassio/installing_third_party_addons.markdown b/source/hassio/installing_third_party_addons.markdown index 0bf6cb3166c7..1d320586fa21 100644 --- a/source/hassio/installing_third_party_addons.markdown +++ b/source/hassio/installing_third_party_addons.markdown @@ -16,7 +16,7 @@ https://github.com/home-assistant/hassio-addons-example ```

-Home Assistant cannot guarantee the quality or security of third party add-ons. Use at your own risk. +Home Assistant cannot guarantee the quality or security of third-party add-ons. Use at your own risk.

diff --git a/source/hassio/run_local.markdown b/source/hassio/run_local.markdown index 6dbd4781bf0c..311098aa4133 100644 --- a/source/hassio/run_local.markdown +++ b/source/hassio/run_local.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Run local scripts" -description: "Instructions on how-to run local script for Home Assistant." +description: "Instructions on how to run a local script for Home Assistant." date: 2017-04-30 13:28 sidebar: true comments: false @@ -72,6 +72,7 @@ RUN apk --no-cache add jq mosquitto-clients ``` Now we can process it with `run.sh`: + ```bash #!/bin/bash set -e diff --git a/source/hassio/zwave.markdown b/source/hassio/zwave.markdown index 3be0947a5f02..4ba8aed7937e 100644 --- a/source/hassio/zwave.markdown +++ b/source/hassio/zwave.markdown @@ -31,12 +31,12 @@ zwave: usb_path: /dev/ttyAMA0 ``` -### HUSBZB-1: +### HUSBZB-1 ```yaml zwave: usb_path: /dev/ttyUSB0 - + zha: usb_path: /dev/ttyUSB1 database_path: /config/zigbee.db diff --git a/source/help/index.markdown b/source/help/index.markdown index 36173302df51..4ad053d851a0 100644 --- a/source/help/index.markdown +++ b/source/help/index.markdown @@ -11,13 +11,13 @@ footer: true There are various ways to get in touch with the Home Assistant community. It doesn't matter if you have a question, need help, want to request a feature, or just say 'Hi'. -### {% linkable_title Communication channels %} +### {% linkable_title Communication channels %} - - [Forum][forum] - - [Discord Chat Server][discord] for general Home Assistant discussions and questions. - - Follow us on [Twitter][twitter], use [@home_assistant][twitter] - - Join the [Google+ community][google-plus] - - Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] +- [Forum][forum] +- [Discord Chat Server][discord] for general Home Assistant discussions and questions. +- Follow us on [Twitter][twitter], use [@home_assistant][twitter] +- Join the [Google+ community][google-plus] +- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit] ### {% linkable_title Bugs, Feature requests, and alike %} @@ -38,7 +38,7 @@ Have you found an issue in your Home Assistant installation? Please report it. R - [Home Assistant - Erweiterungen (Platforms/Components)](https://github.com/home-assistant/home-assistant-assets/tree/master/german/2016-puzzle) at [Puzzle ITC](https://www.puzzle.ch/de/) - December 2016 - [Automating Your Life - Home Automation](http://slides.com/teagan42/life_automation#/) at Develop Denver 2016 - August - [Building Online Communities: Home Assistant](https://medium.com/@gitter/building-online-communities-home-assistant-8818dff671ad#.och4x4rhx) - July 2016 -- [Home Assistant Support 101 - Getting around in Home Assistant](https://www.youtube.com/watch?v=dRfk9JAlPJk) ([Slides](https://docs.google.com/presentation/d/1PUnOpeFZxNj4LEjaohGqH_1hOGQGuS5yRHD1ThHr6nk/edit?usp=sharing)) - June 2016 +- [Home Assistant Support 101 - Getting around in Home Assistant](https://www.youtube.com/watch?v=dRfk9JAlPJk) ([Slides](https://docs.google.com/presentation/d/1PUnOpeFZxNj4LEjaohGqH_1hOGQGuS5yRHD1ThHr6nk/edit?usp=sharing)) - June 2016 - [Awaken your home: Python and the Internet of Things](https://www.youtube.com/watch?v=Cfasc9EgbMU&list=PLKsVm4cWHDQB9JBcD7_ZfNcvC6xx47QHT&index=1) at PyCon 2016 - June 2016 - [Automating your Home with Home Assistant](https://www.youtube.com/watch?v=4-6rTwKl6ww&list=PLKsVm4cWHDQB9JBcD7_ZfNcvC6xx47QHT&index=2) at OpenIoT 2016 - March 2016 @@ -76,7 +76,7 @@ Don't miss the regular [Home Assistant podcasts](https://hasspodcast.io/). ### {% linkable_title Roadmap %} -There is no explicit roadmap available but the public [tracker](https://www.pivotaltracker.com/n/projects/1250084) can give you some insight into what is going on. +There is no explicit roadmap available, but the public [tracker](https://www.pivotaltracker.com/n/projects/1250084) can give you some insight into what is going on. [forum]: https://community.home-assistant.io/ [twitter]: https://twitter.com/home_assistant diff --git a/source/help/talking-points.markdown b/source/help/talking-points.markdown index 24f587f3928c..040bd3ad0baf 100644 --- a/source/help/talking-points.markdown +++ b/source/help/talking-points.markdown @@ -17,5 +17,3 @@ People are starting to present Home Assistant at meetings and get-togethers. Bel - Control all your devices from a single, mobile-friendly interface - Written in Python3 with 94% test coverage - Active and helpful community - - diff --git a/source/help/trivia.markdown b/source/help/trivia.markdown index 64089ecf5fde..78c735ea8f53 100644 --- a/source/help/trivia.markdown +++ b/source/help/trivia.markdown @@ -27,7 +27,7 @@ The current logo was created by [Jeremy Geltman](http://jeremygeltman.com/). Fur Home Assistant is open source software and available under the [MIT](https://opensource.org/licenses/MIT) license. -### {% linkable_title Numbers %} +### {% linkable_title Numbers %} This sections just contains some random numbers of the Home Assistant eco-system. Sorry, only the main repository counts. @@ -36,10 +36,10 @@ This sections just contains some random numbers of the Home Assistant eco-system | [Gitter.io](https://discord.gg/c5DvZ4e) | 334 | 2367 | | [Forum posts](https://community.home-assistant.io/) | 352 | 33004 | | [Forum topics](https://community.home-assistant.io/) | 83 | 4863 | -| [Forum members](https://community.home-assistant.io/) | 92 | 3931 | -| [Github stars](https://github.com/home-assistant/home-assistant/stargazers) | 2519 | 5239 | +| [Forum members](https://community.home-assistant.io/) | 92 | 3931 | +| [Github stars](https://github.com/home-assistant/home-assistant/stargazers) | 2519 | 5239 | | [Github forks](https://github.com/home-assistant/home-assistant/network) | 374 | 1424 | -| Page views [ha.io](https://home-assistant.io) | 190,271 | 1,284,855 | +| Page views [ha.io](https://home-assistant.io) | 190,271 | 1,284,855 | ### {% linkable_title Commit per year %} @@ -56,7 +56,7 @@ More details and statistics can be found on [Github](https://github.com/home-ass ### {% linkable_title First commit %} -The first commit in `git` was made on Sep 17, 2013 by [Paulus Schoutsen](https://github.com/balloob). +The first commit in `git` was made on Sep 17, 2013 by [Paulus Schoutsen](https://github.com/balloob). ```bash commit d55e4d53cccc9123d03f45c53441e7cbfc58e515 diff --git a/source/privacy/index.markdown b/source/privacy/index.markdown index fc63d2812bbe..706b1e67c8e3 100644 --- a/source/privacy/index.markdown +++ b/source/privacy/index.markdown @@ -11,45 +11,55 @@ footer: true Your privacy is critically important to us. At Home Assistant, we have a few fundamental principles: - - We don’t ask you for personal information unless we truly need it. (We can’t stand services that ask you for things like your gender or income level for no apparent reason.) - - We don’t share your personal information with anyone except to comply with the law, develop our products, or protect our rights. - - We don’t store personal information on our servers unless required for the ongoing operation of one of our services. +- We don’t ask you for personal information unless we truly need it. (We can’t stand services that ask you for things like your gender or income level for no apparent reason.) +- We don’t share your personal information with anyone except to comply with the law, develop our products, or protect our rights. +- We don’t store personal information on our servers unless required for the ongoing operation of one of our services. If you have questions about deleting or correcting your personal data please contact our support team. ## {% linkable_title Website Visitors %} + Like most website operators, Home Assistant collects non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request. Home Assistant’s purpose in collecting non-personally identifying information is to better understand how Home Assistant’s visitors use its website. From time to time, Home Assistant may release non-personally-identifying information in the aggregate, e.g., by publishing a report on trends in the usage of its website. Home Assistant also collects potentially personally-identifying information like Internet Protocol (IP) addresses for logged in users and for users leaving comments on the blog or forums. Home Assistant only discloses logged in user and commenter IP addresses under the same circumstances that it uses and discloses personally-identifying information as described below. ## {% linkable_title Gathering of Personally-Identifying Information %} + Certain visitors to Home Assistant’s websites choose to interact with Home Assistant in ways that require Home Assistant to gather personally-identifying information. The amount and type of information that Home Assistant gathers depends on the nature of the interaction. For example, we ask visitors who create a forum account to provide a username and an email address. Those who engage in transactions with Home Assistant are asked to provide additional information, including as necessary the personal and financial information required to process those transactions. In each case, Home Assistant collects such information only insofar as is necessary or appropriate to fulfill the purpose of the visitor’s interaction with Home Assistant. Home Assistant does not disclose personally-identifying information other than as described below. And visitors can always refuse to supply personally-identifying information, with the caveat that it may prevent them from engaging in certain website-related activities. ## {% 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. ## {% linkable_title Information We Collect from Other Sources %} + With your authorization, we may also obtain information about you from other sources. For example, if you create or log into your WordPress.com account through a social media service (like Facebook or Google) or if you connect your account to a social media service, we will receive information from that service (such as your username, basic profile information, and friends list) via the authorization procedures used by that service. The information we receive depends on which services you authorize and any options that are available. ## {% linkable_title Protection of Certain Personally-Identifying Information %} + Home Assistant discloses potentially personally-identifying and personally-identifying information only to those of its employees, contractors and affiliated organizations that (i) need to know that information in order to process it on Home Assistant’s behalf or to provide services available at Home Assistant’s websites, and (ii) that have agreed not to disclose it to others. Some of those employees, contractors and affiliated organizations may be located outside of your home country; by using Home Assistant’s websites, you consent to the transfer of such information to them. Home Assistant will not rent or sell potentially personally-identifying and personally-identifying information to anyone. Other than to its employees, contractors and affiliated organizations, as described above, Home Assistant discloses potentially personally-identifying and personally-identifying information only in response to a subpoena, court order or other governmental request, or when Home Assistant believes in good faith that disclosure is reasonably necessary to protect the property or rights of Home Assistant, third parties or the public at large. If you are a registered user of an Home Assistant website and have supplied your email address, Home Assistant may occasionally send you an email to tell you about new features, solicit your feedback, or just keep you up to date with what’s going on with Home Assistant and our products. We primarily use our various product blogs to communicate this type of information, so we expect to keep this type of email to a minimum. If you send us a request (for example via a support email or via one of our feedback mechanisms), we reserve the right to publish it in order to help us clarify or respond to your request or to help us support other users. Home Assistant takes all measures reasonably necessary to protect against the unauthorized access, use, alteration or destruction of potentially personally-identifying and personally-identifying information. ## {% linkable_title Cookies %} + A cookie is a string of information that a website stores on a visitor’s computer, and that the visitor’s browser provides to the website each time the visitor returns. Home Assistant uses cookies to help Home Assistant identify and track visitors, their usage of Home Assistant website, and their website access preferences. Home Assistant visitors who do not wish to have cookies placed on their computers should set their browsers to refuse cookies before using Home Assistant’s websites, with the drawback that certain features of Home Assistant’s websites may not function properly without the aid of cookies. ## {% linkable_title Business Transfers %} + If Home Assistant, or substantially all of its assets, were acquired, or in the unlikely event that Home Assistant goes out of business or enters bankruptcy, user information would be one of the assets that is transferred or acquired by a third party. You acknowledge that such transfers may occur, and that any acquirer of Home Assistant may continue to use your personal information as set forth in this policy. ## {% linkable_title Ads %} + Ads appearing on any of our websites may be delivered to users by advertising partners, who may set cookies. These cookies allow the ad server to recognize your computer each time they send you an online advertisement to compile information about you or others who use your computer. This information allows ad networks to, among other things, deliver targeted advertisements that they believe will be of most interest to you. This Privacy Policy covers the use of cookies by Home Assistant and does not cover the use of cookies by any advertisers. ## {% linkable_title Privacy Policy Changes %} + Although most changes are likely to be minor, Home Assistant may change its Privacy Policy from time to time, and in Home Assistant’s sole discretion. Home Assistant encourages visitors to frequently check this page for any changes to its Privacy Policy. Your continued use of this site after any change in this Privacy Policy will constitute your acceptance of such change. ### {% linkable_title Change log %} - - October 19, 2017: Initial version + +- October 19, 2017: Initial version _This privacy policy has been adapted from the [Automattic privacy policy][Home Assistant] and is licensed [Creative Commons ShareAlike][cc]._ [Home Assistant]: https://automattic.com/privacy/ -[cc]: https://creativecommons.org/licenses/by-sa/4.0/ \ No newline at end of file +[cc]: https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/source/tos/index.markdown b/source/tos/index.markdown index cadd9cd44214..199e220d6949 100644 --- a/source/tos/index.markdown +++ b/source/tos/index.markdown @@ -21,21 +21,20 @@ If you create an account on the Website, you are responsible for maintaining the If you post material to the Website, post links on the Website, or otherwise make (or allow any third party to make) material available by means of the Website (any such material, "Content"), You are entirely responsible for the content of, and any harm resulting from, that Content. That is the case regardless of whether the Content in question constitutes text, graphics, an audio file, or computer software. By making Content available, you represent and warrant that: -* the downloading, copying and use of the Content will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark or trade secret rights, of any third party; -* if your employer has rights to intellectual property you create, you have either (i) received permission from your employer to post or make available the Content, including but not limited to any software, or (ii) secured from your employer a waiver as to all rights in or to the Content; -* you have fully complied with any third-party licenses relating to the Content, and have done all things necessary to successfully pass through to end users any required terms; -* the Content does not contain or install any viruses, worms, malware, Trojan horses or other harmful or destructive content; -* the Content is not spam, is not machine- or randomly-generated, and does not contain unethical or unwanted commercial content designed to drive traffic to third party sites or boost the search engine rankings of third party sites, or to further unlawful acts (such as phishing) or mislead recipients as to the source of the material (such as spoofing); -* the Content is not pornographic, does not contain threats or incite violence, and does not violate the privacy or publicity rights of any third party; -* your content is not getting advertised via unwanted electronic messages such as spam links on newsgroups, email lists, blogs and web sites, and similar unsolicited promotional methods; -* your content is not named in a manner that misleads your readers into thinking that you are another person or company; and -* you have, in the case of Content that includes computer code, accurately categorized and/or described the type, nature, uses and effects of the materials, whether requested to do so by Home Assistant or otherwise. +* the downloading, copying and use of the Content will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark or trade secret rights, of any third party; +* if your employer has rights to intellectual property you create, you have either (i) received permission from your employer to post or make available the Content, including but not limited to any software, or (ii) secured from your employer a waiver as to all rights in or to the Content; +* you have fully complied with any third-party licenses relating to the Content, and have done all things necessary to successfully pass through to end users any required terms; +* the Content does not contain or install any viruses, worms, malware, Trojan horses or other harmful or destructive content; +* the Content is not spam, is not machine- or randomly-generated, and does not contain unethical or unwanted commercial content designed to drive traffic to third party sites or boost the search engine rankings of third party sites, or to further unlawful acts (such as phishing) or mislead recipients as to the source of the material (such as spoofing); +* the Content is not pornographic, does not contain threats or incite violence, and does not violate the privacy or publicity rights of any third party; +* your content is not getting advertised via unwanted electronic messages such as spam links on newsgroups, email lists, blogs and web sites, and similar unsolicited promotional methods; +* your content is not named in a manner that misleads your readers into thinking that you are another person or company; and +* you have, in the case of Content that includes computer code, accurately categorized and/or described the type, nature, uses and effects of the materials, whether requested to do so by Home Assistant or otherwise. ## {% linkable_title 3. User Content License %} User contributions are licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US). Without limiting any of those representations or warranties, Home Assistant has the right (though not the obligation) to, in Home Assistant’s sole discretion (i) refuse or remove any content that, in Home Assistant’s reasonable opinion, violates any Home Assistant policy or is in any way harmful or objectionable, or (ii) terminate or deny access to and use of the Website to any individual or entity for any reason, in Home Assistant’s sole discretion. Home Assistant will have no obligation to provide a refund of any amounts previously paid. - ## {% linkable_title 4. Payment and Renewal %} ### General Terms