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:///api/locative`. Make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). When you enter or exit a geofence, Locative will send a `GET` request to that URL, updating Home Assistant.

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: "" + push_secret: "" +``` + +Configuration variables: + +- **access_token** (*Required*): A Foursquare API access token. +- **push_secret** (*Required*): The push secret that Foursquare provides to you in the app dashboard. + +#### {% linkable_title Real-Time API %} + +The component accepts pushes from Foursquare at `/api/foursquare`. The route does not require authentication. + +Foursquare checkin events can be used out of the box to trigger automation actions, e.g.: + +```yaml +automation: + - alias: Trigger action when you check into a venue. + trigger: + platform: event + event_type: foursquare.push + action: + service: script.turn_on + entity_id: script.my_action +``` + +#### {% linkable_title Check ins %} + +To check a user in, use the `foursquare/checkin` service. + +Parameters: + +- **venueId** (*Required*): The Foursquare venue where the user is checking in. +- **eventId** (*Optional*): The event the user is checking in to. +- **shout** (*Optional*): A message about your check-in. The maximum length of this field is 140 characters. +- **mentions** (*Optional*): Mentions in your check-in. This parameter is a semicolon-delimited list of mentions. A single mention is of the form "start,end,userid", where start is the index of the first character in the shout representing the mention, end is the index of the first character in the shout after the mention, and userid is the userid of the user being mentioned. If userid is prefixed with "fbu-", this indicates a Facebook userid that is being mention. Character indices in shouts are 0-based. +- **broadcast** (*Optional*): "Who to broadcast this check-in to. Accepts a comma-delimited list of values: private (off the grid) or public (share with friends), facebook share on facebook, twitter share on twitter, followers share with followers (celebrity mode users only), If no valid value is found, the default is public." +- **ll** (*Optional*): Latitude and longitude of the user's location. Only specify this field if you have a GPS or other device reported location for the user at the time of check-in. +- **llAcc** (*Optional*): Accuracy of the user's latitude and longitude, in meters. +- **alt** (*Optional*): Altitude of the user's location, in meters. +- **altAcc** (*Optional*): Vertical accuracy of the user's location, in meters. diff --git a/source/_components/influxdb.markdown b/source/_components/influxdb.markdown index b53e983c2b8d..439c198b9f16 100644 --- a/source/_components/influxdb.markdown +++ b/source/_components/influxdb.markdown @@ -30,6 +30,9 @@ influxdb: blacklist: - entity.id1 - entity.id2 + whitelist: + - entity.id3 + - entity.id4 tags: - instance: prod ``` @@ -44,5 +47,6 @@ Configuration variables: - **ssl** (*Optional*): Use https instead of http to connect. Defaults to false. - **verify_ssl** (*Optional*): Verify SSL certificate for https request. Defaults to false. - **blacklist** (*Optional*): List of entities not logged to InfluxDB. +- **whitelist** (*Optional*): List of the entities (only) that will be logged to InfluxDB. If not set, all entities will be logged. Values set by the **blacklist** option will prevail. - **tags** (*Optional*): Tags to mark the data. diff --git a/source/_components/light.mqtt_json.markdown b/source/_components/light.mqtt_json.markdown new file mode 100755 index 000000000000..c749ed53a7a0 --- /dev/null +++ b/source/_components/light.mqtt_json.markdown @@ -0,0 +1,82 @@ +--- +layout: page +title: "MQTT JSON Light" +description: "Instructions for how to setup MQTT JSON lights within Home Assistant." +date: 2016-08-09 08:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: mqtt.png +ha_category: Light +ha_iot_class: "Local Push" +ha_release: 0.26 +--- + + +The `mqtt_json` light platform let you control a MQTT-enabled light that can receive [JSON](https://en.wikipedia.org/wiki/JSON) messages. + +This platform supports on/off, brightness, RGB colors, transitions, and short/long flashing. The messages sent to/from the lights look similar to this, omitting fields when they aren't needed: + +```json +{ + "brightness": 255, + "color": { + "g": 255, + "b": 255, + "r": 255 + }, + "transition": 2, + "state": "ON" +} +``` + + +In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with the RETAIN flag, the MQTT light will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the light will be off. + +When a state topic is not available, the light will work in optimistic mode. In this mode, the light will immediately change state after every command. Otherwise, the light will wait for state confirmation from device (message from `state_topic`). + +Optimistic mode can be forced, even if state topic is available. Try enabling it if the light is operating incorrectly. + +To enable a light with brightness and RGB support in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: mqtt_json + name: mqtt_json_light_1 + state_topic: "home/rgb1" + command_topic: "home/rgb1/set" + brightness: true + rgb: true +``` + +To enable a light with brightness (but no color support) in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: mqtt_json + name: mqtt_json_light_1 + state_topic: "home/rgb1" + command_topic: "home/rgb1/set" + brightness: true +``` + +Configuration variables: + +- **name** (*Optional*): The name of the light. Default is "MQTT JSON Light." +- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. +- **command_topic** (*Required*): The MQTT topic to publish commands to change the light's state. +- **brightness** (*Optional*): Flag that defines if the light supports brightness. Default is false. +- **rgb** (*Optional*): Flag that defines if the light supports RGB colors. Default is false. +- **flash_time_short** (*Optional*): The duration, in seconds, of a "short" flash. Default is 2. +- **flash_time_long** (*Optional*): The duration, in seconds, of a "long" flash. Default is 10. +- **optimistic** (*Optional*): Flag that defines if the light works in optimistic mode. Default is true if no state topic defined, else false. +- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. + +

+ Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics. +

+ +A full example of custom lighting using this platform and an ESP8266 microcontroller can be found [here](https://github.com/corbanmailloux/esp-mqtt-rgb-led). It supports on/off, brightness, transitions, RGB colors, and flashing. diff --git a/source/_components/media_player.mpchc.markdown b/source/_components/media_player.mpchc.markdown index 31fa3d2354ca..0f16a25798bf 100644 --- a/source/_components/media_player.mpchc.markdown +++ b/source/_components/media_player.mpchc.markdown @@ -22,6 +22,12 @@ For this component to function, you will need to enable the Web Interface in the

+If the server running Home Assistant is not the same device that is running MPC-HC, you will need to ensure that the *allow access from localhost only* option is not set. + +

+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 `/panels/.html` +- **config** (*Optional*): Configuration to be passed into your web component when being instantiated. + diff --git a/source/_components/pilight.markdown b/source/_components/pilight.markdown new file mode 100644 index 000000000000..a3fdbf8e4ce5 --- /dev/null +++ b/source/_components/pilight.markdown @@ -0,0 +1,52 @@ +--- +layout: page +title: "Pilight" +description: "Instructions how to setup Pilight within Home Assistant." +date: 2015-08-07 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: pilight.png +ha_category: Hub +ha_release: 0.26 +ha_iot_class: Local Push +--- + +[Pilight](https://www.pilight.org/) is a modular and open source solution to communicate with 433 MHz devices and runs on various small form factor computers. A lot of common [protocols](https://wiki.pilight.org/doku.php/protocols) are already available. + +This pilight hub connects to the [pilight-daemon](https://wiki.pilight.org/doku.php/pdaemon) via a socket connection to receive and send codes. Thus home assistant does not have to run on the computer in charge of the RF communication. + +The received and supported RF codes are put on the event bus of home assistant and are therefore directly usable by other components (e.g. automation). Additionally a send service is provided to send RF codes. + +To integrate pilight into Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +pilight: + - host: 127.0.0.1 + port: 5000 + whitelist: # optional + protocol: + - daycom + - intertechno + id: + - 42 +``` + +Configuration variables: + +- **host** (*Required*): The IP address of the computer running the pilight-daemon, e.g. 192.168.1.32. +- **port** (*Required*): The network port to connect to. The usual port is [5000](https://www.pilight.org/development/api/). +- **whitelist** (*Optional*): You can define a whitelist to prevent that too many unwanted RF codes (e.g. the neighbours weather station) are put on your HA event bus. All defined subsections have to be matched. A subsection is matched if one of the items are true. + +In this example only received RF codes using a daycom or intertechno protocol are put on the event bus and only when the device id is 42. For more possible settings please look at the receiver section of the pilight [API](https://www.pilight.org/development/api/). + +## {% linkable_title Troubleshooting %} + +- A list of tested RF transceiver hardware is available [here](https://wiki.pilight.org/doku.php/electronics). This might be usefull before buying. +- Sending commands is simple when the protocol is known by pilight, but receiving commands can be rather difficult. It can happend that the code is not correctly recognized due to different timings in the sending hardware or the RF receiver. If this happens follow these steps: + +1. [Install](https://www.pilight.org/get-started/installation/) pilight from source (do not worry that is very easy) and only activate the protocols you are expecting in the pop up menu. This reduces false positives. +2. Check the real timings of your device + RF receiver by running `pilight-debug`. Remember the `pulslen` parameter. +3. Go to the `libs/pilight/protocols/433.92` subfolder of the pilight source code and open the .c file of your protocol. Search for `MIN_PULSE_LENGTH`, `MAX_PULSE_LENGTH ` and `AVG_PULSE_LENGTH`. Change the pulse lengths to match your measured one. Recompile and install pilight by re-running `$ sudo ./setup.sh`. diff --git a/source/_components/proximity.markdown b/source/_components/proximity.markdown index ed45ad2aa003..f58c5b46beab 100644 --- a/source/_components/proximity.markdown +++ b/source/_components/proximity.markdown @@ -47,6 +47,7 @@ proximity: - device_tracker.eleanorsiphone - device_tracker.tsiphone tolerance: 50 + unit_of_measurement: mi ``` Configuration variables: @@ -55,4 +56,19 @@ Configuration variables: - **ignored_zones** array (*Optional*): Where proximity is not calculated for a device (either the device being monitored or ones being compared (e.g. work or school). - **devices** array (*Optional*): A list of devices to compare location against to check closeness to the configured zone. - **tolerance** (*Optional*): The tolerance used to calculate the direction of travel in meters (m) to filter out small GPS coordinate changes. +- **unit_of_measurement** (*Optional*): The unit of measurement for distance. Valid values are (km, m, mi, ft) [kilometers, meters, miles and feet respectfully]. The default value is kilometers. +To add multiple proximity components, simply use a list in your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +proximity: + - zone: home + devices: + - device_tracker.tsiphone + tolerance: 50 + - zone: work + devices: + - device_tracker.elanorsiphone + tolerance: 10 +``` diff --git a/source/_components/sensor.fastdotcom.markdown b/source/_components/sensor.fastdotcom.markdown new file mode 100644 index 000000000000..ce85bb17cd2d --- /dev/null +++ b/source/_components/sensor.fastdotcom.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Fast.com" +description: "How to integrate Fast.com within Home Assistant." +date: 2016-08-10 17:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: fastdotcom.png +ha_category: Sensor +featured: false +ha_release: 0.26 +--- + +The `fastdotcom` sensor component uses the [Fast.com](https://fast.com/) web service to measure network bandwidth performance. + +By default, it will run every hour. The user can change the update frequency in the config by defining the minute, hour, and day for a speedtest to run. + +To add a Fast.com sensor to your installation, add the following to your `configuration.yaml` file: + +Once per hour, on the hour (default): + +```yaml +sensor: + platform: fastdotcom +``` + +More examples: + +Every half hour of every day: + +```yaml +sensor: + platform: fastdotcom + minute: + - 0 + - 30 +``` +Configuration variables: + +- **minute** (*Optional*): Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. Default is 0. +- **hour** (*Optional*): Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. Default is None. +- **day** (*Optional*): Specify the day(s) of the month to schedule the speedtest. Use a list for multiple entries. Default is None. + +There is also a service named `sensor.update_fastdotcom` that you can use to run a fast.com speedtest on demand. diff --git a/source/_components/sensor.gpsd.markdown b/source/_components/sensor.gpsd.markdown new file mode 100644 index 000000000000..30b30223c132 --- /dev/null +++ b/source/_components/sensor.gpsd.markdown @@ -0,0 +1,58 @@ +--- +layout: page +title: "GPSD" +description: "Instructions how to integrate GPSD into Home Assistant." +date: 2016-07-18 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: gpsd.png +ha_category: Sensor +ha_release: 0.26 +--- + +The `gpsd` component is using the GPS information collected by [gpsd](http://catb.org/gpsd/) and a GPS receiver. + +A requirement is that `gpsd` is installed (`$ sudo dnf -y install gpsd` or `$ sudo apt-get install gpsd`). `gpsd` uses the socket activation feature of systemd on recent Linux distributions for USB receivers. This means that if you plug your GPS receiver in, `gpsd` is started. Other GPS device may work too, but this was not tested. + +```bash +$ sudo systemctl status gpsdctl@ttyUSB0.service +● gpsdctl@ttyUSB0.service - Manage ttyUSB0 for GPS daemon + Loaded: loaded (/usr/lib/systemd/system/gpsdctl@.service; static; vendor preset: disabled) + Active: active (exited) since Sat 2016-07-16 09:30:33 CEST; 1 day 23h ago + Process: 5303 ExecStart=/bin/sh -c [ "$USBAUTO" = true ] && /usr/sbin/gpsdctl add /dev/%I || : (code=exited, status=0/SUCCESS) + Main PID: 5303 (code=exited, status=0/SUCCESS) + +Jul 16 09:30:33 laptop019 systemd[1]: Starting Manage ttyUSB0 for GPS daemon... +Jul 16 09:30:33 laptop019 gpsdctl[5305]: gpsd_control(action=add, arg=/dev/ttyUSB0) +Jul 16 09:30:33 laptop019 gpsdctl[5305]: reached a running gpsd +``` + +To check if your setup is working, connect to port 2947 on the host where `gpsd` is running with `telnet`. This may need adjustments to your firewall. + +```bash + +$ telnet localhost 2947 +Trying 127.0.0.1... +Connected to localhost. +Escape character is '^]'. +{"class":"VERSION","release":"3.15","rev":"3.15-2.fc23","proto_major":3,"proto_minor":11} +``` + +To setup a GPSD sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +senosr: + - platform: gpsd + host: 127.0.0.1 + port: 2947 + name: GPS USB +``` + +Configuration variables: + +- **host** (*Optional*): The host where GPSD is running. Defaults to `localhost`. +- **port** (*Optional*): The port which GPSD is using. Defaults to 2947. +- **port** (*Optional*): Friendly name to use for the frontend. Default to GPS. diff --git a/source/_components/sensor.ohmconnect.markdown b/source/_components/sensor.ohmconnect.markdown new file mode 100644 index 000000000000..258b9b22aac3 --- /dev/null +++ b/source/_components/sensor.ohmconnect.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "OhmConnect" +description: "Documentation about the OhmConnect sensor." +date: 2016-08-08 17:05 +sidebar: true +comments: false +sharing: true +footer: true +logo: "ohmconnect.png" +ha_category: Sensor +ha_iot_class: "Cloud Polling" +ha_release: 0.26 +--- + + +The `ohmconnect` sensor will show you the current [OhmConnect](https://ohmconnect.com) status for the given OhmConnect ID. + +> OhmConnect monitors real-time conditions on the electricity grid. When dirty and unsustainable power plants turn on, our users receive a notification to save energy. By saving energy at that time, California does not have to turn on additional power plants and California's energy authorities pay you for that. + + +You can find your OhmConnect ID under "Open Source Projects" on the [settings page](https://login.ohmconnect.com/settings). It's the string after the last `/` in the URL, i.e. for the URL `https://login.ohmconnect.com/verify-ohm-hour/AbCd1e` your ID is `AbCd1e`. + +```yaml +# Example configuration.yaml entry +sensor: + platform: ohmconnect + id: AbCd1e +``` + +Configuration variables: + +- **id** (*Required*): Your OhmConnect ID which can be found on the settings page. +- **name** (*Optional*): A name to display on the sensor. The default is "OhmConnect Status". diff --git a/source/_components/sensor.serial_pm.markdown b/source/_components/sensor.serial_pm.markdown new file mode 100644 index 000000000000..de4a7f5302f8 --- /dev/null +++ b/source/_components/sensor.serial_pm.markdown @@ -0,0 +1,42 @@ +--- +layout: page +title: "Particulate matter Sensor" +description: "Instructions on how to integrate particulate matter (dust) sensors with Home Assistant." +date: 2016-08-11 12:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: DIY +ha_release: 0.26 +--- + +Particulate matter sensors measure the amount of very small particles in the air. A short introduction how these sensors work can be found on [Open Home Automation](https://www.open-homeautomation.com/2016/07/19/measuring-air-quality/). + +Cheap LED based sensors usually use a GPIO interface that is hard to attach to computers. However, there are a lot of laser LED based sensors on the market that use a serial interface and can be [connected to your Home Assistant system easily with an USB to serial converter](https://www.open-homeautomation.com/2016/07/20/connecting-an-particulate-matter-sensor-to-your-pc-or-mac/). + +At this time, the following sensors are supported: + +* oneair,s3 +* novafitness,sds021 +* novafitness,sds011 +* plantower,pms1003 +* plantower,pms5003 +* plantower,pms7003 +* plantower,pms2003 +* plantower,pms3003 + +To use your PM sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +sensor: + - platform: serial_pm + serial_device: /dev/tty.SLAB_USBtoUART + name: Nova + brand: novafitness,sds011 +``` + +- **serial_device** (*Required*): The serial port to use. On *nix systems, it can often be identified by `$ ls /dev/tty*` +- **name** (*Optional*): The name displayed in the frontend. +- **brand** (*Required*): Manufacturer and type of the sensor. + diff --git a/source/_components/switch.flux.markdown b/source/_components/switch.flux.markdown index b99a5e13d95e..18604e9df07b 100644 --- a/source/_components/switch.flux.markdown +++ b/source/_components/switch.flux.markdown @@ -35,6 +35,7 @@ switch: sunset_colortemp: 3000 stop_colortemp: 1900 brightness: 200 + mode: xy ``` Configuration variables: @@ -47,4 +48,5 @@ Configuration variables: - **sunset_colortemp** (*Optional*): The sun set color temperature. Defaults to `3000`. - **stop_colortemp** (*Optional*): The color temperature at the end. Defaults to `1900`. - **brightness** (*Optional*): The brightness of the lights. Calculated with `RGB_to_xy` by default. +- **mode** (*Optional*): Select how color temperature is passed to lights. Valid values are 'xy', 'mired' and 'kelvin'. Defaults to 'xy'. diff --git a/source/_components/switch.pilight.markdown b/source/_components/switch.pilight.markdown new file mode 100644 index 000000000000..a5d78561509e --- /dev/null +++ b/source/_components/switch.pilight.markdown @@ -0,0 +1,63 @@ +--- +layout: page +title: "Pilight Switch" +description: "Instructions how to have switches using 433 MHz connected to a computer running pilight." +date: 2015-06-10 22:41 +sidebar: true +comments: false +sharing: true +footer: true +logo: pilight.png +ha_category: Switch +ha_release: pre 0.7 +--- + + +A switch platform that issues 433 MHz commands using [pilight](https://www.pilight.org/) to turn a 433 MHz device on or off. The pilight HA hub has to be set up. + +Additionally RF commands can be defined that trigger this switch to turn on and off. This allows you to also use the remote shipped with your 433 MHz switch without mixing up the HA states. You can even define several on/off commands, thus several RF remotes to toggle this switch. + +To be really sure that HA knows the actual state of your device it is recommended to use the RF remote with codes unknown to any of your 433 MHz devices. Thus you use the remote to trigger this switch to send the correct RF code to the device. + +To define a pilight switch, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +switch: + platform: pilight + switches: + Bed light: + on_code: + protocol: intertechno_old # protocol has to be defined + unit: 3 # these entries are protocol specific and can differ + id: 4 # these entries are protocol specific and can differ + 'on': 1 # on has to be in apostrophes to be parsed correctly + off_code: + protocol: intertechno_old # protocol has to be defined + unit: 3 # these entries are protocol specific and can differ + id: 4 # these entries are protocol specific and can differ + 'off': 1 # off has to be in apostrophes to be parsed correctly + on_code_receive: # optional + protocol: daycom # protocol has to be defined + systemcode: 14462 # these entries are protocol specific and can differ + unit: 6 # these entries are protocol specific and can differ + id: 34 # these entries are protocol specific and can differ + state: 'on' # off has to be in apostrophes to be parsed correctly + off_code_receive: # optional + protocol: daycom # protocol has to be defined + systemcode: 14462 # these entries are protocol specific and can differ + unit: 6 # these entries are protocol specific and can differ + id: 34 # these entries are protocol specific and can differ + state: 'off' # on has to be in apostrophes to be parsed correctly +``` + +Configuration variables: + +- **switches** (*Required*): The array that contains all command switches. + - **entry** (*Required*): Name of the command switch. Multiple entries are possible. + - **on_code** (*Required*): The code to turn the device on. + - **off_code** (*Required*): The code to turn the device off. + - **on_code_receive** (*Optional*): If given, this command will turn the switch on if it is received by pilight. + - **off_code_receive** (*Optional*): If given, this command will turn the switch off if it is received by pilight. + +For possible code entries look at the [pilight API](https://www.pilight.org/development/api/). All commands allowed by [pilight-send](https://wiki.pilight.org/doku.php/psend) can be used. \ No newline at end of file diff --git a/source/_components/thermostat.heat_control.markdown b/source/_components/thermostat.heat_control.markdown index 2b698f9cc11e..4b70cf0649b1 100644 --- a/source/_components/thermostat.heat_control.markdown +++ b/source/_components/thermostat.heat_control.markdown @@ -23,6 +23,13 @@ thermostat: min_temp: 15 max_temp: 21 target_temp: 15 + min_cycle_duration: + # At least one of these must be specified: + days: 2 + hours: 1 + minutes: 10 + seconds: 5 + milliseconds: 20 ``` Configuration variables: @@ -33,3 +40,5 @@ Configuration variables: - **min_temp** (*Optional*): Set minimum set point available (default: 7) - **max_temp** (*Optional*): Set maximum set point available (default: 35) - **target_temp** (*Required*): Set intital target temperature. Failure to set this variable will result in target temperature being set to null on startup. +- **ac_mode** (*Optional*): Set the switch specified in the *heater* option to be treated as a cooling device instead of a heating device. +- **min_cycle_duration** (*Optional*): Set a minimum amount of time that the switch specified in the *heater* option must be in it's current state prior to being switched either off or on. diff --git a/source/_components/thermostat.proliphix.markdown b/source/_components/thermostat.proliphix.markdown index 13b53668b807..b8182b4d2aed 100644 --- a/source/_components/thermostat.proliphix.markdown +++ b/source/_components/thermostat.proliphix.markdown @@ -35,7 +35,6 @@ Configuration variables: - **username** (*Required*): Username for the thermostat. - **password** (*Required*): Password for the thermostat. -The Proliphix NT Thermostat series are ethernet connected -thermostats. They have a local HTTP interface that is based on get/set -of OID values. A complete collection of the API is available in this -[API documentation](https://github.com/sdague/thermostat.rb/blob/master/docs/PDP_API_R1_11.pdf). +The Proliphix NT Thermostat series are ethernet connected thermostats. They have a local HTTP interface that is based on get/set +of OID values. A complete collection of the API is available in this [API documentation](https://github.com/sdague/thermostat.rb/blob/master/docs/PDP_API_R1_11.pdf). + diff --git a/source/_cookbook/configuration_yaml_from_bassclarinetl2 b/source/_cookbook/configuration_yaml_from_bassclarinetl2 index 91af768b15ec..f745782619ae 100644 --- a/source/_cookbook/configuration_yaml_from_bassclarinetl2 +++ b/source/_cookbook/configuration_yaml_from_bassclarinetl2 @@ -4,8 +4,8 @@ homeassistant: # Location required to calculate the time the sun rises and sets latitude: 37 longitude: -121 - # C for Celcius, 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: diff --git a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown index dd69f051804e..2d0c634caa89 100644 --- a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown +++ b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown @@ -17,8 +17,8 @@ homeassistant: # Location required to calculate the time the sun rises and sets latitude: 37 longitude: -121 - # C for Celcius, 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: diff --git a/source/_cookbook/custom_panel_using_react.markdown b/source/_cookbook/custom_panel_using_react.markdown index 494c10c3e5e8..a3d8911e88e4 100644 --- a/source/_cookbook/custom_panel_using_react.markdown +++ b/source/_cookbook/custom_panel_using_react.markdown @@ -18,13 +18,18 @@ This is a [React](https://facebook.github.io/react/) implementation of [TodoMVC] - It uses the user configuration for the component in the `configuration.yaml` file for rendering. - It allows toggling the sidebar. -All you need is available as a [custom component](https://github.com/home-assistant/home-assistant/tree/master/config/custom_components/react_panel). +All you need is available as a [custom panel](https://github.com/home-assistant/home-assistant/tree/master/config/panels/react.html). Download the file and save it in `/panels/` (you might have to create the directory if it doesn't exist). -Create a entry for the panel in your `configuration.yaml` file to enable it. Set a title if you like. +Create a entry for the panel in your `configuration.yaml` file to enable it. ```yaml -react_panel: - title: 'React' +panel_custom: + - name: react + sidebar_title: TodoMVC + sidebar_icon: mdi:work + url_path: todomvc + config: + title: hello ``` This video shows the example in action. diff --git a/source/_includes/asides/about.html b/source/_includes/asides/about.html index e71429e11916..5d672861adc4 100644 --- a/source/_includes/asides/about.html +++ b/source/_includes/asides/about.html @@ -10,4 +10,6 @@

About Home Assistant

  • +
    + diff --git a/source/_includes/post/sharing.html b/source/_includes/post/sharing.html index 44af6bf53ad5..3007da6c0df1 100644 --- a/source/_includes/post/sharing.html +++ b/source/_includes/post/sharing.html @@ -20,16 +20,3 @@

    Share this post

    - diff --git a/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown b/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown index a9a37c646e6e..4708b2148526 100644 --- a/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown +++ b/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown @@ -75,7 +75,7 @@ If you have followed the previous steps, you're all set. - Open Arduino IDE and create a new sketch (`File` -> `New`) - Copy and paste the below sketch to the Arduino IDE - Adjust the values line 6 - 14 to match your setup - - Optional: If you want to connect to an MQTT server without a username or password, adjust line 63. + - Optional: If you want to connect to an MQTT server without a username or password, adjust line 62. - To have the ESP8266 accept our new sketch, we have to put it in upload mode. On the ESP8266 device keep the GPIO0 button pressed while pressing the reset button. The red led will glow half bright to indicate it is in upload mode. - Press the upload button in Arduino IDE - Open the serial monitor (`Tools` -> `Serial Monitor`) to see the output from your device diff --git a/source/_posts/2016-08-13-foursquare--fast.com--ffmpeg--gpsd.markdown b/source/_posts/2016-08-13-foursquare--fast.com--ffmpeg--gpsd.markdown new file mode 100644 index 000000000000..7d5081896a5b --- /dev/null +++ b/source/_posts/2016-08-13-foursquare--fast.com--ffmpeg--gpsd.markdown @@ -0,0 +1,102 @@ +--- +layout: post +title: "0.26: Foursquare, Fast.com, FFMPEG and GPSD" +description: "Automate based on check ins, slow internet speed or just stream a camera using FFMPEG." +date: 2016-08-13 12:00:00 -0700 +date_formatted: "August 13, 2016" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +--- + +It's time for 0.26 and it's again full of new features and fixes. First I want to highlight that we are now having 500 000 monthly pageviews on the website. A big milestone for us! It's been an amazing journey. Big thanks to the Home Assistant community for being such a delightful bunch. + +This release includes code contributed by 31 different people. The biggest change in this release is a new unit system. Instead of picking Celsius or Fahrenheit you'll have to pick imperial or metric now. This influences the units for your temperature, distance, and weight. This will simplify any platform or component that needs to know this information. Big thanks to [@Teagan42] for her hard work on this! + + + +- Core: Introduce notion of unit system (deprecates temperature unit option) ([@Teagan42]) +- Front end: Speed improvements ([@balloob]) +- Front end: Improve layout of state dev tool ([@balloob]) +- [Proximity]\: Allow definition of unit of measurement ([@Teagan42]) +- [Flux]\: Add mired and kelvin mode ([@HBDK]) +- Thermostat - [Proliphix]: Support for cooling ([@sdague]) +- Media Player - [LG Netcast TV]: Show screenshot of what is currently playing ([@shmuelzon]) +- Z-Wave improvements ([@jnewland], [@turbokongen]) +- Thermostat - [heat control]: now also able to control an AC ([@mtreinish]) +- Thermostat - [heat control]: allow specifying a minimum duration before switching ([@mtreinish]) +- [InfluxDB]\: Whitelist entities option added ([@tchellomello]) +- Sensor: Serial [particulate matters][particulate] sensors now supported ([@open-homeautomation]) +- Sensor - [Fitbit]: Fix unit system ([@tchellomello]) +- Light - [Flux LED]: Add support for [color and brightness][color] ([@Danielhiversen]) +- Media Player - [Plex]: Now able to report on music ([@abcminiuser]) +- Alarm Control Panel - [Verisure]: Now able to see who changed the alarm ([@persandtrom]) +- Thermostat - [Honeywell]: Add option to read and control HVAC mode ([@Teagan42]) +- [Foursquare] component to receive instant notifications of checkins ([@robbiet480]) +- Camera: New [FFMPEG] platform allows to stream anything through front end ([@pvizeli]) +- Manage [secrets] with new command line script ([@kellerza]) +- Notify - [SMTP]: Allow embedding of images ([@partofthething]) +- Sensor: [OhmConnect] is now supported ([@robbiet480]) +- [panel_custom] component allows the registering of new panels ([@balloob]) +- Light: New [mqtt_json] platform for working with JSON payload ([@corbanmailloux]) +- Sensor: New [Fast.com] platform to measure network bandwidth performance ([@nkgilley]) +- New [pilight] component to control 433 Mz devices ([@DavidLP]) +- Sensor: [GPSD] now supported ([@fabaff]) + +### {% linkable_title Breaking changes %} + + - A new unit system has superseded the temperature unit option in the core configuration. For now it is backwards compatible, but you should update soon: + +```yaml +# Configuration.yaml example +homeassistant: + # 'metric' for the metric system, 'imperial' for the imperial system + unit_system: metric +``` + +[@abcminiuser]: https://github.com/abcminiuser +[@balloob]: https://github.com/balloob +[@corbanmailloux]: https://github.com/corbanmailloux +[@Danielhiversen]: https://github.com/Danielhiversen +[@DavidLP]: https://github.com/DavidLP +[@fabaff]: https://github.com/fabaff +[@HBDK]: https://github.com/HBDK +[@jnewland]: https://github.com/jnewland +[@kellerza]: https://github.com/kellerza +[@mtreinish]: https://github.com/mtreinish +[@nkgilley]: https://github.com/nkgilley +[@open-homeautomation]: https://github.com/open-homeautomation +[@partofthething]: https://github.com/partofthething +[@persandtrom]: https://github.com/persandtrom +[@pvizeli]: https://github.com/pvizeli +[@robbiet480]: https://github.com/robbiet480 +[@sdague]: https://github.com/sdague +[@shmuelzon]: https://github.com/shmuelzon +[@tchellomello]: https://github.com/tchellomello +[@Teagan42]: https://github.com/Teagan42 +[@turbokongen]: https://github.com/turbokongen +[@fabaff]: https://github.com/fabaff + +[Foursquare]: /components/foursquare/ +[OhmConnect]: /components/sensor.ohmconnect/ +[FFMPEG]: /components/camera.ffmpeg/ +[SMTP]: /components/notify.smtp/ +[panel_custom]: /components/panel_custom/ +[Verisure]: /components/alarm_control_panel.verisure/ +[Flux LED]: /components/light.flux_led/ +[InfluxDB]: /components/influxdb/ +[particulate]: /components/sensor.serial_pm/ +[LG Netcast TV]: /components/media_player.lg_netcast/ +[mqtt_json]: /components/light.mqtt_json/ +[Fast.com]: /components/sensor.fastdotcom/ +[pilight]: /components/pilight/ +[GPSD]: /components/sensor.gpsd/ +[heat control]: /components/thermostat.heat_control/ +[Proximity]: /components/proximity/ +[Flux]: /components/switch.flux/ +[Proliphix]: /components/thermostat.proliphix/ +[Fitbit]: /components/sensor.fitbit/ +[Plex]: /components/media_player.plex/ +[Honeywell]: /components/thermostat.honeywell/ +[Secrets]: /topics/secrets/ diff --git a/source/_topics/secrets.markdown b/source/_topics/secrets.markdown index c6db498dfce6..3b344efa0ad4 100644 --- a/source/_topics/secrets.markdown +++ b/source/_topics/secrets.markdown @@ -36,41 +36,25 @@ logger: debug http_password: YOUR_PASSWORD ``` -### {% linkable_title Python Keyring %} +### {% linkable_title Storing passwords in a keyring managed by your OS %} -Using [Keyring](http://pythonhosted.org/keyring/) is an alternative way to `secrets.yaml` but requires that `keyring` is installed (incl. its command-line tools). This can be done with: +Using [Keyring](http://pythonhosted.org/keyring/) is an alternative way to `secrets.yaml`. They can be managed from the command line via the keyring script. ```bash -$ pip3 install keyring +$ hass --script keyring --help ``` -Replace your password or API key with `!secret` and an identifier in `configuration.yaml` file. +To store a password in keyring, replace your password or API key with `!secret` and an identifier in `configuration.yaml` file. ```yaml http: api_password: !secret http_password ``` -Create an entry in your keyring. The service (SERVICE) is `homeassistant` and the identifier is the USERNAME in the keyring context. +Create an entry in your keyring. ```bash -$ keyring set homeassistant http_password -Password for 'http_password' in 'homeassistant': -Please set a password for your new keyring: -Please confirm the password: -``` - -If the command-line tool `keyring` is not available, launch `python3` and do the process manually. - -```python ->>> import keyring ->>> keyring.set_password("homeassistant", "http_password", "12345") -Please set a password for your new keyring: -Please confirm the password: ->>> keyring.get_password("homeassistant", "http_password") -'12345' ->>> keyring.get_keyring() - +$ hass --script keyring set http_password ``` If you launch home Assistant now, you will be prompted for the keyring password to unlock your keyring. @@ -78,10 +62,9 @@ If you launch home Assistant now, you will be prompted for the keyring password ```bash $ hass Config directory: /home/fab/.homeassistant -Please enter password for encrypted keyring: +Please enter password for encrypted keyring: ```

    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 /panels/. -Your component should register the panel. The minimum required code for your component is: - -```python -"""A minimal custom panel example.""" -import os - -from homeassistant.components.frontend import register_panel - -DOMAIN = 'hello_panel' -DEPENDENCIES = ['frontend'] - -PANEL_PATH = os.path.join(os.path.dirname(__file__), 'panel.html') - - -def setup(hass, config): - """Initialize a minimal custom panel.""" - register_panel(hass, 'hello', PANEL_PATH, title='Hello World', - icon='mdi:appnet', config=config.get(DOMAIN, {})) - return True -``` - -The `panel.html` contains the needed building blocks to create the elements inside the view. +The `hello.html` contains the needed building blocks to create the elements inside the view. ```javascript @@ -87,8 +66,12 @@ Polymer({ Create an entry for the new panel in your `configuration.yaml` file: ```yaml -hello_panel: - who: 'You' +panel_custom: + - name: hello_world + sidebar_title: Hello World + sidebar_icon: mdi:hand-pointing-right + url_path: hello_world + webcomponent_path: /panels/hello.html ``` For more examples, see the [Custom panel Examples](/cookbook#custom-panel-examples) on our examples page. diff --git a/source/developers/rest_api.markdown b/source/developers/rest_api.markdown index f8fd4f5429b1..e9dc9cc6d3bd 100644 --- a/source/developers/rest_api.markdown +++ b/source/developers/rest_api.markdown @@ -89,7 +89,7 @@ Returns the current configuration as JSON. "latitude": 44.1234, "location_name": "Home", "longitude": 5.5678, - "temperature_unit": "\u00b0C", + "unit_system": "metric", "time_zone": "Europe/Zurich", "version": "0.8.0.dev0" } diff --git a/source/getting-started/basic.markdown b/source/getting-started/basic.markdown index 0c1b80f17306..90df0ccd5595 100644 --- a/source/getting-started/basic.markdown +++ b/source/getting-started/basic.markdown @@ -22,8 +22,8 @@ homeassistant: # Impacts weather/sunrise data (altitude above sea level) elevation: 430 - # C for Celsius, F for Fahrenheit - temperature_unit: C + # 'metric' for Metric, 'imperial' for Imperial + unit_system: metric # Pick yours from here: # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones diff --git a/source/getting-started/z-wave-controllers.markdown b/source/getting-started/z-wave-controllers.markdown index 44d5495b3d53..3a40dea161e9 100644 --- a/source/getting-started/z-wave-controllers.markdown +++ b/source/getting-started/z-wave-controllers.markdown @@ -22,7 +22,7 @@ Upon first run, the z-wave component will take time to initialize entities and e | Aeotec Z-Stick Series 2 | ✓ | | | | Aeotec Z-Stick Series 5 | ✓ | | | | Razberry GPIO Module | ✓ | | | - +| ZWave.me UZB1 | ✓ | | | ## {% linkable_title Stick Alternatives %} diff --git a/source/getting-started/z-wave-device-specific.markdown b/source/getting-started/z-wave-device-specific.markdown index 1c04e451af33..adfef28bee59 100644 --- a/source/getting-started/z-wave-device-specific.markdown +++ b/source/getting-started/z-wave-device-specific.markdown @@ -22,40 +22,6 @@ The option is commented out by default in `options.xml` and is a default key. Ma It is best to pair these devices in Open Zwave Control Panel or other Zwave tool that can show you logs while pairing. Test the device before you save the configuration. Make sure you copy the newly saved `zwcfg_[home_id].xml`into your HomeAssistant config directory. -##### {% linkable_title Event basic_level for automation %} -HomeAssistant will trigger a event when command_class_basic changes value on a node. -This can be virtually anything, so tests have to be made to determine what value equals what. -You can use this for automations. - -Example: - -```yaml - - alias: Minimote Button Pressed - trigger: - platform: event - event_type: zwave.node_event - event_data: - object_id: aeon_labs_minimote_1 - basic_level: 255 -``` - -##### {% linkable_title Event scene_id for automation %} -HomeAssistant will trigger a event when a scene is activated by a node in the zwave network. -This can be a press of a button, so tests have to be made to determine what scene_id equals what. -You can use this for automations. - -Example: - -```yaml - - alias: Minimote Button 1 Pressed - trigger: - platform: event - event_type: zwave.scene_activated - event_data: - object_id: aeon_labs_minimote_1 - scene_id: 1 -``` - ##### {% linkable_title Aeon Minimote %} diff --git a/source/getting-started/z-wave.markdown b/source/getting-started/z-wave.markdown index 6cd3ab4f6187..a0ea9ad7d75c 100644 --- a/source/getting-started/z-wave.markdown +++ b/source/getting-started/z-wave.markdown @@ -92,6 +92,66 @@ Depending on what's plugged into your USB ports, the name found above may change #### {% linkable_title Events %} +**zwave.network_complete** +HomeAssistant will trigger a event when the zwave 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. + +```yaml + - alias: ZWave network is complete + trigger: + platform: event + event_type: zwave.network_complete +``` + +**zwave.network_ready** +HomeAssistant will trigger a event when the zwave network is ready for use. Between `zwave.network_start` and `zwave.network_ready` HomeAssistant will feel sluggish when trying to send commands to zwave nodes. This is because the controller is requesting information from all of the nodes on the network. When this is triggered all awake nodes have been queried and sleeping nodes will be queried when they awake. + +```yaml + - alias: ZWave network is ready + trigger: + platform: event + event_type: zwave.network_ready +``` + +**zwave.network_start** +HomeAssistant will trigger a event when the zwave network is set up to be started. + +```yaml + - alias: ZWave network is starting + trigger: + platform: event + event_type: zwave.network_start +``` + +**zwave.network_stop** +HomeAssistant will trigger a event when the zwave network stopping. + +```yaml + - alias: ZWave network is stopping + trigger: + platform: event + event_type: zwave.network_start +``` + +**zwave.node_event** +HomeAssistant will trigger a event when command_class_basic changes value on a node. +This can be virtually anything, so tests have to be made to determine what value equals what. +You can use this for automations. + +Example: + +```yaml + - alias: Minimote Button Pressed + trigger: + platform: event + event_type: zwave.node_event + event_data: + object_id: aeon_labs_minimote_1 + basic_level: 255 +``` + +The *object_id* and *basic_level* of all triggered events can be seen in the console output. + +**zwave.scene_activated** Some devices can also trigger scene activation events, which can be used in automation scripts (for example the press of a button on a wall switch): ```yaml @@ -102,11 +162,11 @@ automation: platform: event event_type: zwave.scene_activated event_data: - entity_id: zwaveme_zme_wallcs_secure_wall_controller_8 + object_id: zwaveme_zme_wallcs_secure_wall_controller_8 scene_id: 11 ``` -The *entity_id* and *scene_id* of all triggered events can be seen in the console output. +The *object_id* and *scene_id* of all triggered events can be seen in the console output. #### {% linkable_title Services %} @@ -115,8 +175,10 @@ The Z-Wave component exposes four services to help maintain the network. | Service | Description | | ------- | ----------- | | add_node | Put the zwave controller in inclusion mode. Allows one to add a new device to the zwave network.| -| remove_node | Put the zwave controller in exclusion mode. Allows one to remove a device from the zwave network.| +| add_node_secure | Put the zwave controller in secure inclusion mode. Allows one to add a new device with secure communications to the zwave network. | +| cancel_command | Cancels a running zwave 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 network. Bascially asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. | +| remove_node | Put the zwave controller in exclusion mode. Allows one to remove a device from the zwave network.| | 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.| | test_network | Tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked "presumed dead".| diff --git a/source/images/supported_brands/fastdotcom.png b/source/images/supported_brands/fastdotcom.png new file mode 100644 index 000000000000..537ce9180cf3 Binary files /dev/null and b/source/images/supported_brands/fastdotcom.png differ diff --git a/source/images/supported_brands/ffmpeg.png b/source/images/supported_brands/ffmpeg.png new file mode 100644 index 000000000000..a7f78f5b5175 Binary files /dev/null and b/source/images/supported_brands/ffmpeg.png differ diff --git a/source/images/supported_brands/foursquare.png b/source/images/supported_brands/foursquare.png new file mode 100644 index 000000000000..492431843b55 Binary files /dev/null and b/source/images/supported_brands/foursquare.png differ diff --git a/source/images/supported_brands/gpsd.png b/source/images/supported_brands/gpsd.png new file mode 100644 index 000000000000..83ca308013ba Binary files /dev/null and b/source/images/supported_brands/gpsd.png differ diff --git a/source/images/supported_brands/ohmconnect.png b/source/images/supported_brands/ohmconnect.png new file mode 100644 index 000000000000..e3aaf1b38bd1 Binary files /dev/null and b/source/images/supported_brands/ohmconnect.png differ diff --git a/source/images/supported_brands/pilight.png b/source/images/supported_brands/pilight.png new file mode 100644 index 000000000000..a95bf3100119 Binary files /dev/null and b/source/images/supported_brands/pilight.png differ diff --git a/source/index.html b/source/index.html index 0ee23f52baae..46d633741e1f 100644 --- a/source/index.html +++ b/source/index.html @@ -15,11 +15,11 @@