diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 6dd4bce605f..bad54a1da87 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -203,10 +203,6 @@ p.note { } } -#site-search .search { - width: calc(100% - 36px); -} - .install-instructions-container { #normal-install, #raspberry-install, #docker-install, .install-instructions { display: none; @@ -404,3 +400,7 @@ p.note { height: 100%; } } + +.edit-github { + text-align: right; +} diff --git a/source/_components/alarm_control_panel.mqtt.markdown b/source/_components/alarm_control_panel.mqtt.markdown index 4bf7c911cd7..440d8209e4e 100644 --- a/source/_components/alarm_control_panel.mqtt.markdown +++ b/source/_components/alarm_control_panel.mqtt.markdown @@ -1,7 +1,7 @@ --- layout: component title: "MQTT Alarm Control Panel" -description: "Instructions how to integrate MQTT alarms into Home Assistant." +description: "Instructions how to integrate MQTT capable Alarm Panels into Home Assistant." date: 2015-09-14 19:10 sidebar: true comments: false @@ -11,8 +11,19 @@ logo: mqtt.png ha_category: Alarm --- +The `mqtt` alarm panel platform enables the possibility to control MQTT capable alarm panels. The Alarm icon will change state after receiving a new state from `state_topic`. If these messages are published with *RETAIN* flag, the MQTT alarm panel will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state will be `unknown`. -This platform enables the possibility to control an MQTT alarm. The alarm will only change state after receiving the a new state from `state_topic`. If these messages are published with RETAIN flag, the MQTT alarm will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state will be `unknown`. +The component will accept the following states from your Alarm Panel (in lower case): + +- 'armed' +- 'armed_home' +- 'armed_away' +- 'pending' +- 'triggered' + +The component is able to control your Alarm Panel by publishing to the `command_topic` when a user interacts with the Home Assistant frontend. + +To enable this platform, add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry @@ -32,11 +43,10 @@ Configuration variables: - **state_topic** (*Required*): The MQTT topic subscribed to receive state updates. - **command_topic** (*Required*): The MQTT topic to publish commands to change the alarm state. - - **name** (*Optional*): The name of the alarm. Default is 'MQTT Alarm'. - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0. This QoS will also be used to publishing messages. -- **payload_disarm** (*Optional*): The payload do disarm alarm. Default is "DISARM". -- **payload_arm_home** (*Optional*): The payload to set armed-home mode. Default is "ARM_HOME". -- **payload_arm_away** (*Optional*): The payload to set armed-away mode. Default is "ARM_AWAY". +- **payload_disarm** (*Optional*): The payload do disarm your Alarm Panel. Default is "DISARM". +- **payload_arm_home** (*Optional*): The payload to set armed-home mode on your Alarm Panel. Default is "ARM_HOME". +- **payload_arm_away** (*Optional*): The payload to set armed-away mode on your Alarm Panel. Default is "ARM_AWAY". - **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend. diff --git a/source/_components/binary_sensor.command.markdown b/source/_components/binary_sensor.command.markdown index 62e0b621aca..b4fbf185aa2 100644 --- a/source/_components/binary_sensor.command.markdown +++ b/source/_components/binary_sensor.command.markdown @@ -22,7 +22,7 @@ binary_sensor: command: cat /proc/sys/net/ipv4/ip_forward name: 'IP4 forwarding' payload_on: "1" - payload_of: "0" + payload_off: "0" value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` @@ -46,10 +46,10 @@ Check the state of an [SickRage](https://github.com/sickragetv/sickrage) instanc # Example configuration.yaml entry binary_sensor: platform: command_sensor - command: netstat -na | find "33322" | find /c "LISTENING" > nul && (Echo 1 ) || (Echo 0) + command: netstat -na | find "33322" | find /c "LISTENING" > nul && (echo "Running") || (echo "Not running") name: 'sickragerunning' - payload_on: "1" - payload_of: "0" + payload_on: "Running" + payload_off: "Not running" ``` ### {% linkable_title Check RasPlex %} diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index 15a180fecd3..6ab07dff653 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -12,7 +12,7 @@ ha_category: Binary Sensor --- -This `mqtt` binary sensor implementation uses the MQTT message payload as the sensor value. If messages in this state_topic are published with *RETAIN* flag, the sensor will receive an instant update with the last known value. Otherwise, the initial state will be off. +The `mqtt` binary sensor platform uses the MQTT message payload as the sensor value. If messages in this `state_topic` are published with *RETAIN* flag, the sensor will receive an instant update with the last known value. Otherwise, the initial state will be off. To use your MQTT binary sensor in your installation, add the following to your `configuration.yaml` file: @@ -24,7 +24,7 @@ binary_sensor: name: "MQTT Sensor" qos: 0 payload_on: "ON" - payload_of: "OFF" + payload_off: "OFF" value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` diff --git a/source/_components/http.markdown b/source/_components/http.markdown index a098ebe8112..f0876ff711d 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -11,16 +11,23 @@ logo: http.png ha_category: "Other" --- -The HTTP component serves all files and data required for the Home Assistant frontend. You only need to add this to your configuration file if you want to change any of the default settings. +The `http` component serves all files and data required for the Home Assistant frontend. You only need to add this to your configuration file if you want to change any of the default settings. ```yaml # Example configuration.yaml entry http: - # Optional, protect Home Assistant with a password - api_password: XXX - # Optional, disable caching and load unvulcanized assets + api_password: YOUR_PASSWORD + server_port: 12345 development: 1 - # Optional, serve Home Assistant over a secure connection ssl_certificate: /etc/letsencrypt/live/hass.example.com/fullchain.pem ssl_key: /etc/letsencrypt/live/hass.example.com/privkey.pem ``` + +Configuration variables: + +- **api_password** (*Optional*): Protect Home Assistant with a password +- **server_port** (*Optional*): Let you set a port to use. Defaults to 8123. +- **development** (*Optional*): Disable caching and load unvulcanized assets. Useful for Frontend development. +- **ssl_certificate** (*Optional*): Path to your TLS/SSL certificate to serve Home Assistant over a secure connection. +- **ssl_key** (*Optional*): Path to your TLS/SSL key to serve Home Assistant over a secure connection. + diff --git a/source/_components/input_boolean.markdown b/source/_components/input_boolean.markdown index 2e66c928787..4b874a236d6 100644 --- a/source/_components/input_boolean.markdown +++ b/source/_components/input_boolean.markdown @@ -11,16 +11,23 @@ logo: home-assistant.png ha_category: Automation --- -The input boolean component allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations. +The `input_boolean` component allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations. ```yaml # Example configuration.yaml entry input_boolean: notify_home: - # Optional, friendly name of entry name: Notify when someome arrives home - # Optional, value when Home Assistant starts initial: off - # Optional, icon for entry icon: mdi:car ``` + +Configuration variables: + +- **[alias]** (*Required*): Alias for the input. +- **name** (*Optional*): Friendly name of the input. +- **initial** (*Optional*): Initial value when Home Assistant starts. +- **icon** (*Optional*): Icon for entry. + +Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`. + diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index 07c24d8eaa7..6e8b57ce211 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -33,9 +33,9 @@ light: brightness_command_topic: "office/rgb1/brightness/set" rgb_state_topic: "office/rgb1/rgb/status" rgb_command_topic: "office/rgb1/rgb/set" - state_value_format: "{% raw %}{{ value_json.state }}{% endraw %}" - brightness_value_format: "{% raw %}{{ value_json.brightness }}{% endraw %}" - rgb_value_format: "{% raw %}{{ value_json.rgb | join(',') }}{% endraw %}" + state_value_template: "{% raw %}{{ value_json.state }}{% endraw %}" + brightness_value_template: "{% raw %}{{ value_json.brightness }}{% endraw %}" + rgb_value_template: "{% raw %}{{ value_json.rgb | join(',') }}{% endraw %}" qos: 0 payload_on: "ON" payload_off: "OFF" @@ -66,9 +66,9 @@ Configuration variables: - **brightness_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's brightness. - **rgb_state_topic** (*Optional*): The MQTT topic subscribed to receive RGB state updates. - **rgb_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's RGB state. -- **state_value_format** (*Optional*): Defines a [template](/getting-started/templating/) to extract the state value. -- **brightness_value_format** (*Optional*): Defines a [template](/getting-started/templating/) to extract the brightness value. -- **rgb_value_format** (*Optional*): Defines a [template](/getting-started/templating/) to extract the RGB value. +- **state_value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the state value. +- **brightness_value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the brightness value. +- **rgb_value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the RGB value. - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. - **payload_on** (*Optional*): The payload that represents enabled state. Default is "ON". - **payload_off** (*Optional*): The payload that represents disabled state. Default is "OFF". diff --git a/source/_components/media_player.plex.markdown b/source/_components/media_player.plex.markdown index 4c7353036dc..4488e68fb87 100644 --- a/source/_components/media_player.plex.markdown +++ b/source/_components/media_player.plex.markdown @@ -25,7 +25,7 @@ media_player: platform: plex ``` -You may also need to create the file `plex.conf`. +In case discovery does not work (GDM disabled or non-local plex server), you can create `~/.homeassistant/plex.conf` manually. ```json {"IP_ADDRESS:PORT": {"token": "TOKEN"}} @@ -33,6 +33,6 @@ You may also need to create the file `plex.conf`. - **IP_ADDRESS** (*Required*): IP address of the Plex Media Server - **PORT** (*Required*): Port where Plex is listening. Default is 32400 -- **TOKEN** (*Optional*): Only if authentication is required. Set to `None` (without quotes) otherwise. +- **TOKEN** (*Optional*): Only if authentication is required. Set to `null` (without quotes) otherwise. At this moment, the Plex platform only supports one Plex Media Server. diff --git a/source/_components/mqtt.markdown b/source/_components/mqtt.markdown index 88a02f500f1..2c0684ac9f1 100644 --- a/source/_components/mqtt.markdown +++ b/source/_components/mqtt.markdown @@ -26,6 +26,7 @@ mqtt: username: USERNAME password: PASSWORD certificate: /home/paulus/dev/addtrustexternalcaroot.crt + protocol: 3.1 ``` Configuration variables: @@ -37,6 +38,7 @@ Configuration variables: - **username** (*Optional*): The username to use with your MQTT broker. - **password** (*Optional*): The corresponding password for the username to use with your MQTT broker. - **certificate** (*Optional*): Certificate to use to encrypt communication with the broker. +- **protocol** (*Optional*): Protocol to use: 3.1 or 3.1.1. By default it connects with 3.1.1 and falls back to 3.1 if server does not support 3.1. ## {% linkable_title Picking a broker %} @@ -57,6 +59,10 @@ mqtt: password: PASSWORD ``` +

+There is an issue with the Mosquitto package included in Ubuntu 14.04 LTS. Specify `protocol: 3.1` in your MQTT configuration to work around this issue. +

+ #### {% linkable_title Public MQTT %} The Mosquitto project runs a [public broker](http://test.mosquitto.org). Easiest to setup but there is 0 privacy as all messages are public. Use this only for testing purposes and not for real tracking of your devices. @@ -66,7 +72,7 @@ mqtt: broker: test.mosquitto.org port: 1883 - # Optional, if you want encryption + # Optional, replace port 1883 with following if you want encryption # (doesn't really matter because broker is public) port: 8883 # Download certificate from http://test.mosquitto.org/ssl/mosquitto.org.crt diff --git a/source/_components/notify.pushbullet.markdown b/source/_components/notify.pushbullet.markdown index 1653ccfb770..c8877437343 100644 --- a/source/_components/notify.pushbullet.markdown +++ b/source/_components/notify.pushbullet.markdown @@ -48,7 +48,7 @@ If using targets, your own account's email address functions as 'send to all dev "message": "A message for many people", "target": [ "device/telephone", - "contact/hello@example.com", + "email/hello@example.com", "channel/my_home" ] } diff --git a/source/_components/sensor.netatmo.markdown b/source/_components/sensor.netatmo.markdown index c9a28a71546..2e7b4d01d2b 100644 --- a/source/_components/sensor.netatmo.markdown +++ b/source/_components/sensor.netatmo.markdown @@ -47,7 +47,7 @@ Configuration variables: ### {% linkable_title Get API and Secret Key %} -To get your API credentials, you have to declare a new application in the [NetAtmo Developer Page](https://dev.netatmo.com/) Sign in using your username and password from your regular NetAtmo account. +To get your API credentials, you have to declare a new application in the [NetAtmo Developer Page](https://dev.netatmo.com/). Sign in using your username and password from your regular NetAtmo account. Click on 'Create an App' at the top of the page.

