Merge branch 'current' into next

This commit is contained in:
Fabian Affolter 2017-11-08 09:22:04 +01:00
commit 9faf94b30e
No known key found for this signature in database
GPG Key ID: DDF3D6F44AAB1336
34 changed files with 415 additions and 146 deletions

17
.github/stale.yml vendored Normal file
View File

@ -0,0 +1,17 @@
# Number of days of inactivity before an issue becomes stale
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
# 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
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View File

@ -140,11 +140,11 @@ social:
# Home Assistant release details # Home Assistant release details
current_major_version: 0 current_major_version: 0
current_minor_version: 57 current_minor_version: 57
current_patch_version: 0 current_patch_version: 2
date_released: 2017-11-04 date_released: 2017-11-05
# Either # or the anchor link to latest release notes in the blog post. # Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it. # Must be prefixed with a # and have double quotes around it.
# Major release: # Major release:
patch_version_notes: "" patch_version_notes: "#release-0572--november-5"
# Minor release (Example #release-0431---april-25): # Minor release (Example #release-0431---april-25):

View File

@ -394,15 +394,15 @@ p.note {
.aside-module { .aside-module {
.section { .section {
margin-bottom: 16px; margin-bottom: 10px;
} }
.brand-logo-container { .brand-logo-container {
text-align: center; text-align: center;
height: 97px; height: 87px;
img { img {
max-height: 97px; max-height: 67px;
} }
} }
} }

View File

@ -30,9 +30,12 @@ arduino:
port: /dev/ttyACM0 port: /dev/ttyACM0
``` ```
Configuration variables: {% configuration %}
port:
- **port** (*Required*): The port where your board is connected to your Home Assistant host. If you are using an original Arduino, the port will be named `ttyACM*` otherwise `ttyUSB*`. description: The port where your board is connected to your Home Assistant host. If you are using an original Arduino, the port will be named `ttyACM*` otherwise `ttyUSB*`.
required: true
type: string
{% endconfiguration %}
The exact number can be determined with the command shown below. The exact number can be determined with the command shown below.

View File

@ -38,6 +38,11 @@ binary_sensor:
description: List of your sensors. description: List of your sensors.
required: true required: true
type: map type: map
keys:
sensor_name:
description: The slug of the sensor.
required: true
type: map
keys: keys:
friendly_name: friendly_name:
description: Name to use in the frontend. description: Name to use in the frontend.

View File

@ -43,6 +43,8 @@ Take a snapshot from a camera.
| `entity_id` | no | Name(s) of entities to create a snopshot from, e.g., `camera.living_room_camera`. | | `entity_id` | no | Name(s) of entities to create a snopshot from, e.g., `camera.living_room_camera`. |
| `filename ` | no | Template of a file name. Variable is `entity_id`, e.g., {% raw %}`/tmp/snapshot_{{ entity_id }}`{% endraw %}. | | `filename ` | no | Template of a file name. Variable is `entity_id`, e.g., {% raw %}`/tmp/snapshot_{{ entity_id }}`{% endraw %}. |
The path part of `filename` must be an entry in the `whitelist_external_dirs` in your [`homeassistant:`](/docs/configuration/basic/) section of your `configuration.yaml` file.
### {% linkable_title Test if it works %} ### {% linkable_title Test if it works %}
A simple way to test if you have set up your `camera` platform correctly, is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **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**. A simple way to test if you have set up your `camera` platform correctly, is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **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**.

View File

@ -24,17 +24,53 @@ camera:
- platform: rpi_camera - platform: rpi_camera
``` ```
Configuration variables: {% configuration %}
image_width:
- **name** (*Optional*): Name of the camera description: Set the image width.
- **image_width** (*Optional*): Set the image width (default: 640) required: false
- **image_height** (*Optional*): Set the image height (default: 480) default: 640
- **image_quality** (*Optional*): Set the image quality (from 0 to 100, default: 7) type: int
- **image_rotation** (*Optional*): Set image rotation (0-359, default: 0) name:
- **horizontal_flip** (*Optional*): Set horizontal flip (0 to disable, 1 to enable, default: 0) description: Name of the camera.
- **vertical_flip** (*Optional*): Set vertical flip (0 to disable, 1 to enable, default: 0) required: false
- **timelapse** (*Optional*): Takes a picture every ms (default: 1000) default: Raspberry Pi Camera
- **file_path** (*Optional*): Save the picture in a custom file path (default: camera components folder) type: string
image_height:
description: Set the image height.
required: false
default: 480
type: int
image_quality:
description: Set the image quality (from 0 to 100).
required: false
default: 7
type: int
image_rotation:
description: Set image rotation (0-359).
required: false
default: 0
type: int
horizontal_flip:
description: Set horizontal flip (0 to disable, 1 to enable).
required: false
default: 0
type: int
vertical_flip:
description: Set vertical flip (0 to disable, 1 to enable).
required: false
default: 0
type: int
timelapse:
description: Takes a picture every millisecond.
required: false
default: 1000
type: int
file_path:
description: Save the picture in a custom file path.
required: false
default: The camera components folder.
type: string
{% endconfiguration %}
The given **file_path** must be an existing file because the camera platform setup make a writeable check on it. The given **file_path** must be an existing file because the camera platform setup make a writeable check on it.

View File

@ -9,7 +9,7 @@ sharing: true
footer: true footer: true
logo: ephcontrolsember.png logo: ephcontrolsember.png
ha_category: Climate ha_category: Climate
ha_release: "0.55" ha_release: 0.57
ha_iot_class: "Local Polling" ha_iot_class: "Local Polling"
--- ---

View File

@ -151,7 +151,6 @@ input_number:
trigger: trigger:
platform: mqtt platform: mqtt
topic: "setTemperature" topic: "setTemperature"
# entity_id: input_number.target_temp
action: action:
service: input_number.set_value service: input_number.set_value
data_template: data_template:

View File

@ -97,4 +97,7 @@ Vizio SmartCast service is accessible through HTTPS with self-signed certificate
`InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.` `InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.`
You can adjust the log level for `media_player` components with the [logger](https://home-assistant.io/components/logger/) component, or if you need to keep a low log level for `media_player` you could proxy calls to your TV through an NGINX reverse proxy. You can adjust the log level for `media_player` components with the [logger](https://home-assistant.io/components/logger/) component, or if you need to keep a low log level for `media_player` you could proxy calls to your TV through an NGINX reverse proxy.
If you want to only ignore only this specific [python urllib3 SSL warning](https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings), you will need to run Home Assistant with the python flag `-W` or the environment variable `PYTHONWARNINGS` set to:
`ignore:Unverified HTTPS request is being made`
</p> </p>

View File

@ -52,8 +52,10 @@ The following attributes can be placed `data` for extended functionality.
| `username` | yes | Username if the url requires authentication. Is placed inside `file`. | `username` | yes | Username if the url requires authentication. Is placed inside `file`.
| `password` | yes | Password if the url requires authentication. Is placed inside `file`. | `password` | yes | Password if the url requires authentication. Is placed inside `file`.
| `auth` | yes | If set to `digest` HTTP-Digest-Authentication is used. If missing HTTP-BASIC-Authentication is used. Is placed inside `file`. | `auth` | yes | If set to `digest` HTTP-Digest-Authentication is used. If missing HTTP-BASIC-Authentication is used. Is placed inside `file`.
| `attachments` | yes | Array of [Slack attachments](https://api.slack.com/docs/message-attachments). See [the attachment documentation](https://api.slack.com/docs/message-attachments) for how to format. *NOTE*: if using `attachments`, they are shown **in addition** to `message`
Example for posting file from URL:
Example for posting file from URL
```json ```json
{ {
"message":"Message that will be added as a comment to the file.", "message":"Message that will be added as a comment to the file.",
@ -68,7 +70,9 @@ Example for posting file from URL
} }
} }
``` ```
Example for posting file from local path
Example for posting file from local path:
```json ```json
{ {
"message":"Message that will be added as a comment to the file.", "message":"Message that will be added as a comment to the file.",
@ -82,5 +86,23 @@ Example for posting file from local path
``` ```
Please note that `path` is validated against the `whitelist_external_dirs` in the `configuration.yaml`. Please note that `path` is validated against the `whitelist_external_dirs` in the `configuration.yaml`.
Example for posting formatted attachment:
```json
{
"message": "",
"data": {
"attachments": [
{
"title": "WHAT A HORRIBLE NIGHT TO HAVE A CURSE.",
"image_url": "http://i.imgur.com/JEExnsI.gif"
}
]
}
}
```
Please note that both `message` is a required key, but is always shown, so use an empty (`""`) string for `message` if you don't want the extra text.
To use notifications, please see the [getting started with automation page](/getting-started/automation/). To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -26,7 +26,7 @@ To be able to use this component, you need a Remember The Milk account and you n
# Example configuration.yaml entry # Example configuration.yaml entry
remember_the_milk: remember_the_milk:
your_rtm_account: - name: your_rtm_account
api_key: <your secret api key goes here> api_key: <your secret api key goes here>
shared_secret: <your secret shared secret goes here> shared_secret: <your secret shared secret goes here>
@ -35,7 +35,7 @@ remember_the_milk:
Configuration variables: Configuration variables:
{% configuration %} {% configuration %}
account_name: name:
description: Name of the RTM account, as you can have serveral accounts in RTM. The name must be unique. description: Name of the RTM account, as you can have serveral accounts in RTM. The name must be unique.
required: true required: true
type: string type: string

View File

@ -27,14 +27,23 @@ sensor:
name: Door switch name: Door switch
0: 0:
name: Brightness name: Brightness
``` ```
Configuration variables: {% configuration %}
pins:
- **pins** array (*Required*): Array of pins to use. description: List of pins to use.
- **[number]** (*Required*): The pin number that corresponds with the pin numbering schema of your board. required: true
- **name** (*Optional*): Name that will be used in the frontend for the pin. type: map
keys:
pin_number:
description: The pin number that corresponds with the pin numbering schema of your board.
required: true
type: map
keys:
name:
default: Name that will be used in the frontend for the pin.
type: string
{% endconfiguration %}
The 6 analog pins of an Arduino UNO are numbered from A0 to A5. The 6 analog pins of an Arduino UNO are numbered from A0 to A5.

View File

@ -10,7 +10,7 @@ footer: true
logo: irishrail.png logo: irishrail.png
ha_category: Transport ha_category: Transport
ha_iot_class: "Cloud Polling" ha_iot_class: "Cloud Polling"
ha_release: 0.56 ha_release: 0.57
--- ---

View File

@ -36,7 +36,6 @@ sensor:
- Enfield - Enfield
- Greenwich - Greenwich
- Hackney - Hackney
- Hammersmith and Fulham
- Haringey - Haringey
- Harrow - Harrow
- Havering - Havering

View File

@ -62,19 +62,11 @@ sensor:
keys: keys:
P1: P1:
description: Show the particle sensors (particles 10 microns and below). description: Show the particle sensors (particles 10 microns and below).
required: false
type: string
P2: P2:
description: Show the particle sensors (particles 2.5 microns and below). description: Show the particle sensors (particles 2.5 microns and below).
required: false
type: string
temperature: temperature:
description: Display the temperature from a weather sensor. description: Display the temperature from a weather sensor.
required: false
type: string
humidity: humidity:
description: Display the humidity from a weather sensor. description: Display the humidity from a weather sensor.
required: false
type: string
{% endconfiguration %} {% endconfiguration %}

View File

@ -29,21 +29,49 @@ sensor:
- weather - weather
``` ```
Configuration variables: {% configuration %}
apk_key:
- **api_key** (*Required*): Your API key for http://openweathermap.org/. description: Your API key for OpenWeatherMap.
- **name** (*Optional*): Additional name for the sensors. Default to platform name. required: true
- **forecast** (*Optional*): Enables the forecast. The default is to display the current conditions. type: string
- **language** (*Optional*): The language in which you want text results to be returned. It's a two-characters string, eg. `en`, `es`, `ru`, `it`, etc. Defaults to English. name:
- **monitored_conditions** array (*Required*): Conditions to display in the frontend. description: Additional name for the sensors. Default to platform name.
- **weather**: A human-readable text summary. required: false
- **temperature**: The current temperature. default: OWM
- **wind_speed**: The wind speed. type: string
- **wind_bearing**: The wind bearing. forecast:
- **humidity**: The relative humidity. description: Enables the forecast. The default is to display the current conditions.
- **pressure**: The sea-level air pressure in millibars. required: false
- **clouds**: Description about cloud coverage. default: false
- **rain**: The rain volume. type: string
- **snow**: The snow volume language:
description: The language in which you want text results to be returned. It's a two-characters string, eg. `en`, `es`, `ru`, `it`, etc.
required: false
default: en
type: string
monitored_conditions:
description: Conditions to display in the frontend.
required: true
type: list
keys:
weather:
description: A human-readable text summary.
temperature:
description: The current temperature.
wind_speed:
description: The wind speed.
wind_bearing:
description: The wind bearing.
humidity:
description: The relative humidity.
pressure:
description: The sea-level air pressure in millibars.
clouds:
description: Description about cloud coverage.
rain:
description: The rain volume.
snow:
description: The snow volume.
{% endconfiguration %}
Details about the API are available in the [OpenWeatherMap documentation](http://openweathermap.org/api). Details about the API are available in the [OpenWeatherMap documentation](http://openweathermap.org/api).

View File

@ -31,13 +31,32 @@ switch:
negate: true negate: true
``` ```
Configuration variables: {% configuration %}
pins:
- **pins** array (*Required*): List of pins to use. description: List of of pins to use.
- **[number]** (*Required*): The pin number that corresponds with the pin numbering schema of your board. required: true
- **name** (*Required*): Name that will be used in the frontend for the pin. type: map
- **initial** (*Optional*): The initial value for this port. Defaults to `False` . keys:
- **negate** (*Optional*): If this pin should be inverted. Defaults to `False`. pin_number:
description: The pin number that corresponds with the pin numbering schema of your board.
required: true
type: map
keys:
name:
default: Name that will be used in the frontend for the pin.
type: string
required: false
initial:
default: The initial value for this port.
type: boolean
required: false
default: false
negate:
default: If this pin should be inverted.
type: boolean
required: false
default: false
{% endconfiguration %}
The digital pins are numbered from 0 to 13 on a Arduino UNO. The available pins are 2 till 13. For testing purposes you can use pin 13 because with that pin you can control the internal LED. The digital pins are numbered from 0 to 13 on a Arduino UNO. The available pins are 2 till 13. For testing purposes you can use pin 13 because with that pin you can control the internal LED.

View File

@ -9,7 +9,7 @@ sharing: true
footer: true footer: true
logo: rainbird.png logo: rainbird.png
ha_category: Hub ha_category: Hub
ha_release: 0.50 ha_release: 0.57
ha_iot_class: "Local Polling" ha_iot_class: "Local Polling"
--- ---

View File

@ -22,6 +22,10 @@ You will be prompted to configure the gateway through the Home Assistant interfa
If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP to your Trådfri gateway. If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP to your Trådfri gateway.
</p> </p>
<p class='note'>
The Python version 3.4.4 or greater is required for this component. The component will not initialize without this and will report a `Could not install all requirements` error in the logs.
</p>
You can add the following to your `configuration.yaml` file if you are not using the [`discovery:`](/components/discovery/) component: You can add the following to your `configuration.yaml` file if you are not using the [`discovery:`](/components/discovery/) component:
```yaml ```yaml
@ -33,7 +37,7 @@ tradfri:
Configuration variables: Configuration variables:
- **host** (*Required*): The IP address or hostname of your Trådfri gateway. - **host** (*Required*): The IP address or hostname of your Trådfri gateway.
- **allow_tradfri_groups** (*Optional*): Enable this to stop Home Assistant from importing the groups defined on the Trådfri bridge. Defaults to `true`. - **allow_tradfri_groups** (*Optional*): Set this to `false` to stop Home Assistant from importing the groups defined on the Trådfri bridge. Defaults to `true`.
<p class='note'> <p class='note'>
Do not use the `api_key` variable. The key is only needed once at initial setup. Do not use the `api_key` variable. The key is only needed once at initial setup.

View File

@ -49,7 +49,7 @@ homeassistant:
icon: mdi:description icon: mdi:description
"scene.month_*_colors": "scene.month_*_colors":
hidden: true hidden: true
emulated_hue: false emulated_hue_hidden: false
homebridge_hidden: true homebridge_hidden: true
``` ```

View File

@ -10,20 +10,14 @@ footer: true
redirect_from: /cookbook/tor_configuration/ redirect_from: /cookbook/tor_configuration/
--- ---
This is an example about how you can configure Tor to provide secure remote access to your Home Assistant instance as an Onion site, through [Tor's Hidden Service](https://www.torproject.org/docs/hidden-services.html.en) feature. With this enabled, you do not need to open your firewall ports or setup HTTPS to enable secure remote access. This article guides your through the configuration of Tor to provide a secure access to your Home Assistant instance as an Onion site, through [Tor's Hidden Service](https://www.torproject.org/docs/hidden-services.html.en) feature, from remote. With this enabled, you do not need to open your firewall ports or setup HTTPS to enable secure remote access.
This is useful if you want to have: This is useful if you want to have:
* Access your Home Assistant instance remotely without opening a firewall port or setting up a VPN * Access your Home Assistant instance remotely without opening a firewall port or setting up a VPN.
* Don't want to or know how to get an SSL/TLS certificate and HTTPS configuration setup * Don't want to or know how to get an SSL/TLS certificate and HTTPS configuration setup.
* Want to block attackers from even being able to access/scan your port and server at all * Want to block attackers from even being able to access/scan your port and server at all.
* Want to block anyone from knowing your home IP address and seeing your traffic to your Home Assistant * Want to block anyone from knowing your home IP address and seeing your traffic to your Home Assistant.
## {% linkable_title Background and Contact %}
This configuration is part of an effort to apply strong cryptography technologies (like Onion Routing and End-to-End Encryption) to technology we increasingly depend on in our day to day lives. Just like when WhatsApp enabled end-to-end encryption messaging for everyone, every home automation and IoT platform should do the same, because A) the technology is all there, freely licensed and open-source and B) up to this point, all the commercial manufacturers have been doing a horrific job with security.
You can learn more about how Tor can be used to secure home automation and IoT platforms through this short set of slides on the [Internet of Onion Things](https://github.com/n8fr8/talks/blob/master/onion_things/Internet%20of%20Onion%20Things.pdf)
## {% linkable_title Hidden Services and Onion Sites %} ## {% linkable_title Hidden Services and Onion Sites %}
@ -61,7 +55,7 @@ The "stealth" entry above ensures traffic to and from your Home Assistant instan
Then, restart Tor: Then, restart Tor:
```bash ```bash
$ sudo /etc/init.d/tor restart $ sudo systemctl restart tor
``` ```
Then read the new generated authentication cookie from the Tor-generated hostname file: Then read the new generated authentication cookie from the Tor-generated hostname file:
@ -106,5 +100,3 @@ You could also use Tor as a means to connect your Home Assistant instance to a r
As mentioned, with Orbot on Android, you can enable a "full device" VPN mode, that allows any app you have to tunnel through Tor, even if it is not Tor or proxy aware. This means you should be able to enter your "dot onion" Onion site address into any app you want to access to your Home Assistant instance, and it should work. As mentioned, with Orbot on Android, you can enable a "full device" VPN mode, that allows any app you have to tunnel through Tor, even if it is not Tor or proxy aware. This means you should be able to enter your "dot onion" Onion site address into any app you want to access to your Home Assistant instance, and it should work.
This configuration was provided by @n8fr8 ([github](https://github.com/n8fr8), [twitter](https://twitter.com/n8fr8)) of the [Guardian Project](https://guardianproject.info) and [Tor Project](https://torproject.org). You can send questions, feedback and ideas to [support@guardianproject.info](mailto:support@guardianproject.info).

View File

@ -153,6 +153,23 @@ On macOS you can find the USB stick with:
$ ls /dev/cu.usbmodem* $ ls /dev/cu.usbmodem*
``` ```
### {% linkable_title Hass.io %}
To enable Z-Wave, plug your Z-Wave USB stick into your Raspberry Pi 3 and add the following to your `configuration.yaml`:
```yaml
zwave:
usb_path: /dev/ttyACM0
```
For some devices the `/dev/ttyAMA0` device is not detected by udev and is therefore not mapped by Docker. To explicitly set this device for mapping to Home-Assistant, execute the following command using the ssh add-on:
```bash
$ curl -d '{"devices": ["ttyAMA0"]}' http://hassio/homeassistant/options
```
After that, you need to change `usb_path` to `/dev/ttyAMA0`.
### {% linkable_title Network Key %} ### {% linkable_title Network Key %}
Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices. Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices.
@ -167,3 +184,30 @@ Ensure you keep a backup of this key. If you have to rebuild your system and don
## {% linkable_title First Run %} ## {% linkable_title First Run %}
Upon first run, the `zwave` component will take time to initialize entities and entities may appear with incomplete names. Running a network heal may speed up this process. Upon first run, the `zwave` component will take time to initialize entities and entities may appear with incomplete names. Running a network heal may speed up this process.
## {% linkable_title Troubleshooting %}
### {% linkable_title Component could not be set up %}
Sometimes the device may not be accessible and you'll get an error message upon startup about not being able to set up Z-Wave. Run the following command for your device path:
```bash
ls -l /dev/ttyAMA0
```
You should then see something like this:
```
crw-rw---- 1 root dialout 204, 64 Apr 1 12:34 /dev/ttyAMA0
```
The important pieces are the first piece `crw-rw----` and the group `dialout`. If those are different then, for your device path, run:
```bash
sudo chgrp dialout /dev/ttyAMA0
sudo chmod g+rw /dev/ttyAMA0
```
### {% linkable_title Device path changes %}
If your device path changes when you restart, see [this guide](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/) on fixing it.

View File

@ -0,0 +1,13 @@
---
layout: page
title: "Frontend is acting weird"
description: "Frontend is acting weird"
date: 2017-06-18 09:00
comments: false
sharing: true
footer: true
ha_category: Usage
---
Close the windows or tab and clear the cache. The frontend is aggressively caching and clearing the cache ensures that the frontend is reloaded when you access it the next time.

View File

@ -1,4 +1,5 @@
{% assign components = site.components | sort: 'title' %} {% assign components = site.components | sort: 'title' %}
{% assign github_main_repo = 'https://github.com/home-assistant/home-assistant/blob/master/homeassistant' %}
<section class="aside-module grid__item one-whole lap-one-half"> <section class="aside-module grid__item one-whole lap-one-half">
{% include edit_github.html %} {% include edit_github.html %}
@ -33,6 +34,13 @@
</div> </div>
{% endif %} {% endif %}
{% if is_platform %}
<div class='section'>
Source:
<a href='{{github_main_repo}}{{parent_url}}{{imp_name}}.py'>{{parent_name}}/{{imp_name}}.py</a>
</div>
{% endif %}
{% if is_platform and parent_name != 'sensor' %} {% if is_platform and parent_name != 'sensor' %}
<div class='section'> <div class='section'>
This is a platform for This is a platform for

View File

@ -78,6 +78,7 @@
<li>{% active_link /developers/frontend_add_more_info/ Add More Info Dialog %}</li> <li>{% active_link /developers/frontend_add_more_info/ Add More Info Dialog %}</li>
<li>{% active_link /developers/frontend_creating_custom_panels/ Add Custom Panels %}</li> <li>{% active_link /developers/frontend_creating_custom_panels/ Add Custom Panels %}</li>
<li>{% active_link /developers/frontend_creating_custom_ui/ Add Custom UI %}</li> <li>{% active_link /developers/frontend_creating_custom_ui/ Add Custom UI %}</li>
<li>{% active_link /developers/frontend_translation/ Translation %}</li>
</ul> </ul>
</li> </li>
<li> <li>

View File

@ -12,7 +12,7 @@
<li>{% active_link /hassio/ Hass.io %}</li> <li>{% active_link /hassio/ Hass.io %}</li>
<li>{% active_link /docs/installation/virtualenv/ Python Virtual Env %}</li> <li>{% active_link /docs/installation/virtualenv/ Python Virtual Env %}</li>
<li>{% active_link /docs/installation/hassbian/ Hassbian %}</li> <li>{% active_link /docs/installation/hassbian/ Hassbian %}</li>
<li>{% active_link /docs/installation/raspberry-pi-all-in-one/ Raspberry Pi All-in-One %}</li> <!--<li>{% active_link /docs/installation/raspberry-pi-all-in-one/ Raspberry Pi All-in-One %}</li>-->
<li>{% active_link /docs/installation/updating/ Updating %}</li> <li>{% active_link /docs/installation/updating/ Updating %}</li>
<li>{% active_link /docs/installation/troubleshooting/ Troubleshooting %}</li> <li>{% active_link /docs/installation/troubleshooting/ Troubleshooting %}</li>
</ul> </ul>

View File

@ -83,6 +83,15 @@ Okay, one more highlight before we'll let you check out the changelog. Contribut
- integration with Remember The Milk. ([@ChristianKuehnel] - [#9803]) ([remember_the_milk docs]) (new-platform) - integration with Remember The Milk. ([@ChristianKuehnel] - [#9803]) ([remember_the_milk docs]) (new-platform)
- Luftdaten sensor ([@lichtteil] - [#10274]) ([sensor.luftdaten docs]) (new-platform) - Luftdaten sensor ([@lichtteil] - [#10274]) ([sensor.luftdaten docs]) (new-platform)
## {% linkable_title release 0.57.1 - november 4 %}
- Fix login screen not showing when no password stored ([@balloob])
## {% linkable_title release 0.57.2 - november 5 %}
- Update frontend with fixes for setting temperature on climate card ([@balloob])
- Fix setting max brightness for TRADFRI ([@ggravlingen] - [#10359])
## {% linkable_title If you need help... %} ## {% 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. ...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.
@ -429,6 +438,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
[#9988]: https://github.com/home-assistant/home-assistant/pull/9988 [#9988]: https://github.com/home-assistant/home-assistant/pull/9988
[#9990]: https://github.com/home-assistant/home-assistant/pull/9990 [#9990]: https://github.com/home-assistant/home-assistant/pull/9990
[#9996]: https://github.com/home-assistant/home-assistant/pull/9996 [#9996]: https://github.com/home-assistant/home-assistant/pull/9996
[#10359]: https://github.com/home-assistant/home-assistant/pull/10359
[@C0DK]: https://github.com/C0DK [@C0DK]: https://github.com/C0DK
[@ChristianKuehnel]: https://github.com/ChristianKuehnel [@ChristianKuehnel]: https://github.com/ChristianKuehnel
[@DarkFox]: https://github.com/DarkFox [@DarkFox]: https://github.com/DarkFox

View File

@ -0,0 +1,26 @@
---
layout: post
title: "Translating Home Assistant"
description: "Introduction to the new translation integration with Lokalise."
date: 2017-11-05 20:00:00 -0500
date_formatted: "November 5, 2017"
author: Adam Mills
comments: true
categories: Community
og_image: /images/blog/2017-11-0.57/languages.png
---
<p class='img'>
<img src='/images/blog/2017-11-0.57/languages.png' alt='The Home Assistant sidebar in 12 different languages'>
The Home Assistant sidebar in 12 different languages.
</p>
## {% linkable_title Translations %}
As mentioned in the [0.57 release notes](https://home-assistant.io/blog/2017/11/04/release-57/), Home Assistant has launched a translated frontend. With the immediate influx of translations, weve made integration with a translation tool a top priority. [@c727] took the initiative to evaluate several tools, and were happy to announce that Home Assistant will be partnering with [Lokalise](https://lokalise.co/) to manage our translations!
Lokalise allows us to open up translations for all of our multilingual users willing to contribute. Users can join the project using our [public signup link](https://lokalise.co/signup/3420425759f6d6d241f598.13594006/all/), and start translating right away. Weve created a [translation startup guide](https://home-assistant.io/developers/frontend_translation/) with additional details about how to contribute. Instructions are provided there for how to request a new language.
Now that we have a system in place, expect a lot more of the interface to be translatable soon. We still have some technical hurdles to overcome, but the hardest work is behind us now. The community has already done an outstanding job of providing translations. The future is looking bright!
[@c727]: https://github.com/c727

View File

@ -49,9 +49,8 @@ Every platform page should contain a configuration sample. This sample must cont
The **Configuration Variables** section must use the {% raw %}`{% configuration %} ... {% endconfiguration %}`{% endraw %} tag. The **Configuration Variables** section must use the {% raw %}`{% configuration %} ... {% endconfiguration %}`{% endraw %} tag.
```text
{% raw %} {% raw %}
```text
{% configuration %} {% configuration %}
api_key: api_key:
description: The API key to access the service. description: The API key to access the service.
@ -62,9 +61,19 @@ The **Configuration Variables** section must use the {% raw %}`{% configuration
required: false required: false
default: The default name to use in the frontend. default: The default name to use in the frontend.
type: string type: string
monitored_conditions:
description: Conditions to display in the frontend.
required: true
type: list
keys:
weather:
description: A human-readable text summary.
temperature:
description: The current temperature.
{% endconfiguration %} {% endconfiguration %}
{% endraw %}
``` ```
{% endraw %}
Available keys: Available keys:

View File

@ -79,19 +79,24 @@ $ git push -u <remote name> HEAD
## {% linkable_title Development %} ## {% linkable_title Development %}
While you are developing, you need to have gulp running to watch the source files for changes and build when necessary. If you are changing `html` files under `/src` or `/panels` - just reload the page in your browser to see changes.
If you are changing javascript files under `/js` you need to have gulp running to watch the source files for changes and build when necessary.
```bash ```bash
$ yarn run dev-watch $ yarn run dev-watch
``` ```
The source code for the frontend can be found in two different directories: The source code for the frontend can be found in different directories:
- UI: `/home-assistant-polymer/src/` - UI: `/home-assistant-polymer/src/`
- Panels: `/home-assistant-polymer/panels/` - Panels: `/home-assistant-polymer/panels/`
- Javascript code: `/home-assistant-polymer/js/`
# {% linkable_title Building the Polymer frontend %} # {% linkable_title Building the Polymer frontend %}
Building a new version of the frontend is as simple as running `script/build_frontend`. Building a new version of the frontend is as simple as running `script/build_frontend`.
To use a built version package it: `python setup.py sdist`
Install it: `pip3 install dist/home-assistant-frontend-xxxxxxxx.0.tar.gz --upgrade`
Run Home Assistant without trying to reinstall production package: `hass --skip-pip`
[hass-polymer]: https://github.com/home-assistant/home-assistant-polymer [hass-polymer]: https://github.com/home-assistant/home-assistant-polymer

View File

@ -0,0 +1,42 @@
---
layout: page
title: "Frontend Translation"
description: "How to translate the frontend for Home Assistant."
date: 2017-10-27 13:00
sidebar: true
comments: false
sharing: true
footer: true
ha_release: 0.57
---
## {% linkable_title How to start %}
[Join the translation team](https://lokalise.co/signup/3420425759f6d6d241f598.13594006/all/) and choose your language. Even if your language is completely translated, extra proofreading is a big help! Please feel free to review the existing translations, and vote for alternatives that might be more appropriate.
First time users may find it helpful to switch between multilanguage and single language view using the <img src='/images/frontend/lokalise-multilanguage-view-button.png' alt="Multilanguage view" style="width: 17px; border: none;"/> button. For more information about the translation workflow, please see the [Lokalise translation workflow documents](https://docs.lokalise.co/category/iOzEuQPS53-for-team-leads-and-translators).
<p class='note'>
The translation of the Home Assistant frontend is still a work in progress. More phrases will be available for translation soon.
</p>
## {% linkable_title Rules %}
1. Only native speakers should submit translations.
2. Stick to [Material Design guidelines](https://material.io/guidelines/style/writing.html).
3. Don't translate or change proper nouns like `Home Assistant`, `Hass.io` or `Hue`.
## {% linkable_title Adding a new language %}
If your language is not listed you can request it at [GitHub](https://github.com/home-assistant/home-assistant-polymer/issues/new). Please provide both the English name and the native name for your language. For example:
```
English Name: German
Native Name: Deutsch
```
<p class='note'>
Region specific translations (`en-US`, `fr-CA`) will only be included if translations for that region need to differ from the base language translation.
</p>
### {% linkable_title Maintainer steps to add a new language %}
1. Language tags have to follow [BCP 47](https://tools.ietf.org/html/bcp47). A list of most language tags can be found here: [IANA sutbtag registry](http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry). Examples: `fr`, `fr-CA`, `zh-Hans`. Only include the country code if country specific overrides are being included, and the base language is already translated.
2. Add the language tag and native name in `src/translations/translationMetadata.json`. Examples: "Français", "Français (CA)"
3. Add the new language in Lokalize.
Note: Sometimes you have to change the tag in Lokalise (Language -> Language settings -> custom ISO code).

View File

@ -139,25 +139,6 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \
-H "Content-Type: application/json" http://localhost:8123/api/discovery_info -H "Content-Type: application/json" http://localhost:8123/api/discovery_info
``` ```
#### {% linkable_title GET /api/bootstrap %}
Returns all data needed to bootstrap Home Assistant.
```json
{
"config": {...},
"events": [...],
"services": [...],
"states": [...]
}
```
Sample `curl` command:
```bash
$ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \
-H "Content-Type: application/json" http://localhost:8123/api/bootstrap
```
#### {% linkable_title GET /api/events %} #### {% linkable_title GET /api/events %}
Returns an array of event objects. Each event object contains event name and listener count. Returns an array of event objects. Each event object contains event name and listener count.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB