diff --git a/source/_components/alarm_control_panel.verisure.markdown b/source/_components/alarm_control_panel.verisure.markdown index c806c0cf326b..ddf0f36a0829 100644 --- a/source/_components/alarm_control_panel.verisure.markdown +++ b/source/_components/alarm_control_panel.verisure.markdown @@ -17,3 +17,19 @@ The Verisure alarm control panel platform allows you to control your [Verisure]( The requirement is that you have setup your [Verisure hub](/components/verisure/). +The `changed_by` attribute enables one to be able to take different actions depending on who armed/disarmed the alarm in [automation](/getting-started/automation/). + +```yaml +automation: + - alias: Alarm status changed + trigger: + - platform: state + entity_id: alarm_control_panel.alarm_1 + action: + - service: notify.notify + data_template: + message: > + {% raw %}Alarm changed from {{ trigger.from_state.state }} + to {{ trigger.to_state.state }} + by {{ trigger.to_state.attributes.changed_by }}{% endraw %} +``` diff --git a/source/_components/camera.ffmpeg.markdown b/source/_components/camera.ffmpeg.markdown new file mode 100644 index 000000000000..e7fcaf4326c3 --- /dev/null +++ b/source/_components/camera.ffmpeg.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "FFmpeg Camera" +description: "Instructions how to integrate a Video fees with FFmpeg as cameras within Home Assistant." +date: 2016-08-13 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ffmpeg.png +ha_category: Camera +ha_release: 0.26 +--- + + +The `ffmpeg` platform allows you to use every video feed with [FFmpeg](http://www.ffmpeg.org/) as camera in Home Assistant. + +
+You need a ffmpeg binary in your system path. On debain 8 you can install it from backports. If you want HW support on raspberry you need self build from source. Windows binary are avilable on ffmpeg homepage. +
+ +To enable your FFmpeg feed in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: ffmpeg + input: FFMPEG_SUPPORTED_INPUT + name: FFmpeg + ffmpeg_bin: /usr/bin/ffmpeg + extra_arguments: -q:v 2 +``` + +Configuration variables: + +- **input** (*Required*): A ffmpeg compatible input file, stream or feet. +- **name** (*Optional*): This parameter allows you to override the name of your camera. +- **ffmpeg_bin** (*Optional*): Default 'ffmpeg'. +- **extra_arguments** (*Optional*): Extra option they will pass to ffmpeg. i.e. image quality or video filter options. + +### {% linkable_title Image quality %} + +You can control the `image quality` with [`extra_arguments`](https://www.ffmpeg.org/ffmpeg-codecs.html#jpeg2000) `-q:v 2-32` or with lossless option `-pred 1`. + diff --git a/source/_components/device_tracker.locative.markdown b/source/_components/device_tracker.locative.markdown index dd1d40fc1690..8c98cdd88d68 100644 --- a/source/_components/device_tracker.locative.markdown +++ b/source/_components/device_tracker.locative.markdown @@ -11,7 +11,7 @@ logo: locative.png ha_category: Presence Detection --- -This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an [open source](https://github.com/LocativeHQ/ios-app) app for iOS that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location. +This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an open source app for [iOS](https://github.com/LocativeHQ/ios-app) and [Android](https://github.com/LocativeHQ/Locative-Android) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location. To integrate Locative in Home Assistant, add the following section to your `configuration.yaml` file: @@ -21,6 +21,11 @@ device_tracker: platform: locative ``` +Install on your smartphone: + +- [Android](https://play.google.com/store/apps/details?id=io.locative.app) +- [iOS](https://itunes.apple.com/us/app/geofancy/id725198453) + To configure Locative, you must set up the app to send a `GET` request to your Home Assistant server at `http://
diff --git a/source/_components/foursquare.markdown b/source/_components/foursquare.markdown
new file mode 100644
index 000000000000..1a756e13415e
--- /dev/null
+++ b/source/_components/foursquare.markdown
@@ -0,0 +1,62 @@
+---
+layout: page
+title: Foursquare
+description: "Instructions how to the Foursquare API into Home Assistant."
+date: 2016-08-08 17:20
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: foursquare.png
+featured: true
+ha_category: Other
+ha_release: 0.26
+ha_iot_class: "Cloud Polling and Cloud Push"
+---
+
+The `foursquare` component accepts pushes from the Foursquare [Real-Time API](https://developer.foursquare.com/overview/realtime) and a service to check users in on Swarm.
+
+```yaml
+# Example configuration.yaml entry
+foursquare:
+ access_token: "
+ Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics.
+
+The MPC-HC web interface is highly insecure, and allows remote clients full player control file-system access without authentication. Never allow access to the Web UI from outside of your trusted network, and if possible [use a proxy script to restrict control or redact sensitive information](https://github.com/abcminiuser/mpc-hc-webui-proxy). +
+ To add MPC-HC to your installation, add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown index b6268ff664c1..1ec2da8e8826 100644 --- a/source/_components/nest.markdown +++ b/source/_components/nest.markdown @@ -24,7 +24,32 @@ thermostat: platform: nest ``` +```yaml +# Example configuration.yaml entry to show only devices at your vacation home +nest: + username: USERNAME + password: PASSWORD + structure: Vacation + +thermostat: + platform: nest +``` + +```yaml +# Example configuration.yaml entry to show only devices at your vacation and primary homes +nest: + username: USERNAME + password: PASSWORD + structure: + - Vacation + - Primary + +thermostat: + platform: nest +``` + Configuration variables: - **username** (*Required*): Your Nest username. - **password** (*Required*): Your Nest password. +- **structure** (*Optional*): The structure or structures you would like to include devices from. If not specified, this will include all structures in your Nest account. \ No newline at end of file diff --git a/source/_components/notify.aws_lambda.markdown b/source/_components/notify.aws_lambda.markdown index 1eee6770b08b..64c9c2299260 100644 --- a/source/_components/notify.aws_lambda.markdown +++ b/source/_components/notify.aws_lambda.markdown @@ -66,7 +66,7 @@ The context will look like this: "latitude": 44.1234, "location_name": "Home", "longitude": 5.5678, - "temperature_unit": "°C", + "unit_system": "metric", "time_zone": "Europe/Zurich", "version": "0.20.0.dev0" }, diff --git a/source/_components/notify.smtp.markdown b/source/_components/notify.smtp.markdown index 9b9c419e8f1c..ed86aaa16d04 100644 --- a/source/_components/notify.smtp.markdown +++ b/source/_components/notify.smtp.markdown @@ -42,6 +42,27 @@ Configuration variables: - **recipient** (*Required*): Recipient of the notification. - **starttls** (*Optional*): Enables STARTTLS, eg. 1 or 0. Defaults to 0. +To use the smtp notification, refer to it in an automation or script like in this example: + +```yaml + burglar: + alias: Burglar Alarm + sequence: + - service: shell_command.snapshot + - delay: + seconds: 1 + - service: notify.NOTIFIER_NAME + data: + title: 'Intruder alert' + message: 'Intruder alert at apartment!!' + data: + images: + - /home/pi/snapshot1.jpg + - /home/pi/snapshot2.jpg +``` + +The optional **images** field adds in-line image attachments to the email. This sends a text/HTML multi-part message instead of the plain text default. + This platform is fragile and not able to catch all exceptions in a smart way because of the large number of possible configuration combinations. A combination that will work properly is port 587 and STARTTLS. It's recommended to enable STARTTLS, if possible. diff --git a/source/_components/panel_custom.markdown b/source/_components/panel_custom.markdown new file mode 100644 index 000000000000..d0457a499269 --- /dev/null +++ b/source/_components/panel_custom.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "Panel Custom" +description: "Instructions how to add customied panels to the frontend of Home Assistant." +date: 2015-08-08 11:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Frontend +ha_release: 0.26 +--- + + +The `panel_custom` support allows you to add additional panels to your Home Assistant frontend. The panels are listed in the sidebar if wished and can be highly customized. + +To enable customized panels in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +panel_custom: + - name: todomvc + sidebar_title: TodoMVC + sidebar_icon: mdi:work + url_path: my-todomvc + webcomponent_path: /home/hass/hello.html + config: + hello: world +``` + +Configuration variables: + +- **name** (*Optional*): Name of the panel. +- **sidebar_title** (*Optional*): Friendly title for the panel in the sidebar. Omitting it means no sidebar entry (but still accessible through the URL). +- **sidebar_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`. +- **url_path** (*Optional*): The URL your panel will be available on. If omitted will default to the panel name. +- **webcomponent_path** (*Optional*): The path to your component. If omitted will default to `If your are using the Python Keyring, [autostarting](/getting-started/autostart/) of Home Assistant will no longer work.
- diff --git a/source/_topics/splitting_configuration.markdown b/source/_topics/splitting_configuration.markdown index 40d3ccd5b934..4a2898eb92e0 100644 --- a/source/_topics/splitting_configuration.markdown +++ b/source/_topics/splitting_configuration.markdown @@ -26,8 +26,8 @@ homeassistant: # Location required to calculate the time the sun rises and sets latitude: 37 longitude: -121 - # C for Celsius, F for Fahrenheit - temperature_unit: F + # 'metric' for Metric, 'imperial' for Imperial + unit_system: imperial # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones time_zone: America/Los_Angeles customize: !include customize.yaml diff --git a/source/_topics/templating.markdown b/source/_topics/templating.markdown index dbaeb0e2d5ef..0918ded8050a 100644 --- a/source/_topics/templating.markdown +++ b/source/_topics/templating.markdown @@ -21,19 +21,17 @@ This is an advanced feature of Home Assistant. You'll need a basic understanding Templating is a powerful feature in Home Assistant that allows the user control over information that is going into and out of the system. It is used for: - Formatting outgoing messages in, for example, the [notify] and [alexa] components. - - Process incoming data from sources that provide raw data, like [MQTT], [Rest sensor] or the [command line sensor]. + - Process incoming data from sources that provide raw data, like [MQTT], [REST sensor], or the [command line sensor]. [notify]: /components/notify/ [alexa]: /components/alexa/ [MQTT]: /components/mqtt/ -[Rest sensor]: /components/sensor.rest/ +[REST sensor]: /components/sensor.rest/ [command line sensor]: /components/sensor.command_line/ ## {% linkable_title Building templates %} -Templating in Home Assistant is powered by the Jinja2 templating engine. This means that we are using their syntax and make some custom Home Assistant variables available to templates during rendering. We will not go over the basics of the syntax, as Jinja2 does a lot better job at this in their [Jinja2 documentation]. - -[Jinja2 documentation]: http://jinja.pocoo.org/docs/dev/templates/ +Templating in Home Assistant is powered by the [Jinja2](http://jinja.pocoo.org/) templating engine. This means that we are using their syntax and make some custom Home Assistant variables available to templates during rendering. We will not go over the basics of the syntax, as Jinja2 does a lot better job at this in their [Jinja2 documentation](http://jinja.pocoo.org/docs/dev/templates/).
The frontend has a template editor developer tool to help develop and debug templates.
@@ -55,6 +53,13 @@ script:
{% endif %}{% endraw %}
```
+[Jinja2](http://jinja.pocoo.org/) supports a width variety of operations:
+
+- [Mathematical operation](http://jinja.pocoo.org/docs/dev/templates/#math)
+- [Comparisons](http://jinja.pocoo.org/docs/dev/templates/#comparisons)
+- [Logic](http://jinja.pocoo.org/docs/dev/templates/#logic)
+
+
## {% linkable_title Home Assistant template extensions %}
Home Assistant adds extensions to allow templates to access all of the current states:
@@ -72,7 +77,6 @@ Home Assistant adds extensions to allow templates to access all of the current s
- `closest()` will find the closest entity.
- `relative_time(timestamp)` will format the date time as relative time vs now (ie 7 seconds)
- `float` will format the output as float.
-- 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.
- Filter `timestamp_local` will convert an UNIX timestamp to local time/data.
- Filter `timestamp_utc` will convert an UNIX timestamp to UTC time/data.
@@ -117,7 +121,9 @@ Print out a list of all the sensor states.
Paulus is at {{ states('device_tracker.paulus')) }}.
{% endif %}
-{{ states.sensor.temperature | multiply(10) | round(2) }}
+{{ states.sensor.temperature | float + 1 }}
+
+{{ states.sensor.temperature | float * 10 | round(2) }}
{% if states('sensor.temperature') | float > 20 %}
It is warm!
@@ -179,10 +185,10 @@ The other part of templating is processing incoming data. It will allow you to m
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:
-| Variable | Description |
-| ------------ | ----------- |
-| `value` | The incoming value.
-| `value_json` | The incoming value parsed as JSON.
+| Variable | Description |
+| ------------ | -------------------------------------- |
+| `value` | The incoming value. |
+| `value_json` | The incoming value parsed as JSON. |
```jinja2
# Incoming value:
@@ -194,9 +200,9 @@ It depends per component or platform but it is common to be able to define a tem
# Format output
{% raw %}{{ "%+.1f" | value_json }}{% endraw %}
-# Calculations
-{% raw %}{{ value_json | multiply(1024) }}{% endraw %}
-{% raw %}{{ value_json.used | multiply(0.0001) | round(0) }}{% endraw %}
+# Math
+{% raw %}{{ value_json | float * 1024 }}{% endraw %}
+{% raw %}{{ float(value_json) * (2**10) }}{% endraw %}
# Timestamps
{% raw %}{{ value_json.tst | timestamp_local }}{% endraw %}
diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown
index 0eba27ef8321..c759e037389c 100644
--- a/source/developers/credits.markdown
+++ b/source/developers/credits.markdown
@@ -35,6 +35,7 @@ This page contains a list of people who have contributed in one way or another t
- [Ardi Mehist](https://github.com/omgapuppy)
- [arsaboo](https://github.com/arsaboo/)
- [Arthur Leonard Andersen](https://github.com/leoc)
+- [Assaf Inbal](https://github.com/shmuelzon)
- [Austin](https://github.com/trainman419)
- [Azelphur](https://github.com/Azelphur)
- [Bart274](https://github.com/Bart274)
@@ -48,6 +49,7 @@ This page contains a list of people who have contributed in one way or another t
- [Charles Spirakis](https://github.com/srcLurker)
- [Chris Mulder](https://github.com/chrisvis)
- [Christian Braedstrup](https://github.com/LinuxChristian)
+- [Corban Mailloux](https://github.com/corbanmailloux)
- [coteyr](https://github.com/coteyr/)
- [Dale Higgs](https://github.com/dale3h)
- [Dan Cinnamon](https://github.com/Cinntax)
@@ -59,6 +61,7 @@ This page contains a list of people who have contributed in one way or another t
- [Dan Smith](https://github.com/kk7ds)
- [Dan Sullivan](https://github.com/dansullivan86/)
- [Daren Lord](https://github.com/Xorso)
+- [David-Leon Pohl](https://github.com/DavidLP)
- [Dean Camera](https://github.com/abcminiuser)
- [Dean Galvin](https://github.com/FreekingDean)
- [Dennis Karpienski](https://github.com/TheRealLink)
@@ -85,9 +88,14 @@ This page contains a list of people who have contributed in one way or another t
- [Gustav Ahlberg](https://github.com/Gyran)
- [gwendalg](https://github.com/gwendalg)
- [happyleavesaoc](https://github.com/happyleavesaoc)
+- [Harald Nagel](https://github.com/haraldnagel)
+- [HBDK](https://github.com/HBDK)
- [Heathbar](https://github.com/heathbar)
+- [Heiko Rothe](https://github.com/mKeRix)
- [Hernán](https://github.com/hmronline)
+- [Hugo Dupras](https://github.com/jabesq)
- [Hydreliox](https://github.com/HydrelioxGitHub)
+- [Ian Copp](https://github.com/icopp)
- [Igor Shults](https://github.com/ishults)
- [Issac Kelly](https://github.com/issackelly)
- [Jacob Tomlinson](https://github.com/jacobtomlinson)
@@ -99,6 +107,7 @@ This page contains a list of people who have contributed in one way or another t
- [Jeffrey Lin](https://github.com/linjef/)
- [Jeffrey Tang](https://github.com/Qrtn)
- [Jeff Schroeder](https://github.com/SEJeff)
+- [Jesse Newland](https://github.com/jnewland)
- [Joel Asher Friedman](https://github.com/joelash)
- [Joe McMonagle](https://github.com/joemcmonagle)
- [John Arild Berentsen](https://github.com/turbokongen)
@@ -125,11 +134,12 @@ This page contains a list of people who have contributed in one way or another t
- [Magnus Knutas](https://github.com/MagnusKnutas)
- [Malte Deiseroth](https://github.com/deisi)
- [Manoj](https://github.com/vmulpuru)
+- [Marcelo Moreira de Mello](https://github.com/tchellomello)
- [Markus Peter](https://github.com/bimbar)
- [Markus Stenberg](https://github.com/fingon)
- [Martin Hjelmare](https://github.com/MartinHjelmare)
- [Matteo Lampugnani](https://github.com/t30)
-- [Matthew Treinish](https://github.com/mtreinish/)
+- [Matthew Treinish](https://github.com/mtreinish)
- [Michaël Arnauts](https://github.com/michaelarnauts)
- [Michael Gilbert](https://github.com/Zyell)
- [Michael Kutý](https://github.com/michaelkuty)
@@ -170,6 +180,7 @@ This page contains a list of people who have contributed in one way or another t
- [Stefan Jonasson](https://github.com/stefan-jonasson)
- [St. John Johnson](https://github.com/stjohnjohnson)
- [TangoAlpha](https://github.com/TangoAlpha)
+- [Teagan Glenn](https://github.com/Teagan42)
- [Teemu Patja](https://github.com/tpatja)
- [Theb-1](https://github.com/Theb-1)
- [Theodor Lindquist](https://github.com/theolind)
diff --git a/source/developers/frontend_creating_custom_panels.markdown b/source/developers/frontend_creating_custom_panels.markdown
index 34fc4c0bd970..0c1e82da3276 100644
--- a/source/developers/frontend_creating_custom_panels.markdown
+++ b/source/developers/frontend_creating_custom_panels.markdown
@@ -11,30 +11,9 @@ footer: true
Any component has the possibility to add a panel to the frontend. Panels will be rendered full screen and have real-time access to the Home Assistant object via JavaScript. Examples of this in the app are map, logbook and history.
-Adding a custom panel to your component is easy. For this example we're assuming your component is in `hello_panel.py`. Start by converting your panel to a folder. Create a folder called `hello_panel` and move `hello_panel.py` to `hello_panel/__init__.py`. In that same folder, create a file `panel.html`.
+Create a file called `hello.html` in your Current Version: 0.25.2
- Released: August 2, 2016
+ Current Version: 0.26
+ Released: August 13, 2016