@@ -67,7 +67,7 @@ That's it. You can copy and paste your new API and secret keys in your Home Assi ### {% linkable_title Find your modules name %} -You can find your modules name in your [online NetAtmo account] (https://my.netatmo.com/app/station) . These names can be found and changed in parameters (See screenshot) +You can find your modules name in your [online NetAtmo account](https://my.netatmo.com/app/station). These names can be found and changed in parameters (See screenshot) You have to provide these name in your Home Assistant configuration file.

diff --git a/source/_components/switch.command_switch.markdown b/source/_components/switch.command_switch.markdown index 9e0c38b8129..333f2ba277c 100644 --- a/source/_components/switch.command_switch.markdown +++ b/source/_components/switch.command_switch.markdown @@ -23,6 +23,8 @@ switch: kitchen_light: oncmd: switch_command on kitchen offcmd: switch_command off kitchen + statecmd: query_command kitchen + value_template: '{% raw %}{{ value == "online" }}{% endraw %}' ``` Configuration variables: @@ -31,6 +33,8 @@ Configuration variables: - **entry** (*Required*): Name of the command switch. Multiple entries are possible. - **oncmd** (*Required*): The action to take for on. - **offcmd** (*Required*): The action to take for off. + - **statecmd** (*Optional*): If given, this command will be run. Returning a result code `0` will indicate that the switch is on. + - **value_template** (*Optional*): If specified, statecmd will ignore the result code of the command but the template evaluating to `true` will indicate the switch is on. ## {% linkable_title Examples %} diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index ceada253041..a0bd59ad1a2 100644 --- a/source/_components/zone.markdown +++ b/source/_components/zone.markdown @@ -21,9 +21,7 @@ zone: name: School latitude: 32.8773367 longitude: -117.2494053 - # Optional radius in meters (default: 100) radius: 250 - # Optional icon to show instead of name icon: mdi:school zone 2: @@ -40,10 +38,19 @@ zone 3: icon: mdi:account-multiple ``` +Configuration variables: + +- **name** (*Optional*): Friendly name of entry. +- **latitude** (*Required*): Latitude of the center point of the zone. +- **longitude** (*Required*): Longitude of the center point of the zone. +- **radius** (*Optional*): Optional radius in meters. Defaults to 100 meters. +- **icon** (*Optional*): Optional icon to show instead of name. + + #### {% linkable_title Home zone %} -If no configuration is given, the zone component will create a zone for home. This zone will use location given in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it 'Home'. +If no configuration is given, the `zone` component will create a zone for home. This zone will use location given in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it **'Home'**. #### {% linkable_title Icons %} -It is preferred to pick an icon to use for your zone. Pick any zone that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, `mdi:castle`. +It is preferred to pick an icon to use for your zone. Pick any zone that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, or `mdi:castle`. diff --git a/source/_cookbook/automation_sun.markdown b/source/_cookbook/automation_sun.markdown index 0d1e3df2024..54b986a9dec 100644 --- a/source/_cookbook/automation_sun.markdown +++ b/source/_cookbook/automation_sun.markdown @@ -68,3 +68,40 @@ automation: data: message: 'The sun is down.' ``` + +#### {% linkable_title Automations for lights and blinds based on solar elevation %} + +Solar elevation automations can cope with offsets from sunset / sunrise as the seasons change better than using a time based offsets. + +```yaml +- alias: 'Turn a few lights on when the sun gets dim' + trigger: + platform: numeric_state + entity_id: sun.sun + value_template: '{{ "{{ state.attributes.elevation ""}}}}' + below: 3.5 + action: + service: scene.turn_on + entity_id: scene.background_lights + +- alias: 'Turn more lights on as the sun gets dimmer' + trigger: + platform: numeric_state + entity_id: sun.sun + value_template: '{{ "{{ state.attributes.elevation ""}}}}' + below: 1.5 + action: + service: scene.turn_on + entity_id: scene.more_lights + +- alias: 'Close blind at dusk' + trigger: + platform: numeric_state + entity_id: sun.sun + value_template: '{{ "{{ state.attributes.elevation ""}}}}' + below: -2.5 + action: + service: switch.turn_off + entity_id: switch.blind + +``` diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index 9a040bf2658..0bb8f074e01 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -1,5 +1,7 @@ {% assign components = site.components | sort: 'title' %}

+ {% include edit_github.html %} +
{% if page.logo %} diff --git a/source/_includes/edit_github.html b/source/_includes/edit_github.html new file mode 100644 index 00000000000..22c4a524ce9 --- /dev/null +++ b/source/_includes/edit_github.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/_layouts/page.html b/source/_layouts/page.html index d05fea2feee..c4f667776a0 100644 --- a/source/_layouts/page.html +++ b/source/_layouts/page.html @@ -4,6 +4,8 @@ layout: default
+ {% include edit_github.html %} + {% if page.title and page.show_title != false %}

