diff --git a/_config.yml b/_config.yml index d91423a178..f7727a097a 100644 --- a/_config.yml +++ b/_config.yml @@ -132,9 +132,9 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 38 -current_patch_version: 0 -date_released: 2017-02-11 +current_patch_version: 3 +date_released: 2017-02-15 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. -patch_version_notes: "#" +patch_version_notes: "#release-0383---february-15" diff --git a/source/_components/apiai.markdown b/source/_components/apiai.markdown index 7216ad35d4..34772e5923 100644 --- a/source/_components/apiai.markdown +++ b/source/_components/apiai.markdown @@ -9,17 +9,18 @@ sharing: true footer: true logo: apiai.png ha_category: Voice -featured: true -ha_release: 0.37 +featured: false +ha_release: 0.38 --- -This component is designed to be used with the "webhook" integration in api.ai. When a conversation ends with an user, api.ai sends an action and parameters to the webhook. +This component is designed to be used with the "webhook" integration in [api.ai][apiai-web]. When a conversation ends with an user, api.ai sends an action and parameters to the webhook. -Api.ai requires a public endpoint (HTTPS recommended), so your Home Assistant should be exposed to Internet. Api.ai will return fall back answers if your server do not answer, or takes too long (more than 5 seconds). +api.ai requires a public endpoint (HTTPS recommended), so your Home Assistant should be exposed to Internet. api.ai will return fallback answers if your server do not answer, or takes too long (more than 5 seconds). -Api.ai could be integrated with many popular messaging, virtual assistant and IoT platforms, eg.: Google Assistant (Google Actions), Skype, Messenger. [See here](https://docs.api.ai/docs/integrations) the complete list. +api.ai could be integrated with many popular messaging, virtual assistant and IoT platforms, eg.: Google Assistant (Google Actions), Skype, Messenger. [See here](https://docs.api.ai/docs/integrations) the complete list. Using Api.ai will be easy to create conversations like: + > User: Which is the temperature at home? > > Bot: The temperature is 34 degrees @@ -35,6 +36,7 @@ Using Api.ai will be easy to create conversations like: To use this integration you should define a conversation (intent) in Api.ai, configure Home Assistant with the speech to return and, optionally, the action to execute. ### {% linkable_title Configuring your api.ai account %} + - [Login][apiai-web] with your Google account. - Click on "Create Agent" - Select name, language (if you are planning to use it with Google Actions check [here](https://support.google.com/assistant/answer/7108196?hl=en) supported languages) and time zone @@ -55,6 +57,7 @@ Take a look to "Integrations", in the left menu, to configure third parties. ### {% linkable_title Configuring Home Assistant %} + Out of the box, the component will do nothing. You have to teach it about all intents you want it to answer to. The way it works is that the answer for each intent is based on [templates] that you define. Each template will have access to the existing states via the `states` variable but will also have access to all variables defined in the intent. You can use [templates] for setting `speech`. @@ -129,6 +132,7 @@ apiai: {%- endif -%} data_template: entity_id: "switch.light_{{ Room | replace(' ', '_') }}" +{% endraw %} ``` [apiai-web]: https://api.ai/ diff --git a/source/_components/binary_sensor.iss.markdown b/source/_components/binary_sensor.iss.markdown index 545e4ecb5c..8385023fdc 100644 --- a/source/_components/binary_sensor.iss.markdown +++ b/source/_components/binary_sensor.iss.markdown @@ -28,6 +28,11 @@ Configuration variables: - **show_on_map** (*Optional*): Option to show the position of the ISS on the map. Defaults to `False`. +

+If you set `show_on_map` `True` then the location attributes are named `latitude` and `longitude`. The default name of the location attributes is `lat` and `long` to avoid showing them on the map. +

+ + ### {% linkable_title Show position on map with camera platform %} The [generic camera platform](/components/camera.mjpeg/) offers the possibility to show the location of the ISS on Google Maps. diff --git a/source/_components/binary_sensor.wink.markdown b/source/_components/binary_sensor.wink.markdown index 10e5833a4b..c7101054e6 100644 --- a/source/_components/binary_sensor.wink.markdown +++ b/source/_components/binary_sensor.wink.markdown @@ -31,6 +31,7 @@ The requirement is that you have setup [Wink](/components/wink/). - Wink Relay buttons and presense detection - Wink spotter loudness and vibration (No Wink hub required) - Wink hub devices connection status. This includes any paired hubs like Hue, Wink v1, Wink v2, Wink Relay... +- Dropcam sensors

The above devices are confimed to work, but others may work as well. diff --git a/source/_components/climate.wink.markdown b/source/_components/climate.wink.markdown index ae5634031f..5f666b5d25 100644 --- a/source/_components/climate.wink.markdown +++ b/source/_components/climate.wink.markdown @@ -27,6 +27,7 @@ The requirement is that you have setup [Wink](/components/wink/). - Carrier (Unconfirmed) - Honeywell (No wink hub required) - Generic Z-Wave +- Quirky Aros window AC unit

The above devices are confimed to work, but others may work as well. diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown index e8562f8b30..f7fc9192a8 100644 --- a/source/_components/device_tracker.owntracks.markdown +++ b/source/_components/device_tracker.owntracks.markdown @@ -31,6 +31,7 @@ Configuration variables: - **max_gps_accuracy** (*Optional*): Sometimes Owntracks can report GPS location with a very low accuracy (few kilometers). That can trigger false zoning in your Home Assistant installation. With the parameter, you can filter these GPS reports. The number has to be in meter. For example, if you put 200 only GPS report with an accuracy under 200 will be take in account. - **waypoints** (*Optional*): Owntracks users can define [waypoints](http://owntracks.org/booklet/features/waypoints/) (a.k.a regions) which are similar in spirit to Home Assistant zones. If this configuration variable is `True`, the Owntracks users who are in `waypoint_whitelist` can export waypoints from the device and Home Assistant will import them as zone definitions. Defaults to `True`. - **waypoint_whitelist** (*Optional*): A list of user names (as defined for [Owntracks](/components/device_tracker.owntracks/)) who can export their waypoints from Owntracks to Home Assistant. Defaults to all users who are connected to Home Assistant via Owntracks. +- **secret** (*Optional*): [Payload encryption key](http://owntracks.org/booklet/features/encrypt/). This is usable when communicating with a third-party untrusted server or a public server (where anybody can subscribe to any topic). By default the payload is assumed to be unecrypted (although the comunication between Home Assistant and the server might still be encrypted). This feature requires the `libsodium` library to be present. A full sample configuration for the `owntracks` platform is shown below: diff --git a/source/_components/lock.nuki.markdown b/source/_components/lock.nuki.markdown index f24c9e0a6a..9c00f1c665 100644 --- a/source/_components/lock.nuki.markdown +++ b/source/_components/lock.nuki.markdown @@ -14,7 +14,7 @@ ha_release: 0.38 ha_iot_class: "Local Polling" --- -The `nuki` platform allows you to control [Nuki Smart Locks](https://nuki.io/en/smart-lock/) via either a [sofware bridge](https://play.google.com/store/apps/details?id=io.nuki.bridge) or a [physical bridge](https://nuki.io/en/bridge/). +The `nuki` platform allows you to control [Nuki Smart Locks](https://nuki.io/en/smart-lock/) via either a [software bridge](https://play.google.com/store/apps/details?id=io.nuki.bridge) or a [physical bridge](https://nuki.io/en/bridge/). To add a Nuki bridge to your installation, you need to enable developper mode on your bridge and define a port and an access token. This can be achieved using the [Android app](https://play.google.com/store/apps/details?id=io.nuki). Please note that the API token should be 6-20 characters long, even though the app allows you to set a longer one. Then add the following to your `configuration.yaml` file: diff --git a/source/_components/logbook.markdown b/source/_components/logbook.markdown index bd3d274375..609e9f5bbe 100644 --- a/source/_components/logbook.markdown +++ b/source/_components/logbook.markdown @@ -11,7 +11,7 @@ logo: logbook.png ha_category: "History" --- - The logbook component provides a different perspective on the history of your house by showing all the changes that happened to your house in reverse chronological order. [See the demo for a live example](/demo/). + The logbook component provides a different perspective on the history of your house by showing all the changes that happened to your house in reverse chronological order. [See the demo for a live example](/demo/). It depends on the `recorder` component for storing the data. This means that if the [`recorder`](/components/recorder/) component is set up to use e.g. MySQL or PostgreSQL as data store, the `logbook` component does not use the default SQLite database to store data. To enable the logbook in your installation, add the following to your `configuration.yaml` file: @@ -55,7 +55,7 @@ logbook: - media_player ``` -You can also use the `include` list and filter out some entities or domains with an `exclude` list. Usually this makes sense if you define domains on the include side and filter out some specific entities. +You can also use the `include` list and filter out some entities or domains with an `exclude` list. Usually this makes sense if you define domains on the include side and filter out some specific entities. ```yaml # Example of combining include and exclude configurations diff --git a/source/_components/media_player.apple_tv.markdown b/source/_components/media_player.apple_tv.markdown index e9707203e1..9b49da82a6 100644 --- a/source/_components/media_player.apple_tv.markdown +++ b/source/_components/media_player.apple_tv.markdown @@ -36,7 +36,7 @@ Configuration variables: - **login_id** (*Required*): An identifier used to login to the device, see below - **name** (*Optional*): The name of the device used in the frontend -In order to connect to the device you need a *login id*. The easiest way to obtain this identifier is to use the application ``atvremote``. It should be available in the same environment as you installed Home-Assistant. Just run it like this to scan for all devices (try again if a device is missing): +In order to connect to the device you need a *login id*. The easiest way to obtain this identifier is to use the application ``atvremote``. It should be available in the same environment as you installed Home-Assistant. To install this utility, run ``pip3 install --upgrade pyatv``. The run atvremote scan for all devices (try again if a device is missing): ```bash $ atvremote scan diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 26a771c1c2..6145e24ee0 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -20,7 +20,9 @@ The requirements are: - You need a [Telegram bot](https://core.telegram.org/bots). Please follow those [instructions](https://core.telegram.org/bots#6-botfather) to create one and get the token for your bot. Keep in mind that bots are not allowed to contact users. You need to make the first contact with your user. Meaning that you need to send a message to the bot from your user. - The `chat_id` of an user. -The quickest way to retrieve your `chat_id` is visiting [https://api.telegram.org/botYOUR_API_TOKEN/getUpdates](https://api.telegram.org/botYOUR_API_TOKEN/getUpdates) or to use `$ curl -X GET https://api.telegram.org/botYOUR_API_TOKEN/getUpdates`. Replace `YOUR_API_TOKEN` with your actual token. +To retrieve your `chat_id`, contact any of the Telegram bots created for this purpose (@myidbot, @get_id_bot) + +The quickest way to retrieve your `chat_id` is visiting [https://api.telegram.org/botYOUR_API_TOKEN/getUpdates](https://api.telegram.org/botYOUR_API_TOKEN/getUpdates) or to use `$ curl -X GET https:/api.telegram.org/botYOUR_API_TOKEN/getUpdates`. Replace `YOUR_API_TOKEN` with your actual token. The result set will include your chat ID as `id` in the `from` section: diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown index 7a23bfee0b..14385cba0f 100644 --- a/source/_components/recorder.markdown +++ b/source/_components/recorder.markdown @@ -90,8 +90,10 @@ If you only want to hide events from e.g. your history, take a look at the [`his | Database engine | `db_url` | | :---------------|:---------------------------------------------------------| | SQLite | `sqlite:///PATH/TO/DB_NAME` | -| MySQL | `mysql+pymysql://SERVER_IP/DB_NAME` | -| MySQL           | `mysql+pymysql://user:password@SERVER_IP/DB_NAME`       | +| MySQL | `mysql://SERVER_IP/DB_NAME` | +| MySQL           | `mysql://user:password@SERVER_IP/DB_NAME`       | +| MySQL (pymysql) | `mysql+pymysql://SERVER_IP/DB_NAME` | +| MySQL (pymysql) | `mysql+pymysql://user:password@SERVER_IP/DB_NAME` | | PostgreSQL | `postgresql://SERVER_IP/DB_NAME` | | PostgreSQL | `postgresql://scott:tiger@SERVER_IP/DB_NAME` | @@ -99,22 +101,22 @@ If you only want to hide events from e.g. your history, take a look at the [`his Not all Python bindings for the chosen database engine can be installed directly. This section contains additional details which should help you to get it working. -### {% linkable_title MYSQL %} +### {% linkable_title MySQL %} -For MySQL you may have to install a few dependencies: +For MySQL you may have to install a few dependencies. You can choose between `pymysql` and `mysqlclient`: ```bash $ sudo apt-get install libmysqlclient-dev -$ pip3 install pymysql +$ pip3 install mysqlclient ``` If you are in a virtual environment, don't forget to activate it before installing the pymysql package. ```bash pi@homeassistant:~ $ sudo -i -root@homeassistant:~# su homeassistant +root@homeassistant:~# su homeassistant homeassistant@homeassistant:/root$ cd /srv/homeassistant/homeassistant_venv/ homeassistant@homeassistant:/srv/homeassistant/homeassistant_venv$ source bin/activate -(homeassistant_venv) homeassistant@homeassistant:/srv/homeassistant/homeassistant_venv$ pip3 install pymysql +(homeassistant_venv) homeassistant@homeassistant:/srv/homeassistant/homeassistant_venv$ pip3 install mysqlclient ``` ### {% linkable_title PostgreSQL %} diff --git a/source/_components/sensor.bloomsky.markdown b/source/_components/sensor.bloomsky.markdown index d085060f34..a975a0300c 100644 --- a/source/_components/sensor.bloomsky.markdown +++ b/source/_components/sensor.bloomsky.markdown @@ -25,11 +25,9 @@ sensor: monitored_conditions: - Temperature - Humidity - - Rain - Pressure - UVIndex - Luminance - - Night - Voltage ``` @@ -38,9 +36,10 @@ Configuration variables: - **monitored_conditions** array (*Required*): The sensors that you wish to monitor on all of your devices. Select from these options: - Humidity - Luminance - - Night - Pressure - - Rain - Temperature - UVIndex - Voltage + + +More conditions are available using the [BloomSky binary sensor](/components/binary_sensor.bloomsky) component. diff --git a/source/_components/sensor.darksky.markdown b/source/_components/sensor.darksky.markdown index 153c29cb12..42f4c040c9 100644 --- a/source/_components/sensor.darksky.markdown +++ b/source/_components/sensor.darksky.markdown @@ -32,34 +32,13 @@ sensor: - summary - icon - nearest_storm_distance - - nearest_storm_bearing - - precip_type - - precip_intensity - - precip_probability - - temperature - - apparent_temperature - - dew_point - - wind_speed - - wind_bearing - - cloud_cover - - humidity - - pressure - - visibility - - ozone - - minutely_summary - - hourly_summary - - daily_summary - - temperature_max - - temperature_min - - apparent_temperature_max - - apparent_temperature_min - - precip_intensity_max ``` Configuration variables: - **api_key** (*Required*): Your API key. - **name** (*Optional*): Additional name for the sensors. Default to platform name. +- **forecast** array (*Optional*): List of days in the 7 day forecast you would like to receive data on, starting with tomorrow as day 1. Any `monitored_condition` with a daily forecast by DarkSky will generate a sensor tagged with `_`. - **monitored_conditions** array (*Required*): Conditions to display in the frontend. - **summary**: A human-readable text summary of the current conditions. - **precip_type**: The type of precipitation occurring. diff --git a/source/_components/sensor.dublin_bus_transport.markdown b/source/_components/sensor.dublin_bus_transport.markdown index 56fabad34d..d009ea2bef 100644 --- a/source/_components/sensor.dublin_bus_transport.markdown +++ b/source/_components/sensor.dublin_bus_transport.markdown @@ -31,7 +31,7 @@ sensor: Configuration variables: -- **stopid** (*Required*): The ID of the bust stop to get the information for. +- **stopid** (*Required*): The ID of the bus stop to get the information for. - **route** (*Optional*): Only show a single bus route at the stop. This is the same as the bus number, e.g. `83`. - **name** (*Optional*): A friendly name for this sensor. diff --git a/source/_components/sensor.google_travel_time.markdown b/source/_components/sensor.google_travel_time.markdown index 16c08a7098..4fb24f39d0 100644 --- a/source/_components/sensor.google_travel_time.markdown +++ b/source/_components/sensor.google_travel_time.markdown @@ -33,8 +33,9 @@ Configuration variables: - **api_key** (*Required*): Your application's API key (get one by following the instructions above). This key identifies your application for purposes of quota management. - **origin** (*Required*): The starting point for calculating travel distance and time. You can supply one or more locations separated by the pipe character, in the form of an address, latitude/longitude coordinates, or a [Google place ID](https://developers.google.com/places/place-id). When specifying the location using a Google place ID, the ID must be prefixed with `place_id:`. - **destination** (*Required*): One or more locations to use as the finishing point for calculating travel distance and time. The options for the destinations parameter are the same as for the origins parameter, described above. -- **name** (*Optional*): A name to display on the sensor. The default is "Google Travel Time - " where transit mode is the mode set in options for the sensor (if no mode is set, the default is driving). +- **name** (*Optional*): A name to display on the sensor. The default is "Google Travel Time - [Travel Mode]" where [Travel Mode] is the mode set in options for the sensor (see option "mode" below). - **options** (*Optional*): A dictionary containing parameters to add to all requests to the Distance Matrix API. A full listing of available options can be found [here](https://developers.google.com/maps/documentation/distance-matrix/intro#RequestParameters). + - **mode** (*Optional*): The travel mode used to calculate the directions / time. Can be `driving` (*Default*), `bicycling`, `transit` or `walking`. - **departure_time** (*Optional*): Can be `now`, a Unix timestamp, or a 24 hour time string like `08:00:00`. If you provide a time string, it will be combined with the current date to get travel time for that moment. - **arrival_time** (*Optional*): See notes above for `departure_time`. `arrival_time` can not be `now`, only a Unix timestamp or time string. You can not provide both `departure_time` and `arrival_time`. If you do provide both, `arrival_time` will be removed from the request. - **units** (*Optional*): Set the unit for the sensor in metric or imperial, otherwise the default unit the same as the unit set in `unit_system:`. diff --git a/source/_components/sensor.loop_energy.markdown b/source/_components/sensor.loop_energy.markdown index 544a09e862..f78fa70d7f 100644 --- a/source/_components/sensor.loop_energy.markdown +++ b/source/_components/sensor.loop_energy.markdown @@ -10,7 +10,7 @@ footer: true logo: loop.png ha_category: Energy ha_release: 0.17 -ha_iot_class: "Local Polling" +ha_iot_class: "Cloud Push" --- diff --git a/source/_components/sensor.moon.markdown b/source/_components/sensor.moon.markdown index b1795b040c..bcd2c78012 100644 --- a/source/_components/sensor.moon.markdown +++ b/source/_components/sensor.moon.markdown @@ -23,4 +23,5 @@ To enable the moon sensor, add the following lines to your `configuration.yaml`: sensor: - platform: moon ``` - +This sensor will return one of the following values: +`Full moon`, `Last quarter`, `First quarter` or `New moon`. diff --git a/source/_components/sensor.rflink.markdown b/source/_components/sensor.rflink.markdown index 9a07fc001d..f07d86606d 100644 --- a/source/_components/sensor.rflink.markdown +++ b/source/_components/sensor.rflink.markdown @@ -53,7 +53,7 @@ Configuration variables: Device configuration variables: - **name** (*Optional*): Name for the device, defaults to Rflink ID. -- **sensor_type_** (*Optional*): Override automatically detected type of sensor. +- **sensor_type** (*Required*): Override automatically detected type of sensor. - **unit_of_measurement** (*Optional*): Override automatically detected unit of sensor. - **aliasses** (*Optional*): Alternative Rflink ID's this device is known by. diff --git a/source/_components/sensor.sensehat.markdown b/source/_components/sensor.sensehat.markdown index b4c1b377ca..a8c29b0075 100644 --- a/source/_components/sensor.sensehat.markdown +++ b/source/_components/sensor.sensehat.markdown @@ -35,4 +35,113 @@ Configuration variables: - 'humidity' - 'pressure' +### {% linkable_title Installation instruction for the All-In-One installer and HASSbian %} + +Here are the steps to make the Sense HAT sensor work with a virtual environment. + +Install SenseHAT package. Switch to the `homeassistant_venv` directory and activate the virtual environment. + +```bash +$ sudo su -s /bin/bash homeassistant +$ source /srv/homeassistant/homeassistant_venv/bin/activate +``` + +Install the `sense-hat` module. + +```bash +$ pip3 install sense-hat +``` + +Please be patient, this will take a long while... + +Type `exit` to quit out of the _homeassistant_venv_ back to your `pi` environment. As all of the following steps should be under the `pi` user environment. + +Install the [RTIMU](https://github.com/RPi-Distro/RTIMULib) Python module: + +```bash +$ pip3 install rtimulib +``` + +Add symlink to RTIMU in `homeassistant_venv` directory. Create a symlink using the following command: + +```bash +$ ln -s /usr/lib/python3/dist-packages/RTIMU.cpython-34m-arm-linux-gnueabihf.so /srv/homeassistant/homeassistant_venv/lib/python3.4/ +``` + +Add `homeassistant` user to the `input` and the `i2c` groups. + +```bash +$ sudo addgroup homeassistant input +$ sudo addgroup homeassistant i2c +``` + +Reboot Raspberry Pi to apply changes. + +```bash +$ sudo reboot +``` + +### {% linkable_title Customizing the Sense HAT data %} + +To format the sensor values, add the following to your `sensor` entry in your `configuration.yaml` file. + +```yaml +# Example configuration.yaml entry +sensor: + - platform: sensehat + display_options: + - temperature + - humidity + - pressure + + - platform: template + sensors: + sensehat_temperature: + value_template: '{% raw %}{{ states.sensor.temperature.state | round(1) }}{% endraw %}' + unit_of_measurement: '°C' + sensehat_pressure: + value_template: '{% raw %}{{ states.sensor.pressure.state | round(1) }}{% endraw %}' + unit_of_measurement: 'mb' + sensehat_humidity: + value_template: '{% raw %}{{ states.sensor.humidity.state | round(1) }}{% endraw %}' + unit_of_measurement: '%' +``` + +Add the following to your `customize` section to set friendly names & icons for the values. + +```yaml +# Example configuration.yaml entry +customize: + sensor.sensehat_temperature: + icon: mdi:thermometer + friendly_name: "Temperature" + sensor.sensehat_humidity: + icon: mdi:weather-rainy + friendly_name: "Humidity" + sensor.sensehat_pressure: + icon: mdi:gauge + friendly_name: "Pressure" +``` + +Create a group for your Sense HAT details by adding the following to your `groups` section. + +```yaml +# Example configuration.yaml entry +group: + sense_hat: + name: Sense HAT + entities: + - sensor.sensehat_temperature + - sensor.sensehat_humidity + - sensor.sensehat_pressure +``` + +Add the _sense_hat group_ a group (_Kitchen for example_) + +```yaml +# Example configuration.yaml entry +group: + kitchen: + - group.sense_hat +``` diff --git a/source/_components/sensor.wink.markdown b/source/_components/sensor.wink.markdown index b162dc1d2e..b5d3343f22 100644 --- a/source/_components/sensor.wink.markdown +++ b/source/_components/sensor.wink.markdown @@ -25,6 +25,7 @@ The requirement is that you have setup [Wink](/components/wink/). - Wink eggminder (No Wink hub required) - Nest protect Smoke and CO severity (No confirmation that this is actually reported) (No Wink hub required) - Motion sensor temperature +- Quirky refuel propane tank monitor

The above devices are confimed to work, but others may work as well. diff --git a/source/_components/sensor.wunderground.markdown b/source/_components/sensor.wunderground.markdown index e1d439e269..138dbd0166 100644 --- a/source/_components/sensor.wunderground.markdown +++ b/source/_components/sensor.wunderground.markdown @@ -114,5 +114,8 @@ Configuration variables: All the conditions listed above will be updated each 5 minutes with exception of `alerts` that will be updated each 15 minutes by default. -Additional details about the API are available [here](https://www.wunderground.com/weather/api/d/docs). +

+Note: While the platform is called “wunderground” the sensors will show up in Home Assistant as “PWS” (eg: sensor.pws_weather). +

+Additional details about the API are available [here](https://www.wunderground.com/weather/api/d/docs). diff --git a/source/_components/shell_command.markdown b/source/_components/shell_command.markdown index dc6f83b304..babb6d11a2 100644 --- a/source/_components/shell_command.markdown +++ b/source/_components/shell_command.markdown @@ -33,7 +33,16 @@ The commands can be dynamic, using templates to insert values of other entities. Any service data passed into the service call to activate the shell command will be available as a variable within the template. ```yaml + # Apply value of a GUI slider to the shell_command +automation: + - alias: run_set_ac + trigger: + platform: state + entity_id: input_slider.ac_temperature + action: + service: shell_command.set_ac_to_slider + input_slider: ac_temperature: name: A/C Setting @@ -41,8 +50,9 @@ input_slider: min: 18 max: 32 step: 1 + {% raw %} shell_command: - set_ac_to_slider: 'irsend SEND_ONCE DELONGHI AC_{{ states.input_slider.ac_temperature.state}}_AUTO' + set_ac_to_slider: 'irsend SEND_ONCE DELONGHI AC_{{ states.input_slider.ac_temperature.state }}_AUTO' {% endraw %} ``` diff --git a/source/_components/switch.command_line.markdown b/source/_components/switch.command_line.markdown index f62e5bc67c..5c8574118e 100644 --- a/source/_components/switch.command_line.markdown +++ b/source/_components/switch.command_line.markdown @@ -59,7 +59,7 @@ switch: command_on: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/1" command_off: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/0" command_state: "/usr/bin/curl -X GET http://192.168.1.10/digital/4" - value_template: '{% raw %}{{ return_value == "1" }}{% endraw %}' + value_template: '{% raw %}{{ value == "1" }}{% endraw %}' friendly_name: Kitchen Lightswitch ``` diff --git a/source/_components/switch.tplink.markdown b/source/_components/switch.tplink.markdown index d2a6a8053c..9d70ebb146 100644 --- a/source/_components/switch.tplink.markdown +++ b/source/_components/switch.tplink.markdown @@ -33,7 +33,7 @@ switch: Configuration variables: -- **host** (*Required*): The IP address of your TP-Link switch, eg. `http://192.168.1.32`. +- **host** (*Required*): The IP address of your TP-Link switch, eg. `192.168.1.32`. - **name** (*Optional*): The name to use when displaying this switch. diff --git a/source/_components/tts.amazon_polly.markdown b/source/_components/tts.amazon_polly.markdown index e2879e79c0..74a72492ac 100644 --- a/source/_components/tts.amazon_polly.markdown +++ b/source/_components/tts.amazon_polly.markdown @@ -13,6 +13,7 @@ ha_release: 0.37 --- The `amazon_polly` text-to-speech platform that works with [Amazon Polly](https://aws.amazon.com/polly/) to create the spoken output. +Polly is a paid service via Amazon Web Services. There is a [free tier](https://aws.amazon.com/polly/pricing/) for the first 12 months and then a charge per million characters afterwards. To enable text-to-speech with Amazon Polly, add the following lines to your `configuration.yaml`: diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown index 0fe9383d56..3218c4a791 100644 --- a/source/_components/weather.openweathermap.markdown +++ b/source/_components/weather.openweathermap.markdown @@ -23,13 +23,12 @@ To add OpenWeatherMap to your installation, add the following to your `configura weather: - platform: openweathermap api_key: YOUR_API_KEY - latitude: 46.1234 - longitude: 7.1234 ``` Configuration variables: - **api_key** (*Required*): Your API key for http://openweathermap.org/. +- **name** (*Optional*): Name to use in the frontend. - **latitude** (*Optional*): Latitude of the location to display the weather. Defaults to the latitude in your your `configuration.yaml` file. - **longitude** (*Optional*): Longitude of the location to display the weather. Defaults to the longitude in your `configuration.yaml` file. diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown index cd19cf8bdc..bef84e4533 100644 --- a/source/_components/wemo.markdown +++ b/source/_components/wemo.markdown @@ -34,3 +34,5 @@ wemo: Any WeMo devices that are not statically configured but reachable via discovery will still be added automatically. Note that if you use this, you may want to configure your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability. + +If the device doesn't seem to work and all you see is the state "unavailable" on your dashboard, check that your firewall doesn't block incoming request on port 8989 since this is the address to which the WeMo devices sends their update. diff --git a/source/_cookbook/apache_configuration.markdown b/source/_cookbook/apache_configuration.markdown index 56f5c69392..65e6364bc2 100644 --- a/source/_cookbook/apache_configuration.markdown +++ b/source/_cookbook/apache_configuration.markdown @@ -10,7 +10,7 @@ footer: true ha_category: Infrastructure --- -This example demonstrates how you can configure Apache to act as a proxy for home assistant. +This example demonstrates how you can configure Apache to act as a proxy for Home Assistant. This is useful if you want to have: @@ -20,10 +20,15 @@ This is useful if you want to have: #### {% linkable_title Subdomain %} -So you already have a working Apache server available at example.org. -Your home assistant is correctly working on this web server and available at localhost:8123 +So you already have a working Apache server available at example.org. Your Home Assistant is correctly working on this web server and available at http://localhost:8123 -To be able to access to your home assistant instance by using https://home.example.org, add to following file into `/etc/httpd/conf/extra/hass.conf` +Enable [`mod_proxy_wstunnel`]((https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.htm) by running if you encounter issues while serving Home Assistant through your proxy: + +```bash +$ sudo a2enmod proxy_wstunnel +``` + +To be able to access to your Home Assistant instance by using https://home.example.org, add to following file to `/etc/httpd/conf/extra/` as `hass.conf` ```text @@ -50,8 +55,7 @@ If you don't want HTTPS, you can change `` to ` +``` + +### {% linkable_title Edit your Home Assistant configuration to use your certificates %} +```yaml +http: + api_password: YOUR_SECRET_PASSWORD + base_url: https://mydomain.com:8123 + ssl_certificate: /etc/letsencrypt/live/mydomain.com/fullchain.pem + ssl_key: /etc/letsencrypt/live/mydomain.com/privkey.pem +``` +Make sure the files are accessible by the user that runs Home Assistant, eg. `homeassistant` for a HASSbian setup. diff --git a/source/_ecosystem/notebooks/api.markdown b/source/_ecosystem/notebooks/api.markdown index eb6d00aa6a..bf20faaecb 100644 --- a/source/_ecosystem/notebooks/api.markdown +++ b/source/_ecosystem/notebooks/api.markdown @@ -7,6 +7,6 @@ sidebar: true comments: false sharing: true footer: true -ha_external_link: http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/home-assistant-python-api.ipynb --- +The [Python API](/developers/python_api/) allows one to create [interactive notebooks](http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/home-assistant-python-api.ipynb). diff --git a/source/_ecosystem/notebooks/database.markdown b/source/_ecosystem/notebooks/database.markdown index 9c62f5c79f..5b0cd3cd55 100644 --- a/source/_ecosystem/notebooks/database.markdown +++ b/source/_ecosystem/notebooks/database.markdown @@ -7,6 +7,6 @@ sidebar: true comments: false sharing: true footer: true -ha_external_link: http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/database-examples.ipynb --- +The [Database example](http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/database-examples.ipynb) shows you the details about how you can work with stored values. diff --git a/source/_ecosystem/notebooks/graph.markdown b/source/_ecosystem/notebooks/graph.markdown index ce0dc91ced..257d5adf4b 100644 --- a/source/_ecosystem/notebooks/graph.markdown +++ b/source/_ecosystem/notebooks/graph.markdown @@ -7,6 +7,6 @@ sidebar: true comments: false sharing: true footer: true -ha_external_link: http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/graph-single-sensor.ipynb --- +For graphing this [Jupyter notebook](ha_external_link: http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/graph-single-sensor.ipynb) should get you started. diff --git a/source/_ecosystem/notebooks/stats.markdown b/source/_ecosystem/notebooks/stats.markdown index 35582c9abf..542d7dbb18 100644 --- a/source/_ecosystem/notebooks/stats.markdown +++ b/source/_ecosystem/notebooks/stats.markdown @@ -7,6 +7,6 @@ sidebar: true comments: false sharing: true footer: true -ha_external_link: http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/database-statistics.ipynb --- +The [Statistics notebook](http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/database-statistics.ipynb) gets you started if you want to create statistical analysis of your data. diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html index d821918c43..6cbe7071ff 100644 --- a/source/_includes/asides/developers_navigation.html +++ b/source/_includes/asides/developers_navigation.html @@ -62,7 +62,7 @@
  • - API + {% active_link /developers/api/ API %}
    • {% active_link https://dev-docs.home-assistant.io/en/dev/ Home Assistant API %}
    • {% active_link /developers/websocket_api/ Websocket API %}
    • diff --git a/source/_includes/asides/ecosystem_navigation.html b/source/_includes/asides/ecosystem_navigation.html index ed30ae7c1c..24285c4f0b 100755 --- a/source/_includes/asides/ecosystem_navigation.html +++ b/source/_includes/asides/ecosystem_navigation.html @@ -5,6 +5,8 @@ {% include asides/ecosystem_hadashboard_navigation.html | compact_newlines %} {% elsif url_parts[2] == "appdaemon" %} {% include asides/ecosystem_appdaemon_navigation.html | compact_newlines %} +{% elsif url_parts[2] == "notebooks" %} + {% include asides/ecosystem_notebooks_navigation.html | compact_newlines %} {% comment %} {% elsif url_parts[2] == "cookbook" %} {% include asides/cookbook_navigation.html | compact_newlines %} diff --git a/source/_posts/2017-01-03-control-my-christmas-tree-stats.markdown b/source/_posts/2017-01-03-control-my-christmas-tree-stats.markdown index d96dc5b8ae..0caed0cd59 100644 --- a/source/_posts/2017-01-03-control-my-christmas-tree-stats.markdown +++ b/source/_posts/2017-01-03-control-my-christmas-tree-stats.markdown @@ -7,13 +7,13 @@ date_formatted: "January 3, 2017" author: Ben author_twitter: bruhautomation comments: true -categories: community +categories: Community og_image: /images/blog/2017-01-bruh-christmas/christmas-tree.gif --- Hello and Happy New Year! -I am not Paulus. My name is Ben. I’m the creator of the [BRUH Automation YouTube channel][bruh]. If you’ve ever seen any of my videos then you’ll know I love home automation and Home Assistant. +I am not Paulus. My name is Ben. I'm the creator of the [BRUH Automation YouTube channel][bruh]. If you've ever seen any of my videos then you'll know I love home automation and Home Assistant. I wanted to share some exciting stats from one of my latest projects - [Control My Christmas tree!](https://github.com/bruhautomation/BRUH-Christmas-Tree-2016) For this project, I created a Home Assistant instance on a Raspberry Pi 2 that was publically accessible via DuckDNS. Paulus was great in helping me disable several of the developer services that could have been exploited to disable the Home Assistant instance. @@ -32,11 +32,11 @@ During the time by tree was set up, I had 7,366 visitors from 88 countries conne View counts of the video.

      -I’m very excited to report that Home Assistant didn’t crash a single time. In fact, it didn’t even bog down or need to be restarted. The Wemo Insight and Sonoff relays were incredibly resilient, as well. I only had one Sonoff failure and two Wemo Insight failures both of which were resolved by power cycling them. The digital LED strips also fared pretty well, hanging up only twice, aside from a loose connector. +I'm very excited to report that Home Assistant didn't crash a single time. In fact, it didn't even bog down or need to be restarted. The Wemo Insight and Sonoff relays were incredibly resilient, as well. I only had one Sonoff failure and two Wemo Insight failures both of which were resolved by power cycling them. The digital LED strips also fared pretty well, hanging up only twice, aside from a loose connector. I would like to send a big thank you to the Home Assistant developers who have worked so hard on making Home Assistant run so well. This project is a testament to your hard work on making Home Assistant one of the best home automation platforms out there. Thank you! -I’m looking forward to continuing my home automation adventures with Home Assistant and I can’t wait for next Christmas with an even bigger and badder tree. :) +I’m looking forward to continuing my home automation adventures with Home Assistant and I can't wait for next Christmas with an even bigger and badder tree. :) Wishing everyone the best in 2017! diff --git a/source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown b/source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown index 04eb0a9118..32d16dc972 100644 --- a/source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown +++ b/source/_posts/2017-02-11-alert-appletv-mqtt-yeelight.markdown @@ -102,10 +102,34 @@ The [`yeelight`][yeelight] component has been ported to use a more stable and fe Bugfixes: [@balloob], [@fabaff], [@pvizeli], [@mnoorenberghe] [@Danielhiversen], [@armills], [@tchellomello], [@aequitas], [@mathewpeterson], [@molobrakos], [@michaelarnauts], [@jabesq], [@turbokongen], [@JshWright], [@andriej], [@jawilson], [@andrey-git], [@nodinosaur], [@konikvranik], and you if you are missing here. +### {% linkable_title Release 0.38.1 - February 12 %} + +- Fix logbook ordering ([@balloob]) +- Fix AppleTV conflicting dependency breaking websockets ([@balloob]) + +### {% linkable_title Release 0.38.2 - February 12 %} + +- Validate config will now respect custom config location ([@balloob]) +- Fix Nuki lock on Python 3.4 ([@pschmitt]) +- Fix login issues for myusps ([@happyleavesaoc]) +- Fix hdmi_cec with new customize ([@andrey-git]) +- Fix MQTT discovery ([@fabaff]) +- Fix Z-Wave thermostat units ([@turbokongen]) + +### {% linkable_title Release 0.38.3 - February 15 %} + +- Sonos: fix losing favorite sources on disconnect ([@pvizeli]) +- Google Calendar: fix timeMin losing events ([@happyleavesaoc]) +- Fix Wink PubNub subscription ([@w1ll1am23]) +- Z-Wave: getter not to ignore label ([@andrey-git]) +- Moon: remove unit of measurement ([@fabaff]) +- MySensors: add version requirement to notify and device tracker ([@MartinHjelmare]) + ### {% linkable_title Breaking changes %} - The support for [LG webOS Smart TVs][webostv] was improved. This requires you to move `$HOME/.pylgtv` to `$HASS_CONFIG_DIR/webostv.conf` or Home Assistant will need to be paired with the TV again. - Image processing events have been renamed: `identify_face` has become `image_processing.detect_face`, `found_plate` has become `image_processing.found_plate` - The [FFmpeg binary sensor][ffmpeg-bin] change the platform name from `ffmpeg` to `ffmpeg_noise` and `ffmpeg_motion`. Also all FFmpeg-related services are moved from a platform implementation to a the [FFmpeg components][ffmpeg] and were rename from `binary_sensor.ffmpeg_xy` to `ffmpeg.xy`. +- The frontend core changes have caused all custom panels to break. Docs have not been updated yet. The gist is that you have to use `this.hass.entities`, `this.hass.callService` and `this.hass.callApi`. ### {% linkable_title If you need help... %} ...don't hesitate to use our very active [forums][forum] or join us for a little [chat][gitter]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -130,6 +154,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@Duoxilian]: https://github.com/Duoxilian [@eagleamon]: https://github.com/eagleamon [@fabaff]: https://github.com/fabaff +[@happyleavesaoc]: https://github.com/happyleavesaoc [@herm]: https://github.com/herm [@jabesq]: https://github.com/jabesq [@jawilson]: https://github.com/jawilson diff --git a/source/_posts/2017-02-14-clt-workshop.markdown b/source/_posts/2017-02-14-clt-workshop.markdown new file mode 100644 index 0000000000..3a9530b889 --- /dev/null +++ b/source/_posts/2017-02-14-clt-workshop.markdown @@ -0,0 +1,28 @@ +--- +layout: post +title: "Workshop at CLT 2017" +description: "Home Assistant Workshop at the Chemnitzer Linux-Tage 2017" +date: 2017-02-14 08:04:05 +0000 +date_formatted: "February 14, 2017" +author: Fabian Affolter +author_twitter: fabaff +comments: true +categories: Community +og_image: /images/blog/2017-02-workshop/social.png +--- + +There will be a Home Assistant Workshop at the [Chemnitzer Linux-Tage 2017][clt]. First I will cover the installation, the setup, and the configuration process. The second part will be all about automation. Last but not least, we will talk about the integration of a new platform/component. + +Check the Workshop [overview][overview] to get the details. + +[Reqistration][anmeldung] is required as the places in the room are limited. The deadline for the registration is March, 8th 2017. + +- Location: Technische Universität Chemnitz, Reichenhainer Straße 90, 09126 Chemnitz, Germany +- Date: March, 12th 2017 +- Time: 10:00, Room W2 +- Language: German + +[clt]: https://chemnitzer.linux-tage.de/2017/ +[overview]: https://chemnitzer.linux-tage.de/2017/en/programm/beitrag/356 +[anmeldung]: https://chemnitzer.linux-tage.de/2017/en/programm/anmeldung/workshop/356 + diff --git a/source/_topics/templating.markdown b/source/_topics/templating.markdown index e02c579911..e2f06762bd 100644 --- a/source/_topics/templating.markdown +++ b/source/_topics/templating.markdown @@ -122,7 +122,7 @@ Print out a list of all the sensor states. {% if is_state('device_tracker.paulus', 'home') %} Ha, Paulus is home! {% else %} - Paulus is at {{ states('device_tracker.paulus')) }}. + Paulus is at {{ states('device_tracker.paulus') }}. {% endif %} {{ states.sensor.temperature | float + 1 }} diff --git a/source/cookbook/index.markdown b/source/cookbook/index.markdown index 56a28fcfbb..c2d9bb37b3 100644 --- a/source/cookbook/index.markdown +++ b/source/cookbook/index.markdown @@ -19,6 +19,10 @@ This is a community curated list of different ways to use Home Assistant. Most o New recipes can be added via the [home-assistant.io repository](https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_cookbook). +

      +A great place to find popular configurations is on this [GitHub search](https://github.com/search?q=topic%3Ahome-assistant-config&type=Repositories) for repositories with the `home-assistant-config` topic. +

      + {% assign cookbook = site.cookbook | sort: 'title' %} {% assign categories = cookbook | map: 'ha_category' | uniq | sort %} diff --git a/source/developers/api.markdown b/source/developers/api.markdown new file mode 100644 index 0000000000..7bf8bbdc62 --- /dev/null +++ b/source/developers/api.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "API" +description: "Home Assistant API" +date: 2017-02-15 07:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Home Assistant prvides various APIs. For detail please refer to [Home Assistant API](https://dev-docs.home-assistant.io/en/dev/) documentation. + + * [Websocket API](/developers/websocket_api/) + * [RESTful API](/developers/rest_api/) + * [Python API](/developers/python_api/) + * [Server-sent events](/developers/server_sent_events/) + diff --git a/source/developers/cla_sign.html b/source/developers/cla_sign.html index 38e98f55b1..e6b7b2b9a9 100644 --- a/source/developers/cla_sign.html +++ b/source/developers/cla_sign.html @@ -418,15 +418,21 @@ footer: true }); } + function qs(key) { + key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&"); // escape RegEx meta chars + var match = location.search.match(new RegExp("[?&]"+key+"=([^&]+)(&|$)")); + return match && decodeURIComponent(match[1].replace(/\+/g, " ")); + } + $(document).ready(function(){ populateCountries("country", "region"); var spinner = new Spinner().spin(document.getElementById('spinner')); - var codeCheck = window.location.href.match(/\?code=(.*)/); + var codeCheck = qs('code'); if (codeCheck && codeCheck.length > 0) { $.ajax({ type: "POST", url: "https://cla.home-assistant.io/github/exchange", - data: JSON.stringify({"code": codeCheck[1]}), + data: JSON.stringify({"code": codeCheck}), contentType: "application/json", }).done(function(data){ var uri = window.location.toString(); diff --git a/source/developers/website.markdown b/source/developers/website.markdown index b407ff48e0..4650540a8d 100644 --- a/source/developers/website.markdown +++ b/source/developers/website.markdown @@ -36,6 +36,10 @@ Then you can work on the documentation:

      It could be necessary that you run `rake generate` prior to `rake preview` for the very first preview.

      +

      +Site generated by `rake` is only available locally. If you are developing on a headless machine use port forwarding: +`ssh -L 4000:localhost:4000 user_on_headless_machine@ip_of_headless_machine` +

      ### {% linkable_title Create a page %} diff --git a/source/developers/websocket_api.markdown b/source/developers/websocket_api.markdown index 785b907b9f..0331e2c6bb 100644 --- a/source/developers/websocket_api.markdown +++ b/source/developers/websocket_api.markdown @@ -297,7 +297,7 @@ This will get a dump of the current services in Home Assistant. ```json { "id": 19, - "type": "get_config" + "type": "get_services" } ``` diff --git a/source/getting-started/automation-action.markdown b/source/getting-started/automation-action.markdown index cea9bc896c..485e3514f4 100644 --- a/source/getting-started/automation-action.markdown +++ b/source/getting-started/automation-action.markdown @@ -48,7 +48,6 @@ automation 2: message: Oh wow you really missed something great. ``` - Conditions can also be part of an action. You can combine multiple service calls and conditions in a single action, and they will be processed in the order you put them in. If the result of a condition is false, the action will stop there so any service calls after that condition will not be executed. ```yaml @@ -70,4 +69,4 @@ automation: value_template: '{% raw %}{{ states.sensor.sensorluz_7_0.state < 10 }}{% endraw %}' - service: scene.turn_on entity_id: scene.DespiertaDespacho -``` +``` \ No newline at end of file diff --git a/source/getting-started/autostart-systemd.markdown b/source/getting-started/autostart-systemd.markdown index 93f744ea1e..c9a94abbbc 100644 --- a/source/getting-started/autostart-systemd.markdown +++ b/source/getting-started/autostart-systemd.markdown @@ -35,7 +35,7 @@ WantedBy=multi-user.target EOF' ``` -If you've setup Home Assistant in `virtualenv` following our [manual installation guide](https://home-assistant.io/getting-started/installation-raspberry-pi/), the following template should work for you. +If you've setup Home Assistant in `virtualenv` following our [python installation guide](https://home-assistant.io/getting-started/installation-virtualenv/) or [manual installation guide for raspberry pi](https://home-assistant.io/getting-started/installation-raspberry-pi/), the following template should work for you. ``` [Unit] @@ -46,9 +46,9 @@ After=network.target Type=simple User=homeassistant #make sure the virtualenv python binary is used -Environment=VIRTUAL_ENV="/srv/homeassistant/homeassistant_venv" +Environment=VIRTUAL_ENV="/srv/homeassistant" Environment=PATH="$VIRTUAL_ENV/bin:$PATH" -ExecStart=/srv/homeassistant/homeassistant_venv/bin/hass -c "/home/homeassistant/.homeassistant" +ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant" [Install] WantedBy=multi-user.target diff --git a/source/getting-started/customizing-devices.markdown b/source/getting-started/customizing-devices.markdown index 5094c388ee..1c98f8d4a1 100644 --- a/source/getting-started/customizing-devices.markdown +++ b/source/getting-started/customizing-devices.markdown @@ -11,31 +11,26 @@ footer: true By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by overriding attributes of specific entities. -This format works for version 0.37+. For pre-0.37 use [Older format](https://home-assistant.io/getting-started/customizing-devices/#older-format) - -`customize` consists of a list of attribute customization blocks - ```yaml -# Example configuration.yaml entry homeassistant: name: Home unit_system: metric # etc customize: - # Only the 'entity_id' is required. All other options are optional. - - entity_id: sensor.living_room_motion + # Add an entry for each entity that you want to overwrite. + sensor.living_room_motion: hidden: true - - entity_id: thermostat.family_roomfamily_room + thermostat.family_room: entity_picture: https://example.com/images/nest.jpg friendly_name: Nest - - entity_id: switch.wemo_switch_1 + switch.wemo_switch_1: friendly_name: Toaster entity_picture: /local/toaster.jpg - - entity_id: switch.wemo_switch_2 + switch.wemo_switch_2: friendly_name: Kitchen kettle icon: mdi:kettle - - entity_id: switch.rfxtrx_switch + switch.rfxtrx_switch: assumed_state: false ``` @@ -57,62 +52,9 @@ Device class is currently supported by the following platforms: * [Binary Sensor](/components/binary_sensor/) * [Cover](/components/cover/) -### {% linkable_title Advanced example %} - -You can also specify attributes for all devices in a domain, use wildcards, use several entity IDs as a list or comma separated list. - -```yaml -homeassistant: - customize: - - entity_id: sensor - icon: mdi:kettle # Give all sensor the kettle icon - - entity_id: light.family* - hidden: true # Hide all lights that have an ID starting with 'family' - - entity_id: switch.wemo_switch_1,switch.wemo_switch_2,switch.wemo_switch_3 - entity_picture: /local/toaster.jpg # Set picture on multiple devices -``` - -Either `entity_id` must be present in each customization block. - -### {% linkable_title Older format %} - -In the previous version of customize format the keys were the IDs: -```yaml -homeassistant: - name: Home - unit_system: metric - # etc - - customize: - # Only the 'entity_id' is required. All other options are optional. - sensor.living_room_motion: - hidden: true - thermostat.family_roomfamily_room: - entity_picture: https://example.com/images/nest.jpg - friendly_name: Nest - switch.wemo_switch_1: - friendly_name: Toaster - entity_picture: /local/toaster.jpg - switch.wemo_switch_2: - friendly_name: Kitchen kettle - icon: mdi:kettle - - entity_id: switch.rfxtrx_switch: - assumed_state: false -``` -This format doesn't support comma-separated IDs, wildcards or domain matching. - -The formats can't be mixed -```yaml - # NOT A VALID CONFIGURATION - customize: - sensor.living_room_motion: - hidden: true - - entity_id: thermostat.family_roomfamily_room - friendly_name: Nest -``` ### {% linkable_title Reloading customize %} - + Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant/reload_core_config`. This allows you to change your customize section and see it being applied without having to restart Home Assistant. To call this service, go to the service developer tool icon service developer tools, select the service `homeassistant/reload_core_config` and click "Call Service".

      diff --git a/source/getting-started/installation-docker.markdown b/source/getting-started/installation-docker.markdown index b60c51c92f..d1c5221b7e 100644 --- a/source/getting-started/installation-docker.markdown +++ b/source/getting-started/installation-docker.markdown @@ -18,9 +18,9 @@ $ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/ This will launch Home Assistant and serve the web interface from port 8123 on your Docker host.

      -When using boot2docker on OS X you are unable to map the local time to your Docker container. Replace `-v /etc/localtime:/etc/localtime:ro` with `-e "TZ=America/Los_Angeles"` (replacing America/Los_Angeles with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones)) +When using boot2docker on macOS you are unable to map the local time to your Docker container. Replace `-v /etc/localtime:/etc/localtime:ro` with `-e "TZ=America/Los_Angeles"` (replacing America/Los_Angeles with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones)) -Additionally, if your expectation is that you will be able to browse directly to `http://localhost:8123` on your OS X host, then you will also need to replace the `--net=host` switch with `-p 8123:8123`. This is currently the only way to forward ports on to your actual host(OS X) machine instead of the virtual machine inside xhyve. More detail on this can be found in [the docker forums](https://forums.docker.com/t/should-docker-run-net-host-work/14215/10). +Additionally, if your expectation is that you will be able to browse directly to `http://localhost:8123` on your macOS host, then you will also need to replace the `--net=host` switch with `-p 8123:8123`. This is currently the only way to forward ports on to your actual host (macOS) machine instead of the virtual machine inside `xhyve`. More detail on this can be found in [the docker forums](https://forums.docker.com/t/should-docker-run-net-host-work/14215/10).

      If you change the config you have to restart the server. diff --git a/source/getting-started/installation-raspberry-pi.markdown b/source/getting-started/installation-raspberry-pi.markdown index e4e7c76f42..5c58622a79 100644 --- a/source/getting-started/installation-raspberry-pi.markdown +++ b/source/getting-started/installation-raspberry-pi.markdown @@ -12,7 +12,7 @@ footer: true This installation of Home Assistant requires the Raspberry Pi to run [Raspbian Lite](https://www.raspberrypi.org/downloads/raspbian/). The installation will be installed in a [Virtual Environment](/getting-started/installation-virtualenv) with minimal overhead. Instructions assume this is a new installation of Raspbian Lite. -Connect to the Raspberry Pi over ssh. Default password is `raspberry`. +Connect to the Raspberry Pi over ssh. Default password is `raspberry`. You will need to enable ssh access. The raspberry pi website has instructions [here](https://www.raspberrypi.org/documentation/remote-access/ssh/). ```bash $ ssh pi@ipadress @@ -51,17 +51,17 @@ Next up is to create and change to a virtual environment for Home Assistant. Thi ```bash $ sudo su -s /bin/bash homeassistant $ cd /srv/homeassistant -$ python3 -m venv homeassistant_venv -$ source /srv/homeassistant/homeassistant_venv/bin/activate +$ python3 -m venv . +$ source bin/activate ``` Once you have activated the virtual environment you will notice the prompt change and then you can install Home Assistant. ```bash -(homeassistant_venv) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant +(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant ``` Start Home Assistant for the first time. This will complete the installation, create the `.homeasssistant` configuration directory in the `/home/homeassistant` directory and install any basic dependencies. ```bash -(homeassistant_venv) $ hass +(homeassistant) $ hass ``` You can now reach your installation on your raspberry pi over the web interface on [http://ipaddress:8123](http://ipaddress:8123). diff --git a/source/getting-started/installation-virtualenv.markdown b/source/getting-started/installation-virtualenv.markdown index c8596abe41..6bedb68637 100644 --- a/source/getting-started/installation-virtualenv.markdown +++ b/source/getting-started/installation-virtualenv.markdown @@ -44,7 +44,7 @@ This can be anywhere you want. As example we put it in `/srv`. You also need to ```bash $ sudo mkdir /srv/homeassistant -$ sudo chown homeassistant /srv/homeassistant +$ sudo chown homeassistant:homeassistant /srv/homeassistant ``` ### {% linkable_title Step 3: Become the new user %} @@ -103,7 +103,7 @@ Upgrading Home Assistant is simple, just repeat steps 3, 5 and 6. The [autostart instructions](/getting-started/autostart/) will work just fine, just be sure to replace `/usr/bin/hass` with `/srv/homeassistant/bin/hass` and specify the `homeassistant` user where appropriate. -### {% linkable_title Installing python-openzwave %} +### {% linkable_title Installing python-openzwave in a virtualenv %} If you want to use Z-Wave devices, you will need to install `python-openzwave` in your virtualenv. This requires a small tweak to the instructions in [the Z-Wave Getting Started documentation](/getting-started/z-wave/) diff --git a/source/getting-started/updating.markdown b/source/getting-started/updating.markdown index 2f865889f0..a9bf836b89 100644 --- a/source/getting-started/updating.markdown +++ b/source/getting-started/updating.markdown @@ -9,7 +9,9 @@ sharing: true footer: true --- -The upgrade process differed depending on the installtion you have, review the documentaion specific to your install [HASSbian](/getting-started/installation-raspberry-pi-image/#update-home-assistant-on-hassbian), [Raspberry Pi All-In-One Installer](/getting-started/installation-raspberry-pi-all-in-one/#upgrading), [Vagrant](/getting-started/installation-vagrant/), or [Virtualenv](/getting-started/installation-virtualenv/#upgrading-home-assistant). +

      +The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [HASSbian](/getting-started/hassbian-common-tasks/#update-home-assistant), [Raspberry Pi All-In-One Installer](/getting-started/installation-raspberry-pi-all-in-one/#upgrading), [Vagrant](/getting-started/installation-vagrant/), or [Virtualenv](/getting-started/installation-virtualenv/#upgrading-home-assistant). +

      The default way to update Home Assistant to the latest release, when available, is: diff --git a/source/getting-started/yaml.markdown b/source/getting-started/yaml.markdown index b8eebda211..7a5fb2cb7d 100644 --- a/source/getting-started/yaml.markdown +++ b/source/getting-started/yaml.markdown @@ -32,7 +32,7 @@ Getting the right indentation can be tricky if you're not using an editor with a You can use [YAMLLint](http://www.yamllint.com/) to check if your YAML-syntax is correct before loading it into Home Assistant which will save you some time. *Please pay attention on not putting in private data, as it is a 3rd-party website not maintained by Home Assistant.* -Lines that start with **#** are comments and are ignored by the system. +Text following a **#** are comments and are ignored by the system. The next example shows an [input_select](/components/input_select) component that uses a block collection for the options values. The other properties (like name) are specified using mappings. Note that the second line just has `threat:` with no value on the same line. Here threat is the name of the input_select and the values for it are everything nested below it. diff --git a/source/getting-started/z-wave.markdown b/source/getting-started/z-wave.markdown index 1e02d9d8f3..bd59ff1ee4 100644 --- a/source/getting-started/z-wave.markdown +++ b/source/getting-started/z-wave.markdown @@ -13,6 +13,10 @@ footer: true There is currently support for climate, covers, lights, locks, sensors, switches and thermostats. All will be picked up automatically after configuring this platform. +### {% linkable_title Installation in Virtualenv (python-OpenZWace) %} + +If you installed Home Assistant using a virtual environment then please read the instructions on [Installing python-OpenZWave in a virtualenv](https://home-assistant.io/getting-started/installation-virtualenv/#installing-python-openzwave-in-a-virtualenv). + ### {% linkable_title Installation %} To allow Home Assistant to talk to your Z-Wave USB stick you will have to compile the OpenZWave library and install the related [python-OpenZWave package](https://github.com/OpenZWave/python-openzwave). This can be done as follows. _(Note: The Home Assistant docker image and the All In One installer have support for Z-Wave already built-in!)_ @@ -58,7 +62,7 @@ With this installation, your `config_path` needed below will resemble: If you followed along with setting up a virtual environment, your path will be: ```bash -/srv/hass/python-openzwave/openzwave/config +/srv/homeassistant/python-openzwave/openzwave/config ``` diff --git a/source/images/blog/2017-02-workshop/social.png b/source/images/blog/2017-02-workshop/social.png new file mode 100644 index 0000000000..71baff1a6a Binary files /dev/null and b/source/images/blog/2017-02-workshop/social.png differ