diff --git a/source/_components/binary_sensor.nest.markdown b/source/_components/binary_sensor.nest.markdown index 88aee1f9790..fdb8f187f48 100644 --- a/source/_components/binary_sensor.nest.markdown +++ b/source/_components/binary_sensor.nest.markdown @@ -27,7 +27,7 @@ binary_sensor: monitored_conditions: - 'fan' - 'hvac_ac_state' - 'hvac_heater_state' + - 'hvac_heater_state' - 'hvac_aux_heater_state' - 'hvac_heat_x2_state' - 'hvac_heat_x3_state' diff --git a/source/_components/climate.markdown b/source/_components/climate.markdown index 4b2f5396fbf..24caf95194e 100644 --- a/source/_components/climate.markdown +++ b/source/_components/climate.markdown @@ -20,3 +20,176 @@ climate: platform: demo ``` +## {% linkable_title Services %} + +### {% linkable_title Climate control services %} +Available services: `climate.set_aux_heat`, `climate.set_away_mode`, `climate.set_temperature`, `climate.set_humidity`, `climate.set_fan_mode`, `climate.set_operation_mode`, `climate.set_swing_mode` + +
+Not all climate services may be available for your platform. Be sure to check the available services Home Assistant has enabled by checking **Services**.
+
Thermostats with support for fan modes or different operating modes, will be handled like a HVAC device and will also be detected as one. -If the thermostat support different operationg modes, you will get one thermostat entity for each mode. These can be hidden with settings using the customize setting in the `configuration.yaml` file. +If the thermostat support different operating modes, you will get one thermostat entity for each mode. These can be hidden with settings using the customize setting in the `configuration.yaml` file.
+ +To enable the climate component for your Z-Wave network, add the following to your `configuration.yaml` file. + +```yaml +climate: + platform: zwave +``` + +Once enabled, any Z-Wave climate devices will be available to Home Assistant. Multiple entities may be created. The following entities are created for a Remotec ZXT-120. + +- **climate.remotec_zxt120_heating_1_id** Allows you to control the connected device. See below for examples. +- **sensor.remotec_zxt120_temperature_38** A sensor which returns the current temperature set on the attached device. + +### {% linkable_title Automating Z-Wave Climate Devices %} + +The following examples will instruct a Remotec ZXT-120 to turn the attached device mode to Heating, and set the temperature at 24 degrees after 8pm. Add it to `automation.yaml`. + +```yaml +automation: + - alias: Turn on Heater at 8pm + trigger: + - platform: time + after: "20:00:00" + action: + - service: climate.set_operation_mode + entity_id: climate.remotec_zxt120_heating_1_id + data: + operation_mode: Heat + - service: climate.set_temperature + entity_id: climate.remotec_zxt120_heating_1_39 + data: + temperature: 24 +``` + +Generally in Home Assistant you can use the `homeassistant/turn_off` service to turn devices off. For the Remotec ZXT-120, you must instead make a service call like the following. + +```yaml +automation: + - alias: Turn off Heater at 9pm + trigger: + - platform: time + after: "21:00:00" + action: + - service: climate.set_operation_mode + entity_id: climate.remotec_zxt120_heating_1_id + data: + operation_mode: 'Off' +``` + +**Note:** In the example above, the word `Off` is encased in single quotes to be valid YAML. + +### {% linkable_title Test if it works %} + +A simple way to test if your Z-Wave climate device is working is to use[Dark Sky](https://darksky.net/) will charge you $0.0001 per API call if you enter your credit card details and create more than 1000 calls per day. @@ -26,39 +26,40 @@ To add Dark Sky to your installation, add the following to your `configuration.y ```yaml # Example configuration.yaml entry sensor: - platform: darksky - api_key: YOUR_APP_KEY - monitored_conditions: - - 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 + - platform: darksky + api_key: YOUR_API_KEY + monitored_conditions: + - 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. - **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. @@ -85,4 +86,8 @@ Configuration variables: - **units** (*Optional*): Specify the unit system. Default to `si` or `us` based on the temperature preference in Home Assistant. Other options are `auto`, `us`, `si`, `ca`, and `uk2`. `auto` will let forecast.io decide the unit system based on location. +
+Note: While the platform is called "darksky" the sensors will show up in Home Assistant as "dark_sky" (eg: sensor.dark_sky_summary). +
+ Details about the API are available in the [Dark Sky documentation](https://darksky.net/dev/docs). diff --git a/source/_components/sensor.emoncms.markdown b/source/_components/sensor.emoncms.markdown index 35a8bb7b01d..ed60592a2c5 100644 --- a/source/_components/sensor.emoncms.markdown +++ b/source/_components/sensor.emoncms.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Emoncms Sensor" -description: "Instructions on how to integrate emoncms feeds as sensors into Home Assistant." +description: "Instructions on how to integrate Emoncms feeds as sensors into Home Assistant." date: 2016-09-08 00:15 logo: emoncms.png sidebar: true @@ -14,102 +14,96 @@ ha_iot_class: "Local Polling" --- -The `emoncms` sensor platform creates sensors for the feeds available in your local or cloud based version of [emoncms](https://emoncms.org). +The `emoncms` sensor platform creates sensors for the feeds available in your local or cloud based version of [Emoncms](https://emoncms.org). To enable this sensor, add the following lines to your `configuration.yaml`, it will list all feeds as a sensor: ```yaml -# Example configuration.yaml entry using cloud based emoncms +# Example configuration.yaml entry using cloud based Emoncms sensor: platform: emoncms - api_key: put your emoncms read api key here + api_key: API_KEY url: https://emoncms.org id: 1 ``` ## {% linkable_title Configuration variables %} -- **api_key** (*Required*): The read api key for your emoncms user. -- **url** (*Required*): The base url of emoncms, use "https://emoncms.org" for the cloud based version. -- **id** (*Required*): Positive Integer identifier for the sensor. Must be unique if you specify multiple emoncms sensors. -- **include_only_feed_id** (*optional*): Positive integer list of emoncms feed id's. Only the feeds with feed id's specified here will be displayed. Can not be specified if `exclude_feed_id` is specified. -- **exclude_feed_id** (*optional*): Positive integer list of emoncms feed id's. All the feeds will be displayed as sensors except the ones listed here. Can not be specified if `include_only_feed_id` is specified. -- **sensor_names** (*optional*): Dictionary of names for the sensors created that are created based on feedid. The dictionary consists of feedid:name pairs. Sensors for feeds with their feedid mentioned here will get the chosen name instead of the default name +- **api_key** (*Required*): The read API key for your Emoncms user. +- **url** (*Required*): The base URL of Emoncms, use "https://emoncms.org" for the cloud based version. +- **id** (*Required*): Positive integer identifier for the sensor. Must be unique if you specify multiple Emoncms sensors. +- **include_only_feed_id** (*Optional*): Positive integer list of Emoncms feed IDs. Only the feeds with feed IDs specified here will be displayed. Can not be specified if `exclude_feed_id` is specified. +- **exclude_feed_id** (*Optional*): Positive integer list of Emoncms feed IDs. All the feeds will be displayed as sensors except the ones listed here. Can not be specified if `include_only_feed_id` is specified. +- **sensor_names** (*Optional*): Dictionary of names for the sensors created that are created based on feed ID. The dictionary consists of `feedid: name` pairs. Sensors for feeds with their feed ID mentioned here will get the chosen name instead of the default name - **value_template** (*Optional*): Defines a [template](/topics/templating/) to alter the feed value. - **scan_interval** (*Optional*): Defines the update interval of the sensor in seconds. - **unit_of_measurement** (*Optional*): Defines the unit of measurement of for all the sensors. default is "W". ## {% linkable_title Default naming scheme %} -The names of the sensors created by this component, will be a combination of static text, `id` from the config and `feedid` from the emoncms feed, unless `sensor_names` is used. -An example name would be "emoncms1_feedid_10" +The names of the sensors created by this component, will be a combination of static text, `id` from the config and `feedid` from the Emoncms feed, unless `sensor_names` is used. An example name would be `emoncms1_feedid_10`. -## {% linkable_title Examples %} +### {% linkable_title Examples %} In this section you find some more examples of how this sensor can be used. +Display only feeds with their feed IDs specified in `include_only_feed_id`. + ```yaml -# Display only feeds with their feed id's specified in "include_only_feed_id" +# Example configuration.yaml entry sensor: - platform: emoncms - api_key: put your emoncms read api key here + api_key: API_KEY url: https://emoncms.org id: 1 unit_of_measurement: "W" include_only_feed_id: - 107 - - 106 - 105 ``` +Display all feeds except feeds with their feed id specified in `exclude_feed_id`. ```yaml -# Display all feeds except feeds with their feed id specified in "exclude_feed_id" +# Example configuration.yaml entry sensor: - platform: emoncms - api_key: put your emoncms read api key here + api_key: API_KEY url: https://emoncms.org id: 1 unit_of_measurement: "KWH" exclude_feed_id: - 107 - - 106 - 105 ``` +Display only feeds with their feed id's specified in `include_only_feed_id` and give the feed sensors a name using "sensor_names". You don't have to specify all feeds names in "sensor_names", the remaining sensor names will be chosen based on "id" and the Emoncms `feedid`. ```yaml -# Display only feeds with their feed id's specified in "include_only_feed_id" and give the feed sensors a name using "sensor_names". You don't have to specify all feeds names in "sensor_names", the remaining sensor names will be chosen based on "id" and the emoncms feedid +# Example configuration.yaml entry sensor: - platform: emoncms - api_key: put your emoncms read api key here - url: https://emoncms.org + api_key: API_KEY + url: https://emoncms.org id: 1 unit_of_measurement: "KW" include_only_feed_id: - 5 - - 18 - - 29 - - 48 - - 61 - - 110 - - 116 - 120 sensor_names: 5: "feed 1" - 18: "feed 2" - 29: "feed 3" 48: "kwh feed" 61: "amp feed" 110: "watt feed" ``` +Use a `value_template` to add 1500 to the feed value for all specified feed IDs in `include_feed_id`. ```yaml -# Use a "value_template" to add 1500 to the feed value for all specified feed id's in "include_feed_id" +# Example configuration.yaml entry sensor: - platform: emoncms - api_key: put your emoncms read api key here + api_key: API_KEY url: https://emoncms.org scan_interval: 15 id: 1 @@ -117,16 +111,15 @@ sensor: include_only_feed_id: - 107 - 106 - - 105 - - 61 ``` +Display feeds from the same Emoncms instance with 2 groups of feeds, diffrent `scan_interval` and a diffrent `unit_of_measurement`. ```yaml -# Display feeds from the same emoncms instance with 2 groups of feeds, diffrent scan_interval and a diffrent unit_of_measurement +# Example configuration.yaml entry sensor: - platform: emoncms - api_key: put your emoncms read api key here + api_key: API_KEY url: https://emoncms.org scan_interval: 30 id: 1 @@ -134,7 +127,6 @@ sensor: include_only_feed_id: - 107 - 106 - - 105 - platform: emoncms api_key: put your emoncms read api key here url: https://emoncms.org @@ -143,7 +135,5 @@ sensor: unit_of_measurement: "A" include_only_feed_id: - 108 - - 109 - - 110 - 61 ``` diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index 8c8ffe7d804..518d3444f09 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -50,11 +50,11 @@ Thus the trick is extract the battery level from the payload. ```yaml # Example configuration.yml entry sensor: - platform: mqtt - state_topic: "owntracks/tablet/tablet" - name: "Battery Tablet" - unit_of_measurement: "%" - value_template: {% raw %}'{{ value_json.batt }}'{% endraw %} + - platform: mqtt + state_topic: "owntracks/tablet/tablet" + name: "Battery Tablet" + unit_of_measurement: "%" + value_template: {% raw %}'{{ value_json.batt }}'{% endraw %} ``` ### {% linkable_title Get temperature and humidity %} @@ -73,17 +73,15 @@ Then use this configuration example to extract the data from the payload: ```yaml # Example configuration.yml entry -sensor 1: - platform: mqtt - state_topic: 'office/sensor1' - name: 'Temperature' - unit_of_measurement: '°C' - value_template: '{{ value_json.temperature }}' - -sensor 2: - platform: mqtt - state_topic: 'office/sensor1' - name: 'Humidity' - unit_of_measurement: '%' - value_template: '{{ value_json.humidity }}' +sensor: + - platform: mqtt + state_topic: 'office/sensor1' + name: 'Temperature' + unit_of_measurement: '°C' + value_template: {% raw %}'{{ value_json.temperature }}'{% endraw %} + - platform: mqtt + state_topic: 'office/sensor1' + name: 'Humidity' + unit_of_measurement: '%' + value_template: {% raw %}'{{ value_json.humidity }}'{% endraw %} ``` diff --git a/source/_components/sensor.neurio_energy.markdown b/source/_components/sensor.neurio_energy.markdown index 5fea433c7e6..ddf96919a3f 100644 --- a/source/_components/sensor.neurio_energy.markdown +++ b/source/_components/sensor.neurio_energy.markdown @@ -22,8 +22,8 @@ To enable this sensor in your installation, add the following to your `configura # Example configuration.yaml entry sensor: platform: neurio_energy - api_key: API_KEY - api_secret: API_SECRET + api_key: CLIENT_ID + api_secret: CLIENT_SECRET ``` Configuration variables: diff --git a/source/_components/sensor.onewire.markdown b/source/_components/sensor.onewire.markdown index b69a7051494..5595f7a3607 100644 --- a/source/_components/sensor.onewire.markdown +++ b/source/_components/sensor.onewire.markdown @@ -17,12 +17,12 @@ The `onewire` platform supports sensors which are using the One wire (1-wire) bu Supported devices: - [DS18B20](https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) -- DS18S20 -- DS1822 -- DS1825 -- DS28EA00 temperature sensors +- [DS18S20](https://www.maximintegrated.com/en/products/analog/sensors-and-sensor-interface/DS18S20.html) +- [DS1822](https://datasheets.maximintegrated.com/en/ds/DS1822.pdf) +- [DS1825](https://datasheets.maximintegrated.com/en/ds/DS1825.pdf) +- [DS28EA00](https://datasheets.maximintegrated.com/en/ds/DS28EA00.pdf) temperature sensors -There is also support for bus masters which use fuse to mount device tree. +The 1-Wire bus can be connected directly to the IO pins of Raspberry Pi or using dedicated interface adapter (e.g [DS9490R](https://datasheets.maximintegrated.com/en/ds/DS9490-DS9490R.pdf)). When an interface adapter is used, sensors can be accessed on Linux hosts via [owfs 1-Wire file system](http://owfs.org/). When using an interface adapter and the owfs, the 'mount_dir' option must be configured to correspond a directory, where owfs device tree has been mounted. If you are using Raspberry Pi and IO pin connected bus setup, don't use the 'mount_dir' option. To enable One wire sensors in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.openweathermap.markdown b/source/_components/sensor.openweathermap.markdown index 32bf1871d84..fca55b2237c 100644 --- a/source/_components/sensor.openweathermap.markdown +++ b/source/_components/sensor.openweathermap.markdown @@ -38,6 +38,7 @@ sensor: Configuration variables: - **api_key** (*Required*): Your API key for http://openweathermap.org/. +- **name** (*Optional*): Additional name for the sensors. Default to platform name. - **forecast** (*Optional*): Enables the forecast. The default is to display the current conditions. - **monitored_conditions** array (*Required*): Conditions to display in the frontend. - **weather**: A human-readable text summary. diff --git a/source/_components/sensor.statistics.markdown b/source/_components/sensor.statistics.markdown index d2cc7e2a206..eea0405e190 100644 --- a/source/_components/sensor.statistics.markdown +++ b/source/_components/sensor.statistics.markdown @@ -16,6 +16,8 @@ ha_release: "0.30" The `statistics` sensor platform is consuming the state from other sensors. Beside the maximal and the minimal value also the total, the mean, the median, the variance, and the standard deviation are as attributes available. If it's a binary sensor then only the state changes are counted. +It can take time till the sensor starts to work because a couple of atrributes need more than one value to do the calculation. + To enable the statistics sensor, add the following lines to your `configuration.yaml`: ```yaml @@ -29,7 +31,10 @@ sensor: Configuration variables: -- **entity_id** (*Required*): The entity to monitor. -- **name** (*Optional*): Name of the sensor to use in the frontend. +- **entity_id** (*Required*): The entity to monitor. Only [sensors](/components/sensor/) and [binary sensor](/components/binary_sensor/). +- **name** (*Optional*): Name of the sensor to use in the frontend. Defaults to `Stats`. - **sampling_size** (*Optional*): Size of the sampling. If the limit is reached then the values are rotated. Defaults to `20`. +
+
+
-**This component has been deprecated in favor of the "[climate](/components/climate/)" component and will be removed in the future. Please use cover.** +**This component has been deprecated in favor of the "[climate](/components/climate/)" component and will be removed in the future. Please use climate.**
Thermostats offer Home Assistant a peek into the current and target temperature in a house. Some thermostats will also offer an away mode that will lower use of heating/cooling. diff --git a/source/_cookbook/apache_configuration.markdown b/source/_cookbook/apache_configuration.markdown index 5921f85214b..2855837a3b5 100644 --- a/source/_cookbook/apache_configuration.markdown +++ b/source/_cookbook/apache_configuration.markdown @@ -10,7 +10,7 @@ footer: true ha_category: Infrastructure --- -This is an example about 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: @@ -35,7 +35,7 @@ To be able to access to your home assistant instance by using https://home.examp ``` -and make sure that this file is read by apache's main configiuration file `/etc/httpd/conf/httpd.conf` +and make sure that this file is read by Apache's main configuration file `/etc/httpd/conf/httpd.conf` ```text ... diff --git a/source/_cookbook/automation_sun.markdown b/source/_cookbook/automation_sun.markdown index 25edee45576..fff78fb29ab 100644 --- a/source/_cookbook/automation_sun.markdown +++ b/source/_cookbook/automation_sun.markdown @@ -10,7 +10,7 @@ footer: true ha_category: Automation Examples --- -#### {% linkable_title Turn on the living room lights 45 minutes before sunset if anyone home %} +#### {% linkable_title Turn on the living room lights 45 minutes before sunset if anyone is at home %} ```yaml automation: diff --git a/source/_cookbook/configuration_yaml_by_carlo_costanzo.markdown b/source/_cookbook/configuration_yaml_by_carlo_costanzo.markdown index e60659cb24d..3109710311b 100644 --- a/source/_cookbook/configuration_yaml_by_carlo_costanzo.markdown +++ b/source/_cookbook/configuration_yaml_by_carlo_costanzo.markdown @@ -2,12 +2,12 @@ layout: page title: "Configuration.yaml by Carlo Costanzo" description: "" -date: 2016-02-07 11:45 +date: 2016-10-11 11:45 sidebar: true comments: false sharing: true footer: true ha_category: Example configuration.yaml -ha_external_link: https://gist.github.com/CCOSTAN/9934de973a293b809868 +ha_external_link: https://github.com/CCOSTAN/Home-AssistantConfig --- diff --git a/source/_cookbook/notify_if__new_ha_release.markdown b/source/_cookbook/notify_if__new_ha_release.markdown index 62e92ac57af..df8c38f9dbb 100644 --- a/source/_cookbook/notify_if__new_ha_release.markdown +++ b/source/_cookbook/notify_if__new_ha_release.markdown @@ -49,6 +49,6 @@ automation: data: title: 'New Home Assistant Release' target: 'YOUR_TARGET_HERE' #See Pushbullet component for usage - message: "Home Assistant {{ states.updater.updater.state }} is now available." + message: "Home Assistant {% raw %} {{ states.updater.updater.state }} {% endraw %} is now available." ``` diff --git a/source/_cookbook/tls_self_signed_certificate.markdown b/source/_cookbook/tls_self_signed_certificate.markdown new file mode 100644 index 00000000000..cd2748a702d --- /dev/null +++ b/source/_cookbook/tls_self_signed_certificate.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "Self-signed certificate for SSL/TLS" +description: "Configure a self-signed certificate to use with Home Assistant" +date: 2016-10-06 08:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Infrastructure +--- + +If your Home Assistant instance is only accessible from your local network you can still protect the communication between your browsers and the frontend with SSL/TLS. [Let's encrypt](blog/2015/12/13/setup-encryption-using-lets-encrypt/) will only work if you have a DNS entry and remote access is allowed. The solution is to use a self-signed certificate. As you most likely don't have a certification authority (CA) your browser will conplain about the security. If you have a CA then this will not be an issue. + +To create locally a certificate you need the [OpenSSL](https://www.openssl.org/) command-line tool. + +Change to your Home Assistant [configuration directory](/getting-started/configuration/) like `~/.homeassistant`. This will make it easier to backup your certificate and the key. Run the command shown below. + +```bash +$ openssl req -new -x509 -sha256 -newkey rsa:4096 -nodes -keyout privkey.pem -days 730 -out fullchain.pem +``` + +For details about the parameters, please check the OpenSSL documentation. Provide the requested information during the generation process. At the end you will have two files called `privkey.pem` and `fullchain.pem`. The key and the certificate. + +Update the `http:` entry in your `configuration.yaml` file and let it point to your created files. + +```yaml +http: + api_password: YOUR_SECRET_PASSWORD + ssl_certificate: /home/fab/.homeassistant/fullchain.pem + ssl_key: /home/fab/.homeassistant/privkey.pem +``` + +A tutorial "[Working with SSL Certificates, Private Keys and CSRs](https://www.digitalocean.com/community/tutorials/openssl-essentials-working-with-ssl-certificates-private-keys-and-csrs)" could give you some insight about special cases. diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html index 240deeafee8..154e405eac2 100644 --- a/source/_includes/asides/developers_navigation.html +++ b/source/_includes/asides/developers_navigation.html @@ -43,9 +43,16 @@-The result will include any changed states that changed while the service was being executed, even if their change was the result of something else happening in the system. +The result will include any states that changed while the service was being executed, even if their change was the result of something else happening in the system.
#### {% linkable_title POST /api/template %} @@ -443,7 +443,7 @@ $ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \ ``` #### {% linkable_title POST /api/event_forwarding %} -Setup event forwarding to another Home Assistant instance. +Set up event forwarding to another Home Assistant instance. Requires a JSON object that represents the API to forward to. @@ -455,7 +455,7 @@ Requires a JSON object that represents the API to forward to. } ``` -It will return a message if event forwarding was setup successful. +It will return a message if event forwarding was set up successfully. ```json { diff --git a/source/developers/server_sent_events.markdown b/source/developers/server_sent_events.markdown index 33e9e01d715..0a9bfa6848b 100644 --- a/source/developers/server_sent_events.markdown +++ b/source/developers/server_sent_events.markdown @@ -22,7 +22,7 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ -H "Content-Type: application/json" http://localhost:8123/api/stream ``` -For more comfort put the HTML snippet below in a file `sse.html` in your `www` folder of your Home Assistant configuration directory (`.homeassistant`) +You can create a convenient view for this by creating an HTML file (`sse.html`) in the `www` folder of your Home Assistant configuration directory (`.homeassistant`). Paste this snippet into the file: ```html @@ -44,7 +44,7 @@ Visit [http://localhost:8123/local/sse.html](http://localhost:8123/local/sse.htm ## {% linkable_title Examples %} -A simplest way to consume server-sent events is `httpie`. +A simple way to consume server-sent events is to use a command-line http client like [httpie][https://httpie.org/]. Installation info is on the site (if you use Homebrew, it's `brew install httpie`). Once installed, run this snippet from your terminal: ```bash $ http --stream http://localhost:8123/api/stream x-ha-access:YOUR_PASSWORD content-type:application/json @@ -52,17 +52,21 @@ $ http --stream http://localhost:8123/api/stream x-ha-access:YOUR_PASSWORD conte ### {% linkable_title Website %} -The [home-assistant-sse](https://github.com/fabaff/home-assistant-sse) repository contains an more advanced example. +The [home-assistant-sse](https://github.com/fabaff/home-assistant-sse) repository contains a more advanced example. ### {% linkable_title Python %} -If you want to test the server-sent events without creating a website then the Python module [`sseclient` ](https://pypi.python.org/pypi/sseclient/) can help. Install it first: +If you want to test the server-sent events without creating a website, the Python module [`sseclient` ](https://pypi.python.org/pypi/sseclient/) can help. To install (assuming Python and pip3 are already installed): ```bash $ pip3 install sseclient ``` +<<<<<<< HEAD The simplest script to consume the SSE looks like the following snippet. +======= +The simplest script to consume the SSE in Python looks like this: +>>>>>>> current ```python from sseclient import SSEClient diff --git a/source/developers/website.markdown b/source/developers/website.markdown index 78b132c3dec..800a3b58da5 100644 --- a/source/developers/website.markdown +++ b/source/developers/website.markdown @@ -72,12 +72,16 @@ You can use the default markdown syntax to generate syntax highlighted code. For ```{% endraw %} ``` -If you are using templates then those parts need to be [escaped](http://stackoverflow.com/a/24102537). Otherwise, they will be rendered and appear blank on the website. - Note that you can replace `yaml` next to \`\`\` with the language that is within the block. When you're writing code that is to be executed on the terminal, prefix it with `$`. +### {% linkable_title Templates %} + +For the [configuration templating](/topics/templating/) is [Jinja](http://jinja.pocoo.org/) used. + +If you are using templates then those parts needs to be [escaped](http://stackoverflow.com/a/24102537). Otherwise they will be rendered and appear blank on the website. + ### {% linkable_title HTML %} The direct usage of HTML is supported but not recommended. The note boxes are an exception. diff --git a/source/getting-started/automation-condition.markdown b/source/getting-started/automation-condition.markdown index 165c5172af8..8c54c6861aa 100644 --- a/source/getting-started/automation-condition.markdown +++ b/source/getting-started/automation-condition.markdown @@ -11,13 +11,6 @@ footer: true Conditions are an optional part of an automation rule and be used to prevent an action from happening when triggered. Conditions look very similar to triggers but are very different. A trigger will look at events happening in the system while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is currently on or off. -If your triggers and conditions are exactly the same, you can use a shortcut to specify conditions. In this case, triggers that are not valid conditions will be ignored. - -```yaml -automation: - condition: use_trigger_values -``` - The available conditions for an automation are the same as for the script syntax. So see that page for a [full list of available conditions][script-condition]. Example of using condition: diff --git a/source/getting-started/automation-create-first.markdown b/source/getting-started/automation-create-first.markdown index b39693ab6b2..22a6bc38cea 100644 --- a/source/getting-started/automation-create-first.markdown +++ b/source/getting-started/automation-create-first.markdown @@ -17,6 +17,7 @@ In this example, we are defining a trigger to track the sunset and tell it to fi # Example configuration.yaml entry automation: alias: Turn on light when sun sets + initial_state: True hide_entity: False trigger: platform: sun @@ -25,7 +26,7 @@ automation: service: light.turn_on ``` -Starting with 0.28 automation rules can be reloaded from the [frontend](/components/automation/) and are shown by default. With [`hide_entity:`](/components/automation/) you can control this behaviour. It's is very handy if you are working on your rules but when a rule is finished and you don't want to see that rule in your frontend, you can set `hide_entity:` to `True`. +Starting with 0.28 automation rules can be reloaded from the [frontend](/components/automation/) and are shown by default. With [`hide_entity:`](/components/automation/) you can control this behaviour. It's is very handy if you are working on your rules but when a rule is finished and you don't want to see that rule in your frontend, you can set `hide_entity:` to `True`. To set an automation to be disabled when HASS starts set `initial_state:` to `False`. After a few days of running this automation rule you come to realize that this automation rule is not good enough. It was already dark when the lights went on and the one day you weren't home, the lights turned on anyway. Time for some tweaking. Let's add an offset to the sunset trigger and a condition to only turn on the lights if anyone is home. diff --git a/source/getting-started/automation-templating.markdown b/source/getting-started/automation-templating.markdown index 940a3887665..b9b3ca2a627 100644 --- a/source/getting-started/automation-templating.markdown +++ b/source/getting-started/automation-templating.markdown @@ -11,7 +11,7 @@ footer: true In Home Assistant 0.19 we introduced a new powerful feature: variables in scripts and automations. This makes it possible to adjust your condition and action based on the information of the trigger. -The trigger data made is available during template rendering as the `trigger` variable. +The trigger data made is available during [template](/topics/templating/) rendering as the `trigger` variable. ```yaml # Example configuration.yaml entries diff --git a/source/getting-started/automation.markdown b/source/getting-started/automation.markdown index 27d026a43f8..dea2435fd7e 100644 --- a/source/getting-started/automation.markdown +++ b/source/getting-started/automation.markdown @@ -31,7 +31,7 @@ The first line is the trigger of the automation rule. Triggers describe events t The second line is the condition part of the automation rule. Conditions are optional tests that can limit an automation rule to only work in your specific use cases. A condition will test against the current state of the system. This includes the current time, devices, people and other things like the sun. In this case we only want to act when the sun has set. -The third part is the action which will be performed when a rule is triggered and all conditions are met.For example, it can turn a light on, set the temperature on your thermostat or activate a scene. +The third part is the action which will be performed when a rule is triggered and all conditions are met. For example, it can turn a light on, set the temperature on your thermostat or activate a scene.The difference between a condition and a trigger can be confusing as they are very similar. Triggers look at the actions, while conditions look at the results: turning a light on vs a light being on. diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 93310a612af..454ec2f8152 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -Below you can find the standard instructions. See the sidebar for installation instructions for specific platforms. If you're running a Linux-based platform, we suggest to follow the [VirtualEnv Linux instructions] to avoid having to use root. +Below you can find the standard instructions. See the sidebar for installation instructions for specific platforms. If you're running a Linux-based platform, we suggest you to follow the [VirtualEnv Linux instructions] to avoid using root. [Virtualenv Linux instructions]: /getting-started/installation-virtualenv/ diff --git a/source/getting-started/installation-raspberry-pi-image.markdown b/source/getting-started/installation-raspberry-pi-image.markdown index bddb055e69d..7ba140cec80 100644 --- a/source/getting-started/installation-raspberry-pi-image.markdown +++ b/source/getting-started/installation-raspberry-pi-image.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Hassbian image for Raspberry Pi" -description: "Instructions to flash the Home Assistant Hassbian image on a Raspberry Pi." +title: "HASSbian image for Raspberry Pi" +description: "Instructions to flash the Home Assistant HASSbian image on a Raspberry Pi." date: 2016-09-26 21:00 sidebar: true comments: false @@ -9,15 +9,15 @@ sharing: true footer: true --- -The easiest way to install Home Assistant on your Raspberry Pi is by using Hassbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~5 minutes). +The easiest way to install Home Assistant on your Raspberry Pi is by using HASSbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~5 minutes). 1. [Download the latest image][image-download] 2. Flash the image to an SD card: - [Windows][flash-windows] - [Linux][flash-linux] - - [Mac][flash-macos] + - [Mac OS][flash-macos] 3. Ensure your Raspberry Pi has access to the internet. - 4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take 5 minutes. + 4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take about 5 minutes. These instructions are also available as a [video](https://www.youtube.com/watch?v=iIz6XqDwHEk). @@ -36,21 +36,104 @@ Some extra tips: ### {% linkable_title Technical Details %} - - Home Assistant is installed in a virtual Python environment at `src/homeassistant` + - Home Assistant is installed in a virtual Python environment at `/src/homeassistant/` - Home Assistant will be started as a service run by the user `homeassistant` + - The configuration is located at `/home/homeassistant/.homeassistant` -{% comment %} +### {% linkable_title Managing your HASSbian installation %} +#### {% linkable_title Login to HASSbian on the Raspberry Pi %} +To login to your Raspberry Pi running HASSbian your going to be using a ssh client. Depending on your platform there are several alternatives for doing this. Linux and Max OS generally have a ssh client installed. Windows users are recommended to download and install the ssh client [Putty][ssh-putty]. - TODO: +Connect to the Raspberry Pi over ssh. Default user name is `pi` and password is `raspberry`. +Linux and Mac OS users execute the following command in a terminal. +```bash +$ ssh pi@ip-address-of-pi +``` +Windows users start [Putty][ssh-putty], enter the IP address of the Raspberry Pi in the *Host name* field and port 22 in the *Port* field. Then click *Open* and a terminal window will open. Enter the credentials. Default user name is `pi` and password is `raspberry`. - Add instructions: +#### {% linkable_title Start/Stop/Restart Home Assistant on HaSSbian %} +Log in as the `pi` account account and execute the following commands: +```bash +sudo systemctl stop home-assistant@homeassistant.service +``` +Replace `stop` with `start` or `restart` to get the desired functionality. +To get the current state of the `homeassistant.service` replace `stop` with `status`. - - How to login via shell (?) or at least mention how to work with a Pi - - How to restart HASS - - How to see the logs for config validation - - How to update the config +#### {% linkable_title Update Home Assistant on HASSbian %} +Log in as the `pi` account and execute the following commands: +```bash +sudo systemctl stop home-assistant@homeassistant.service +sudo su -s /bin/bash homeassistant +source /srv/homeassistant/bin/activate +pip3 install --upgrade homeassistant +exit +sudo systemctl start home-assistant@homeassistant.service +``` +This will in order do the following: +- Stop the Home Assistant service running on HASSbian +- Open a shell as the `homeassistant` user running the Homeassistant service and that has ownership over the Home Assistant installation. +- Change into the virtual Python environment at `/src/homeassistant/` containing the Home Assistant installation. +- Upgrade the Home Assistant installation to the latest release. +- Exit the shell and return to the `pi` user. +- Restart the Home Assistant service. -{% endcomment %} +#### {% linkable_title Manually launch Home Assistant on HASSbian %} +Log in as the `pi` account and execute the following commands: +```bash +sudo su -s /bin/bash homeassistant +source /srv/homeassistant/bin/activate +hass +``` +This will start Home Assistant in your shell and output anything that ends up in the log and more into the console. This will fail if the Home Assistant service is already running so don't forget to [stop][stop-homeassistant] it first. + +#### {% linkable_title Check your configuration on HASSbian %} +Log in as the `pi` account and execute the following commands: +```bash +sudo su -s /bin/bash homeassistant +source /srv/homeassistant/bin/activate +hass --script check_config +``` +This will output any errors in your configuration files to console. + +#### {% linkable_title Read the Home Assistant log file on HASSbian %} +Log in as the `pi` account and execute the following commands: +```bash +sudo su -s /bin/bash homeassistant +cd /home/homeassistant/.homeassistant +nano homeassistant.log +``` +This will in order do the following: +- Open a shell as the `homeassistant` user. +- Change directory to the Home Assistant configuration directory. +- Open the log file in the nano editor. + +Optionaly, you can also view the log with `journalctl`. +Log in as the `pi` account and execute the following commands: +```bash +sudo journalctl -fu home-assistant@homeassistant.service +``` + +#### {% linkable_title Edit the Home Assistant configuration on HASSbian %} +Log in as the `pi` account and execute the following commands: +```bash +sudo su -s /bin/bash homeassistant +cd /home/homeassistant/.homeassistant +nano configuration.yaml +``` +This will in order do the following: +- Open a shell as the `homeassistant` user. +- Change directory to the Home Assistant configuration directory. +- Open the configuration file in the nano editor. +It's generally recommended that you read the [Getting started][configuring-homeassistant] guide for how to configure Home Assistant. + +#### {% linkable_title Upgrade and update HASSbian %} +HASSbian is based on Raspbian and uses the same repositories. Any changes to Raspbian will be reflected in HASSbian. To update and upgrade system packages and installed software (excluding Home Assistant) do the following. +Log in as the `pi` account and execute the following commands: +```bash +sudo apt-get update +sudo apt-get upgrade +``` +Press `Y` to confirm that you would like to continue. ### {% linkable_title Troubleshooting %} @@ -69,3 +152,6 @@ In addition to this site, check out these sources for additional help: [flash-macos]: https://www.raspberrypi.org/documentation/installation/installing-images/mac.md [flash-windows]: https://www.raspberrypi.org/documentation/installation/installing-images/windows.md [pi-components]: /getting-started/installation-raspberry-pi/#raspberry-pi-hardware-specific-components +[ssh-putty]: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html +[stop-homeassistant]: /getting-started/installation-raspberry-pi-image/#startstoprestart-home-assistant-on-hassbian +[configuring-homeassistant]: /getting-started/configuration/ diff --git a/source/getting-started/presence-detection.markdown b/source/getting-started/presence-detection.markdown index 6d6bc252c3e..192168d45d1 100644 --- a/source/getting-started/presence-detection.markdown +++ b/source/getting-started/presence-detection.markdown @@ -44,7 +44,7 @@ Home Assistant will know the location of your device if you are using OwnTracks. ### [Next step: Setting up automation »](/getting-started/automation/) [routers]: /components/#presence-detection -[nmap]: /components/device_tracker.nmap_scanner/ +[nmap]: /components/device_tracker.nmap_tracker/ [ha-owntracks]: /components/device_tracker.owntracks/ [ha-locative]: /components/device_tracker.locative/ [mqtt-self]: /components/mqtt/#run-your-own diff --git a/source/getting-started/securing.markdown b/source/getting-started/securing.markdown new file mode 100644 index 00000000000..690d8a210a0 --- /dev/null +++ b/source/getting-started/securing.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "Securing" +description: "Instructions how to secure your Home Assistant installation." +date: 2016-10-06 06:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +One of the reasons to use Home Assistant is that it's not depending on cloud services. Even if you are only using Home Assistant in your local network, you should consider securing your instance. + +### {% linkable_title Checklist %} + +- [Protect your web interface with a password](https://home-assistant.io/getting-started/basic/#password-protecting-the-web-interface) +- Secure your host. Sources could be [Red Hat Enterprise Linux 7 Security Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/pdf/Security_Guide/Red_Hat_Enterprise_Linux-7-Security_Guide-en-US.pdf), [CIS Red Hat Enterprise Linux 7 Benchmark](https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v1.0.0.pdf), or the [Securing Debian Manual](https://www.debian.org/doc/manuals/securing-debian-howto/index.en.html). +- Restrict network access to your device. Set `PermitRootLogin no` in your sshd config (usually `/etc/ssh/sshd_config`) and to use keys for authentication instead of passwords. +- Don't run Home Assistant as root. +- Keep your [secrets](/topics/secrets/) safe. + +Additional points if you want to allow remote access: + +- Protect your communication with [TLS](blog/2015/12/13/setup-encryption-using-lets-encrypt/) +- Protect your communication with [Tor](/cookbook/tor_configuration/) +- Use a [proxy](/cookbook/apache_configuration/) + + diff --git a/source/getting-started/updating.markdown b/source/getting-started/updating.markdown index 56e1a52f032..0da8ad75536 100644 --- a/source/getting-started/updating.markdown +++ b/source/getting-started/updating.markdown @@ -16,7 +16,7 @@ The default way to update Home Assistant to the latest release, when available, $ pip3 install --upgrade homeassistant ``` -Different installation methods as [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) may have an alternative way for updating Home Assistant. +Different installation methods as [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) may have an alternative way for updating Home Assistant. After updating, restart Home Assistant for the changes to take effect. This means that you have to restart `hass` itself or the [autostarting](/getting-started/autostart/) daemon if you use any. diff --git a/source/getting-started/z-wave-device-specific.markdown b/source/getting-started/z-wave-device-specific.markdown index beca50f87b3..2d054adc0e3 100644 --- a/source/getting-started/z-wave-device-specific.markdown +++ b/source/getting-started/z-wave-device-specific.markdown @@ -11,7 +11,7 @@ footer: true ##### {% linkable_title Motion or alarm sensors %} -In order for Home Assistant to recognize some sensors, you will need to change its configuration from `Basic Set (default)` to `Binary Sensor report` or `Alarm report`. +In order for Home Assistant to recognize the sensor properly, you will need to change its configuration from `Basic Set (default)` to `Binary Sensor report` or `Alarm report`. These devices will either show as a binary sensor or a sensor called `Alarm xxxx` and will report a numeric value. Test to see what value is what. Sometimes this is noted in the device manual. As of version 0.30 you can set the settings of a Z-Wave device through the dev_service page of Home Assistant with the service: `zwave/set_config_parameter`. @@ -35,7 +35,7 @@ Example entry in dev-service, setting binary reports for an Aeotec Multisensor 6 These devices require a network key to be set for the Z-Wave network before they are paired. This key is set in OpenZWave's `options.xml` which is located in OpenZWave's directory. This should also be the same directory as `config_path:` in your `configuration.yaml`. If it's not, make sure you have the same values in all the files you are using. The option is commented out by default in `options.xml` and is a default key. Make your own unique key. The key is in Hexadecimals. -It is best to pair these devices in OpenZWave Control Panel or another Z-Wave tool that can show you logs while pairing. Home Assistant stores logs from Z-Wave in `OZW.log` in the Home Assistant config directory. +It is best to pair these devices in OpenZWave Control Panel or another Z-Wave tool that can show you logs while pairing. Home Assistant stores logs from Z-Wave in `OZW.log` in the Home Assistant config directory. You should see communication from the node with lines starting with `info: NONCES` in `OZW.log` when the device is paired successfully with a secure connection. If you use OpenZWave Control Panel to pair, test the device before you save the configuration. Make sure you copy the newly saved `zwcfg_[home_id].xml`into your Home Assistant configuration directory. diff --git a/source/getting-started/z-wave-settings.markdown b/source/getting-started/z-wave-settings.markdown index ce0caf178c5..64102acd8f6 100644 --- a/source/getting-started/z-wave-settings.markdown +++ b/source/getting-started/z-wave-settings.markdown @@ -9,13 +9,13 @@ sharing: true footer: true --- -You may wish to modify the Z-Wave settings in your `ozw*.xml` file stored in the `.homeassistant` configuration directory, or certain situations/devices may require it (i.e. Aeon Multisensor 6). To do this, utilize [Open-Zwave Control Panel](https://github.com/OpenZWave/open-zwave-control-panel). Alternatively, use [Domoticz](https://www.domoticz.com/), which incorporates the Open-Zwave Control Panel project into an easy to use Raspberry Pi image. +You may wish to modify the Z-Wave settings in your `ozw*.xml` file (stored in the `.homeassistant` configuration directory), or certain situations/devices may require it (i.e. Aeon Multisensor 6). To do this, utilize [Open-Zwave Control Panel](https://github.com/OpenZWave/open-zwave-control-panel). Alternatively, use [Domoticz](https://www.domoticz.com/), which incorporates the Open-Zwave Control Panel project into an easy to use Raspberry Pi image. The reasoning for using these tools is that your Z-Wave controller stores the values and data that are used to control the network. The XML file in the `.homeassistant` configuration directory acts as a settings/values cache for the Z-Wave network, so modifying it directly won't change the network values. The [Open-Zwave Control Panel](https://github.com/OpenZWave/open-zwave-control-panel) writes values directly to the network and will provide you with an updated `.xml` file to overwrite in your `.homeassistant` configuration directory. This is the most foolproof way to make modifications to your Z-Wave devices. -Although totally normal for your Z-Wave stick (Aeon Aeotec Z-Stick Gen5 for example) to cycle through its LEDs (Yellow, Blue and Red) while plugged into your system. If you don like this behaviour then you could turn it off. +It's totally normal for your Z-Wave stick (Aeon Aeotec Z-Stick Gen5 for example) to cycle through its LEDs (Yellow, Blue and Red) while plugged into your system. If you don't like this behaviour it can be turned off. -Use the following commands from a terminal session on your Pi where your Z-Wave stick is connected as an example. +Use the following example commands from a terminal session on your Pi where your Z-Wave stick is connected. Turn off "Disco lights": diff --git a/source/getting-started/z-wave.markdown b/source/getting-started/z-wave.markdown index 986765db59d..7876f5b7925 100644 --- a/source/getting-started/z-wave.markdown +++ b/source/getting-started/z-wave.markdown @@ -131,7 +131,7 @@ cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0 #### {% linkable_title zwave.network_complete %} -Home Assistant will trigger a event when the Z-Wave network is complete. Meaning all of the nodes on the network have been queried. This can take quite som time, depending on wakeup intervals on the battery powered devices on the network. +Home Assistant will trigger a event when the Z-Wave network is complete. Meaning all of the nodes on the network have been queried. This can take quite some time, depending on wakeup intervals on the battery powered devices on the network. ```yaml - alias: Z-Wave network is complete @@ -220,7 +220,7 @@ The `zwave` component exposes ten services to help maintain the network. | add_node_secure | Put the Z-Wave controller in secure inclusion mode. Allows one to add a new device with secure communications to the Z-Wave network. | | association | Add or remove an association in th Z-Wave network | cancel_command | Cancels a running Z-Wave command. If you have started a add_node or remove_node command, and decides you are not going to do it, then this must be used to stop the inclusion/exclusion command. | -| heal_network | Tells the controller to "heal" the Z-Wave network. Bascially asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. | +| heal_network | Tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. | | remove_node | Put the Z-Wave controller in exclusion mode. Allows one to remove a device from the Z-Wave network.| | set_config_parameter | Let's the user set a config parameter to a node. | soft_reset | Tells the controller to do a "soft reset". This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command.| diff --git a/source/help/talking-points.markdown b/source/help/talking-points.markdown index 4c22a225cd1..51ee75e564e 100644 --- a/source/help/talking-points.markdown +++ b/source/help/talking-points.markdown @@ -3,7 +3,7 @@ layout: page title: "Talking points" description: "Talking points for your Home Assistant talk or presentation." date: 2016-10-06 06:00 -sidebar: true +sidebar: false comments: false sharing: true footer: true diff --git a/source/images/supported_brands/google_maps.png b/source/images/supported_brands/google_maps.png index e44773b80dc..924b442b046 100644 Binary files a/source/images/supported_brands/google_maps.png and b/source/images/supported_brands/google_maps.png differ diff --git a/source/images/supported_brands/speedtest.png b/source/images/supported_brands/speedtest.png index adc57126b7d..ceb4712a970 100644 Binary files a/source/images/supported_brands/speedtest.png and b/source/images/supported_brands/speedtest.png differ diff --git a/source/images/supported_brands/swiss-hydrological-data.png b/source/images/supported_brands/swiss-hydrological-data.png new file mode 100644 index 00000000000..d7b1784945c Binary files /dev/null and b/source/images/supported_brands/swiss-hydrological-data.png differ diff --git a/source/index.html b/source/index.html index 52bd20bdb7d..e060e7cca43 100644 --- a/source/index.html +++ b/source/index.html @@ -15,8 +15,8 @@ hide_github_edit: true