diff --git a/source/_posts/2015-12-20-amazon-echo-icloud-and-templates.markdown b/source/_posts/2015-12-20-amazon-echo-icloud-and-templates.markdown index 46720e849fb..a73ff8322a5 100644 --- a/source/_posts/2015-12-20-amazon-echo-icloud-and-templates.markdown +++ b/source/_posts/2015-12-20-amazon-echo-icloud-and-templates.markdown @@ -38,7 +38,7 @@ Alrighty, it's time for Home Assistant 0.10. A lot amazing things have changed a [Heatmiser]: /components/thermostat.heatmiser/ [Dweet.io]: /components/sensor.dweet/ [Alexa/Amazon echo]: /components/alexa/ -[FritzBox]: /components/device_tracker.fritzbox/ +[FritzBox]: /components/device_tracker.fritz/ [Wink]: /components/sensor.wink/ [ELIQ Online]: /components/sensor.eliqonline/ [REST]: /components/binary_sensor.rest/ diff --git a/source/_posts/2016-12-17-extended-support-for-diy-solutions.markdown b/source/_posts/2016-01-17-extended-support-for-diy-solutions.markdown similarity index 96% rename from source/_posts/2016-12-17-extended-support-for-diy-solutions.markdown rename to source/_posts/2016-01-17-extended-support-for-diy-solutions.markdown index ba2eb9a3077..f679c6f7068 100644 --- a/source/_posts/2016-12-17-extended-support-for-diy-solutions.markdown +++ b/source/_posts/2016-01-17-extended-support-for-diy-solutions.markdown @@ -3,7 +3,7 @@ layout: post title: "0.11: Extended support for DIY solutions" description: "Home Assistant 0.11 has been released with extended support for making your own home automation components using a Raspberry Pi and MySensors." date: 2016-01-17 15:20:00 -0800 -date_formatted: "January 17, 2015" +date_formatted: "January 17, 2016" author: Paulus Schoutsen author_twitter: balloob comments: true @@ -18,7 +18,7 @@ First release of 2016 and we are on 🔥! The [main repository][github-ha] has p - [MySensors] revamped and switch support added ([@MartinHjelmare][@MartinHjelmare]) - - Full refactor of [RPi GPIO]. Now includes [binary sensor][rpi-bs] and [switch][rpi-s] + - Full refactor of RPi GPIO. Now includes [binary sensor][rpi-bs] and [switch][rpi-s] ([@sfam]) - Sensor: [YR] platform added ([@danielhiversen]) - Device Tracker: Geofancy platform has been renamed to [Locative] ([@philipbl]) - Automation: Add [sun condition] ([@philipbl]) @@ -82,4 +82,5 @@ First release of 2016 and we are on 🔥! The [main repository][github-ha] has p [@rmkraus]: https://github.com/rmkraus [@Xorso]: https://github.com/Xorso [@sdague]: https://github.com/sdague -[@balloob]: https://github.com/balloob \ No newline at end of file +[@balloob]: https://github.com/balloob +[@sfam]: https://github.com/sfam diff --git a/source/_posts/2016-01-19-perfect-home-automation.markdown b/source/_posts/2016-01-19-perfect-home-automation.markdown new file mode 100644 index 00000000000..17228746af9 --- /dev/null +++ b/source/_posts/2016-01-19-perfect-home-automation.markdown @@ -0,0 +1,54 @@ +--- +layout: post +title: "Perfect Home Automation" +description: "A breakdown of what the perfect home automation should consist of." +date: 2016-01-19 00:20:00 -0800 +date_formatted: "January 19, 2016" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Architecture +--- + +People often ask me about my vision for Home Assistant. Before I can describe where I want to go with Home Assistant, I should first talk about how home automation would look in my ideal world. This will be the aim of this post. I’m not going to focus on protocols, networks or specific hubs. That's all implementation details. Instead, this post will focus on what is most important: the interaction between the users and their home. + +### You should not have to adapt to technology. + +When people start using home automation, they always experience home control first: being able to control devices in new ways using a phone or computer. They believe the future is now and their app will be their remote for their lives. They only focus on what they are getting, not on what they are losing. You install some light bulbs and all of a sudden you are no longer able to use the light switches. You'll arrive at home at night and have to pull out your phone, open the app, let it connect and finally you'll be able to turn on the light. All while turning the light on could have been a switch away. + +Yes, you can solve this with presence detection. What if your phone runs out of battery? You’ll have to resort to the switch again. + +If you find that using your new home devices is cumbersome, the promise of home automation technology has failed you. Your lights should work with both a switch (or button) at the entrance of your room and via presence detection. Honestly, there are hardly any valid use cases for being able to control lights from your phone except for showing off. + + +### You are not the only user of your home automation. + +People tend to forget that they are not the only ones in their home. As the developer of your house you're enthusiastic about the possibilities and are willing to overlook flaws. Chances are very high that the other people in your household have different hobbies and just want to mind their own business. + +This means that everything you automate has to work flawlessly. If you successfully manage to cause a response to some stimulus 90% of the time, you’re going to have a disproportionately poor experience 10% of the time. A common automation that fits this pattern is to fade the lights when you start watching a movie or series in the living room. It only works if everyone is watching. + +### Limit the impact of false positives and negatives. + +With every automation, you always have to think: what will be the impact if it doesn’t work? Home automation is composed of many different systems by many different vendors that speak many different protocols: things will go wrong. It’s up to you to make sure that they have a limited impact when they fail. Ideally, devices should fall back to a pre-smart home experience. A Philips Hue bulb will act like a standard white light if turned on/off using a normal switch or when not connected to a hub. If things get worse when your system is out of order, your users will revolt. Take for example the Nest thermostat that [had a bug in the beginning of January][nest-bug] which caused it to stop heating the house, yikes! + +[nest-bug]: http://www.nytimes.com/2016/01/14/fashion/nest-thermostat-glitch-battery-dies-software-freeze.html + +### The perfect app is no app. + +Home automation should blend with your current workflow, not replace it. For most devices, there is no faster way to control most devices than how you are already doing it today. Most of the time, the best app is no app. The only interface that can be more convenient, and is accessible for visitors of your home of all ages is a voice interface. The industry has realized this too and there are some major players focussing on voice interaction. Take Apple for example: the only way to control your HomeKit devices is with Siri. Amazon has taken it one step further with the Amazon Echo, providing an always-listening connected speaker/microphone for the living room. I expect a lot more companies to join this segment in 2016. + +Voice interfaces are not perfect either. The speed at which you can issue commands is low because you have to wait for a response. There are also issues with the discoverability of commands, recognition of accents and dependency on the cloud for processing your voice. I believe that all but the first one are problems that are going to be solved eventually. + +This however doesn’t mean there isn’t a place for apps, there definitely is. They are perfectly well-suited for checking in while you’re away, browsing the state changes of your house or making the lights go all funky when there are kids visiting. + +### Your system should run at home, not in the cloud. + +The cloud is a magical thing. Somewhere in the world there are computers collecting the data that your house generates, testing them against your automation rules and sending commands back when needed. The cloud will receive updates and improve itself over time so it is able to serve you better. Until it’s not. There are many reasons why your home might lose its connection to the cloud. The internet can stop working, an update might have gone wrong or the servers running the cloud crash. + +When this happens, your house should be able to keep functioning. The cloud should be treated as an extension to your smart home instead of running it. That way you’ll avoid awkward situations like when Amazon AWS was down and the [Amazon Echo stopped working][echo-crash]. + +[echo-crash]: http://www.zdnet.com/article/the-night-alexa-lost-her-mind/ + +**Good home automation never annoys but is missed when it is not working.** + +*Thanks to Chris LaRose for this feedback and comments.* diff --git a/source/developers/architecture.markdown b/source/developers/architecture.markdown index 974cc312990..3bf10db703a 100644 --- a/source/developers/architecture.markdown +++ b/source/developers/architecture.markdown @@ -16,7 +16,7 @@ Before we dive into the Home Assistant architecture, it is important to get a cl * Smart Home triggers commands based on previous behavior.

- + Home Automation landscape @@ -31,7 +31,7 @@ The Home Assistant core is responsible for Home Control. It has four parts to ma * The **Timer** will send every 1 second a `time_changed` event on the event bus.

- + Overview of the Home Assistant core architecture diff --git a/source/getting-started/automation.markdown b/source/getting-started/automation.markdown index 1538529f1c5..807c7f3479e 100644 --- a/source/getting-started/automation.markdown +++ b/source/getting-started/automation.markdown @@ -21,7 +21,7 @@ Actions will call services within Home Assistant. For example, turn a light on, Conditions are used to prevent actions from firing unless certain conditions are met. For example, it is possible to only turn on the light if someone comes home and it is after a certain point in time. -The difference between a condition and a trigger can be confusing. The difference is that the trigger looks at the event that is happening, ie a car engine turning on. Conditions looks at the current state of the system, ie is the car engine on. +The difference between a condition and a trigger can be confusing. The difference is that the trigger looks at the event that is happening, i.e. a car engine turning on. Conditions looks at the current state of the system, i.e. is the car engine on. ### {% linkable_title Exploring the internal state %} @@ -76,7 +76,7 @@ Now you're happy and all is good. You start to like this automation business and The first thing you do is to look at the entities in the developer tools (second icon) in the app. You see the names of your lights and you write them down: `light.table_lamp`, `light.bedroom`, `light.ceiling`. -Instead of hard coding the entity ids of the lights in the automation rule, we will set up a group. This will allow us to see the living room separate in the app and be able to address it from automation rules. +Instead of hard coding the entity IDs of the lights in the automation rule, we will set up a group. This will allow us to see the living room separate in the app and be able to address it from automation rules. So we tweak the config to add the group and have the automation rule only turn on the group. @@ -102,9 +102,9 @@ automation: entity_id: group.living_room ``` -Christmas is coming along and you decide to buy a remote switch to control the christmas lights from Home Assistant. You can't claim to live in the house of the future if you're still manually turn on your christmas lights! +Christmas is coming along and you decide to buy a remote switch to control the Christmas lights from Home Assistant. You can't claim to live in the house of the future if you're still manually turning on your Christmas lights! -We hook the switch up to Home Assistant and grab the entity id from the developer tools: `switch.christmas_lights`. We will update the group to include the switch and will change our action. We are no longer able to call `light.turn_on` because we also want to turn on a switch. This is where `homeassistant.turn_on` comes to the rescue. This service is capable of turning any entity on. +We hook the switch up to Home Assistant and grab the entity ID0 from the developer tools: `switch.christmas_lights`. We will update the group to include the switch and will change our action. We are no longer able to call `light.turn_on` because we also want to turn on a switch. This is where `homeassistant.turn_on` comes to the rescue. This service is capable of turning any entity on. ```yaml # Example configuration.yaml entry @@ -131,7 +131,7 @@ automation: ### {% linkable_title Further reading %} -We went over the basics of creating a home automation rule. From here no longer any hand holding, go automate! +We went over the basics of creating a home automation rule. Now, go automate! - Learn about the available [automation triggers](/components/automation/#triggers) - Learn about the available [automation conditions](/components/automation/#conditions) diff --git a/source/getting-started/configuration.markdown b/source/getting-started/configuration.markdown index a705fda1489..c236513ee9b 100644 --- a/source/getting-started/configuration.markdown +++ b/source/getting-started/configuration.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -Home Assistant will create a configuration folder when it is run for the first time. The location of the folder depends on operating system: on OS X/Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`. If you want to use a different folder for configuration, run `hass --config path/to/config`. +Home Assistant will create a configuration folder when it is run for the first time. The location of the folder differs between operating systems: on OS X/Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`. If you want to use a different folder for configuration, run `hass --config path/to/config`. Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains which components will be loaded and what their configuration is. An example configuration file is located [here](https://github.com/balloob/home-assistant/blob/master/config/configuration.yaml.example). @@ -53,6 +53,10 @@ http: api_password: YOUR_PASSWORD ``` +_See the [HTTP component documentation][http] for more options like HTTPS encryption._ + +[http]: /components/http/ + ### {% linkable_title Setting up your phone or tablet %} Home Assistant runs as a self hosted web application and contains support to be added to your homescreen. If you're on Android you can follow [the visual guide]({{site_root}}/getting-started/android/). For other devices, open Home Assistant on your mobile browser and tap on the add to homescreen option. @@ -61,6 +65,6 @@ Home Assistant runs as a self hosted web application and contains support to be To make Home Assistant accessible while away from home, you will have to setup port forwarding from your router to port 8123 on the computer that is hosting Home Assistant. Instructions on how to do this can be found by searching ` port forwarding instructions`. -Some internet service providers will only offer dynamic IPs. This can cause you to be unable to access Home Assistant while being remote. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/). +Some internet service providers will only offer dynamic IPs. This can cause you to be unable to access Home Assistant while away. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/). ### [Next step: Setting up devices »](/getting-started/devices/) diff --git a/source/getting-started/devices.markdown b/source/getting-started/devices.markdown index a026836a85b..265d1f39f20 100644 --- a/source/getting-started/devices.markdown +++ b/source/getting-started/devices.markdown @@ -9,11 +9,11 @@ sharing: true footer: true --- -Home Assistant will be able to automatically discover and configure any Google Chromecasts, Netgear routers, Belkin WeMo switches, Philips Hue bridges and Sonos speakers in your network if you have [the discovery component]({{site_root}}/components/discovery/) enabled (which is by default). +Home Assistant will be able to automatically discover and configure any Google Chromecasts, Netgear routers, Belkin WeMo switches, Philips Hue bridges and Sonos speakers on your network if you have [the discovery component]({{site_root}}/components/discovery/) enabled (which is by default). See the [components overview page](/components/) to find installation instructions for your devices and services. If you can't find support for your favorite device or service, [consider adding support](/developers/add_new_platform/). -Usually every entity needs its own entry in the `configuration.yaml` file. There are two kind of styles for multiple entries: +Usually every entity needs its own entry in the `configuration.yaml` file. There are two kinds of style for multiple entries: #### {% linkable_title Style 1 %} @@ -59,7 +59,7 @@ If your devices are not showing up in the frontend then check the entries in you ### {% linkable_title Grouping devices %} -Once you get a bunch of devices set up, it is time to organize them. This can be done using groups. Each group exists of a name and a list of entity IDs. Entity IDs can be retrieved from the web interface by using the Set State page in the Developer Tools (icon in the middle). +Once you have a bunch of devices set up, it is time to organize them. This can be done using groups. Each group exists of a name and a list of entity IDs. Entity IDs can be retrieved from the web interface by using the Set State page in the Developer Tools (icon in the middle). ```yaml # Example configuration.yaml entry @@ -70,11 +70,13 @@ group: - media_player.nexus_player ``` +For more details please check the [Group](https://home-assistant.io/components/group/) page. + ### {% linkable_title Customizing devices and services %} -By default, all of your devices will be visible and have a default icon determined by their domain. You may find it desireable to customize the look and feel of your front page by altering some of these parameters. This can be done by adding the following config to the `homeassistant:` section. +By default, all of your devices will be visible and have a default icon determined by their domain. You may find it desireable to customize the look and feel of your front page by altering some of these parameters. This can be done by adding the following configuration to the `homeassistant:` section. -Entity_pictures, badges, device_tracker pictures, etc can either be a URL or `/local/file.jpg`, which points to directory `www` in the HASS configuration directory. +`entity_pictures`, badges, `device_tracker` pictures, etc. can either be a URL or `/local/file.jpg`, which points to directory `www` in the HASS configuration directory. ```yaml # Example configuration.yaml entry diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 3e3951ef5ce..2c9052fd551 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -28,7 +28,7 @@ $ hass --open-ui Running these commands will: - Install Home Assistant - - Launch Home Assistant and serve web interface on [http://localhost:8123](http://localhost:8123) + - Launch Home Assistant and serve the web interface on [http://localhost:8123](http://localhost:8123)

@@ -41,7 +41,7 @@ Installation with Docker is straightforward. Adjust the following command so tha $ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host balloob/home-assistant ``` -This will launch Home Assistant and serve its web interface from port 8123 on your Docker host. +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)) @@ -64,7 +64,7 @@ $ hass Running these commands will: - Install Home Assistant - - Launch Home Assistant and serve web interface on [http://localhost:8123](http://localhost:8123) + - Launch Home Assistant and serve the web interface on [http://localhost:8123](http://localhost:8123) diff --git a/source/getting-started/presence-detection.markdown b/source/getting-started/presence-detection.markdown index c6b8f3ef805..edb2093da74 100644 --- a/source/getting-started/presence-detection.markdown +++ b/source/getting-started/presence-detection.markdown @@ -16,7 +16,7 @@ We care about privacy. Collected data is only stored in your instance of Presence detection detects if people are home, an important input for automation. The most important piece of information is to know if anyone is home. But knowing who is home or where they are will open a whole range of other automation options: - Send me a notification when my child arrives at school - - Turn on AC when I leave work + - Turn on the AC when I leave work

@@ -27,7 +27,7 @@ Screenshot of Home Assistant showing a school, work and home zone and two people The device tracker component offers presence detection for Home Assistant. It supports two different methods for presence detection: scan for connected devices on the local network and connect to third party service. -Scanning for connected devices is easy to setup. See the instructions for our [supported routers][routers] or [scan the network using nmap][nmap]. This approach does have its limitations. It will only be able to detect if a device is home. It also struggles with iPhones because they disconnect from the WiFi if idle, marking them as not home while they are not. +Scanning for connected devices is easy to setup. See the instructions for our [supported routers][routers] or [scan the network using nmap][nmap]. This approach does have its limitations however, it will only be able to detect if a device is home. It also struggles with iPhones because they disconnect from WiFi if idle, marking them as not home when they actually are. Home Assistant currently supports two third party services for presence detection: [OwnTracks][ha-owntracks] and [Locative][ha-locative]. OwnTracks is an app that you install on your iPhone or Android phone that allows you to push the location of your device to Home Assistant using an MQTT broker. An MQTT broker is an Internet of Things communication platform that you can [freely host yourself][mqtt-self] or get [a private instance for free in the cloud](/components/mqtt/#run-your-own). @@ -39,7 +39,7 @@ OwnTracks communicates directly with your MQTT broker, no data will pass through -Home Assistant will know about the location for your device if you are using OwnTracks. By [setting up zones][zone] you will be able to add names to locations of your devices. This way you can easily spot on the state page where the people in your house are and use it as [triggers][trigger] and [conditions][condition] for automation. +Home Assistant will know the location of your device if you are using OwnTracks. By [setting up zones][zone] you will be able to add names to the locations of your devices. This way you can easily spot on the state page where the people in your house are and use it as [triggers][trigger] and [conditions][condition] for automation. ### [Next step: Setting up automation »](/getting-started/automation/) diff --git a/source/getting-started/templating.markdown b/source/getting-started/templating.markdown index af5b863919c..5594d13e16d 100644 --- a/source/getting-started/templating.markdown +++ b/source/getting-started/templating.markdown @@ -10,7 +10,7 @@ footer: true ---

-This is an advanced feature of Home Assistant. You need a basic understanding of the [Home Assistant architecture], especially states. +This is an advanced feature of Home Assistant. You'll need a basic understanding of the [Home Assistant architecture], especially states.

[Home Assistant architecture]: /developers/architecture/ @@ -36,7 +36,7 @@ Templating in Home Assistant is powered by the Jinja2 templating engine. This me The frontend has a template editor developer tool to help develop and debug templates.

-Templates can get pretty big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates: +Templates can get big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates: ```yaml script: @@ -56,14 +56,14 @@ script: Home Assistant adds extensions to allow templates to access all of the current states: - - Iterating `states` will yield each state sorted alphabetically by entity id - - Iterating `states.domain` will yield each state of that domain sorted alphabetically by entity id - - `states.sensor.temperature` returns state object for `sensor.temperature` - - `states('device_tracker.paulus')` will return the state string (not the object) of given entity or `unknown` if it doesn't exist. - - `is_state('device_tracker.paulus', 'home')` will test if given entity is specified state. - - `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if given entity is specified state. - - Filter `multiply(x)` will convert input to number and multiply it with `x` - - Filter `round(x)` will convert input to number and round it to `x` decimals. + - Iterating `states` will yield each state sorted alphabetically by entity ID + - Iterating `states.domain` will yield each state of that domain sorted alphabetically by entity ID + - `states.sensor.temperature` returns the state object for `sensor.temperature` + - `states('device_tracker.paulus')` will return the state string (not the object) of the given entity or `unknown` if it doesn't exist. + - `is_state('device_tracker.paulus', 'home')` will test if the given entity is specified state. + - `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity is specified state. + - Filter `multiply(x)` will convert the input to a number and multiply it with `x` + - Filter `round(x)` will convert the input to a number and round it to `x` decimals. #### {% linkable_title Examples %} @@ -101,7 +101,7 @@ Home Assistant adds extensions to allow templates to access all of the current s ## {% linkable_title Processing incoming data %} -The other part of templating is processing incoming data. It will allow you to modify incoming data and extract only the data that you care about. This will work only for platforms and components that mentioned support for this in their documentation. +The other part of templating is processing incoming data. It will allow you to modify incoming data and extract only the data you care about. This will work only for platforms and components that mentioned support for this in their documentation. It depends per component or platform but it is common to be able to define a template using the `value_template` configuration key. When a new value arrives, your template will be rendered while having access to the following values on top of the usual Home Assistant extensions: diff --git a/source/getting-started/troubleshooting-configuration.markdown b/source/getting-started/troubleshooting-configuration.markdown index 5cd6e77bbbf..43fd9234c04 100644 --- a/source/getting-started/troubleshooting-configuration.markdown +++ b/source/getting-started/troubleshooting-configuration.markdown @@ -46,9 +46,10 @@ sensor: state_topic: sensor2/topic ``` -Indentation is used to specify which objects are nested under one anohter. Getting the right indentation can be tricky if you're not using an editor with a fixed width font. You can test your configuration using [online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/). +Indentation is used to specify which objects are nested under one anohter. Getting the right indentation can be tricky if you're not using an editor with a fixed width font. Tabs are not allowed to be used for indentation. You can test your configuration using [online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/). -To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack. + - To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack. + - You can test your configuration using [this online YAML parser](http://yaml-online-parser.appspot.com/). ### {% linkable_title My component does not show up %} diff --git a/source/getting-started/troubleshooting.markdown b/source/getting-started/troubleshooting.markdown index 35db4af8b14..4fd9c7b57aa 100644 --- a/source/getting-started/troubleshooting.markdown +++ b/source/getting-started/troubleshooting.markdown @@ -9,10 +9,10 @@ sharing: true footer: true --- -It can happen that you run into trouble while installing Home Assistant. This page is here to help -you figure out the most common problems. +It can happen that you run into trouble while installing Home Assistant. This page is here to help you figure out the most common problems. -**pip3: command not found** + +#### {% linkable_title pip3: command not found %} This utility should have been installed as part of the Python 3.4 installation. Check if Python 3.4 is installed by running `python3 --version`. If it is not installed, [download it here](https://www.python.org/getit/). If you are able to successfully run `python3 --version` but not `pip3`, run the following command instead to install Home Assistant: @@ -21,28 +21,28 @@ If you are able to successfully run `python3 --version` but not `pip3`, run the $ python3 -m pip install homeassistant ``` -**No module named pip** +#### {% linkable_title No module named pip %} [Pip](https://pip.pypa.io/en/stable/) should come bundled with the latest Python 3 but is ommitted by some distributions. If you are unable to run `python3 -m pip --version` you can install `pip` by [downloading the installer](https://bootstrap.pypa.io/get-pip.py) and run it with Python 3: ```bash $ python3 get-pip.py ``` -**distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both** +#### {% linkable_title distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both %} This is a known issue if you're on a Mac using Homebrew to install Python. Please follow [these instructions](https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Homebrew-and-Python.md#note-on-pip-install---user) to resolve it. -**CentOS and Python 3** +#### {% linkable_title CentOS and Python 3 %} To run Python 3.x on [CentOS](https://www.centos.org/) or RHEL, [Software Collections](https://www.softwarecollections.org/en/scls/rhscl/rh-python34/) needs to be activated. -**No access to the frontend** -In newer Linux distributions (at least Fedora 22/CentOS 7) the access to a host is very limited. This means that you can't access the Home Assistant Frontend that is running on a host outside of the host machine. Windows and OSX machines may also have issues with this. +#### {% linkable_title No access to the frontend %} +In newer Linux distributions (at least Fedora 22/CentOS 7) the access to a host is very limited. This means that you can't access the Home Assistant frontend that is running on a host outside of the host machine. Windows and OSX machines may also have issues with this. To fix this you will need to open your machine's firewall for TCP traffic over port 8123. The method for doing this will vary depending on your operating system and the firewall you have installed. Below are some suggestions to try. Google is your friend here. [Windows instructions](http://windows.microsoft.com/en-us/windows/open-port-windows-firewall#1TC=windows-7) [Mac OSX instructions](https://support.apple.com/en-us/HT201642) -For firewalld systems (Fedora, RHEL, etc.): +For systems with **firewalld** (Fedora, CentOS/RHEL, etc.): ```bash $ sudo firewall-cmd --permanent --add-port=8123/tcp @@ -55,15 +55,15 @@ For UFW systems (Ubuntu, Debian, Raspbian, etc.): $ sudo ufw allow 8123/tcp ``` -For iptables systems (usually the default): +For `iptables` systems (was the default for older distributions): ```bash $ iptables -I INPUT -p tcp --dport 8123 -j ACCEPT $ iptables-save > /etc/network/iptables.rules # your rules may be saved elsewhere ``` -**Run the development version** -If you want to stay on top of the development of Home Assistant then you can upgrade to the dev branch. This can result in an unstable system, loss of data etc etc. +#### {% linkable_title Run the development version %} +If you want to stay on top of the development of Home Assistant then you can upgrade to the `dev` branch. This can result in an unstable system, loss of data, etc, etc. ```bash $ pip3 install --upgrade git+git://github.com/balloob/home-assistant.git@dev diff --git a/source/help/trivia.markdown b/source/help/trivia.markdown index 850afc8bcc3..0fdd107d19a 100644 --- a/source/help/trivia.markdown +++ b/source/help/trivia.markdown @@ -53,6 +53,12 @@ The numbers below only covers the [main git repository](https://github.com/ballo More details and statistics can be found on [Github](https://github.com/balloob/home-assistant/graphs/contributors). +[RocketGraph](https://rocketgraph.com) reports shows commit stats for the last 90 days and a neat visual calendar for the current calendar year. + +- [home-assistant](https://rocketgraph.com/s/O163F6yWdgR) +- [home-assistant-polymer](https://rocketgraph.com/s/AfvsRKE_WfB) +- [home-assistant.io](https://rocketgraph.com/s/PvCS9rv7ODL) + ### {% linkable_title First commit %} The first commit in `git` was made on Sep 17, 2013 by [Paulus Schoutsen](https://github.com/balloob). diff --git a/source/images/screenshots/netatmo_api.png b/source/images/screenshots/netatmo_api.png index bf5be533e90..8f0a1802307 100644 Binary files a/source/images/screenshots/netatmo_api.png and b/source/images/screenshots/netatmo_api.png differ diff --git a/source/images/screenshots/netatmo_app.png b/source/images/screenshots/netatmo_app.png index 0ce38c1763a..95cd21e12e0 100644 Binary files a/source/images/screenshots/netatmo_app.png and b/source/images/screenshots/netatmo_app.png differ diff --git a/source/images/screenshots/netatmo_create.png b/source/images/screenshots/netatmo_create.png index aac41717be6..f268b27aad5 100644 Binary files a/source/images/screenshots/netatmo_create.png and b/source/images/screenshots/netatmo_create.png differ diff --git a/source/images/screenshots/netatmo_module.png b/source/images/screenshots/netatmo_module.png index a07be32a630..09a366bd48f 100644 Binary files a/source/images/screenshots/netatmo_module.png and b/source/images/screenshots/netatmo_module.png differ