- {{ page.title }} -
-- - {{ content }} -
diff --git a/Rakefile b/Rakefile index d98244db570..a2555af077d 100644 --- a/Rakefile +++ b/Rakefile @@ -77,13 +77,14 @@ task :watch do end desc "preview the site in a web browser" -task :preview do +task :preview, :listen do |t, args| + listen_addr = args[:listen] || '127.0.0.1' raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir) puts "Starting to watch source with Jekyll and Compass. Starting Rack on port #{server_port}" system "compass compile --css-dir #{source_dir}/stylesheets" unless File.exist?("#{source_dir}/stylesheets/screen.css") jekyllPid = Process.spawn({"OCTOPRESS_ENV"=>"preview"}, "jekyll build --watch --incremental") compassPid = Process.spawn("compass watch") - rackupPid = Process.spawn("rackup --port #{server_port}") + rackupPid = Process.spawn("rackup --port #{server_port} --host #{listen_addr}") trap("INT") { [jekyllPid, compassPid, rackupPid].each { |pid| Process.kill(9, pid) rescue Errno::ESRCH } diff --git a/_config.yml b/_config.yml index 594037c04d4..6275152702f 100644 --- a/_config.yml +++ b/_config.yml @@ -79,6 +79,8 @@ collections: output: true cookbook: output: true + topics: + output: true # ----------------------- # # 3rd Party Settings # diff --git a/plugins/linkable_title.rb b/plugins/linkable_title.rb index da677b296be..784ca99bcd1 100644 --- a/plugins/linkable_title.rb +++ b/plugins/linkable_title.rb @@ -6,9 +6,9 @@ module Jekyll end def render(context) - slug = @title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') - - " #{@title}" + title = Liquid::Template.parse(@markup).render context + slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') + " #{title}" end end end diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index bad54a1da87..56e200dd4cb 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -13,6 +13,7 @@ text-transform: uppercase; white-space: nowrap; display: inline-block; + font-weight: bold; } .front-install { @@ -119,7 +120,7 @@ article.post, article.page, article.listing { box-shadow: none; } - & > table { + & > table, & > .entry-content > table { background-color: #F3FCF5; } @@ -160,7 +161,7 @@ p.note { box-shadow: rgba(0,0,0,0.06) 0 0 10px; &::before { - font-family: "FontAwesome"; + font-family: "FontAwesome", sans-serif; content: "\f05a" " Note " attr(data-title); background-color: #6ab0de; color: white; @@ -204,7 +205,7 @@ p.note { } .install-instructions-container { - #normal-install, #raspberry-install, #docker-install, .install-instructions { + #normal-install, #raspberry-install, #docker-install, #synology-install, .install-instructions { display: none; } @@ -223,14 +224,16 @@ p.note { #normal-install:checked ~ .menu-selector.normal, #raspberry-install:checked ~ .menu-selector.raspberry, - #docker-install:checked ~ .menu-selector.docker + #docker-install:checked ~ .menu-selector.docker, + #synology-install:checked ~ .menu-selector.synology { border-bottom-color: $blue; } #normal-install:checked ~ .install-instructions.normal, #raspberry-install:checked ~ .install-instructions.raspberry, - #docker-install:checked ~ .install-instructions.docker + #docker-install:checked ~ .install-instructions.docker, + #synology-install:checked ~ .install-instructions.synology { display: block; } @@ -242,7 +245,7 @@ p.note { .advanced-installs-container { - #upstart-install, #systemd-install, #osx-install, .advanced-installs { + #upstart-install, #systemd-install, #osx-install, #synology-install, .advanced-installs { display: none; } @@ -261,14 +264,16 @@ p.note { #upstart-install:checked ~ .menu-selector.upstart, #systemd-install:checked ~ .menu-selector.systemd, - #osx-install:checked ~ .menu-selector.osx + #osx-install:checked ~ .menu-selector.osx, + #synology-install:checked ~ .menu-selector.synology { border-bottom-color: $blue; } #upstart-install:checked ~ .advanced-installs.upstart, #systemd-install:checked ~ .advanced-installs.systemd, - #osx-install:checked ~ .advanced-installs.osx + #osx-install:checked ~ .advanced-installs.osx, + #synology-install:checked ~ .advanced-installs.synology { display: block; } @@ -403,4 +408,6 @@ p.note { .edit-github { text-align: right; + margin-bottom: 8px; + font-size: .8em; } diff --git a/sass/oscailte/base/_navigation.scss b/sass/oscailte/base/_navigation.scss index ea581a0b4e9..6478e6aec4f 100644 --- a/sass/oscailte/base/_navigation.scss +++ b/sass/oscailte/base/_navigation.scss @@ -14,13 +14,14 @@ body{ -webkit-animation: bugfix infinite 1s; } #toggle, .toggle { display: none; } .menu li { list-style: none; float:left; } -$menu-collapse: 955px; +$menu-collapse: 944px; // @media only screen and (max-width: $lap-end){ @media only screen and (max-width: $menu-collapse){ .menu { display: none; opacity: 0; width: 100%; position: absolute; right: 0; } .menu li { display: block; width: 100%; margin: 0; } .menu li a { display: block; width: 100%; text-decoration: none; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } + .menu li a .icon { display: none; } .toggle { display: block; position: relative; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; } #toggle:checked ~ .menu { display: block; opacity: 1; z-index: 999; } } @@ -75,10 +76,10 @@ header .grid { @include box-sizing(border-box); @include transition(all 0.25s linear); display: block; - padding: 32px 20px; + padding: 32px 12px; text-decoration: none; font-weight: normal; - font-size: 16px; + font-size: 14px; line-height: 1; } @@ -86,7 +87,7 @@ header .grid { background: $site-background; box-shadow: inset 0px 5px $navigation-color; color: $navigation-color; - padding: 40px 20px 24px; + padding: 40px 12px 24px; } .toggle{ diff --git a/sass/oscailte/homepage/_hero_unit.scss b/sass/oscailte/homepage/_hero_unit.scss index 80b406f1325..ca41c37a588 100644 --- a/sass/oscailte/homepage/_hero_unit.scss +++ b/sass/oscailte/homepage/_hero_unit.scss @@ -7,7 +7,6 @@ background-size: cover; border-bottom: 1px solid $white; color: $white; - font-weight: bold; margin-top: -2em; margin-bottom: 1.5em; padding: 50px 0; diff --git a/source/_components/alarm_control_panel.alarmdotcom.markdown b/source/_components/alarm_control_panel.alarmdotcom.markdown index aa976170231..2d81393f770 100644 --- a/source/_components/alarm_control_panel.alarmdotcom.markdown +++ b/source/_components/alarm_control_panel.alarmdotcom.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Alarm.com Alarm Control Panel" description: "Instructions how to integrate Alarm.com into Home Assistant." date: 2016-01-14 22:00 diff --git a/source/_components/alarm_control_panel.manual.markdown b/source/_components/alarm_control_panel.manual.markdown index 36b49399a78..c5ce1ff8353 100644 --- a/source/_components/alarm_control_panel.manual.markdown +++ b/source/_components/alarm_control_panel.manual.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Manual Alarm Control Panel" description: "Instructions how to integrate manual alarms into Home Assistant." date: 2015-10-13 19:10 diff --git a/source/_components/alarm_control_panel.markdown b/source/_components/alarm_control_panel.markdown index ec617fa3e9a..ba5f469915b 100644 --- a/source/_components/alarm_control_panel.markdown +++ b/source/_components/alarm_control_panel.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Alarm Control Panels" description: "Instructions how to integrate Alarm Control Panels into Home Assistant." date: 2015-10-13 19:10 @@ -12,6 +12,7 @@ footer: true Home Assistant can give you an interface with is similar to a classic alarm system. There are several panels supported: +- [Alarm.com](/components/alarm_control_panel.alarmdotcom/) - [Manual](/components/alarm_control_panel.manual/) - [MQTT](/components/alarm_control_panel.mqtt/) - [Verisure](/components/verisure/) diff --git a/source/_components/alarm_control_panel.mqtt.markdown b/source/_components/alarm_control_panel.mqtt.markdown index 440d8209e4e..36c9230b87e 100644 --- a/source/_components/alarm_control_panel.mqtt.markdown +++ b/source/_components/alarm_control_panel.mqtt.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "MQTT Alarm Control Panel" description: "Instructions how to integrate MQTT capable Alarm Panels into Home Assistant." date: 2015-09-14 19:10 @@ -15,7 +15,7 @@ The `mqtt` alarm panel platform enables the possibility to control MQTT capable The component will accept the following states from your Alarm Panel (in lower case): -- 'armed' +- 'disarmed' - 'armed_home' - 'armed_away' - 'pending' @@ -45,7 +45,7 @@ Configuration variables: - **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 your Alarm Panel. Default is "DISARM". +- **payload_disarm** (*Optional*): The payload to 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/alarm_control_panel.nx584.markdown b/source/_components/alarm_control_panel.nx584.markdown new file mode 100644 index 00000000000..12a07029947 --- /dev/null +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -0,0 +1,29 @@ +--- +layout: page +title: "NX584 Alarm Control Panel" +description: "Instructions how to integrate NX584 into Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: networx.png +ha_category: Alarm +--- + +The `nx584` platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through [pynx584](http://github.com/kk7ds/pynx584) which is required for this to work. + + +To enable this, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +alarm_control_panel: + platform: nx584 + host: ADDRESS +``` + +Configuration variables: + +- **host** (*Optional*): This is the host connection string (host:port) for the nx584 server process. If unset, it is assumed to be `localhost:5007`, which will work if the server process is running on the same system as home-assistant. + diff --git a/source/_components/alarm_control_panel.verisure.markdown b/source/_components/alarm_control_panel.verisure.markdown new file mode 100644 index 00000000000..edf0248b5d2 --- /dev/null +++ b/source/_components/alarm_control_panel.verisure.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Verisure Alarm" +description: "Instructions how to setup the Verisure Alarm control panel within Home Assistant." +date: 2016-02-15 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: verisure.png +ha_category: Alarm +--- + + +The Verisure alarm control panel platform allows you to control your [Verisure](https://www.verisure.com/) Alarms. + +The requirement is that you have setup your [Verisure hub](/components/verisure/). + diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown index d66913e751d..0cfeb9a1153 100644 --- a/source/_components/alexa.markdown +++ b/source/_components/alexa.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Alexa / Amazon Echo" description: "Instructions how to connect Alexa/Amazon Echo to Home Assistant." date: 2015-12-13 13:02 @@ -80,7 +80,7 @@ Out of the box, the component will do nothing. You have to teach it about all in You can use [templates] for the values of `speech/text`, `card/title` and `card/content`. -[templates]: /getting-started/templating/ +[templates]: /topics/templating/ Configuring the Alexa component for the above intents would look like this: diff --git a/source/_components/apcupsd.markdown b/source/_components/apcupsd.markdown new file mode 100644 index 00000000000..9ecd802fa24 --- /dev/null +++ b/source/_components/apcupsd.markdown @@ -0,0 +1,29 @@ +--- +layout: page +title: "APCUPSd" +description: "Instructions on how to integrate APCUPSd status with Home Assistant." +date: 2016-02-10 17:11 +sidebar: true +comments: false +sharing: true +footer: true +logo: apcupsd.png +ha_category: Hub +--- + +[APCUPSd](http://www.apcupsd.org/) status information can be integrated into Home Assistant when the Network Information Server (NIS) [is configured](http://www.apcupsd.org/manual/manual.html#nis-server-client-configuration-using-the-net-driver) is enabled on the APC device. + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +apcupsd: + host: IP_ADDRESS + port: PORT +``` + +Configuration variables: + +- **host** (*Optional*): The hostname/IP address on which the APCUPSd NIS is being served. Defaults to `localhost`. +- **port** (*Optional*): The port on which the APCUPSd NIS is listening. Defaults to `3551`. + diff --git a/source/_components/arduino.markdown b/source/_components/arduino.markdown index 08f3a7073f4..e961ab15149 100644 --- a/source/_components/arduino.markdown +++ b/source/_components/arduino.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Arduino" description: "Instructions how to setup an Arduino boards within Home Assistant." date: 2015-06-27 10:28 @@ -16,7 +16,7 @@ The [Arduino](https://www.arduino.cc/) device family are microcontroller boards There are a lot of extensions (so called [shields](https://www.arduino.cc/en/Main/ArduinoShields)) available. Those shields can be plugged-in into the existing connectors and stacked on top of each other. This makes it possible to expand the capabilities of the Arduino boards. -The arduino component is designed to let you use a directly attached board to your Home Assistant host over USB. +The `arduino` component is designed to let you use a directly attached board to your Home Assistant host over USB. You need to have the [Firmata firmware](https://github.com/firmata/) on your board. Please upload the `StandardFirmata` sketch to your board, please refer to the [Arduino documentation](https://www.arduino.cc/en/Main/Howto) for further information. diff --git a/source/_components/automation.markdown b/source/_components/automation.markdown index 78e4154b6ae..77ce27a220f 100644 --- a/source/_components/automation.markdown +++ b/source/_components/automation.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Automation" description: "Instructions how to setup automation within Home Assistant." date: 2015-01-20 22:36 @@ -129,6 +129,11 @@ automation: # Optional from: 'not_home' to: 'home' + # If given, will trigger when state has been the to state for X time. + for: + hours: 1 + minutes: 10 + seconds: 5 ```
@@ -161,26 +166,34 @@ automation: #### {% linkable_title Time trigger %} -Time can be triggered in many ways. The most common is to specify `after` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. For example, by only setting minutes in the config to 5 it will trigger every hour when it is 5 minutes past whole. You cannot use `after` together with hour, minute or second. +Time can be triggered in many ways. The most common is to specify `after` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You cannot use `after` together with hour, minute or second. ```yaml automation: trigger: platform: time - # All following are optional. + # Matches every hour at 5 minutes past whole + minutes: 5 + seconds: 0 + +automation 2: + trigger: + platform: time # When 'after' is used, you cannot also match on hour, minute, seconds. # Military time format. - # after: '15:32:00' - hours: 0 - minutes: 5 + after: '15:32:00' + +automation 3: + trigger: + platform: time + # You can also match on interval. This will match every 5 minutes + minutes: '/5' seconds: 0 ``` -The above example will trigger every hour on the 5 (2:05, 3:05, 4:05, etc). - #### {% linkable_title Zone trigger %} -Zone triggers can trigger when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/components/device_tracker.owntracks/). +Zone triggers can trigger when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/components/device_tracker.owntracks/) as well as the [iCloud platform](/components/device_tracker.icloud/). ```yaml automation: @@ -241,6 +254,12 @@ automation: platform: state entity_id: device_tracker.paulus state: not_home + # optional: trigger only if state was this for last X time. + for: + hours: 1 + minutes: 10 + seconds: 5 + ``` #### {% linkable_title Sun condition %} @@ -291,7 +310,7 @@ Valid values for `weekday` are (`sun`, `mon`, `tue`, `wed`, `thu`, `fri` & `sat` #### {% linkable_title Zone condition %} -Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/components/device_tracker.owntracks/). +Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/components/device_tracker.owntracks/) as well as the [iCloud platform](/components/device_tracker.icloud/). ```yaml automation: @@ -344,4 +363,4 @@ The Logbook component will show a line entry when an automation is triggered. Y  -[template]: /getting-started/templating/ \ No newline at end of file +[template]: /topics/templating/ diff --git a/source/_components/binary_sensor.apcupsd.markdown b/source/_components/binary_sensor.apcupsd.markdown new file mode 100644 index 00000000000..4d8be1efbd1 --- /dev/null +++ b/source/_components/binary_sensor.apcupsd.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: APCUPSd Binary Sensor +description: "Instructions on how to set up an APCUPSd binary sensor within Home Assistant." +date: 2016-02-10 18:47 +sidebar: true +comments: false +sharing: true +footer: true +logo: apcupsd.png +ha_category: Binary Sensor +--- + +In addition to the [APCUPSd Sensor](/components/sensor.apcupsd/) devices, you may also create a device which is simply "on" when the UPS status is online and "off" at all other times. + +To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: apcupsd + name: UPS Online +``` + +Configuration variables: + +- **resource** (*Required*): The resource or endpoint that contains the value. +- **method** (*Optional*): The method of the request. Default is GET. diff --git a/source/_components/binary_sensor.arest.markdown b/source/_components/binary_sensor.arest.markdown index dc383882e93..0ded7c3f247 100644 --- a/source/_components/binary_sensor.arest.markdown +++ b/source/_components/binary_sensor.arest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "aREST binary sensor" +layout: page +title: "aREST Binary Sensor" description: "Instructions how to integrate aREST binary sensors within Home Assistant." date: 2015-11-20 18:15 sidebar: true @@ -9,10 +9,11 @@ sharing: true footer: true logo: arest.png ha_category: Binary Sensor +ha_iot_class: "Local Polling" --- -The arest binary sensor platform allows you to get all data from your devices (like Arduinos with a ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework. +The `arest` binary sensor platform allows you to get all data from your devices (like Arduinos with a ethernet/wifi connection, the ESP8266, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework. To use your aREST binary sensor in your installation, add the following to your `configuration.yaml` file: @@ -36,7 +37,6 @@ Accessing the URL http://IP_ADDRESS/digital/PIN_NUMBER should give you the state ```bash $ curl -X GET http://10.100.0.157/digital/9 {"return_value": 0, "id": "office1", "name": "Office", "connected": true} - ```
diff --git a/source/_components/binary_sensor.bloomsky.markdown b/source/_components/binary_sensor.bloomsky.markdown new file mode 100644 index 00000000000..305dbe86c9b --- /dev/null +++ b/source/_components/binary_sensor.bloomsky.markdown @@ -0,0 +1,25 @@ +--- +layout: page +title: "BloomSky Binary Sensor" +description: "Instructions on how to set up BloomSky binary sensors within Home Assistant." +date: 2016-02-22 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: bloomsky.png +ha_category: Binary Sensor +--- + +The `bloomsky` binary sensor platform allows you to get data from your BloomSky device. + +To get your BloomSky binary sensors working with Home Assistant, follow the instructions for the [BloomSky component](/components/bloomsky/) first. + +To use your BloomSky binary sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: bloomsky +``` + diff --git a/source/_components/binary_sensor.command.markdown b/source/_components/binary_sensor.command_line.markdown similarity index 74% rename from source/_components/binary_sensor.command.markdown rename to source/_components/binary_sensor.command_line.markdown index dbd7ce4e3cb..f00c788d28b 100644 --- a/source/_components/binary_sensor.command.markdown +++ b/source/_components/binary_sensor.command_line.markdown @@ -1,12 +1,13 @@ --- -layout: component -title: "Command binary sensor" +layout: page +title: "Command line Binary Sensor" description: "Instructions how to integrate Command binary sensors within Home Assistant." date: 2016-01-13 12:15 sidebar: true comments: false sharing: true footer: true +logo: command_line.png ha_category: Binary Sensor --- @@ -18,11 +19,11 @@ To use your Command binary sensor in your installation, add the following to you ```yaml # Example configuration.yaml entry binary_sensor: - platform: command_sensor + platform: command_line 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 %}' ``` @@ -32,7 +33,7 @@ Configuration variables: - **name** (*Optional*): Let you overwrite the the name of the device. By default *name* from the device is used. - **payload_on** (*Optional*): The payload that represents enabled state. Default is "ON". - **payload_off** (*Optional*): The payload that represents disabled state. Default is "OFF". -- **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. ## {% linkable_title Examples %} @@ -45,7 +46,7 @@ Check the state of an [SickRage](https://github.com/sickragetv/sickrage) instanc ```yaml # Example configuration.yaml entry binary_sensor: - platform: command_sensor + platform: command_line command: netstat -na | find "33322" | find /c "LISTENING" > nul && (echo "Running") || (echo "Not running") name: 'sickragerunning' payload_on: "Running" @@ -58,10 +59,20 @@ Check if [RasPlex](http://www.rasplex.com/) is `online`. ```yaml binary_sensor: - platform: command_sensor - command: 'ping rasplex.local -c 1 | grep "1 received" | wc -l' + platform: command_line + command: 'ping -c 1 rasplex.local | grep "1 received" | wc -l' name: 'is_rasplex_online' payload_on: 1 payload_off: 0 ``` +An alternative solution could look like this: + +```yaml +binary_sensor: + platform: command_line + name: Printer + command: ping -c 1 192.168.1.10 &> /dev/null && echo success || echo fail + payload_on: "success" + payload_off: "fail" +``` diff --git a/source/_components/binary_sensor.http.markdown b/source/_components/binary_sensor.http.markdown new file mode 100644 index 00000000000..7e7dfe1e9a8 --- /dev/null +++ b/source/_components/binary_sensor.http.markdown @@ -0,0 +1,78 @@ +--- +layout: page +title: "HTTP Binary Sensor" +description: "Instructions how to integrate HTTP binary sensors within Home Assistant." +date: 2016-02-05 12:15 +sidebar: true +comments: false +sharing: true +footer: true +logo: http.png +ha_category: Binary Sensor +--- + +The URL for a binary sensor looks like the example below: + +```bash +http://IP_ADDRESS:8123/api/states/binary_sensor.DEVICE_NAME +``` + +
+You should choose a unique device name (DEVICE_NAME) to avoid clashes with other devices. +
+ +The JSON payload must contain the new state and can have a friendly name. The friendly name is used in the frontend to name the sensor. + +```json +{"state": "on", "attributes": {"friendly_name": "Radio"}} +``` + +For a quick test `curl` can be useful to "simulate" a device. + +```bash +$ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \ + -d '{"state": "off", "attributes": {"friendly_name": "Radio"}}' \ + http://localhost:8123/api/states/binary_sensor.radio +``` + +To check if the sensor is working, use again `curl` to retrieve the [current state](/developers/rest_api/#get-apistatesltentity_id). + +```bash +$ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ + http://localhost:8123/api/states/binary_sensor.radio +{ + "attributes": { + "friendly_name": "Radio" + }, + "entity_id": "binary_sensor.radio", + "last_changed": "16:45:51 05-02-2016", + "last_updated": "16:45:51 05-02-2016", + "state": "off" +} +``` + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this sensor. Beside `curl`. + +### {% linkable_title Using Python request module %} + +As already shown on the [API](/developers/rest_api/) page, it's very simple to use Python and the [Requests](http://docs.python-requests.org/en/latest/) module for the interaction with Home Assistant. + +```python +response = requests.post( + 'http://localhost:8123/api/states/binary_sensor.radio', + headers={'x-ha-access': 'YOUR_PASSWORD', 'content-type': 'application/json'}, + data=json.dumps({'state': 'on', 'attributes': {'friendly_name': 'Radio'}})) +print(response.text) +``` + +### {% linkable_title Using `httpie` %} + +[`httpie`](https://github.com/jkbrzt/httpie) is a user-friendly CLI HTTP client. + +```bash +$ http -v POST http://localhost:8123/api/states/binary_sensor.radio \ + x-ha-access:YOUR_PASSWORD state=off \ + attributes:='{"friendly_name": "Radio"}' +``` diff --git a/source/_components/binary_sensor.markdown b/source/_components/binary_sensor.markdown index 477642ec958..48c8dd29afd 100644 --- a/source/_components/binary_sensor.markdown +++ b/source/_components/binary_sensor.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Binary Sensor" description: "Instructions how to setup your binary sensors with Home Assistant." date: 2015-11-20 14:00 @@ -13,4 +13,21 @@ Binary sensors are gathering information about state of switches, contacts, pins Knowing that there are only two states allows Home Assistant to represent the sensor better in the frontend. +Most binary sensors support the `SENSOR_CLASSES` which let you specify the type of your sensor. The following types are supported: + +- **None**: Generic on/off +- **opening**: Door, window, etc +- **motion**: Motion sensor +- **gas'**: CO, CO2, etc +- **smoke'**: Smoke detector +- **moisture**: Specifically a wetness sensor +- **light**: Lightness threshold +- **power**: Power, over-current, etc +- **safety**: Generic on=unsafe, off=safe +- **heat**: On means hot (or too hot) +- **cold**: On means cold (or too cold) +- **moving**: On means moving, Off means stopped +- **sound**: On means sound detected, Off means no sound +- **vibration**: On means vibration detected, Off means no vibration + For analog sensors please check the [component overview](https://home-assistant.io/components/#sensor). diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index b80fda168ad..49b82140a5b 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "MQTT binary sensor" +layout: page +title: "MQTT Binary Sensor" description: "Instructions how to integrate MQTT binary sensors within Home Assistant." date: 2015-05-30 23:21 sidebar: true @@ -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 %}' ``` @@ -35,7 +35,7 @@ Configuration variables: - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0. - **payload_on** (*Optional*): The payload that represents on state. Default is "ON". - **payload_off** (*Optional*): The payload that represents state. Default is "OFF". -- **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. For a quick check you can use the commandline tools shipped with `mosquitto` to send MQTT messages. Set the state of your sensor manually: diff --git a/source/_components/binary_sensor.mysensors.markdown b/source/_components/binary_sensor.mysensors.markdown new file mode 100644 index 00000000000..291392fe477 --- /dev/null +++ b/source/_components/binary_sensor.mysensors.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "MySensors Binary Sensor" +description: "Instructions how to integrate MySensors binary sensors into Home Assistant." +date: 2016-02-28 01:20 +0100 +sidebar: true +comments: false +sharing: true +footer: true +logo: mysensors.png +ha_category: Binary Sensor +featured: false +--- + +Integrates MySensors binary sensors into Home Assistant. See the [main component] for configuration instructions. + +The following sensor types are supported: + +##### MySensors version 1.4 and higher + +S_TYPE | V_TYPE +-------------------|--------------------------------------- +S_DOOR | V_TRIPPED +S_MOTION | V_TRIPPED +S_SMOKE | V_TRIPPED + +##### MySensors version 1.5 and higher + +S_TYPE | V_TYPE +---------------|---------------------------------- +S_SPRINKLER | V_TRIPPED +S_WATER_LEAK | V_TRIPPED +S_SOUND | V_TRIPPED +S_VIBRATION | V_TRIPPED +S_MOISTURE | V_TRIPPED + +For more information, visit the [serial api] of MySensors. + +[main component]: /components/mysensors/ +[serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/binary_sensor.nest.markdown b/source/_components/binary_sensor.nest.markdown new file mode 100644 index 00000000000..014b0c3f727 --- /dev/null +++ b/source/_components/binary_sensor.nest.markdown @@ -0,0 +1,47 @@ +--- +layout: page +title: "Nest Binary Sensor" +description: "Instructions how to integrate Nest binary sensors within Home Assistant." +date: 2016-01-26 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: nest_thermostat.png +ha_category: Binary Sensor +--- + + +The `nest` binary sensor platform let you monitor various states of a thermostat from [Nest](https://nest.com). + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +binary_sensor: + platform: nest + monitored_conditions: + - 'fan' + - 'hvac_ac_state' + - 'hvac_aux_heater_state' + - 'hvac_heat_x2_state' + - 'hvac_heat_x3_state' + - 'hvac_alt_heat_state' + - 'hvac_alt_heat_x2_state' + - 'hvac_emer_heat_state' + - 'online' +``` + +Configuration variables: + +- **monitored_conditions** array (*Required*): States to monitor. + - 'fan' + - 'hvac_ac_state' + - 'hvac_aux_heater_state' + - 'hvac_heat_x2_state' + - 'hvac_heat_x3_state' + - 'hvac_alt_heat_state' + - 'hvac_alt_heat_x2_state' + - 'hvac_emer_heat_state' + - 'online' + +You must have the [Nest component](/components/nest/) configured to use this sensor.
diff --git a/source/_components/binary_sensor.nx584.markdown b/source/_components/binary_sensor.nx584.markdown new file mode 100644 index 00000000000..65f8ace47b7 --- /dev/null +++ b/source/_components/binary_sensor.nx584.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: NX584 zones +description: "Instructions on how to set up nx584 zones as sensors" +date: 2016-02-18 20:47 +sidebar: true +comments: false +sharing: true +footer: true +logo: networx.png +ha_category: Binary Sensor +ha_iot_class: "Local Push" +--- + +The `nx584` platform provides integration with GE, Caddx, Interlogix (and other brands) alarm panels that support the NX584 interface module (or have it built in). Supported panels include NX4/6/8/8E. Actual integration is done through [pynx584](http://github.com/kk7ds/pynx584) which is required for this to work. + +Enabling this sensor platform exposes all of your zones as binary sensors, which provides visibility through the UI as well as the ability to trigger automation actions instantly when something happens like a door opening, or a motion sensor trigger. + +To enable this, add the following lines to your `configuration.yaml`: + +```yaml +binary_sensor: + platform: nx584 + host: ADDRESS + exclude_zones: + - ZONE ... + zone_types: + ZONE: TYPE +``` + +Configuration variables: + +- **host** (*Optional*): This is the host connection string (host:port) for the nx584 server process. If unset, it is assumed to be `localhost:5007`, which will work if the server process is running on the same system as home-assistant. +- **exclude_zones** (*Optional*): This is a list of zone numbers that should be excluded. Use this to avoid exposing a zone that is of no interest, unconnected, etc. +- **zone_types** (*Optional*): This is a list of zone numbers mapped to zone types. Use this to designate zones as doors, motion sensors, smoke detectors, etc. The list of available zone types relevant to alarm zones are: `opening`, `motion`, `gas`, `smoke`, `moisture`, `safety`. + +Example configuration: + +```yaml +binary_sensor: + platform: nx584 + host: 192.168.1.10:5007 + exclude_zones: + - 3 + - 5 + zone_types: + 1: opening + 2: opening + 4: motion + 6: moisture +``` \ No newline at end of file diff --git a/source/_components/binary_sensor.rest.markdown b/source/_components/binary_sensor.rest.markdown index 6cb56043db0..e1fac78ddce 100644 --- a/source/_components/binary_sensor.rest.markdown +++ b/source/_components/binary_sensor.rest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "RESTful binary sensor" +layout: page +title: "RESTful Binary Sensor" description: "Instructions how to integrate REST binary sensors into Home Assistant." date: 2015-12-17 19:10 sidebar: true @@ -17,7 +17,7 @@ To enable this sensor, add the following lines to your `configuration.yaml` file ```yaml # Example configuration.yaml entry -sensor: +binary_sensor: platform: rest resource: http://IP_ADDRESS/ENDPOINT method: GET @@ -29,7 +29,7 @@ or for a POST request: ```yaml # Example configuration.yaml entry -sensor: +binary_sensor: platform: rest resource: http://IP_ADDRESS/ENDPOINT method: POST @@ -42,7 +42,7 @@ Configuration variables: - **resource** (*Required*): The resource or endpoint that contains the value. - **method** (*Optional*): The method of the request. Default is GET. -- **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the value. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the value. - **payload** (*Optional*): The payload to send with a POST request. Usualy formed as a dictionary. - **name** (*Optional*): Name of the REST binary sensor. diff --git a/source/_components/binary_sensor.rpi_gpio.markdown b/source/_components/binary_sensor.rpi_gpio.markdown index 4bc2f7581c4..dc2c0b8888a 100644 --- a/source/_components/binary_sensor.rpi_gpio.markdown +++ b/source/_components/binary_sensor.rpi_gpio.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Raspberry PI GPIO sensor" +layout: page +title: "Raspberry PI GPIO Binary Sensor" description: "Instructions how to integrate the GPIO sensor capability of a Raspberry PI into Home Assistant." date: 2015-08-30 19:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Sensor --- -The rpi_gpio binary sensor platform allows you to read sensor values of the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). +The `rpi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). To use your Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/binary_sensor.tcp.markdown b/source/_components/binary_sensor.tcp.markdown new file mode 100644 index 00000000000..e328ffb034f --- /dev/null +++ b/source/_components/binary_sensor.tcp.markdown @@ -0,0 +1,43 @@ +--- +layout: page +title: TCP Binary Sensor +description: "Instructions on how to set up TCP binary sensors within Home Assistant." +date: 2016-02-22 11:05 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Binary Sensor +--- + + +The TCP Binary Sensor is a type of [TCP Sensor](/components/sensor.tcp/) which is either "off" or "on". In order to use this sensor type, in addition to the configuration for the TCP Sensor, you must supply a `value_on` value to represent what is returned when the device is turned on. + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +sensor: +# Example configuration.yaml entry + - platform: tcp + name: TCP Binary Sensor + host: IP_ADDRESS + port: PORT + payload: "r State\n" + value_on: 1 + timeout: 5 + value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" + unit: UNIT_OF_MEASUREMENT +``` + +Configuration options for the a TCP Sensor: + +- **name** (*Required*): The name you'd like to give the sensor in Home Assistant. +- **host** (*Required*): The hostname/IP address to connect to. +- **port** (*Required*): The port to connect to the host on. +- **payload** (*Required*): What to send to the host in order to get the response we're interested in. +- **value_on** (*Required*): The value returned when the device is "on". +- **timeout** (*Optional*): How long in seconds to wait for a response from the service before giving up and disconnecting. Defaults to 10. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the value. By default it's assumed that the entire response is the value. +- **unit** (*Optional*): The unit of measurement to use for the value. +- **buffer_size** (*Optional*): The size of the receive buffer in bytes. Set this to a larger value if you expect to receive a response larger than the default. Defaults to 1024. + diff --git a/source/_components/binary_sensor.template.markdown b/source/_components/binary_sensor.template.markdown new file mode 100644 index 00000000000..f325ba4de4d --- /dev/null +++ b/source/_components/binary_sensor.template.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Template Binary Sensor" +description: "Instructions how to integrate Template binary sensors into Home Assistant." +date: 2016-02-25 15:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Binary Sensor +--- + +The `template` platform supports sensors which breaks out the state and `state_attributes` from other entities. + +To enable Template sensors in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + platform: template + sensors: + sun_up: + value_template: {% raw %}'{{ states.sun.sun.attributes.elevation > 0}}'{% endraw %} + friendly_name: 'Sun is up' +``` + +Configuration variables: + +- **sensors** array (*Required*): List of your sensors. + - **friendly_name** (*Optional*): Name to use in the Frontend. + - **sensor_class** (*Optional*): Defines the class of the sensor (motion, heat, moisture, etc) + - **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. + + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this sensor. + +### {% linkable_title Sensor threshold %} + +This example indicates true if a sensor is above a given threshold. Assuming a sensor of `furnace` that provides a current reading for the fan motor, we can determine if the furnace is running by checking that it is over some threshold: + +```yaml +sensor: + platform: template + sensors: + furnace_on: + value_template: {{ states.sensor.furnace.state > 2.5 }} + friendly_name: 'Furnace Running + sensor_class: heat +``` diff --git a/source/_components/binary_sensor.wink.markdown b/source/_components/binary_sensor.wink.markdown new file mode 100644 index 00000000000..4f5cebe235b --- /dev/null +++ b/source/_components/binary_sensor.wink.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Wink Binary Sensor" +description: "Instructions how to setup the Wink binary sensors within Home Assistant." +date: 2015-01-20 22:36 +sidebar: true +comments: false +sharing: true +footer: true +logo: wink.png +ha_category: Binary Sensor +--- + + +The Wink binary sensor platform allows you to get data from your [Wink](http://www.wink.com/) binary sensors. + +The requirement is that you have setup your [Wink hub](/components/wink/). + diff --git a/source/_components/binary_sensor.zigbee.markdown b/source/_components/binary_sensor.zigbee.markdown new file mode 100644 index 00000000000..e6fb6a1ddb2 --- /dev/null +++ b/source/_components/binary_sensor.zigbee.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "ZigBee Binary Sensor" +description: "Instructions on how to set up ZigBee binary sensors within Home Assistant." +date: 2016-01-28 12:38 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: Binary Sensor +--- + +A `zigbee` binary sensor in this context is a device connected to one of the digital input pins on a [ZigBee](http://www.zigbee.org/) module. The states reported by such a device are limited to 'on' or 'off'. By default, a binary sensor is considered 'on' when the ZigBee device's digital input pin is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. + +To enable the ZigBee binary sensors in your installation, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: zigbee + name: Hallway PIR Sensor + pin: 0 + address: 0013A20040892FA2 + on_state: low +``` + +Configuration variables: + +- **name** (*Required*): The name you'd like to give the binary sensor in Home Assistant. +- **platform** (*Required*): Set to `zigbee`. +- **pin** (*Required*): The number identifying which pin to use. +- **address**: The long 64bit address of the remote ZigBee device whose digital input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins. +- **on_state**: Either `high` (default) or `low`, depicting whether the binary sensor is considered 'on' when the pin is 'high' or 'low'. + diff --git a/source/_components/binary_sensor.zwave.markdown b/source/_components/binary_sensor.zwave.markdown new file mode 100644 index 00000000000..d2934cf5c67 --- /dev/null +++ b/source/_components/binary_sensor.zwave.markdown @@ -0,0 +1,14 @@ +--- +layout: page +title: "Z-Wave Binary Sensor" +description: "Instructions how to setup the Z-Wave binary sensors within Home Assistant." +date: 2016-02-22 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: z-wave.png +ha_category: Binary Sensor +--- + +To get your Z-Wave binary sensors working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/). diff --git a/source/_components/bloomsky.markdown b/source/_components/bloomsky.markdown new file mode 100644 index 00000000000..7b326baf8a4 --- /dev/null +++ b/source/_components/bloomsky.markdown @@ -0,0 +1,27 @@ +--- +layout: page +title: "BloomSky" +description: "Instructions how to integrate the BloomSky within Home Assistant." +date: 2016-02-03 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: bloomsky.png +ha_category: Hub +--- + + +The `bloomsky` component allows you to access your [BloomSky](http://www.insteon.com/) weather station's [sensors](/components/sensor.bloomsky) and [camera](/components/camera.bloomsky) from Home Assistant. + +To integrate your BloomSky hub with Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +bloomsky: + api_key: YOUR_API_KEY +``` + +Configuration variables: + +- **api_key** *Required*: Your BloomSky API key, obtained from your [BloomSky dashboard](https://dashboard.bloomsky.com) (click `developers` in the bottom left of the screen) diff --git a/source/_components/browser.markdown b/source/_components/browser.markdown index 273c3ae7e40..36bb6176789 100644 --- a/source/_components/browser.markdown +++ b/source/_components/browser.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Browser" description: "Instructions how to setup the browser component with Home Assistant." date: 2015-01-24 14:39 @@ -7,12 +7,12 @@ sidebar: true comments: false sharing: true footer: true -logo: browser.png +logo: home-assistant.png ha_category: Other --- -The browser component provides a service to open urls in the default browser on the host machine. +The `browser` component provides a service to open URLs in the default browser on the host machine. To load this component, add the following lines to your `configuration.yaml`: @@ -21,8 +21,19 @@ To load this component, add the following lines to your `configuration.yaml`: browser: ``` -#### Service `browser/browse_url` +#### {% linkable_title Service `browser/browse_url` %} | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `url` | no | The url to open + + +### {% linkable_title Usage %} + +To use this service, choose **Call Service** from the **Developer Tools**. Choose the service *browser/browse_url* from the list of **Available services:** and enter the URL into the **Service Data** field and hit **CALL SERVICE**. + +```json +{"url": "http://www.google.com"} +``` + +This will open the given URL on the host machine. diff --git a/source/_components/camera.bloomsky.markdown b/source/_components/camera.bloomsky.markdown new file mode 100644 index 00000000000..4a7e9f4b8bb --- /dev/null +++ b/source/_components/camera.bloomsky.markdown @@ -0,0 +1,23 @@ +--- +layout: page +title: "BloomSky Camera" +description: "Instructions how to integrate the BloomSky camera within Home Assistant." +date: 2016-02-03 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: bloomsky.png +ha_category: Camera +--- + + +The `bloomsky` camera component allows you to view the current photo created by the camera in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with [BloomSky sensors](/components/sensor.bloomsky). + +To enable this camera in your installation, set up the [BloomSky component](/components/bloomsky) with your API key and add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + platform: bloomsky +``` diff --git a/source/_components/camera.foscam.markdown b/source/_components/camera.foscam.markdown index 9fd47c6a9fc..906fb622a1b 100644 --- a/source/_components/camera.foscam.markdown +++ b/source/_components/camera.foscam.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Foscam IP camera" +layout: page +title: "Foscam IP Camera" description: "Instructions how to integrate Foscam IP cameras within Home Assistant." date: 2015-09-17 08:01 sidebar: true @@ -12,7 +12,7 @@ ha_category: Camera --- -The foscam platform allows you to watch the live stream of your [Foscam](http://www.foscam.com/) IP camera in Home Assistant. +The `foscam` platform allows you to watch the live stream of your [Foscam](http://www.foscam.com/) IP camera in Home Assistant. To enable your Foscam IP camera in your installation, add the following to your `configuration.yaml` file: @@ -34,4 +34,7 @@ Configuration variables: - **name** *Optional*: This parameter allows you to override the name of your camera. - **username** *Required*: The username for accessing your camera. - **password** *Required*: The password for accessing your camera. - + - **Note**: There seems to be some issues within Foscam with lengthy passwords and passwords containing certain symbols. Be sure to check your camera's documentation. + +### {% linkable_title Control Foscam PTZ (Pan/Tilt/Zoom) - Home/Away %} + Foscam Webcams which support CGI Commands can be controlled by Home Assistant ([Source](http://www.ipcamcontrol.net/files/Foscam%20IPCamera%20CGI%20User%20Guide-V1.0.4.pdf)). For an example of how this can be done, see the [Foscam IP Camera Pan, Tilt, Zoom Control](/cookbook/foscam_away_mode_PTZ/) Cookbook entry. diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown index 065207f37b8..3d88569b683 100644 --- a/source/_components/camera.generic.markdown +++ b/source/_components/camera.generic.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Generic IP Camera" description: "Instructions how to integrate IP cameras within Home Assistant." date: 2015-07-11 0:36 diff --git a/source/_components/camera.markdown b/source/_components/camera.markdown index cfcc0393b24..e56503400c1 100644 --- a/source/_components/camera.markdown +++ b/source/_components/camera.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Camera" description: "Instructions how to integrate cameras within Home Assistant." date: 2015-11-09 08:36 diff --git a/source/_components/camera.mjpeg.markdown b/source/_components/camera.mjpeg.markdown index 8fd297d0e41..4f166f044c4 100644 --- a/source/_components/camera.mjpeg.markdown +++ b/source/_components/camera.mjpeg.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Generic MJPEG IP Camera" description: "Instructions how to integrate IP cameras within Home Assistant." date: 2015-11-09 08:36 @@ -11,7 +11,7 @@ ha_category: Camera --- -The mjpeg component allows you to integrate IP cameras which are capable to stream their video with MJPEG into Home Assistant. +The `mjpeg` component allows you to integrate IP cameras which are capable to stream their video with MJPEG into Home Assistant. To enable this sensor in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/camera.uvc.markdown b/source/_components/camera.uvc.markdown new file mode 100644 index 00000000000..0bd523537d7 --- /dev/null +++ b/source/_components/camera.uvc.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "UniFi Video Camera" +description: "Instructions how to integrate UVC cameras within Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Camera +--- + + +The `uvc` component allows you to integrate [UniFi Video Camera (UVC)](https://www.ubnt.com/unifi-video/unifi-video-camera/) into Home Assistant. + +To enable a UVC camera in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + platform: uvc + nvr: IP_ADDRESS + port: PORT + key: APIKEY +``` + +Configuration variables: + +- **nvr** *Required**: The IP or hostname of the NVR (Network Video Recorder) server. +- **port** *Optional*: The port number to use for accessing the NVR. +- **key** *Required*: The API key available from the NVR web interface. + diff --git a/source/_components/configurator.markdown b/source/_components/configurator.markdown index d564089bc2c..44c594c9edb 100644 --- a/source/_components/configurator.markdown +++ b/source/_components/configurator.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Configurator" description: "Instructions how to integrate the configurator in your components." date: 2015-03-15 00:51 diff --git a/source/_components/conversation.markdown b/source/_components/conversation.markdown index 7851621520d..720b6f46be9 100644 --- a/source/_components/conversation.markdown +++ b/source/_components/conversation.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Conversation" description: "Instructions how to have conversations with your Home Assistant." date: 2015-03-15 00:39 @@ -7,8 +7,8 @@ sidebar: true comments: false sharing: true footer: true -logo: conversation.png -ha_category: "Other" +logo: home-assistant.png +ha_category: "Voice" --- @@ -21,7 +21,7 @@ To enable the conversion option in your installation, add the following to your conversation: ``` -When this component is active and you are using a supported browser voice commands will be activated in the frontend. Browse to [the demo](/demo/) in Chrome to see it in action. +When this component is active and you are using a supported browser voice commands will be activated in the frontend. Browse to [the demo](/demo/) using Chrome to see it in action.
diff --git a/source/_components/demo.markdown b/source/_components/demo.markdown
new file mode 100644
index 00000000000..2893170a23b
--- /dev/null
+++ b/source/_components/demo.markdown
@@ -0,0 +1,41 @@
+---
+layout: page
+title: "Demo platforms"
+description: "Instructions how to use the Platform demos with Home Assistant."
+date: 2016-02-24 07:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: home-assistant.png
+ha_category: Other
+---
+
+
+The `demo` platform allows you to use components which are providing a demo of their implementation. The demo entities are dummies but show you how the acutal platform looks like. This way you can run own demonstration instance like the online [Home Assistant demo](https://home-assistant.io/demo/) or `hass --demo-mode` but combined with your own real/functional platforms.
+
+Available demo platforms:
+
+- [Alarm control panel](/components/alarm_control_panel/) (`alarm_control_panel`)
+- [Binary sensor](/components/binary_sensor/) (`binary_sensor`)
+- [Camera](/components/camera/) (`camera`)
+- [Garage door](/components/garage_door/) (`garage_door`)
+- [Light](/components/light/) (`light`)
+- [Lock](/components/lock/) (`lock`)
+- [Notification](/components/notify/) (`notify`)
+- [Roller shutter](/components/rollershutter/) (`rollershutter`)
+- [Sensor](/components/sensor/) (`sensor`)
+- [Switch](/components/switch/) (`switch`)
+- [Thermostat](/components/thermostat/) (`thermostat`)
+
+To integrate a demo platform in Home Assistant, add the following section to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+[component]:
+ - platform: demo
+```
+
+Configuration variables:
+
+- **[component]** (*Required*): The name of the component as stated in the listing above the configuration example.
diff --git a/source/_components/device_sun_light_trigger.markdown b/source/_components/device_sun_light_trigger.markdown
index 1b8cbc18655..dd2b298b2e1 100644
--- a/source/_components/device_sun_light_trigger.markdown
+++ b/source/_components/device_sun_light_trigger.markdown
@@ -1,5 +1,5 @@
---
-layout: component
+layout: page
title: "Presence based lights"
description: "Instructions how to automate your lights with Home Assistant."
date: 2015-01-20 22:36
diff --git a/source/_components/device_tracker.actiontec.markdown b/source/_components/device_tracker.actiontec.markdown
index d3d5f198740..774b7ec2823 100644
--- a/source/_components/device_tracker.actiontec.markdown
+++ b/source/_components/device_tracker.actiontec.markdown
@@ -1,5 +1,5 @@
---
-layout: component
+layout: page
title: "Actiontec"
description: "Instructions how to integrate Actiontec routers into Home Assistant."
date: 2015-08-30 19:00
diff --git a/source/_components/device_tracker.aruba.markdown b/source/_components/device_tracker.aruba.markdown
index 8a65953e5fe..4d76b30dd50 100644
--- a/source/_components/device_tracker.aruba.markdown
+++ b/source/_components/device_tracker.aruba.markdown
@@ -1,5 +1,5 @@
---
-layout: component
+layout: page
title: "Aruba"
description: "Instructions how to integrate Aruba routers into Home Assistant."
date: 2015-08-31 08:45
diff --git a/source/_components/device_tracker.asuswrt.markdown b/source/_components/device_tracker.asuswrt.markdown
index 9b518a28719..e1590a59c93 100644
--- a/source/_components/device_tracker.asuswrt.markdown
+++ b/source/_components/device_tracker.asuswrt.markdown
@@ -1,5 +1,5 @@
---
-layout: component
+layout: page
title: "ASUSWRT"
description: "Instructions how to integrate ASUSWRT based routers into Home Assistant."
date: 2015-08-06 19:00
@@ -12,7 +12,7 @@ ha_category: Presence Detection
---
-This platform offers presence detection by looking at connected devices to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router.
+The `asuswrt` platform offers presence detection by looking at connected devices to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router.
This device tracker needs telnet to be enabled on the router. diff --git a/source/_components/device_tracker.ddwrt.markdown b/source/_components/device_tracker.ddwrt.markdown index 741959d19e1..5eee59d85f2 100644 --- a/source/_components/device_tracker.ddwrt.markdown +++ b/source/_components/device_tracker.ddwrt.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "DD-WRT" description: "Instructions how to integrate DD-WRT based routers into Home Assistant." date: 2015-05-11 09:00 diff --git a/source/_components/device_tracker.fritz.markdown b/source/_components/device_tracker.fritz.markdown index 32658f793bc..2d1a0d11ce3 100644 --- a/source/_components/device_tracker.fritz.markdown +++ b/source/_components/device_tracker.fritz.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "FRITZ!Box" description: "Instructions how to integrate AVM FRITZ!Box based routers into Home Assistant." date: 2015-12-13 19:00 @@ -15,7 +15,7 @@ ha_category: Presence Detection The `fritz` platform offers presence detection by looking at connected devices to a [AVM Fritz!Box](http://avm.de/produkte/fritzbox/) based router.
-It might be necessary to install additional packages: $ sudo apt-get install libxslt-dev libxml2-dev
+It might be necessary to install additional packages: $ sudo apt-get install libxslt-dev libxml2-dev python3-lxml
There is currently a known issue with running this playform on a 64-bit version of Python.
+ ++If you are on Windows and you're using Python 3.5, download the Netifaces dependency here. +
diff --git a/source/_components/downloader.markdown b/source/_components/downloader.markdown index 928d1b0da98..5b97207786a 100644 --- a/source/_components/downloader.markdown +++ b/source/_components/downloader.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Downloader" description: "Instructions how to setup the downloader component with Home Assistant." date: 2015-01-24 14:39 @@ -7,7 +7,7 @@ sidebar: true comments: false sharing: true footer: true -logo: downloader.png +logo: home-assistant.png ha_category: Other --- diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index fc21f7042ec..69879ddab9a 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Ecobee" description: "Instructions for how to integrate Ecobee thermostats and sensors within Home Assistant." date: 2015-11-30 17:54 diff --git a/source/_components/garage_door.markdown b/source/_components/garage_door.markdown new file mode 100644 index 00000000000..a52f22244a3 --- /dev/null +++ b/source/_components/garage_door.markdown @@ -0,0 +1,12 @@ +--- +layout: page +title: "Garage door" +description: "Instructions how to integrate Garage doors into Home Assistant." +date: 2016-02-12 07:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Home Assistant can give you an interface to control any garage door. diff --git a/source/_components/garage_door.wink.markdown b/source/_components/garage_door.wink.markdown new file mode 100644 index 00000000000..091f0584557 --- /dev/null +++ b/source/_components/garage_door.wink.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Wink Garage door" +description: "Instructions how to setup the Wink garage doors within Home Assistant." +date: 2016-02-12 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: wink.png +ha_category: Garage Door +--- + + +The Wink garage door platform allows you to control your [Wink](http://www.wink.com/) enabled garage door. + +The requirement is that you have setup your [Wink hub](/components/wink/). + diff --git a/source/_components/graphite.markdown b/source/_components/graphite.markdown new file mode 100644 index 00000000000..8346d0b1410 --- /dev/null +++ b/source/_components/graphite.markdown @@ -0,0 +1,31 @@ +--- +layout: page +title: "Graphite" +description: "Instructions on how to record Home Assistant history in Graphite." +date: 2016-02-10 17:11 +sidebar: true +comments: false +sharing: true +footer: true +logo: +ha_category: History +--- + +The `graphite` component records all events and state changes and feeds the data to a [graphite](http://graphite.wikidot.com/) instance. + +To enable this component, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +graphite: + host: IP_ADDRESS + port: 2003 + prefix: ha +``` + +Configuration variables: + +- **host** (*Option*): IP address of your graphite host, eg. http://192.168.1.10. Defaults to `localhost` +- **port** (*Optional*): Port to use. Defaults to 2003. +- **prefix** (*Optional*): Prefix is the metric prefix in graphite. Defaults to `ha`. + diff --git a/source/_components/group.markdown b/source/_components/group.markdown index 57105769f34..902596f3471 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Group" description: "Instructions how to setup groups within Home Assistant." date: 2015-03-23 19:59 @@ -11,24 +11,47 @@ logo: home-assistant.png ha_category: Organization --- -Groups allow the user to combine multiple entities into one. +Groups allow the user to combine multiple entities into one. A group can be promoted to a **view** by setting the `view` option to `yes`. This will make the group available as a new tab in the frontend. Check the **Set State** page from the **Developer Tools** and browse the **Current entities:** listing for all available entities. - ```yaml # Example configuration.yaml entry group: - information: - - sensor.time - living_room: - - binary_sensor.tv - - sensor.living_room_temperature + # If you name an entry default_view it will REPLACE the contents of the "Home" tab + default_view: + view: yes + entities: + - group.awesome_people + - group.climate + kitchen: - - switch.kitchen_pin_3 - - sensor.oven_temperature + name: Kitchen + entities: + - switch.kitchen_pin_3 + upstairs: + name: Kids + icon: mdi:account-multiple + view: yes + entities: + - input_boolean.notify_home + - camera.demo_camera + - device_tracker.demo_paulus + - group.garden ``` +Configuration variables: + +- **name** (*Optional*): Name of the group. +- **icon** (*Optional*): An optional icon to show in the Frontend. +- **view** (*Optional*): If yes then the entry will be shown as a view. +- **entities** array or comma delimited string (*Required*): List of entites to group. + +
+
+Example of groups shown as views in the frontend.
+
-Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser - no data is transferred to anyone at any time. +Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser. No data is transferred to anyone at any time.
#### {% linkable_title Implementation details %} -The history is stored in a SQLite databse `home-assistant.db` within your config directory. +The history is stored in a SQLite database `home-assistant.db` within your config directory. - - events table is all events except time_changed that happened while recorder component was running. - - states table contains all the new_state values of state_changed events. + - events table is all events except `time_changed` that happened while recorder component was running. + - states table contains all the `new_state` values of `state_changed` events. - Inside the states table you have: - - entity_id: the entity_id of the entity - - state: the state of the entity - - attributes: JSON of the state attributes - - last_changed: timestamp last time the state has changed. A state_changed event can happen when just attributes change. - - last_updated: timestamp anything has changed (state, attributes) - - created: timestamp this entry was inserted into the database + - `entity_id`: the entity_id of the entity + - `state`: the state of the entity + - `attributes`: JSON of the state attributes + - `last_changed`: timestamp last time the state has changed. A state_changed event can happen when just attributes change. + - `last_updated`: timestamp anything has changed (state, attributes) + - `created`: timestamp this entry was inserted into the database When the history component queries the states table it only selects states where the state has changed: `WHERE last_changed=last_updated` @@ -55,3 +55,7 @@ SQLite databases do not support native dates. That's why all the dates are saved from datetime import datetime datetime.fromtimestamp(1422830502) ``` + +#### {% linkable_title API %} + +The history information are also available through the [RESTful API](/developers/rest_api/#get-apihistory). diff --git a/source/_components/http.markdown b/source/_components/http.markdown index f0876ff711d..a05b058d1f7 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "HTTP" description: "Offers a web framework to serve files." date: 2015-12-06 21:35 @@ -25,9 +25,16 @@ http: Configuration variables: -- **api_password** (*Optional*): Protect Home Assistant with a password +- **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. +On top of the `http` component is a [REST API](/developers/rest_api/) and a [Python API](/developers/python_api/) available. + +The `http` platforms are not a real platform within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) is consuming and proceeding messages received over HTTP. + +To use those kind of sensors in your installation no configuration in Home Assistant is needed. All configuration is done on the devices themselves. This means that you must be able to edit the target URL or endpoint and the payload. The entity will be created after the first message has arrived. + +All [requests](/developers/rest_api/#post-apistatesltentity_id) needs to be sent to the endpoint of the device and must be **POST**. diff --git a/source/_components/ifttt.manything.markdown b/source/_components/ifttt.manything.markdown index dd9b53751fa..c5535ef28c0 100644 --- a/source/_components/ifttt.manything.markdown +++ b/source/_components/ifttt.manything.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "ManyThing" description: "Instructions how to setup ManyThing support with IFTTT." date: 2015-09-07 18:00 diff --git a/source/_components/ifttt.markdown b/source/_components/ifttt.markdown index 67d3dcb42e2..c5adde1b462 100644 --- a/source/_components/ifttt.markdown +++ b/source/_components/ifttt.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "IFTTT" description: "Instructions how to setup IFTTT within Home Assistant." date: 2015-09-07 18:00 diff --git a/source/_components/influxdb.markdown b/source/_components/influxdb.markdown index 7f1973087ec..32ed6d6ac39 100644 --- a/source/_components/influxdb.markdown +++ b/source/_components/influxdb.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "InfluxDB" description: "Record events in InfluxDB." date: 2015-12-06 13:08 @@ -23,6 +23,8 @@ influxdb: database: DB_TO_STORE_EVENTS username: MY_USERNAME password: MY_PASSWORD + ssl: true + verify_ssl: true ``` Configuration variables: @@ -32,4 +34,5 @@ Configuration variables: - **database** (*Optional*): Name of the database to use. Defaults to `home_assistant`. The database must already exist. - **username** (*Optional*): The username of the database user. - **password** (*Optional*): The password for the database user account. - +- **ssl** (*Optional*): Use https instead of http to connect. Defaults to false. +- **verify_ssl** (*Optional*): Verify SSL certificate for https request. Defaults to false. diff --git a/source/_components/input_boolean.markdown b/source/_components/input_boolean.markdown index 2e66c928787..2fcdedc64b4 100644 --- a/source/_components/input_boolean.markdown +++ b/source/_components/input_boolean.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Input Boolean" description: "Instructions how to integrate the Input Boolean component into Home Assistant." date: 2016-01-17 16:58 @@ -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/input_select.markdown b/source/_components/input_select.markdown new file mode 100644 index 00000000000..b8e574b91f8 --- /dev/null +++ b/source/_components/input_select.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "Input Select" +description: "Instructions how to integrate the Input Select component into Home Assistant." +date: 2016-02-02 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Automation +--- + +The `input_select` component allows the user to define a list of values that can be selected via the frontend and can be used within conditions of automation. + +To enable this platform, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +input_select: + who_cooks: + name: Who cooks today + options: + - Paulus + - Anne Therese + initial: Anne Therese + icon: mdi:panda + living_room_preset: + options: + - Visitors + - Visitors with kids + - Home Alone +``` + +Configuration variables: + +- **[alias]** (*Required*): Alias for the input. +- **name** (*Optional*): Friendly name of the input. +- **options** array (*Optional*): List of options to choose from +- **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/insteon_hub.markdown b/source/_components/insteon_hub.markdown new file mode 100644 index 00000000000..7e6aa5f098b --- /dev/null +++ b/source/_components/insteon_hub.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "Insteon Hub" +description: "Instructions how to setup the Insteon Hub within Home Assistant." +date: 2016-01-27 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: insteon.png +ha_category: Hub +--- + +The `insteon` component lets you use your [Insteon Hub](http://www.insteon.com/insteon-hub/) with Home Assistant. + +You will need to obtain an Insteon REST API key from the [Insteon Developer program](http://www.insteon.com/become-an-insteon-developer) to use this component. + +To integrate your Insteon Hub with Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +insteon_hub: + username: YOUR_USERNAME + password: YOUR_PASSWORD + api_key: YOUR_API_KEY +``` + +Configuration variables: + +- **username** (*Required*): The username used to access the Insteon interface (e.g. the [connect.insteon.com](connect.insteon.com) site). +- **password** (*Required*): The password used to access the Insteon interface. +- **api_key** (*Required*): The Insteon REST API key emailed to you once you are approved in the Insteon Developer program. diff --git a/source/_components/introduction.markdown b/source/_components/introduction.markdown index dabfd1b4557..243e3b2c25a 100644 --- a/source/_components/introduction.markdown +++ b/source/_components/introduction.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Introduction" description: "Details about the introduction within Home Assistant." date: 2015-10-25 15:15 diff --git a/source/_components/isy994.markdown b/source/_components/isy994.markdown index 0bb77c922a0..eac00a8cc4c 100644 --- a/source/_components/isy994.markdown +++ b/source/_components/isy994.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "ISY994 Controller" description: "Instructions how to setup the ISY994 controller within Home Assistant." date: 2015-01-20 22:36 diff --git a/source/_components/keyboard.markdown b/source/_components/keyboard.markdown index 4bf2672e14b..40f15421e00 100644 --- a/source/_components/keyboard.markdown +++ b/source/_components/keyboard.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Keyboard" description: "Instructions how to simulate key presses with Home Assistant." date: 2015-01-24 14:39 diff --git a/source/_components/light.blinksticklight.markdown b/source/_components/light.blinksticklight.markdown index e1e1c186c7c..0d80ee2086e 100644 --- a/source/_components/light.blinksticklight.markdown +++ b/source/_components/light.blinksticklight.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Blinkstick" description: "Instructions how to setup Blinkstick lights within Home Assistant." date: 2015-10-08 10:00 @@ -12,7 +12,7 @@ ha_category: Light --- -The blinkstick platform let you can control your [Blinkstick](https://www.blinkstick.com/) lights from within Home Assistant. +The `blinkstick` platform let you can control your [Blinkstick](https://www.blinkstick.com/) lights from within Home Assistant. To add blinkstick to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/light.hue.markdown b/source/_components/light.hue.markdown index 8789a5d3322..c9414c59ce1 100644 --- a/source/_components/light.hue.markdown +++ b/source/_components/light.hue.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Philips Hue" description: "Instructions how to setup Philips Hue within Home Assistant." date: 2015-03-23 20:09 @@ -9,11 +9,10 @@ sharing: true footer: true logo: philips_hue.png ha_category: Light +ha_iot_class: "Local Polling" featured: true --- - - Philips Hue support is integrated into Home Assistant as a light platform. The preferred way to setup the Philips Hue platform is by enabling the [the discovery component](/components/discovery/). If you want to enable the light component directly, add the following lines to your `configuration.yaml`: @@ -23,6 +22,8 @@ If you want to enable the light component directly, add the following lines to y light: platform: hue host: DEVICE_IP_ADDRESS + # Optional, this will allow unreachable bulbs to report their state correctly + allow_unreachable: true # Optional, make this unique if specifying multiple Hue hubs filename: my_hue_hub_token.conf ``` diff --git a/source/_components/light.hyperion.markdown b/source/_components/light.hyperion.markdown index db95cad7a4b..48889a36e83 100644 --- a/source/_components/light.hyperion.markdown +++ b/source/_components/light.hyperion.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: Hyperion +layout: page +title: "Hyperion" description: "Instructions how to integrate Hyperion into Home Assistant." date: 2015-10-25 22:43 sidebar: true diff --git a/source/_components/light.lifx.markdown b/source/_components/light.lifx.markdown new file mode 100644 index 00000000000..79ec38d8bd4 --- /dev/null +++ b/source/_components/light.lifx.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "LIFX" +description: "Instructions how to integrate LIFX into Home Assistant." +date: 2016-01-27 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lifx.png +ha_category: Light +ha_iot_class: "Local Push" +--- + +The `lifx` platform allows you to integrate your [LIFX](http://www.lifx.com) into Home Assistant. + +```yaml +# Example configuration.yaml entry +light: + platform: lifx + server: 192.168.1.98 + broadcast: 192.168.1.255 +``` +Configuration variables: + +- **server** (*Optional*): Your server address. Only needed if using more than one network interface. Omit if you are unsure. +- **broadcast** (*Optional*): The broadcast address, set to reach all LIFX bulbs. + diff --git a/source/_components/light.limitlessled.markdown b/source/_components/light.limitlessled.markdown index 57b088c9ad2..62b5c66f4d5 100644 --- a/source/_components/light.limitlessled.markdown +++ b/source/_components/light.limitlessled.markdown @@ -1,35 +1,27 @@ --- -layout: component +layout: page title: "LimitlessLED" description: "Instructions on how to setup LimitlessLED within Home Assistant." date: 2015-12-03 13:00 sidebar: true layout: page -title: "LimitlessLED support" -sidebar: false comments: false sharing: true footer: true ha_category: Light +ha_iot_class: "Assumed State" --- `limitlessled` can control your [LimitlessLED](http://www.limitlessled.com/) lights from within Home Assistant. The lights are also known as EasyBulb, AppLight, AppLamp, MiLight, LEDme, dekolight or iLight. -### Setup +### {% linkable_title Setup %} -Before configuring Home Assistant, make sure you can control your bulbs with the Milight mobile application. Discover your bridge(s) IP. You can do this via your router, or a mobile application like Fing ([android](https://play.google.com/store/apps/details?id=com.overlook.android.fing&hl=en), [itunes](https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8)). Keep in mind that LimitlessLED bulbs are controlled via groups. You cannot control an individual bulb via the bridge, unless it is in a group by itself. Note that you can assign an `rgbw` and `white` group to the same group number, effectively allowing 8 groups (4 `rgbw` and 4 `white`) per bridge. +Before configuring Home Assistant, make sure you can control your bulbs or LEDs with the MiLight mobile application. Discover your bridge(s) IP address. You can do this via your router or a mobile application like Fing ([android](https://play.google.com/store/apps/details?id=com.overlook.android.fing&hl=en) or [itunes](https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8)). Keep in mind that LimitlessLED bulbs are controlled via groups. You can not control an individual bulb via the bridge, unless it is in a group by itself. Note that you can assign an `rgbw` and `white` group to the same group number, effectively allowing 8 groups (4 `rgbw` and 4 `white`) per bridge. To add `limitlessled` to your installation, add the following to your `configuration.yaml` file: ```yaml -light: - platform: limitlessled - bridges: -``` - -Next, list your bridges and groups. Here's an example. See the next section for a full explanaton of each configuration variable. - -```yaml +# Example configuration.yaml entry light: platform: limitlessled bridges: @@ -53,30 +45,31 @@ light: name: Living Room & Hall ``` -### Configuration variables +Configuration variables: -- **bridges** (*Required*): (list) +- **bridges** array (*Required*): - **host** (*Required*): IP address of the device, eg. `192.168.1.32` - - **version**: Bridge version (default is `5`). Don't use if you aren't sure. - - **port**: Bridge port (default is `8899`). Normally not necessary to specify. - - **groups** (*Required*): (list) + - **version** (*Optional*): Bridge version (default is `5`). Don't use if you aren't sure. + - **port** (*Optional*): Bridge port. Defaults to 8899. + - **groups** array (*Required*): The list of available groups. - **number** (*Required*): Group number (`1`-`4`). Corresponds to the group number on the remote. - **name** (*Required*): Any name you'd like. Must be unique among all configured groups. - - **type**: Type of group. Choose either `rgbw` or `white`. `rgbw` is the default if you don't specify. + - **type** (*Optional*): Type of group. Choose either `rgbw` or `white`. `rgbw` is the default if you don't specify this entry. -### Properties -Refer to the [light]({{site_root}}/components/light) documentation for general property usage, but keep in mind the following notes specific to LimitlessLED. +### {% linkable_title Properties %} + +Refer to the [light]({{site_root}}/components/light/) documentation for general property usage, but keep in mind the following notes specific to LimitlessLED. - **RGBW** - - *Color*: There are 256 color possibilities along the LimitlessLED color spectrum. Color properties like saturation and lightness can't be used - only hue. The only exception is white (which may be warm or cold depending on the type of RGBW bulb). If you select a color with saturation or lightness, Home Assistant will calculate the nearest valid LimitlessLED color. + - *Color*: There are 256 color possibilities along the LimitlessLED color spectrum. Color properties like saturation and lightness can not be used - only Hue can. The only exception is white (which may be warm or cold depending on the type of RGBW bulb). If you select a color with saturation or lightness, Home Assistant will calculate the nearest valid LimitlessLED color. - *Brightness*: There are 25 brightness steps. - **White** - - As you can observe on the Milight mobile application, you cannot select a specific brightness or temperature - you can only step each property up or down. There is no indication of which step you are on. This restriction, combined with the unreliable nature of LimitlessLED transmissions, means that setting white bulb properties is done on a best-effort basis. The only very reliable settings are the minimum and maximum of each property. + - As you can observe on the MiLight mobile application, you can not select a specific brightness or temperature - you can only step each property up or down. There is no indication of which step you are on. This restriction, combined with the unreliable nature of LimitlessLED transmissions, means that setting white bulb properties is done on a best-effort basis. The only very reliable settings are the minimum and maximum of each property. - *Temperature*: There are 10 temperature steps. - *Brightness*: There are 10 brightness steps. - **Transitions** - - If a transition time is set, the group will transition between the current settings and the target settings for the duration specified. Transitions from or to white are not possible - the color will change immediately. + - If a transition time is set, the group will transition between the current settings and the target settings for the duration specified. Transitions from or to white are not possible - the color will change immediately. -### Initialization & Synchronization +### {% linkable_title Initialization & Synchronization %} -When starting Home Assistant, your LimitlessLED bulbs will be set to known default values. This ensures a consistent user interface and uninterrupted turning on/off. If you control your LimitlessLED lights via the Milight mobile application or other means while Home Assistant is running, Home Assistant can not track those changes and you may observe unexpected behavior. This is due to a LimitlessLED limitation. +When starting Home Assistant, your LimitlessLED bulbs will be set to known default values. This ensures a consistent user interface and uninterrupted turning on/off. If you control your LimitlessLED lights via the MiLight mobile application or other means while Home Assistant is running, Home Assistant can not track those changes and you may observe unexpected behavior. This is due to a LimitlessLED limitation. diff --git a/source/_components/light.markdown b/source/_components/light.markdown index 51bf8111115..56f078f65e3 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Lights" description: "Instructions how to setup your lights with Home Assistant." date: 2015-01-24 14:39 @@ -50,3 +50,13 @@ Turns one or multiple lights off. | `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all. | `transition` | no | Integer that represents the time the light should take to transition to the new state. +### {% linkable_title Service `light.toggle` %} + +Toggles the state of one or multiple lights using [groups]({{site_root}}/components/group/). + +*Note*: If `light.toggle` is used for a group of lights, it will toggle the individual state of each light. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all. +| `transition` | no | Integer that represents the time the light should take to transition to the new state. diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index 07c24d8eaa7..bf933f726cf 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "MQTT light" +layout: page +title: "MQTT Light" description: "Instructions how to setup MQTT lights within Home Assistant." date: 2015-11-13 08:30 sidebar: true @@ -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,10 @@ 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](/topics/templating/) to extract the state value. +- **brightness_value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the brightness value. +- **rgb_value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the RGB value. +- **brightness_scale** (*Optional*): Defines the maximum brightness value (i.e. 100%) of the MQTT device (defaults to 255). - **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/light.mysensors.markdown b/source/_components/light.mysensors.markdown new file mode 100644 index 00000000000..f6a74f40f8b --- /dev/null +++ b/source/_components/light.mysensors.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "MySensors Light" +description: "Instructions how to integrate MySensors lights into Home Assistant." +date: 2016-03-02 18:20 +0100 +sidebar: true +comments: false +sharing: true +footer: true +logo: mysensors.png +ha_category: Light +featured: false +--- + +Integrates MySensors lights into Home Assistant. See the [main component] for configuration instructions. + +The following actuator types are supported: + +##### MySensors version 1.4 + +S_TYPE | V_TYPE +---------|-------------- +S_DIMMER | V_DIMMER\*, V_LIGHT\* + +##### MySensors version 1.5 and higher + +S_TYPE | V_TYPE +------------|------------- +S_DIMMER | [V_DIMMER\* or V_PERCENTAGE\*], [V_LIGHT\* or V_STATUS\*] +S_RGB_LIGHT | V_RGB*, [V_LIGHT\* or V_STATUS\*], [V_DIMMER or V_PERCENTAGE] + +V_TYPES with a star (\*) denotes required V_TYPES. Use either V_LIGHT or V_STATUS and either V_DIMMER or V_PERCENTAGE for an applicable actuator. + +For more information, visit the [serial api] of MySensors. + +[main component]: /components/mysensors/ +[serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/light.rfxtrx.markdown b/source/_components/light.rfxtrx.markdown index a793421e6a5..076f8efb495 100644 --- a/source/_components/light.rfxtrx.markdown +++ b/source/_components/light.rfxtrx.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "RFXtrx light" +layout: page +title: "RFXtrx Light" description: "Instructions how to integrate RFXtrx lights into Home Assistant." date: 2015-10-08 10:15 sidebar: true @@ -9,7 +9,8 @@ sharing: true footer: true ha_category: Light --- -The rfxtrx platform support lights that communicate in the frequency range of 433.92 MHz. + +The `rfxtrx` platform support lights that communicate in the frequency range of 433.92 MHz. To enable RFXtrx lights in your installation, add the following to your `configuration.yaml` file: @@ -17,6 +18,7 @@ To enable RFXtrx lights in your installation, add the following to your `configu # Example configuration.yaml entry light: platform: rfxtrx + signal_repetitions: 3 devices: living_room: name: Living Room @@ -28,3 +30,4 @@ Configuration variables: - **devices** (*Required*): A list of devices with their name to use in the frontend. - **automatic_add** (*Optional*): To enable the automatic addition of new lights. +- **signal_repetitions** *Optional*: Because the rxftrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly. diff --git a/source/_components/light.scsgate.markdown b/source/_components/light.scsgate.markdown new file mode 100644 index 00000000000..baec226359f --- /dev/null +++ b/source/_components/light.scsgate.markdown @@ -0,0 +1,30 @@ +--- +layout: page +title: "SCSGate Light" +description: "Instructions how to integrate SCSGate lights into Home Assistant." +date: 2016-01-31 19:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: bus_scs.png +ha_category: Light +--- + +The SCSGate device can control lights of the BTicino MyHome system. + +To enable SCSGate lights in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + platform: scsgate + devices: + living_room: + name: Living Room + scs_id: XXXXX +``` + +Configuration variables: + +- **devices** (*Required*): A list of devices with their name to use in the frontend. diff --git a/source/_components/light.tellstick.markdown b/source/_components/light.tellstick.markdown index 733ca3ce7be..8daa1e4918b 100644 --- a/source/_components/light.tellstick.markdown +++ b/source/_components/light.tellstick.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "TellStick light" +layout: page +title: "TellStick Light" description: "Instructions how to integrate TellStick lights into Home Assistant." date: 2015-08-06 19:00 sidebar: true @@ -9,10 +9,11 @@ sharing: true footer: true logo: telldus_tellstick.png ha_category: Light +ha_iot_class: "Assumed State" --- -This tellstick light platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) dimmers. +This `tellstick` light platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) dimmers. To use your TellStick device in your installation, add the following to your `configuration.yaml` file: @@ -20,5 +21,10 @@ To use your TellStick device in your installation, add the following to your `co # Example configuration.yaml entry light: platform: tellstick + signal_repetitions: 3 ``` +Configuration variables: + +- **signal_repetitions** *Optional*: Because the tellstick sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly. + diff --git a/source/_components/light.vera.markdown b/source/_components/light.vera.markdown index 5ab3de9e3c9..3ed552548a4 100644 --- a/source/_components/light.vera.markdown +++ b/source/_components/light.vera.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Vera light" +layout: page +title: "Vera Light" description: "Instructions how to integrate Vera lights into Home Assistant." date: 2015-10-20 21:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Light --- -This vera light platform allows you to control your [Vera](http://getvera.com/) lights. +This `vera` light platform allows you to control your [Vera](http://getvera.com/) lights. This platform is useful if you wish for switches connected to your Vera controller to appear as lights in Home Assistant. All switches will be added as a light unless you exclude them in the configuration file. diff --git a/source/_components/light.wemo.markdown b/source/_components/light.wemo.markdown new file mode 100644 index 00000000000..21e61accd4d --- /dev/null +++ b/source/_components/light.wemo.markdown @@ -0,0 +1,21 @@ +--- +layout: page +title: "Belkin WeMo Lights" +description: "Instructions how to integrate Belkin WeMo LED lights into Home Assistant." +date: 2016-02-20 00:45 +sidebar: true +comments: false +sharing: true +footer: true +logo: belkin_wemo.png +ha_category: Light +ha_iot_class: "Local Polling" +--- + + +The `wemo` platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F5Z0489/) LED lights from within Home Assistant. + +They will be automatically discovered if the discovery component is enabled. + +For more configuration information see the [WeMo component](/components/wemo/) documentation. + diff --git a/source/_components/light.wink.markdown b/source/_components/light.wink.markdown index d4d86298a7e..16cbc2346a9 100644 --- a/source/_components/light.wink.markdown +++ b/source/_components/light.wink.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Wink light" +layout: page +title: "Wink Light" description: "Instructions how to setup the Wink lights within Home Assistant." date: 2015-01-20 22:36 sidebar: true @@ -12,6 +12,6 @@ ha_category: Light --- -The wink sensor platform allows you to use your [Wink](http://www.wink.com/) lights. +The wink light platform allows you to use your [Wink](http://www.wink.com/) lights. -The requirement is that you have setup your [Wink hub](/components/light.wink/). +The requirement is that you have setup your [Wink hub](/components/wink/). diff --git a/source/_components/light.zigbee.markdown b/source/_components/light.zigbee.markdown new file mode 100644 index 00000000000..25832fedbd1 --- /dev/null +++ b/source/_components/light.zigbee.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: ZigBee Light +description: "Instructions on how to set up ZigBee lights within Home Assistant." +date: 2016-01-28 12:38 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: Light +--- + +A ZigBee light in this context is a light connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a light is considered 'on' when the ZigBee device's digital output is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. + +To configure a digital output pin as a light, use the following variables: + +- **name** (*Required*): The name you'd like to give the light in Home Assistant. +- **platform** (*Required*): Set to `zigbee`. +- **pin** (*Required*): The number identifying which pin to use. +- **address**: The long 64bit address of the remote ZigBee device whose digital output pin you'd like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. +- **on_state**: Either `high` (default) or `low`, depicting whether the digital output pin is pulled high or low when the light is turned on. + +#### Example + +```yaml +light: + - name: Desk Lamp + platform: zigbee + pin: 0 + address: 0013A20040791FA2 + on_state: low +``` diff --git a/source/_components/light.zwave.markdown b/source/_components/light.zwave.markdown index 4b547ee58d4..00b3c7b64d3 100644 --- a/source/_components/light.zwave.markdown +++ b/source/_components/light.zwave.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Z-Wave light" +layout: page +title: "Z-Wave Light" description: "Instructions how to setup the Z-Wave lights within Home Assistant." date: 2015-11-11 13:00 sidebar: true diff --git a/source/_components/lock.markdown b/source/_components/lock.markdown index a905a990b9a..dcad2d30566 100644 --- a/source/_components/lock.markdown +++ b/source/_components/lock.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Locks" description: "Instructions how to setup your locks with Home Assistant." date: 2015-11-21 08:10 diff --git a/source/_components/lock.mqtt.markdown b/source/_components/lock.mqtt.markdown new file mode 100644 index 00000000000..b49309475ce --- /dev/null +++ b/source/_components/lock.mqtt.markdown @@ -0,0 +1,53 @@ +--- +layout: page +title: "MQTT Lock" +description: "Instructions how to integrate MQTT locks into Home Assistant." +date: 2016-02-28 15:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: mqtt.png +ha_category: Lock +--- + +The `mqtt` lock platform let you control your MQTT enabled locks. + +In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with RETAIN flag, the MQTT lock will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the switch will be false/unlocked. + +When a `state_topic` is not available, the lock will work in optimistic mode. In this mode, the lock will immediately change state after every command. Otherwise, the lock will wait for state confirmation from device (message from `state_topic`). + +Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect lock operation. + +To enable MQTT locks in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yml entry +lock: + platform: mqtt + name: Frontdoor + state_topic: "home/frontdoor/" + command_topic: "home/frontdoor/set" + payload_lock: "LOCK" + payload_unlock: "UNLOCK" + optimistic: false + qos: 0 + retain: true + value_template: '{% raw %}{{ value.x }}{% endraw %}' +``` + +Configuration variables: + +- **name** (*Optional*): The name of the lock. Default is 'MQTT Lock'. +- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. +- **command_topic** (*Required*): The MQTT topic to publish commands to change the lock state. +- **payload_lock** (*Optional*): The payload that represents enabled/locked state. Default is "LOCK". +- **payload_unlock** (*Optional*): The payload that represents disabled/unlocked state. Default is "UNLOCK". +- **optimistic** (*Optional*): Flag that defines if lock 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. +- **retain** (*Optional*): If the published message should have the retain flag on or not. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. + ++Make sure that your topic match exact. `some-topic/` and `some-topic` are different topics. +
diff --git a/source/_components/lock.verisure.markdown b/source/_components/lock.verisure.markdown new file mode 100644 index 00000000000..ab4b04de8de --- /dev/null +++ b/source/_components/lock.verisure.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Verisure Lock" +description: "Instructions how to setup the Verisure locks within Home Assistant." +date: 2016-02-12 06:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: verisure.png +ha_category: Lock +--- + + +The Verisure lock platform allows you to control your [Verisure](https://www.verisure.com/) locks. + +The requirement is that you have setup your [Verisure hub](/components/verisure/). + diff --git a/source/_components/lock.wink.markdown b/source/_components/lock.wink.markdown index 656c149151c..d9abf003f8a 100644 --- a/source/_components/lock.wink.markdown +++ b/source/_components/lock.wink.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Wink lock" +layout: page +title: "Wink Lock" description: "Instructions how to setup the Wink locks within Home Assistant." date: 2015-11-20 12:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Lock --- -The wink lock platform allows you to control your [Wink](http://www.wink.com/) locks. +The Wink lock platform allows you to control your [Wink](http://www.wink.com/) locks. The requirement is that you have setup your [Wink hub](/components/wink/). diff --git a/source/_components/logbook.markdown b/source/_components/logbook.markdown index 7e3581788c3..f7b3c42be79 100644 --- a/source/_components/logbook.markdown +++ b/source/_components/logbook.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Logbook" description: "Instructions how to enable the logbook component for Home Assistant." date: 2015-04-25 9:23 diff --git a/source/_components/logger.markdown b/source/_components/logger.markdown index e7a9935c9bd..66c521e09ea 100644 --- a/source/_components/logger.markdown +++ b/source/_components/logger.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Logger" description: "Instructions how to enable the logger component for Home Assistant." date: 2015-11-12 17:00 diff --git a/source/_components/media_player.cast.markdown b/source/_components/media_player.cast.markdown index ad8048f4878..0ce3920e4ec 100644 --- a/source/_components/media_player.cast.markdown +++ b/source/_components/media_player.cast.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Google Cast" description: "Instructions how to integrate Google Cast into Home Assistant." date: 2015-03-23 19:59 diff --git a/source/_components/media_player.denon.markdown b/source/_components/media_player.denon.markdown index 1b7890b98c0..6d53b6c7617 100644 --- a/source/_components/media_player.denon.markdown +++ b/source/_components/media_player.denon.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Denon Network Receivers" description: "Instructions how to integrate Denon Network Receivers into Home Assistant." date: 2015-09-08 09:00 @@ -12,7 +12,7 @@ ha_category: Media Player --- -The denon platform allows you to control a [Denon Network Receivers](http://www.denon.co.uk/chg/product/compactsystems/networkmusicsystems/ceolpiccolo) from Home Assistant. +The `denon` platform allows you to control a [Denon Network Receivers](http://www.denon.co.uk/chg/product/compactsystems/networkmusicsystems/ceolpiccolo) from Home Assistant. Supported devices: diff --git a/source/_components/media_player.firetv.markdown b/source/_components/media_player.firetv.markdown index 8f52a5582da..98f6afe2021 100644 --- a/source/_components/media_player.firetv.markdown +++ b/source/_components/media_player.firetv.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "FireTV" description: "Instructions how to integrate Music Player Daemon into Home Assistant." date: 2015-10-23 18:00 @@ -12,7 +12,7 @@ ha_category: Media Player --- -The firetv platform allows you to control a [Amazon Fire TV/stick](http://www.amazon.com/Amazon-DV83YW-Fire-TV/dp/B00U3FPN4U). +The `firetv` platform allows you to control a [Amazon Fire TV/stick](http://www.amazon.com/Amazon-DV83YW-Fire-TV/dp/B00U3FPN4U). The python-firetv Python 2.x module with its helper script that exposes a HTTP server to fetch state and perform actions is used. @@ -26,6 +26,7 @@ Steps to configure your Amazon Fire TV stick with Home Assistant: - From the main (Launcher) screen, select Settings. - Select System > About > Network. - `pip install firetv[firetv-server]` into a Python 2.x environment + - If installed on Debian Jessie then the libssl-dev package is needed. Install it with `apt-get install libssl-dev` - `firetv-server -d
+
+
+You should choose a unique device name (DEVICE_NAME) to avoid clashes with other devices. +
+ + The JSON payload must contain the new state and should include the unit of measurement and a friendly name. The friendly name is used in the frontend to name the sensor. + +```json +{"state": "20", "attributes": {"unit_of_measurement": "°C", "friendly_name": "Bathroom Temperature"}} +``` + +For a quick test `curl` can be useful to "simulate" a device. + +```bash +$ curl -XPOST -H "x-ha-access: YOUR_PASSWORD" \ + -d '{"state": "20", "attributes": {"unit_of_measurement": "°C", "friendly_name": "Bathroom Temp"}}' \ + http://localhost:8123/api/states/sensor.bathroom_temperature +``` + +Use again `curl` to retrieve the [current state](/developers/rest_api/#get-apistatesltentity_id) to check if the sensor is working. + +```bash +$ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ + http://localhost:8123/api/states/sensor.bathroom_temperature +{ + "attributes": { + "friendly_name": "Bathroom Temp", + "unit_of_measurement": "\u00b0C" + }, + "entity_id": "sensor.bathroom_temperature", + "last_changed": "09:46:17 06-02-2016", + "last_updated": "09:48:46 06-02-2016", + "state": "20" +} +``` + +For more examples please visit the [HTTP Binary Sensor](/components/binary_sensor.http/#examples) page. diff --git a/source/_components/sensor.markdown b/source/_components/sensor.markdown index 215246234ef..fc8a35d9269 100644 --- a/source/_components/sensor.markdown +++ b/source/_components/sensor.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Sensor" description: "Instructions how to setup your sensors with Home Assistant." date: 2015-01-24 14:39 diff --git a/source/_components/sensor.mfi.markdown b/source/_components/sensor.mfi.markdown new file mode 100644 index 00000000000..58b25e26ea6 --- /dev/null +++ b/source/_components/sensor.mfi.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "mFi Sensor" +description: "Instructions how to integrate mFi sensors within Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Sensor +--- + + +The `mfi` sensor platform to allow you to monitor [mFi mPort interface and sensors](https://www.ubnt.com/mfi/mport/). + +To add this platform to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: mfi + host: IP_ADDRESS + port: PORT + username: USERNAME + password: PASSWORD + use_tls: true + verify_tls: true +``` + +Configuration variables: + +- **host** (*Required*): The IP address or hostname of your mFi controller. +- **port** (*Optional*): The port of your mFi controller. Defaults to 6443 for TLS, otherwise 6080. +- **username** (*Required*): The mFi admin username. +- **password** (*Required*): The mFi admin user's password. +- **use_tls** (*Optional*): If true, use TLS to contact the mFi controller. Defaults to true. +- **verify_tls** (*Optional*): Set this to false if your mFi controller has a self-signed certificate. Defaults to true. + diff --git a/source/_components/sensor.modbus.markdown b/source/_components/sensor.modbus.markdown index 404868f4fe6..99f85d03cc3 100644 --- a/source/_components/sensor.modbus.markdown +++ b/source/_components/sensor.modbus.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Modbus sensor" +layout: page +title: "Modbus Sensor" description: "Instructions how to integrate Modbus sensors into Home Assistant." date: 2015-08-30 23:38 sidebar: true @@ -12,7 +12,7 @@ ha_category: Sensor --- -The modbus sensor platform allows you to gather data from your [Modbus](http://www.modbus.org/) sensors. +The `modbus` sensor platform allows you to gather data from your [Modbus](http://www.modbus.org/) sensors. To use your Modbus sensors in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index 71b6355428d..7d55875f3f3 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "MQTT sensor" +layout: page +title: "MQTT Sensor" description: "Instructions how to integrate MQTT sensors within Home Assistant." date: 2015-05-30 23:21 sidebar: true @@ -33,7 +33,7 @@ Configuration variables: - **name** (*Optional*): The name of the sensor. Default is 'MQTT Sensor'. - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0. - **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any. -- **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. ## {% linkable_title Examples %} diff --git a/source/_components/sensor.mysensors.markdown b/source/_components/sensor.mysensors.markdown index 26538464526..2b1c709c59f 100644 --- a/source/_components/sensor.mysensors.markdown +++ b/source/_components/sensor.mysensors.markdown @@ -1,8 +1,8 @@ --- -layout: component -title: "MySensors sensors" +layout: page +title: "MySensors Sensor" description: "Instructions how to integrate MySensors sensors into Home Assistant." -date: 2016-01-17 15:49 +date: 2016-02-28 01:20 +0100 sidebar: true comments: false sharing: true @@ -14,4 +14,49 @@ featured: false Integrates MySensors sensors into Home Assistant. See the [main component] for configuration instructions. +The following sensor types are supported: + +##### MySensors version 1.4 and higher + +S_TYPE | V_TYPE +-------------------|--------------------------------------- +S_TEMP | V_TEMP +S_HUM | V_HUM +S_BARO | V_PRESSURE, V_FORECAST +S_WIND | V_WIND, V_GUST +S_RAIN | V_RAIN, V_RAINRATE +S_UV | V_UV +S_WEIGHT | V_WEIGHT, V_IMPEDANCE +S_POWER | V_WATT, V_KWH +S_DISTANCE | V_DISTANCE +S_LIGHT_LEVEL | V_LIGHT_LEVEL +S_IR | V_IR_SEND, V_IR_RECEIVE +S_WATER | V_FLOW, V_VOLUME +S_AIR_QUALITY | V_DUST_LEVEL +S_CUSTOM | V_VAR1, V_VAR2, V_VAR3, V_VAR4, V_VAR5 +S_DUST | V_DUST_LEVEL +S_SCENE_CONTROLLER | V_SCENE_ON, V_SCENE_OFF + +##### MySensors version 1.5 and higher + +S_TYPE | V_TYPE +---------------|---------------------------------- +S_COLOR_SENSOR | V_RGB +S_MULTIMETER | V_VOLTAGE, V_CURRENT, V_IMPEDANCE +S_SOUND | V_LEVEL +S_VIBRATION | V_LEVEL +S_MOISTURE | V_LEVEL +S_LIGHT_LEVEL | V_LEVEL +S_AIR_QUALITY | V_LEVEL (replaces V_DUST_LEVEL) +S_DUST | V_LEVEL (replaces V_DUST_LEVEL) + +### {% linkable_title Custom unit of measurement %} + +Some sensor value types are not specific for a certain sensor type. These do not have a default unit of measurement in Home Assistant. For example, the V_LEVEL type can be used for different sensor types, dust, sound, vibration etc. + +By using V_UNIT_PREFIX, it's possible to set a custom unit for any sensor. The string value that is sent for V_UNIT_PREFIX will be used in preference to any other unit of measurement, for the defined sensors. V_UNIT_PREFIX can't be used as a standalone sensor value type. Sending a supported value type and value from the tables above is also required. V_UNIT_PREFIX is available with MySensors version 1.5 and later. + +For more information, visit the [serial api] of MySensors. + [main component]: /components/mysensors/ +[serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/sensor.nest.markdown b/source/_components/sensor.nest.markdown index ef22e305d07..5cbf2782abe 100644 --- a/source/_components/sensor.nest.markdown +++ b/source/_components/sensor.nest.markdown @@ -1,9 +1,8 @@ --- -layout: component -title: "Nest thermostat" -description: "Instructions how to integrate Nest thermostats sensors within Home Assistant." -# Year set to 2017 to unpublish till 0.12 release -date: 2017-01-13 19:59 +layout: page +title: "Nest Sensor" +description: "Instructions how to integrate Nest sensors within Home Assistant." +date: 2016-01-13 19:59 sidebar: true comments: false sharing: true @@ -13,37 +12,48 @@ ha_category: Sensor --- -The `nest` thermostat platform let you control a thermostat from [Nest](https://nest.com). It also includes the ability to monitor things like the state of our HVAC system and the current humidity and temperature. +The `nest` sensor platform let you monitor sensors connected to your [Nest](https://nest.com) thermostat. To set it up, add the following information to your `configuration.yaml` file: ```yaml -sensor 3: +sensor: platform: nest monitored_conditions: - - 'fan' - - 'hvac_ac_state', - - 'hvac_aux_heater_state', - - 'hvac_heat_x2_state', - - 'hvac_heat_x3_state', - - 'hvac_alt_heat_state', - - 'hvac_alt_heat_x2_state', - - 'hvac_emer_heat_state', - - 'online' - - 'temperature', - - 'target', - - 'away_temperature[0]', + - 'temperature' + - 'target' + - 'away_temperature[0]' - 'away_temperature[1]' - - 'humidity', - - 'mode', - - 'last_ip', - - 'local_ip', - - 'last_connection', + - 'humidity' + - 'mode' + - 'last_ip' + - 'local_ip' + - 'last_connection' - 'battery_level' + - 'weather_condition' + - 'weather_temperature' + - 'weather_humidity' + - 'wind_speed' + - 'wind_direction' ``` -You must have the [Nest Thermostat](https://home-assistant.io/components/thermostat.nest/) entity configured to use this sensor. +Configuration variables: -
-
-
You must have the [Nest component](/components/nest/) configured to use this sensor.
diff --git a/source/_components/sensor.nest_weather.markdown b/source/_components/sensor.nest_weather.markdown new file mode 100644 index 00000000000..35617f8f0d4 --- /dev/null +++ b/source/_components/sensor.nest_weather.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "Nest Weather Sensor" +description: "Instructions how to integrate Nest sensors within Home Assistant." +date: 2016-01-13 19:59 +sidebar: true +comments: false +sharing: true +footer: true +logo: nest_thermostat.png +ha_category: Weather +ha_iot_class: "Cloud Poll" +--- + + +The `nest` weather sensor platform let you monitor current weather conditions based on the location of your [Nest](https://nest.com) thermostat. + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +sensor: + platform: nest + monitored_conditions: + - 'weather_temperature' + - 'weather_humidity' + - 'weather_condition' + - 'wind_speed' + - 'wind_direction' +``` + +Configuration variables: + +- **monitored_conditions** array (*Required*): States to monitor. + - 'weather_temperature' + - 'weather_humidity' + - 'weather_condition' + - 'wind_speed' + - 'wind_direction' + +You must have the [Nest component](/components/nest/) configured to use this sensor.
diff --git a/source/_components/sensor.netatmo.markdown b/source/_components/sensor.netatmo.markdown index 2e7b4d01d2b..0ed0740d4fc 100644 --- a/source/_components/sensor.netatmo.markdown +++ b/source/_components/sensor.netatmo.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Netatmo" +layout: page +title: "Netatmo Sensor" description: "Instructions how to integrate Netatmo sensors into Home Assistant." date: 2016-01-14 08:10 sidebar: true @@ -31,8 +31,15 @@ sensor: - noise - pressure - co2 + - rain + - sum_rain_1 + - sum_rain_24 module_name2: - temperature + rainmeter_name3: + - rain + - sum_rain_1 + - sum_rain_24 ``` Configuration variables: @@ -41,9 +48,16 @@ Configuration variables: - **secret_key** (*Required*): Your netatmo secret key - **username** (*Required*): Username for the netatmo account. - **password** (*Required*): Password for the netatmo account. -- **modules** (*Required*): Modules to use. Multiple entries allowd. +- **modules** (*Required*): Modules to use. Multiple entries allowed. - **module_name** array (*Required*): Name of the module. - - ** [conditions] **: Condition to monitor. + - **temperature**: Current temperature. + - **co2**: CO2 concentration in ppm. + - **pressure**: Pressure in mbar. + - **noise**: Noise level in dB. + - **humidity**: Humidity in %. + - **rain**: Estimated rainfall for today in mm. + - **sum_rain_1**: Rainfall in the last hour in mm. + - **sum_rain_24**: Rainfall in mm from 00:00am - 23:59pm. ### {% linkable_title Get API and Secret Key %} @@ -75,5 +89,5 @@ You have to provide these name in your Home Assistant configuration file.-The Home Assistant NetAtmo platform has only be tested with the classic indoor and outdoor module. There is no support for the rainmeter and windmeter module at this time because developers does not own these modules. -
\ No newline at end of file +The Home Assistant NetAtmo platform has only be tested with the classic indoor, outdoor module and rainmeter. There is no support for the windmeter module at this time because developers does not own these modules. + diff --git a/source/_components/sensor.neurio_energy.markdown b/source/_components/sensor.neurio_energy.markdown new file mode 100644 index 00000000000..502b2b0835a --- /dev/null +++ b/source/_components/sensor.neurio_energy.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "Neurio" +description: "Instructions how to integrate Neurio within Home Assistant." +date: 2016-02-15 21:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: neurio.png +ha_category: Sensor +ha_iot_class: "Cloud Polling" +--- + + +Integrate your [Neurio](http://neur.io/) meter information into Home Assistant. To get an API key and secret, login to your [Neurio account](https://my.neur.io/#settings/applications/register) and register an application. Note the Homepage URL and Callback URL are optional. + +To enable this sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: neurio_energy + api_key: API_KEY + api_secret: API_SECRET + sensor_id: "SENSOR_ID" +``` + +Configuration variables: + +- **api_key** (*Required*): The API key for your account/application. +- **api_secret** (*Required*): The API secret for your account/application. +- **sensor_id** (*Optional*): The sensor ID will be auto-detected but can be set if you have more then one sensor. + diff --git a/source/_components/sensor.onewire.markdown b/source/_components/sensor.onewire.markdown new file mode 100644 index 00000000000..15fb06ec854 --- /dev/null +++ b/source/_components/sensor.onewire.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "One wire Sensor" +description: "Instructions how to integrate One wire (1-wire) sensors into Home Assistant." +date: 2016-01-17 07:15 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +--- + +The `onewire` platform supports sensors which are using the One wire (1-wire) bus for communication. + +Supported devices: + +- [DS18B20](https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) + +To enable One wire sensors in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: onewire + names: + some_id: your name +``` + +Configuration variables: + +- **names** array (*Optional*): ID and friendly name of your sensors. + diff --git a/source/_components/sensor.openweathermap.markdown b/source/_components/sensor.openweathermap.markdown index 11b0dd5b541..66e5e4f3d89 100644 --- a/source/_components/sensor.openweathermap.markdown +++ b/source/_components/sensor.openweathermap.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "OpenWeatherMap" description: "Instructions how to integrate OpenWeatherMap within Home Assistant." date: 2015-04-25 9:06 @@ -12,7 +12,7 @@ ha_category: Weather --- -The openweathermap platform uses [OpenWeatherMap](http://openweathermap.org/) as an source for current meteorological data for your location. The `forecast` will show you the condition in 3 h. +The `openweathermap` platform uses [OpenWeatherMap](http://openweathermap.org/) as an source for current meteorological data for your location. The `forecast` will show you the condition in 3 h. You need an API key which is free but requires a [registration](http://home.openweathermap.org/users/sign_up). diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index 59bfb47f70a..5e55cdda28d 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "RESTful sensor" +layout: page +title: "RESTful Sensor" description: "Instructions how to integrate REST sensors into Home Assistant." date: 2015-09-14 19:10 sidebar: true @@ -44,7 +44,7 @@ Configuration variables: - **resource** (*Required*): The resource or endpoint that contains the value. - **method** (*Optional*): The method of the request. Default is GET. -- **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the value. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the value. - **payload** (*Optional*): The payload to send with a POST request. Usualy formed as a dictionary. - **name** (*Optional*): Name of the REST sensor. - **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any. @@ -71,7 +71,6 @@ Always want to know your external IP address. [JSON Test](http://www.jsontest.co To display the IP address, the entry for a sensor in the `configuration.yaml` file will look like this. ```yaml -# Example configuration.yaml entry - platform: rest resource: http://ip.jsontest.com name: External IP @@ -85,7 +84,6 @@ The [glances](/components/sensor.glances/) sensor is doing the exact same thing Add something similar to the entry below to your `configuration.yaml` file: ```yaml -# Example configuration.yaml entry - platform: rest resource: http://IP_ADRRESS:61208/api/2/mem/used name: Used mem @@ -93,3 +91,16 @@ Add something similar to the entry below to your `configuration.yaml` file: unit_of_measurement: MB ``` +### {% linkable_title Value for other Home Assistant instance %} + +The Home Assistant [API](/developers/rest_api/) is exposing the data from your attached sensors. If you are running multiple Home Assistant instances which are not [connected](/developers/architecture/#multiple-connected-instances) you can still get information from them. + + +```yaml + - platform: rest + resource: http://IP_ADDRESS:8123/api/states/sensor.weather_temperature + name: Temperature + value_template: {% raw %}'{{ value_json.state }}'{% endraw %} + unit_of_measurement: "°C" +``` + diff --git a/source/_components/sensor.rfxtrx.markdown b/source/_components/sensor.rfxtrx.markdown index 9b8efa6c138..3efb14a9919 100644 --- a/source/_components/sensor.rfxtrx.markdown +++ b/source/_components/sensor.rfxtrx.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "RFXtrx sensor" +layout: page +title: "RFXtrx Sensor" description: "Instructions how to integrate RFXtrx sensors into Home Assistant." date: 2015-08-06 17:15 sidebar: true @@ -10,12 +10,31 @@ footer: true ha_category: Sensor --- -The rfxtrx platform support sensors that communicate in the frequency range of 433.92 MHz. +The `rfxtrx` platform support sensors that communicate in the frequency range of 433.92 MHz. To enable RFXtrx sensors in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry -sensor: - platform: rfxtrx +sensor: + platform: rfxtrx + automatic_add: True + devices: + sensor_0502: + name: Lving + packetid: 0a52080705020095220269 + data_type: Temperature + sensor_0601: + name: Bath_Humidity + packetid: 0a520802060100ff0e0269 + data_type: Humidity + sensor_0601 2: + name: Bath + packetid: 0a520802060100ff0e0269 ``` + +Configuration variables: + +- **devices** (*Optional*): A list of devices with their name to use in the frontend. +- **automatic_add** (*Optional*): To enable the automatic addition of new lights. +- **data_type** (*Optional*): Which data type the sensor should show diff --git a/source/_components/sensor.sabnzbd.markdown b/source/_components/sensor.sabnzbd.markdown index fa2718ff746..984143da7fc 100644 --- a/source/_components/sensor.sabnzbd.markdown +++ b/source/_components/sensor.sabnzbd.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "SABnzbd" description: "Instructions how to integrate SABnzbd within Home Assistant." date: 2015-03-23 19:59 @@ -12,7 +12,7 @@ ha_category: Sensor --- -The sabnzbd platform will allow you to monitor your downloads with [SABnzbd](http://sabnzbd.org) from within Home Assistant and setup automation based on the information. +The `sabnzbd` platform will allow you to monitor your downloads with [SABnzbd](http://sabnzbd.org) from within Home Assistant and setup automation based on the information. To use sabnzbd with your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.speedtest.markdown b/source/_components/sensor.speedtest.markdown new file mode 100644 index 00000000000..db0fc4ddd87 --- /dev/null +++ b/source/_components/sensor.speedtest.markdown @@ -0,0 +1,75 @@ +--- +layout: page +title: "Speedtest.net" +description: "How to integrate Speedtest.net within Home Assistant." +date: 2016-02-12 9:06 +sidebar: true +comments: false +sharing: true +footer: true +logo: speedtest.png +ha_category: Sensor +featured: false +--- + +The `speedtest` sensor component uses the [Speedtest.net](https://speedtest.net/) 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 Speedtest.net sensor to your installation, add the following to your `configuration.yaml` file: + +Once per hour, on the hour (default): + +```yaml +sensor: + platform: speedtest + monitored_conditions: + - ping + - download + - upload +``` + +More examples: + +Every half hour of every day: + +```yaml +sensor: + platform: speedtest + minute: + - 0 + - 30 + monitored_conditions: + - ping + - download + - upload +``` + +Everyday at 12:30AM, 6:30AM, 12:30PM, 6:30PM: + +```yaml +sensor: + platform: speedtest + minute: 30 + hour: + - 0 + - 6 + - 12 + - 18 + monitored_conditions: + - ping + - download + - upload +``` + +Configuration variables: + +- **monitored_conditions** array (*Required*): Sensors to display in the frontend. + - **ping**: Reaction time in ms of your connection, (how fast you get a response after you've sent out a request). + - **download**: Download speed in Mbps. + - **upload**: Upload speed in Mbps. +- **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. + +This component uses [speetest-cli](https://github.com/sivel/speedtest-cli) to gather network performance data from Speedtest.net. Please be aware of the potential [inconsistencies](https://github.com/sivel/speedtest-cli#inconsistency) that this component may display. diff --git a/source/_components/sensor.steam_online.markdown b/source/_components/sensor.steam_online.markdown new file mode 100644 index 00000000000..c3a7a9d71d6 --- /dev/null +++ b/source/_components/sensor.steam_online.markdown @@ -0,0 +1,50 @@ +--- +layout: page +title: "Steam" +description: "Instructions on how to set up Steam sensors in Home Assistant." +date: 2015-12-19 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: steam.png +ha_category: Sensor +--- + + +The Steam component will allow you to track the online status of public [Steam](https://steamcommunity.com) accounts. + +You need an API key which is [free](https://steamcommunity.com/dev/apikey) to use the component + +To find an account's 64-bit SteamID you can check the URL of the profile page, if it ends with a long string on numbers then that's the 64-bit SteamID. However, if the profile has a custom URL you will have to copy the it and enter it into [STEAMID I/O](https://steamid.io/) to find the 64-bit SteamID. + +To use Steam in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: steam_online + api_key: YOUR_API_KEY + accounts: + - account1 + - account2 +``` + +Configuration variables: + +- **api_key** (*Required*): Your API key from [https://steamcommunity.com/dev/apikey](https://steamcommunity.com/dev/apikey). +- **accounts** array (*Required*): Array of accounts. + - **account_id** (*Required*): 64-bit SteamID. + + +If you want to add the accounts to a group for example you will have to use: + +```yaml +# Example configuration.yaml entry +group: + steam: + name: Steam + entities: + - sensor.steam_account1 + - sensor.steam_account2 +``` \ No newline at end of file diff --git a/source/_components/sensor.swiss_public_transport.markdown b/source/_components/sensor.swiss_public_transport.markdown index f2ab2840d96..3128c527582 100644 --- a/source/_components/sensor.swiss_public_transport.markdown +++ b/source/_components/sensor.swiss_public_transport.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Swiss Public Transport" description: "Instructions how to integrate timetable data for travelling in Switzerland within Home Assistant." date: 2015-06-02 21:45 @@ -8,10 +8,11 @@ comments: false sharing: true footer: true ha_category: Sensor +ha_iot_class: "Local Polling" --- -The swiss public transport sensor will give you the next two departure times from a given location to another one in Switzerland. +The `swiss_public_transport` sensor will give you the next two departure times from a given location to another one in Switzerland. The [Stationboard](http://transport.opendata.ch/examples/stationboard.html) website can help to determine the exact name of the start and the end station. With the station names it's necessary to search for the ID of those stations: diff --git a/source/_components/sensor.systemmonitor.markdown b/source/_components/sensor.systemmonitor.markdown index fd44db9b33b..e1fb58cd46a 100644 --- a/source/_components/sensor.systemmonitor.markdown +++ b/source/_components/sensor.systemmonitor.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "System Monitor" description: "Instructions how to monitor the Home Assistant host." date: 2015-03-23 19:59 @@ -10,7 +10,7 @@ footer: true ha_category: Sensor --- -The system monitoring sensor platform to allow you to monitor disk usage, memory usage, CPU usage, and running processes. This platform has superseded the process component which is now considered deprecated. +The `systemmonitor` sensor platform to allow you to monitor disk usage, memory usage, CPU usage, and running processes. This platform has superseded the process component which is now considered deprecated. To add this platform to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.tcp.markdown b/source/_components/sensor.tcp.markdown new file mode 100644 index 00000000000..a6227a641bf --- /dev/null +++ b/source/_components/sensor.tcp.markdown @@ -0,0 +1,101 @@ +--- +layout: page +title: TCP Sensor +description: "Instructions on how to set up TCP sensors within Home Assistant." +date: 2016-02-22 10:03 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +--- + +The TCP component allows the integration of some services for which a specific Home Assistant component does not exist. If the service communicates over a TCP socket with a simple request/reply mechanism then the chances are that this component will allow integration with it. + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +sensor: +# Example configuration.yaml entry + - platform: tcp + name: Central Heating Pressure + host: IP_ADDRESS + port: PORT + timeout: 5 + payload: PAYLOAD + value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" + unit: UNIT_OF_MEASUREMENT +``` + +Configuration options for the a TCP Sensor: + +- **name** (*Required*): The name you'd like to give the sensor in Home Assistant. +- **host** (*Required*): The hostname/IP address to connect to. +- **port** (*Required*): The port to connect to the host on. +- **payload** (*Required*): What to send to the host in order to get the response we're interested in. +- **timeout** (*Optional*): How long in seconds to wait for a response from the service before giving up and disconnecting. Defaults to `10` +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the value. By default it's assumed that the entire response is the value. +- **unit** (*Optional*): The unit of measurement to use for the value. +- **buffer_size** (*Optional*): The size of the receive buffer in bytes. Set this to a larger value if you expect to receive a response larger than the default. Defaults to `1024`. + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this sensor. + +### {% linkable_title EBUSd %} + +The [EBUSd](https://github.com/john30/ebusd/wiki) service enables connection to an EBUS serial bus on some home heating/cooling systems. Using this service it is possible to extract various metrics which may be useful to have within Home Assistant. In order to use EBUSd, you connect to it using a TCP socket and send it a command. The service will respond with the value it has received from EBUS. On the command line, this would look something like: + +```bash +$ echo "r WaterPressure" | nc 10.0.0.127 8888 +0.903;ok +``` + +You will notice that the output from the service is not just a single value (it contains ";ok" as well). To grab the value we're interested in, we can use a Jinja2 template. The response received is injected into the template as the `value` variable. To use this value within Home Assistant, use the following configuration: + +```yaml +sensor: +# Example configuration.yaml entry + - platform: tcp + name: Central Heating Pressure + host: 10.0.0.127 + port: 8888 + timeout: 5 + payload: "r WaterPressure\n" + value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" + unit: Bar +``` + +### {% linkable_title hddtemp %} + +The tool `hddtemp` collects the temperatur of your harddisks. + +```bash +$ hddtemp +/dev/sda: SAMSUNG MZMTE256HMHP-000L1: 39°C +``` + +With `hddtemp -d` you can run the tool in TCP/IP daemon mode on port 7634 which enables you to get the data across the network. + +```bash +$ telnet localhost 7634 +Trying 127.0.0.1... +Connected to localhost. +Escape character is '^]'. +|/dev/sda|SAMSUNG MZMTE256HMHP-000L1|38|C|Connection closed by foreign host. +``` + +The entry for the `configuration.yaml` file for a `hddtemp` sensor could look like the example below. + +```yaml +sensor: +# Example configuration.yaml entry + - platform: tcp + name: HDD temperature + host: 127.0.0.1 + port: 7634 + timeout: 5 + payload: "\n" + value_template: "{% raw %}{{ value.split('|')[3] }}{% endraw %}" + unit: "°C" +``` diff --git a/source/_components/sensor.tellduslive.markdown b/source/_components/sensor.tellduslive.markdown index 9874f868a25..43fffd40249 100644 --- a/source/_components/sensor.tellduslive.markdown +++ b/source/_components/sensor.tellduslive.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Telldus Live sensors" +layout: page +title: "Telldus Live sensor" description: "Instructions how to integrate Telldus Live sensors into Home Assistant." date: 2016-01-17 15:49 sidebar: true diff --git a/source/_components/sensor.tellstick.markdown b/source/_components/sensor.tellstick.markdown index cc8b995135c..8c7a244ebe6 100644 --- a/source/_components/sensor.tellstick.markdown +++ b/source/_components/sensor.tellstick.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "TellStick sensor" +layout: page +title: "TellStick Sensor" description: "Instructions how to integrate TellStick sensors into Home Assistant." date: 2015-08-06 19:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Sensor --- -This tellstick sensor platform allows you to get current meteorological data from a [TellStick](http://www.telldus.se/products/tellstick) device. +The `tellstick` sensor platform allows you to get current meteorological data from a [TellStick](http://www.telldus.se/products/tellstick) device. To use your TellStick device in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.temper.markdown b/source/_components/sensor.temper.markdown index 386f8108e99..d204cf7fd4a 100644 --- a/source/_components/sensor.temper.markdown +++ b/source/_components/sensor.temper.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "TEMPer sensor" +layout: page +title: "TEMPer Sensor" description: "Instructions how to integrate TEMPer sensors into Home Assistant." date: 2015-08-06 19:00 sidebar: true @@ -10,7 +10,7 @@ footer: true ha_category: Sensor --- -This temper sensor platform allows you to get the current temperature from a TEMPer device. +This `temper` sensor platform allows you to get the current temperature from a TEMPer device. To use your TEMPer sensor in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown new file mode 100644 index 00000000000..a792cb1cdae --- /dev/null +++ b/source/_components/sensor.template.markdown @@ -0,0 +1,80 @@ +--- +layout: page +title: "Template Sensor" +description: "Instructions how to integrate Template sensors into Home Assistant." +date: 2016-01-27 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +--- + +The `template` platform supports sensors which breaks out `state_attributes` from other entities. + +To enable Template sensors in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: template + sensors: + solar_angle: + value_template: {% raw %}'{{ states.sun.sun.attributes.elevation }}'{% endraw %} + friendly_name: 'Sun angle' + unit_of_measurement: 'degrees' + sunrise: + value_template: {% raw %}'{{ states.sun.sun.attributes.next_rising }}'{% endraw %} +``` + +Configuration variables: + +- **sensors** array (*Required*): List of your sensors. + - **friendly_name** (*Optional*): Name to use in the Frontend. + - **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any. + - **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload. + + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this sensor. + +### {% linkable_title Sun angle %} + +This example shows the sun angle in the frontend. + +```yaml +sensor: + platform: template + sensors: + solar_angle: + value_template: {% raw %}'{{ "%+.1f"|format(states.sun.sun.attributes.elevation) }}'{% endraw %} + friendly_name: 'Sun Angle' + unit_of_measurement: '°' +``` + +### {% linkable_title Multi line example with an if test %} + +This example shows a multiple line template with and is test. It looks at a sensing switch and shows on/off in the frontend. + +```yaml +sensor: + platform: template + sensors: + kettle: + friendly_name: 'Kettle' + {% raw %}value_template: >- + {%- if is_state("switch.kettle", "off") %} + off + {% elif states.switch.kettle.attributes.kwh < 1000 %} + standby + {% elif is_state("switch.kettle", "on") %} + on + {% else %} + failed + {%- endif %}{% endraw %} + +``` +(please note the blank line to close the multi-line template) + + diff --git a/source/_components/sensor.time_date.markdown b/source/_components/sensor.time_date.markdown index 612bce17a13..614a6346c87 100644 --- a/source/_components/sensor.time_date.markdown +++ b/source/_components/sensor.time_date.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Time & Date" description: "Instructions how to integrate the time and the date within Home Assistant." date: 2015-05-08 17:15 @@ -7,11 +7,13 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png ha_category: Sensor +ha_iot_class: "Local Push" --- -The time and date platform simple displays the time in various formats, the date, or both. +The time and date (`time_date`) platform simple displays the time in various formats, the date, or both. To enable this sensor in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.torque.markdown b/source/_components/sensor.torque.markdown index f7287899d91..f8911e5fada 100644 --- a/source/_components/sensor.torque.markdown +++ b/source/_components/sensor.torque.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Torque (OBD2)" description: "Instructions how to integrate Torque sensors into Home Assistant." date: 2015-12-20 18:00 diff --git a/source/_components/sensor.transmission.markdown b/source/_components/sensor.transmission.markdown index 7714f867188..e484da70f1e 100644 --- a/source/_components/sensor.transmission.markdown +++ b/source/_components/sensor.transmission.markdown @@ -1,7 +1,7 @@ --- -layout: component -title: "Transmission sensor" -description: "Instructions how to integrate Transmission within Home Assistant." +layout: page +title: "Transmission Sensor" +description: "Instructions how to integrate Transmission sensors within Home Assistant." date: 2015-04-25 9:06 sidebar: true comments: false @@ -12,7 +12,7 @@ ha_category: Sensor --- -The [Transmission](http://www.transmissionbt.com/) platform allows you to monitor your downloads from within Home Assistant and setup automation based on the information. +The `trnasmission` platform allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. ```yaml # Example configuration.yaml entry diff --git a/source/_components/sensor.twitch.markdown b/source/_components/sensor.twitch.markdown index 56c5dff9331..b1b81299ca6 100644 --- a/source/_components/sensor.twitch.markdown +++ b/source/_components/sensor.twitch.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Twitch" description: "Instructions how to integrate Twitch sensors into Home Assistant." date: 2015-12-19 09:00 diff --git a/source/_components/sensor.vera.markdown b/source/_components/sensor.vera.markdown index 6386b2efaa7..eb634bf280a 100644 --- a/source/_components/sensor.vera.markdown +++ b/source/_components/sensor.vera.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Vera sensor" +layout: page +title: "Vera Sensor" description: "Instructions how to integrate Vera sensors into Home Assistant." date: 2015-10-20 21:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Sensor --- -This vera sensor platform allows you to get data from your [Vera](http://getvera.com/) sensors. +This `vera` sensor platform allows you to get data from your [Vera](http://getvera.com/) sensors. To use your Vera sensor in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.verisure.markdown b/source/_components/sensor.verisure.markdown new file mode 100644 index 00000000000..7087133f0be --- /dev/null +++ b/source/_components/sensor.verisure.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "Verisure Sensor" +description: "Instructions how to integrate Verisure sensors into Home Assistant." +date: 2016-02-23 21:31 +0100 +sidebar: true +comments: false +sharing: true +footer: true +logo: verisure.png +ha_category: Sensor +featured: false +--- + +Integrates Verisure sensors into Home Assistant. See the [main component] for configuration instructions. + +The following sensor types are supported: + + * Thermometers + * Hygrometers + * Mouse detectors + + +[main component]: /components/verisure/ diff --git a/source/_components/sensor.wink.markdown b/source/_components/sensor.wink.markdown index 5238e0d8cdc..1ff2c385c5f 100644 --- a/source/_components/sensor.wink.markdown +++ b/source/_components/sensor.wink.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Wink sensor" +layout: page +title: "Wink Sensor" description: "Instructions how to setup the Wink sensors within Home Assistant." date: 2015-01-20 22:36 sidebar: true @@ -12,7 +12,7 @@ ha_category: Sensor --- -The wink sensor platform allows you to get data from your [Wink](http://www.wink.com/) sensors. +The Wink sensor platform allows you to get data from your [Wink](http://www.wink.com/) sensors. -The requirement is that you have setup your [Wink hub](/components/light.wink/). +The requirement is that you have setup your [Wink hub](/components/wink/). diff --git a/source/_components/sensor.worldclock.markdown b/source/_components/sensor.worldclock.markdown index ef6c0f7a4ee..38e2aca0e3f 100644 --- a/source/_components/sensor.worldclock.markdown +++ b/source/_components/sensor.worldclock.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Worldclock" description: "Instructions how to integrate a Worldclock within Home Assistant." date: 2015-10-02 11:15 @@ -7,11 +7,13 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png ha_category: Sensor +ha_iot_class: "Local Push" --- -The worldclock platform simple displays the current time in a different time zone +The `worldclock` sensor platform simple displays the current time in a different time zone To enable this sensor in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.yr.markdown b/source/_components/sensor.yr.markdown index b64d2005941..3c0072da258 100644 --- a/source/_components/sensor.yr.markdown +++ b/source/_components/sensor.yr.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "YR" description: "Instructions how to integrate Yr.no within Home Assistant." date: 2016-01-04 14:00 diff --git a/source/_components/sensor.zigbee.markdown b/source/_components/sensor.zigbee.markdown new file mode 100644 index 00000000000..45a58641aca --- /dev/null +++ b/source/_components/sensor.zigbee.markdown @@ -0,0 +1,62 @@ +--- +layout: page +title: ZigBee Sensor +description: "Instructions on how to set up ZigBee sensors within Home Assistant." +date: 2016-01-28 10:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: Sensor +--- + +There are two types of ZigBee sensor available to Home Assistant: + +- [Analog input pin](#analog-input-pin) +- [Temperature sensor](#temperature-sensor) (XBee Pro) + +## {% linkable_title Analog Input Pin %} + +The analog input pins on an XBee (non-Pro) will read 0V to 1.2V. This is translated by the [xbee-helper](https://github.com/flyte/xbee-helper) library into a percentage. The maximum voltage your ZigBee device will read is configurable using the `max_volts` configuration variable. + +To configure an analog input pin sensor, use the following variables: + +- **name** (*Required*): The name you'd like to give the sensor in Home Assistant. +- **platform** (*Required*): Set to `zigbee`. +- **type** (*Required*): Set to `analog`. +- **pin** (*Required*): The number identifying which pin to sample. +- **address**: The long 64bit address of the remote ZigBee device whose analog input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins. +- **max_volts**: The maximum voltage which the analog input pin is able to read. Default: `1.2` + +#### Example + +```yaml +sensor: + - name: My Analog Input + platform: zigbee + type: analog + pin: 0 + address: 0013A2004233D138 +``` + +See the [Digi knowledge base](http://knowledge.digi.com/articles/Knowledge_Base_Article/Digital-and-analog-sampling-using-XBee-radios) for more XBee sampling details. + +## {% linkable_title Temperature Sensor %} + +The XBee Pro (and perhaps other third party modules) contains a thermometer device which can be read by using the `TP` AT command. To set this up as a temperature sensor device in Home Assistant use the following config variables: + +- **name** (*Required*): The name you'd like to give the temperature sensor in Home Assistant +- **platform** (*Required*): Set to `zigbee` +- **type** (*Required*): Set to `temperature` +- **address**: The long 64bit address of the remote ZigBee device whose temperature sensor you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's temperature. + +#### Example + +```yaml +sensor: + - name: Living Room Temperature + platform: zigbee + type: temperature + address: 0013A20050E752C5 +``` \ No newline at end of file diff --git a/source/_components/sensor.zwave.markdown b/source/_components/sensor.zwave.markdown index 0de9c07750c..0b4641935a9 100644 --- a/source/_components/sensor.zwave.markdown +++ b/source/_components/sensor.zwave.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Z-Wave sensor" +layout: page +title: "Z-Wave Sensor" description: "Instructions how to setup the Z-Wave sensors within Home Assistant." date: 2015-11-15 13:00 sidebar: true diff --git a/source/_components/shell_command.markdown b/source/_components/shell_command.markdown index 5e99dc73854..00551f9b65c 100644 --- a/source/_components/shell_command.markdown +++ b/source/_components/shell_command.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Shell command" description: "Instructions how to integrate Shell commands into Home Assistant." date: 2015-10-13 19:10 diff --git a/source/_components/simple_alarm.markdown b/source/_components/simple_alarm.markdown index f158203cec4..8a7667ba745 100644 --- a/source/_components/simple_alarm.markdown +++ b/source/_components/simple_alarm.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Intruder Alerts" description: "Instructions how to receive intruder alerts from Home Assistant." date: 2015-01-20 22:36 @@ -27,6 +27,6 @@ simple_alarm: Configuration variables: -- **known_light** (*Required*): Which light/light group has to flash when a known device comes home. -- **unknown_light** (*Required*): Which light/light group has to flash red when light turns on while no one home. +- **known_light** (*Optional*): Which light/light group has to flash when a known device comes home. +- **unknown_light** (*Optional*): Which light/light group has to flash red when light turns on while no one home. diff --git a/source/_components/splunk.markdown b/source/_components/splunk.markdown new file mode 100644 index 00000000000..12c81cc4ab9 --- /dev/null +++ b/source/_components/splunk.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "Splunk" +description: "Record events in Splunk." +date: 2016-02-05 15:31 +sidebar: true +comments: false +sharing: true +footer: true +logo: splunk.png +ha_category: "History" +--- + +The `splunk` component makes it possible to log all state changes to an external [Splunk](http://splunk.com/) database using Splunk's HTTP Event Collector feature. You can either use this alone, or with the HomeAssistant for Splunk [app](https://github.com/miniconfig/splunk-homeassistant). Since the HEC feature is new to Splunk, you will need to use at least version 6.3. + +To use the `splunk` component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +splunk: + host: SPLUNK_HOST_IP_ADDRESS_OR_HOST_NAME + port: 8088 + token: B4415DFF-683C-5C6C-3994-4F6D4A5DB03A + SSL: True +``` + +Configuration variables: + +- **host** (*Optional*): IP address or host name of your Splunk host, eg. http://192.168.1.10. Will default to `localhost` if not supplied. +- **port** (*Optional*): Port to use. Defaults to 8088. +- **token** (*Required*): The HTTP Event Collector Token already created in your Splunk instance. +- **SSL** (*Optional*): Use https instead of http to connect. Defaults to False. diff --git a/source/_components/statsd.markdown b/source/_components/statsd.markdown new file mode 100644 index 00000000000..80a473c4456 --- /dev/null +++ b/source/_components/statsd.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "StatsD" +description: "Record events in StatsD." +date: 2016-01-25 08:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: "History" +--- + +The `statsd` component makes it possible to transfer all state changes to an external [StatsD](https://github.com/etsy/statsd) instance. + +To use the `statsd` component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +statsd: + host: DB_HOST_IP_ADDRESS + port: 20000 + prefix: DB_TO_STORE_EVENTS + rate: 1 +``` + +Configuration variables: + +- **host** (*Optional*): IP address of your StatsD host, eg. 192.168.1.10. Defaults to `localhost`. +- **port** (*Optional*): Port to use. Defaults to 8125. +- **prefix** (*Optional*): Prefix to use. Defaults to `hass`. +- **rate** (*Optional*): The sample rate. Defaults to 1. + +StatsD supports various [backends](https://github.com/etsy/statsd/blob/master/docs/backend.md). + diff --git a/source/_components/sun.markdown b/source/_components/sun.markdown index 3d5c3268b97..18058bc1421 100644 --- a/source/_components/sun.markdown +++ b/source/_components/sun.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Sun" description: "Instructions how to track the sun within Home Assistant." date: 2015-01-24 14:39 @@ -7,7 +7,7 @@ sidebar: true comments: false sharing: true footer: true -logo: sun.png +logo: home-assistant.png ha_category: Weather --- diff --git a/source/_components/switch.arduino.markdown b/source/_components/switch.arduino.markdown index 7bdd9363e40..b2a1b7ef5cd 100644 --- a/source/_components/switch.arduino.markdown +++ b/source/_components/switch.arduino.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Arduino switch" +layout: page +title: "Arduino Switch" description: "Instructions how to integrate Arduino boards pins as switches within Home Assistant." date: 2015-09-14 18:28 sidebar: true @@ -12,7 +12,7 @@ ha_category: DIY --- -The arduino switch platform allows you to control the digital pins of your [Arduino](https://www.arduino.cc/) board. Support for switching pins is limited to high/on and low/off of the digital pins. PWM (pin 3,5,6,9,10, and 11 on an Arduino Uno) is not supported yet. +The `arduino` switch platform allows you to control the digital pins of your [Arduino](https://www.arduino.cc/) board. Support for switching pins is limited to high/on and low/off of the digital pins. PWM (pin 3,5,6,9,10, and 11 on an Arduino Uno) is not supported yet. To enable the Arduino pins with Home Assistant, add the following section to your `configuration.yaml` file: diff --git a/source/_components/switch.arest.markdown b/source/_components/switch.arest.markdown index 8874ec4fd4e..f3e3223176a 100644 --- a/source/_components/switch.arest.markdown +++ b/source/_components/switch.arest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "aREST switch" +layout: page +title: "aREST Switch" description: "Instructions how to integrate aREST switches within Home Assistant." date: 2015-09-11 23:15 sidebar: true @@ -9,9 +9,10 @@ sharing: true footer: true logo: arest.png ha_category: Switch +ha_iot_class: "Local Polling" --- -The arest switch platform allows you to toggle pins of your devices (like Arduino boards with a ethernet/wifi connection, ESP8266 based devices, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework. +The `arest` switch platform allows you to toggle pins of your devices (like Arduino boards with a ethernet/wifi connection, ESP8266 based devices, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework. To use your aREST enabled device with pins in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.command_switch.markdown b/source/_components/switch.command_line.markdown similarity index 68% rename from source/_components/switch.command_switch.markdown rename to source/_components/switch.command_line.markdown index 333f2ba277c..6bba25ea65f 100644 --- a/source/_components/switch.command_switch.markdown +++ b/source/_components/switch.command_line.markdown @@ -1,12 +1,13 @@ --- -layout: component -title: "Command line switch" +layout: page +title: "Command line Switch" description: "Instructions how to have switches call command line commands." date: 2015-06-10 22:41 sidebar: true comments: false sharing: true footer: true +logo: command_line.png ha_category: Switch --- @@ -18,7 +19,7 @@ To enable it, add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry switch: - platform: command_switch + platform: command_line switches: kitchen_light: oncmd: switch_command on kitchen @@ -47,7 +48,7 @@ The example below is doing the same as the [aREST switch](/components/switch.are ```yaml # Example configuration.yaml entry switch: - platform: command_switch + platform: command_line switches: arest_pin4: oncmd: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/1" @@ -66,7 +67,7 @@ This switch will shutdown your host immediately, there will be no confirmation. ```yaml # Example configuration.yaml entry switch: - platform: command_switch + platform: command_line switches: Home Assistant system shutdown: offcmd: "/usr/sbin/poweroff" @@ -80,9 +81,25 @@ This switch will control a local VLC media player ([Source](https://automic.us/f ```yaml # Example configuration.yaml entry switch: - platform: command_switch + platform: command_line switches: VLC: oncmd: "cvlc 1.mp3 vlc://quit &" offcmd: "pkill vlc" ``` + +### {% linkable_title Control Foscam Motion Sensor %} + +This switch will control the motion sensor of Foscam Webcams which Support CGI Commands ([Source](http://www.ipcamcontrol.net/files/Foscam%20IPCamera%20CGI%20User%20Guide-V1.0.4.pdf)). This switch supports statecmd, which checks the current state of motion detection. +```yaml +# Example configuration.yaml entry +# Replace admin and password with an "Admin" priviledged Foscam user +# Replace ipaddress with the local IP address of your Foscam +switch: + platform: command_line + switches: + foscam_motion: + oncmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"' + offcmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"' + statecmd: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=)"' + value_template: '{{ value == "1" }}' diff --git a/source/_components/switch.dlink.markdown b/source/_components/switch.dlink.markdown new file mode 100644 index 00000000000..7be07433dd0 --- /dev/null +++ b/source/_components/switch.dlink.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "D-Link Switch" +description: "Instructions how to integrate D-Link switches into Home Assistant." +date: 2016-02-21 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: dlink.png +ha_category: Switch +ha_iot_class: "Local Polling" +--- + + +The `dlink` switch platform allows you to control the state of your [D-Link Wi-Fi Smart Plugs](http://us.dlink.com/product-category/home-solutions/connected-home/smart-plugs/). + +Supported devices (tested): + +- DSP-W215 + +To use your D-Link smart plugs in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + platform: dlink + host: IP_ADRRESS + name: D-Link plug + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` + +Configuration variables: + +- **host** (*Required*): The IP address of your D-Link plug, eg. http://192.168.1.32 +- **name** (*Optional*): The name to use when displaying this switch. +- **username** (*Required*): The username for your plug. Defaults to `admin`. +- **password** (*Required*): The password for your plug. + diff --git a/source/_components/switch.edimax.markdown b/source/_components/switch.edimax.markdown index 479d6fba0cd..b0078775a0c 100644 --- a/source/_components/switch.edimax.markdown +++ b/source/_components/switch.edimax.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Edimax switch" +layout: page +title: "Edimax Switch" description: "Instructions how to integrate Edimax switches into Home Assistant." date: 2015-06-10 22:54 sidebar: true @@ -12,7 +12,7 @@ ha_category: Switch --- -This edimax switch platform allows you to control the state of your [Edimax](http://www.edimax.com/edimax/merchandise/merchandise_list/data/edimax/global/home_automation_smart_plug/) switches. +This `edimax` switch platform allows you to control the state of your [Edimax](http://www.edimax.com/edimax/merchandise/merchandise_list/data/edimax/global/home_automation_smart_plug/) switches. To use your Edimax switch in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.hikvision.markdown b/source/_components/switch.hikvision.markdown index 05f3d47d00f..4665c48ef31 100644 --- a/source/_components/switch.hikvision.markdown +++ b/source/_components/switch.hikvision.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Hikvision camera" +layout: page +title: "Hikvision Camera Switch" description: "Instructions how to integrate Hikvision camera's into Home Assistant." date: 2015-06-10 22:54 sidebar: true @@ -8,11 +8,11 @@ comments: false sharing: true footer: true logo: hikvision.png -ha_category: Camera +ha_category: Switch --- -This hikvisioncam switch platform allows you to control your motion detection setting on your [Hikvision](http://www.hikvision.com/) camera. +This `hikvisioncam` switch platform allows you to control your motion detection setting on your [Hikvision](http://www.hikvision.com/) camera.Currently works using default https port only. diff --git a/source/_components/switch.markdown b/source/_components/switch.markdown index c42f4760403..8f181dc59b5 100644 --- a/source/_components/switch.markdown +++ b/source/_components/switch.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Switches" description: "Instructions how to setup your switches with Home Assistant." date: 2015-01-24 14:39 @@ -12,7 +12,7 @@ footer: true Keeps track which switches are in your environment, their state and allows you to control them. * Maintains a state per switch and a combined state `all_switches`. - * Registers services `switch/turn_on` and `switch/turn_off` to control switches. + * Registers services `switch/turn_on`, `switch/turn_off`, and `switch/toggle` to control switches. ### {% linkable_title Use the services %} diff --git a/source/_components/switch.mfi.markdown b/source/_components/switch.mfi.markdown new file mode 100644 index 00000000000..7c0bd1c582b --- /dev/null +++ b/source/_components/switch.mfi.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "mFi Switch" +description: "Instructions how to integrate mFi switches within Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Switch +--- + + +The `mfi` switch platform to allow you to control [mFi Controllable Power Outlets](https://www.ubnt.com/mfi/mpower/). + +To add this platform to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: mfi + host: IP_ADDRESS + port: PORT + username: USERNAME + password: PASSWORD + use_tls: true + verify_tls: true +``` + +Configuration variables: + +- **host** (*Required*): The IP address or hostname of your mFi controller. +- **port** (*Optional*): The port of your mFi controller. Defaults to 6443. +- **username** (*Required*): The mFi admin username. +- **password** (*Required*): The mFi admin user's password. +- **use_tls** (*Optional*): If true, use TLS to contact the mFi controller. Defaults to true. +- **verify_tls** (*Optional*): Set this to false if your mFi controller has a self-signed certificate. Defaults to true. diff --git a/source/_components/switch.modbus.markdown b/source/_components/switch.modbus.markdown index ff8c2d269c6..667b5a3dc78 100644 --- a/source/_components/switch.modbus.markdown +++ b/source/_components/switch.modbus.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Modbus switch" +layout: page +title: "Modbus Switch" description: "Instructions how to integrate Modbus switches into Home Assistant." date: 2015-08-30 23:38 sidebar: true @@ -12,7 +12,7 @@ ha_category: Switch --- -The modbus switch platform allows you to control [Modbus](http://www.modbus.org/) switches. +The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) switches. To use your Modbus switches in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.mqtt.markdown b/source/_components/switch.mqtt.markdown index 88f42a36e66..746b0b26da1 100644 --- a/source/_components/switch.mqtt.markdown +++ b/source/_components/switch.mqtt.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "MQTT switch" +layout: page +title: "MQTT Switch" description: "Instructions how to integrate MQTT switches into Home Assistant." date: 2015-08-30 23:38 sidebar: true @@ -19,7 +19,7 @@ When a state topic is not available, the switch will work in optimistic mode. In Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect switch operation. -To enable this s in your installation, add the following to your `configuration.yaml` file: +To enable this switch in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yml entry @@ -28,10 +28,11 @@ switch: name: "Bedroom Switch" state_topic: "home/bedroom/switch1" command_topic: "home/bedroom/switch1/set" - qos: 0 payload_on: "ON" payload_off: "OFF" optimistic: false + qos: 0 + retain: true value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` @@ -40,12 +41,13 @@ Configuration variables: - **name** (*Optional*): The name of the switch. Default is 'MQTT Switch'. - **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. - **command_topic** (*Required*): The MQTT topic to publish commands to change the switch state. -- **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". - **optimistic** (*Optional*): Flag that defines if switch works in optimistic mode. Default is true if no state topic defined, else false. -- **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload. +- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. +- **retain** (*Optional*): If the published message should have the retain flag on or not. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload.
- Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics. +Make sure that your topic match exact. `some-topic/` and `some-topic` are different topics.
diff --git a/source/_components/switch.mysensors.markdown b/source/_components/switch.mysensors.markdown index 00b90022d5b..f79cd8b8f29 100644 --- a/source/_components/switch.mysensors.markdown +++ b/source/_components/switch.mysensors.markdown @@ -1,8 +1,8 @@ --- -layout: component -title: "MySensors switches" +layout: page +title: "MySensors Switch" description: "Instructions how to integrate MySensors switches into Home Assistant." -date: 2016-01-17 15:49 +date: 2016-03-02 18:20 +0100 sidebar: true comments: false sharing: true @@ -14,4 +14,31 @@ featured: false Integrates MySensors switches into Home Assistant. See the [main component] for configuration instructions. +The following actuator types are supported: + +##### MySensors version 1.4 and higher + +S_TYPE | V_TYPE +---------|-------------- +S_DOOR | V_ARMED +S_MOTION | V_ARMED +S_SMOKE | V_ARMED +S_LIGHT | V_LIGHT +S_LOCK | V_LOCK_STATUS + +##### MySensors version 1.5 and higher + +S_TYPE | V_TYPE +-------------|------------------ +S_LIGHT | V_STATUS +S_BINARY | [V_STATUS or V_LIGHT] +S_SPRINKLER | V_STATUS +S_WATER_LEAK | V_ARMED +S_SOUND | V_ARMED +S_VIBRATION | V_ARMED +S_MOISTURE | V_ARMED + +For more information, visit the [serial api] of MySensors. + [main component]: /components/mysensors/ +[serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/switch.mystrom.markdown b/source/_components/switch.mystrom.markdown index eb6f281452e..e5bdac5b17d 100644 --- a/source/_components/switch.mystrom.markdown +++ b/source/_components/switch.mystrom.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "myStrom switch" +layout: page +title: "myStrom Switch" description: "Instructions how to integrate myStrom switches into Home Assistant." date: 2015-11-25 22:00 sidebar: true diff --git a/source/_components/switch.orvibo.markdown b/source/_components/switch.orvibo.markdown index 19c464e2438..b365802102a 100644 --- a/source/_components/switch.orvibo.markdown +++ b/source/_components/switch.orvibo.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Orvibo switch" +layout: page +title: "Orvibo Switch" description: "Instructions how to integrate Orvibo switches within Home Assistant." date: 2015-11-15 18:15 sidebar: true @@ -11,7 +11,7 @@ logo: orvibo.png ha_category: Switch --- -The orvibo switch platform allows you to toggle your Orvibo S20 Wifi Smart Switch. +The `orvibo` switch platform allows you to toggle your Orvibo S20 Wifi Smart Switch. To use your Orvibo switch in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.rest.markdown b/source/_components/switch.rest.markdown index ed7dfdc110c..3d56ca231b3 100644 --- a/source/_components/switch.rest.markdown +++ b/source/_components/switch.rest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "RESTful switch" +layout: page +title: "RESTful Switch" description: "Instructions how to integrate REST switches into Home Assistant." date: 2015-09-14 19:10 sidebar: true diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown index 24eea9da287..a0f7fbdd52d 100644 --- a/source/_components/switch.rfxtrx.markdown +++ b/source/_components/switch.rfxtrx.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "RFXtrx switch" +layout: page +title: "RFXtrx Switch" description: "Instructions how to integrate RFXtrx switches into Home Assistant." date: 2015-10-08 10:15 sidebar: true @@ -9,7 +9,8 @@ sharing: true footer: true ha_category: Switch --- -The rfxtrx platform support switches that communicate in the frequency range of 433.92 MHz. + +The `rfxtrx` platform support switches that communicate in the frequency range of 433.92 MHz. To enable RFXtrx switches in your installation, add the following to your `configuration.yaml` file: @@ -17,6 +18,7 @@ To enable RFXtrx switches in your installation, add the following to your `confi # Example configuration.yaml entry switch: platform: rfxtrx + signal_repetitions: 3 devices: living_room: name: Living Room @@ -28,4 +30,4 @@ Configuration variables: - **devices** (*Required*): A list of devices with their name to use in the frontend. - **automatic_add** (*Optional*): To enable the automatic addition of new switches. - +- **signal_repetitions** *Optional*: Because the rxftrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly. diff --git a/source/_components/switch.rpi_gpio.markdown b/source/_components/switch.rpi_gpio.markdown index 284352994b1..608ca7aa1ab 100644 --- a/source/_components/switch.rpi_gpio.markdown +++ b/source/_components/switch.rpi_gpio.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Raspberry PI GPIO switch" +layout: page +title: "Raspberry PI GPIO Switch" description: "Instructions how to integrate the GPIO of a Raspberry PI into Home Assistant as a switch." date: 2015-08-07 14:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Switch --- -The rpi_gpio switch platform allows you to control the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). +The `rpi_gpio` switch platform allows you to control the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/). To use your Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.scsgate.markdown b/source/_components/switch.scsgate.markdown new file mode 100644 index 00000000000..2c257b7ce4d --- /dev/null +++ b/source/_components/switch.scsgate.markdown @@ -0,0 +1,30 @@ +--- +layout: page +title: "SCSGate Switch" +description: "Instructions how to integrate SCSGate switches into Home Assistant." +date: 2016-01-31 22:15 +sidebar: true +comments: false +sharing: true +footer: true +logo: bus_scs.png +ha_category: Switch +--- + +The SCSGate device can control switches of the BTicino MyHome system. + +To enable SCSGate switches in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + platform: scsgate + devices: + living_room: + name: Living Room + scs_id: XXXXX +``` + +Configuration variables: + +- **devices** (*Required*): A list of devices with their name to use in the frontend. diff --git a/source/_components/switch.tellduslive.markdown b/source/_components/switch.tellduslive.markdown index ac38ab5f01f..eb2002814ab 100644 --- a/source/_components/switch.tellduslive.markdown +++ b/source/_components/switch.tellduslive.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Telldus Live switches" +layout: page +title: "Telldus Live Switch" description: "Instructions how to integrate Telldus Live switches into Home Assistant." date: 2016-01-17 15:49 sidebar: true diff --git a/source/_components/switch.tellstick.markdown b/source/_components/switch.tellstick.markdown index 21f22f825a3..055d445f07b 100644 --- a/source/_components/switch.tellstick.markdown +++ b/source/_components/switch.tellstick.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "TellStick switch" +layout: page +title: "TellStick Switch" description: "Instructions how to integrate TellStick switches into Home Assistant." date: 2015-08-06 19:00 sidebar: true @@ -9,10 +9,11 @@ sharing: true footer: true logo: telldus_tellstick.png ha_category: Switch +ha_iot_class: "Assumed State" --- -This tellstick switch platform allows you to control [TellStick](http://www.telldus.se/products/tellstick) devices. +This `tellstick` switch platform allows you to control [TellStick](http://www.telldus.se/products/tellstick) devices. To use your TellStick device in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.template.markdown b/source/_components/switch.template.markdown new file mode 100644 index 00000000000..2f5f627ec29 --- /dev/null +++ b/source/_components/switch.template.markdown @@ -0,0 +1,103 @@ +--- +layout: page +title: "Template switch" +description: "Instructions how to integrate Template switches into Home Assistant." +date: 2016-02-07 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Switch +--- + +The `template` platform creates switches that combine components. + +For example, if you have a garage door with a toggle switch that operates the motor and a sensor that allows you know whether the door is open or closed, you can combine these into a switch that knows whether the garage door is open or closed. + +This can simplify the gui, and make it easier to write automations. You can mark the components you have combined as `hidden` so they don't appear themselves. + +To enable Template switches in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + platform: template + switches: + skylight: + friendly_name: 'Skylight' + value_template: {% raw %}'{{ states.sensor.skylight.state }}'{% endraw %} + turn_on: + service: switch.turn_on + entity_id: switch.skylight_open + turn_off: + service: switch.turn_on + entity_id: switch.skylight_close +``` + +Configuration variables: + +- **switches** array (*Required*): List of your switches. + - **friendly_name** (*Optional*): Name to use in the Frontend. + - **value_template** (*Required*): Defines a [template](/topics/templating/) to set the state of the switch. + - **turn_on** (*Required*): Defines an [action](/getting-started/automation/) to run when the switch is turned on. + - **turn_off** (*Required*): Defines an [action](/getting-started/automation/) to run when the switch is turned off. + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this switch. + +### {% linkable_title Copy switch %} + +This example shows a switch that copies another switch. + +```yaml +switch: + platform: template + switches: + copy: + value_template: {% raw %}'{{ states.switch.source.state }}'{% endraw %} + turn_on: + service: switch.turn_on + entity_id: switch.source + turn_off: + service: switch.turn_off + entity_id: switch.source +```` + +### {% linkable_title Toggle switch %} + +This example shows a switch that takes its state from a sensor, and toggles a switch. + +```yaml +switch: + platform: template + switches: + blind: + friendly_name: 'Blind' + value_template: {% raw %}'{{ state }}'{% endraw %} + turn_on: + service: switch.toggle + entity_id: switch.blind_toggle + turn_off: + service: switch.toggle + entity_id: switch.blind_toggle +``` + +### {% linkable_title Sensor and two switches %} + +This example shows a switch that takes its state from a sensor, and uses two momentary switches to control a device. + +```yaml +switch: + platform: template + switches: + skylight: + friendly_name: 'Skylight' + value_template: {% raw %}'{{ states.sensor.skylight.state }}'{% endraw %} + turn_on: + service: switch.turn_on + entity_id: switch.skylight_open + turn_off: + service: switch.turn_on + entity_id: switch.skylight_close +``` diff --git a/source/_components/switch.transmission.markdown b/source/_components/switch.transmission.markdown index c6aa8e84cdf..e5a1e435127 100644 --- a/source/_components/switch.transmission.markdown +++ b/source/_components/switch.transmission.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Transmission switch" +layout: page +title: "Transmission Switch" description: "Instructions how to integrate Transmission within Home Assistant." date: 2015-06-02 09:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Switch --- -The transmission platform allows you to control your [Transmission](http://www.transmissionbt.com/) client from within Home Assistant. The platform enables you switch to your 'Alternative Speed Limits' (aka 'Turtle mode') setting. +The `transmission` switch platform allows you to control your [Transmission](http://www.transmissionbt.com/) client from within Home Assistant. The platform enables you switch to your 'Alternative Speed Limits' (aka 'Turtle mode') setting. To add Transmission to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.vera.markdown b/source/_components/switch.vera.markdown index 868d6301587..07bad9bea28 100644 --- a/source/_components/switch.vera.markdown +++ b/source/_components/switch.vera.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Vera switch" +layout: page +title: "Vera Switch" description: "Instructions how to integrate Vera switches into Home Assistant." date: 2015-10-20 21:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Switch --- -This vera switch platform allows you to control your [Vera](http://getvera.com/) switches. +This `vera` switch platform allows you to control your [Vera](http://getvera.com/) switches. To use your Vera switches in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/switch.verisure.markdown b/source/_components/switch.verisure.markdown new file mode 100644 index 00000000000..9367b292cff --- /dev/null +++ b/source/_components/switch.verisure.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Verisure SmartPlug" +description: "Instructions how to setup the Verisure SmartPlug within Home Assistant." +date: 2016-02-15 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: verisure.png +ha_category: Switch +--- + + +The Verisure switch platform allows you to control your [Verisure](https://www.verisure.com/) SmartPlugs. + +The requirement is that you have setup your [Verisure hub](/components/verisure/). + diff --git a/source/_components/switch.wemo.markdown b/source/_components/switch.wemo.markdown index 7692befbb08..a650562ca1b 100644 --- a/source/_components/switch.wemo.markdown +++ b/source/_components/switch.wemo.markdown @@ -1,23 +1,20 @@ --- -layout: component -title: "Belkin WeMo switch" +layout: page +title: "Belkin WeMo Switch" description: "Instructions how to integrate Belkin WeMo switches into Home Assistant." -date: 2015-03-23 19:59 +date: 2016-02-20 00:47 sidebar: true comments: false sharing: true footer: true logo: belkin_wemo.png ha_category: Switch +ha_iot_class: "Local Push" --- -The wemo platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F7C027/) switches from within Home Assistant. +The `wemo` platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F7C027/) switches from within Home Assistant. They will be automatically discovered if the discovery component is enabled. -```yaml -# Example configuration.yaml entry -switch: - platform: wemo -``` +For more configuration information see the [WeMo component](/components/wemo/) documentation. diff --git a/source/_components/switch.wink.markdown b/source/_components/switch.wink.markdown index 29ca5b82106..7dcb6c37990 100644 --- a/source/_components/switch.wink.markdown +++ b/source/_components/switch.wink.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Wink switch" +layout: page +title: "Wink Switch" description: "Instructions how to setup the Wink switches within Home Assistant." date: 2015-01-20 22:36 sidebar: true @@ -12,7 +12,7 @@ ha_category: Switch --- -The wink switch platform allows you to control your [Wink](http://www.wink.com/) switches. +The Wink switch platform allows you to control your [Wink](http://www.wink.com/) switches. -The requirement is that you have setup your [Wink hub](/components/light.wink/). +The requirement is that you have setup your [Wink hub](/components/wink/). diff --git a/source/_components/switch.zigbee.markdown b/source/_components/switch.zigbee.markdown new file mode 100644 index 00000000000..41097f32e68 --- /dev/null +++ b/source/_components/switch.zigbee.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "ZigBee Switch" +description: "Instructions on how to set up ZigBee switches within Home Assistant." +date: 2016-01-28 11:52 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: Switch +--- + +A ZigBee switch in this context is a device connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a switch is considered 'on' when the ZigBee device's digital output is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. + +To configure a digital output pin as a switch, use the following variables: + +- **name** (*Required*): The name you'd like to give the switch in Home Assistant. +- **platform** (*Required*): Set to `zigbee`. +- **pin** (*Required*): The number identifying which pin to use. +- **address**: The long 64bit address of the remote ZigBee device whose digital output pin you'd like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. +- **on_state**: Either `high` (default) or `low`, depicting whether the digital output pin is pulled high or low when the switch is turned on. + +#### Example + +```yaml +switch: + - name: Pond Fountain + platform: zigbee + pin: 0 + address: 0013A20040791FA2 + on_state: low +``` diff --git a/source/_components/switch.zwave.markdown b/source/_components/switch.zwave.markdown index 7ae6919567e..3b9f072fa12 100644 --- a/source/_components/switch.zwave.markdown +++ b/source/_components/switch.zwave.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Z-Wave switch" +layout: page +title: "Z-Wave Switch" description: "Instructions how to setup the Z-Wave switches within Home Assistant." date: 2015-11-15 13:00 sidebar: true diff --git a/source/_components/tellduslive.markdown b/source/_components/tellduslive.markdown index 9effddbb502..3898d4d89bb 100644 --- a/source/_components/tellduslive.markdown +++ b/source/_components/tellduslive.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Telldus Live" description: "Instructions how to integrate Telldus Live into Home Assistant." date: 2016-01-17 16:00 @@ -12,19 +12,33 @@ ha_category: Hub featured: false --- -[Telldus Live] is a cloud platform that connects to your Tellstick connected gear at home. +The `tellduslive` component let you connect to [Telldus Live](https://live.telldus.com). It's cloud platform that connects to your Tellstick connected gear at home. -[Telldus Live]: https://live.telldus.com +To get started using Telldus Live, you will have to obtain developer keys from the [developer page](https://api.telldus.com/keys/index). -To get started using Telldus Live, you will have to obtain developer keys from [here][developer-keys]. - -[developer-keys]: https://api.telldus.com/keys/index +To integrate your Telldus Live with Home Assistant, add the following section to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry tellduslive: - public_key: XX - private_key: XX - token: XX - token_secret: XX + public_key: ABCDEFGHJKLMNOPQRSTUVXYZ + private_key: ABCDEFGHJKLMNOPQRSTUVXYZ + token: ABCDEFGHJKLMNOPQRSTUVXYZ + token_secret: ABCDEFGHJKLMNOPQRSTUVXYZ ``` + +Configuration variables: + +- **public_key** (*Required*): The public key for the Telldus Live service. +- **private_key** (*Required*): The private key for the Telldus Live service. +- **token** (*Required*): The token for the Telldus Live service. +- **token_secret** (*Required*): The token secret for the Telldus Live service. + +Tellstick Net devices can be auto discovered using [this method](https://developer.telldus.com/doxygen/html/TellStickNet.html). + +It might be possible to communicate with the Tellstick Net device directly, bypassing the Tellstick Live service. This however is [poorly documented](http://developer.telldus.se/ticket/114) and yet not [fully supported](https://developer.telldus.com/doxygen/html/TellStickNet.html). + ++API requests to certain methods are limited to one request every 10 minutes. +
+ diff --git a/source/_components/tellstick.markdown b/source/_components/tellstick.markdown index 913415ece60..edca85a85b2 100644 --- a/source/_components/tellstick.markdown +++ b/source/_components/tellstick.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "TellStick" description: "Instructions how to integrate your TellStick into Home Assistant." date: 2015-03-28 13:06 @@ -12,7 +12,7 @@ ha_category: Hub --- -The tellstick component integrates [TellStick](http://www.telldus.se/products/tellstick) devices into Home Assistant. This integration allows users to add switches, lights, and sensors which are communicating with 433 Mhz. There are couple of vendors (Capidi Elro, Intertechno, Nexa, Proove, Sartano, and Viking) how are selling products which works with TellStick. For more details, please check the TellStick [compatibility list](http://telldus.se/products/compability). +The `tellstick` component integrates [TellStick](http://www.telldus.se/products/tellstick) devices into Home Assistant. This integration allows users to add switches, lights, and sensors which are communicating with 433 Mhz. There are a number of vendors (Capidi Elro, Intertechno, Nexa, Proove, Sartano, and Viking) who are selling products that work with TellStick. For more details, please check the TellStick [compatibility list](http://telldus.se/products/compability). To get started, add the devices to your `configuration.yaml` file. diff --git a/source/_components/thermostat.ecobee.markdown b/source/_components/thermostat.ecobee.markdown index eb25c3f2f29..d209c458a0f 100644 --- a/source/_components/thermostat.ecobee.markdown +++ b/source/_components/thermostat.ecobee.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Ecobee thermostat" +layout: page +title: "Ecobee Thermostat" description: "Instructions how to setup the Ecobee thermostats within Home Assistant." date: 2015-11-30 18:00 sidebar: true diff --git a/source/_components/thermostat.heat_control.markdown b/source/_components/thermostat.heat_control.markdown index d27bb3993bb..90fb0b6960c 100644 --- a/source/_components/thermostat.heat_control.markdown +++ b/source/_components/thermostat.heat_control.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Heat control" description: "Turn Home Assistant into a thermostat" date: 2015-03-23 19:59 @@ -20,6 +20,9 @@ thermostat: name: Study heater: switch.study_heater target_sensor: sensor.study_temperature + min_temp: 15 + max_temp: 21 + target_temp: 15 ``` Configuration variables: @@ -27,3 +30,6 @@ Configuration variables: - **name** (*Required*): Name of thermostat - **heater** (*Required*: `entity_id` for heater switch, must be a toggle device. - **target_sensor** (*Required*): `entity_id` for a temperature sensor, target_sensor.state must be temperature. +- **min_temp** (*Optional*): Set minimum set point available (default: 7) +- **max_temp** (*Optional*): Set maximum set point available (default: 35) +- **target_temp** (*Required*): Set default target temperature. Failure to set this variable will result in target temperature being set to null on startup. diff --git a/source/_components/thermostat.heatmiser.markdown b/source/_components/thermostat.heatmiser.markdown index a3bff2cf420..f528f579b0e 100644 --- a/source/_components/thermostat.heatmiser.markdown +++ b/source/_components/thermostat.heatmiser.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Heatmiser thermostat" +layout: page +title: "Heatmiser Thermostat" description: "Instructions how to integrate Heatmiser thermostats within Home Assistant." date: 2015-12-11 12:35 sidebar: true @@ -12,7 +12,9 @@ ha_category: Thermostat --- -The heatmiser thermostat platform let you control [Heatmiser DT/DT-E/PRT/PRT-E](http://www.heatmisershop.co.uk/heatmiser-slimline-programmable-room-thermostat/) thermostats from Heatmiser. The module itself is currently setup to work over a RS232 -> RS485 converter, therefore it connects over IP. +The `heatmiser` thermostat platform let you control [Heatmiser DT/DT-E/PRT/PRT-E](http://www.heatmisershop.co.uk/heatmiser-slimline-programmable-room-thermostat/) thermostats from Heatmiser. The module itself is currently setup to work over a RS232 -> RS485 converter, therefore it connects over IP. + +Further work would be required to get this setup to connect over Wifi, but the HeatmiserV3 python module being used is a full implementation of the V3 protocol. If you would like to contribute to making this work over wifi, please contact @andylockran on github. To set it up, add the following information to your `configuration.yaml` file: @@ -35,4 +37,4 @@ Configuration variables: - **port** (*Required*): The port that the interface is listening on. - **tstats** (*Required*): A list of thermostats activated on the gateway. - **id** (*Required*): The id of the thermostat as configured on the device itself -- **name** (*Required*): A friendly name for the themostat \ No newline at end of file +- **name** (*Required*): A friendly name for the themostat diff --git a/source/_components/thermostat.homematic.markdown b/source/_components/thermostat.homematic.markdown index b281ec41841..dc206f5a7ab 100644 --- a/source/_components/thermostat.homematic.markdown +++ b/source/_components/thermostat.homematic.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Homematic thermostat" +layout: page +title: "Homematic Thermostat" description: "Instructions how to integrate Homematic thermostats within Home Assistant." date: 2015-11-25 08:00 sidebar: true @@ -12,7 +12,7 @@ ha_category: Thermostat --- -The homematic thermostat platform let you control [Homematic](http://www.homematic.com/) thermostat from Home Assistant. Currently there is support for Homematic (HM-TC-IT-WM-W-EU, HM-CC-RT-DN) thermostats using Homegear or Homematic central (CCU1/CCU2). +The `homematic` thermostat platform let you control [Homematic](http://www.homematic.com/) thermostat from Home Assistant. Currently there is support for Homematic (HM-TC-IT-WM-W-EU, HM-CC-RT-DN) thermostats using Homegear or Homematic central (CCU1/CCU2). To set it up, add the following information to your `configuration.yaml` file: diff --git a/source/_components/thermostat.honeywell.markdown b/source/_components/thermostat.honeywell.markdown index baaaf7fd14a..03fa233019a 100644 --- a/source/_components/thermostat.honeywell.markdown +++ b/source/_components/thermostat.honeywell.markdown @@ -1,8 +1,8 @@ --- -layout: component -title: "Honeywell thermostat" +layout: page +title: "Honeywell Thermostat" description: "Instructions how to integrate Honeywell thermostats within Home Assistant." -date: 2015-11-09 17:15 +date: 2016-02-07 22:01 sidebar: true comments: false sharing: true @@ -12,7 +12,7 @@ ha_category: Thermostat --- -The honeywell thermostat platform let you control [Honeywell Connected](http://getconnected.honeywell.com/en/) thermostats from Home Assistant. +The `honeywell` thermostat platform let you control [Honeywell Connected](http://getconnected.honeywell.com/en/) thermostats from Home Assistant. To set it up, add the following information to your `configuration.yaml` file: @@ -21,6 +21,7 @@ thermostat: platform: honeywell username: YOUR_USERNAME password: YOUR_PASSWORD + region: REGION ``` Configuration variables: @@ -28,3 +29,4 @@ Configuration variables: - **username** (*Required*: The username of an user with access. - **password** (*Required*): The password for your given admin account. - **away_temperature** (*optional*): Heating setpoint when away mode is on. If omitted it defaults to 16.0 deg C. +- **region** (*optional*): Region identifier (either 'eu' or 'us'). Defaults to 'eu' if not provided. diff --git a/source/_components/thermostat.markdown b/source/_components/thermostat.markdown index d47b2728c4a..d003e41cfa5 100644 --- a/source/_components/thermostat.markdown +++ b/source/_components/thermostat.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Thermostats" description: "Instructions how to setup thermostats tracking within Home Assistant." date: 2015-01-20 22:36 diff --git a/source/_components/thermostat.nest.markdown b/source/_components/thermostat.nest.markdown index fc44ac1e08b..30c1b8c9005 100644 --- a/source/_components/thermostat.nest.markdown +++ b/source/_components/thermostat.nest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Nest thermostat" +layout: page +title: "Nest Thermostat" description: "Instructions how to integrate Nest thermostats within Home Assistant." date: 2015-03-23 19:59 sidebar: true @@ -9,26 +9,20 @@ sharing: true footer: true logo: nest_thermostat.png ha_category: Thermostat -featured: true --- -The nest thermostat platform let you control a thermostat from [Nest](https://nest.com). +The `nest` thermostat platform let you control a thermostat from [Nest](https://nest.com). To set it up, add the following information to your `configuration.yaml` file: ```yaml thermostat: platform: nest - username: USERNAME - password: PASSWORD ``` -Configuration variables: - -- **username** (*Required*): Your Nest username. -- **password** (*Required*): Your Nest password. -
You must have the [Nest component](https://home-assistant.io/components/nest/) configured to use this sensor.
diff --git a/source/_components/thermostat.proliphix.markdown b/source/_components/thermostat.proliphix.markdown index 6f8a4ce9b2c..c9c13f91d13 100644 --- a/source/_components/thermostat.proliphix.markdown +++ b/source/_components/thermostat.proliphix.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Proliphix thermostat" +layout: page +title: "Proliphix Thermostat" description: "Instructions how to integrate Proliphix thermostats within Home Assistant." date: 2016-01-15 08:00 sidebar: true diff --git a/source/_components/thermostat.radiotherm.markdown b/source/_components/thermostat.radiotherm.markdown index 37e9ae1999d..fc409933030 100644 --- a/source/_components/thermostat.radiotherm.markdown +++ b/source/_components/thermostat.radiotherm.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Radiotherm thermostat" +layout: page +title: "Radiotherm Thermostat" description: "Instructions how to integrate Radiotherm thermostats within Home Assistant." date: 2015-10-18 17:15 sidebar: true @@ -12,7 +12,7 @@ ha_category: Thermostat --- -The nest thermostat platform let you control a thermostat from [Radio Thermostat](http://www.radiothermostat.com/). +The `radiotherm` thermostat platform let you control a thermostat from [Radio Thermostat](http://www.radiothermostat.com/). The underlaying library supports: - CT50 V1.09 diff --git a/source/_components/updater.markdown b/source/_components/updater.markdown index 44d270b7b1e..980653e0cd9 100644 --- a/source/_components/updater.markdown +++ b/source/_components/updater.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Updater" description: "Detecting when Home Assistant updates are available." date: 2015-11-15 20:40 @@ -7,7 +7,7 @@ sidebar: true comments: false sharing: true footer: true -logo: updater.png +logo: home-assistant.png ha_category: Other --- diff --git a/source/_components/vera.markdown b/source/_components/vera.markdown index 4ceee75d400..782ca02cb7d 100644 --- a/source/_components/vera.markdown +++ b/source/_components/vera.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Vera" description: "Instructions how to setup Vera hubs within Home Assistant." date: 2015-03-23 20:04 diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown index 06c635ecb31..29199cef7ee 100644 --- a/source/_components/verisure.markdown +++ b/source/_components/verisure.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Verisure" description: "Instructions how to setup Verisure devices within Home Assistant." date: 2015-08-17 20:28 @@ -17,9 +17,11 @@ Home Assistant has support to integrate your [Verisure](https://www.verisure.com We support: - * Smartplugs - * Reading from thermometers and hygrometers integrated in various devices - * Reading alarm status + * Alarm + * Smartplugs + * Reading from thermometers and hygrometers integrated in various devices + * Mouse Detector + * Locks To integrate Verisure with Home Assistant, add the following section to your `configuration.yaml` file: @@ -32,6 +34,8 @@ verisure: hygrometers: 0 smartplugs: 1 thermometers: 0 + locks: 0 + mouse: 1 code_digits: 4 ``` @@ -42,6 +46,8 @@ Configuration variables: - **alarm** (*Optional*): Set to 1 to show alarm, 0 to disable. Default 1. - **hygrometers** (*Optional*): Set to 1 to show hygrometers, 0 to disable. Default 1. - **smartplugs** (*Optional*): Set to 1 to show smartplugs, 0 to disable. Default 1. +- **locks** (*Optional*): Set to 1 to show locks, 0 to disable. Default 1. - **thermometers** (*Optional*): Set to 1 to show thermometers, 0 to disable. Default 1. +- **mouse** (*Optional*): Set to 1 to show mouse detectors, 0 to disable. Default 1. - **code_digits** (*Optional*): Number of digits in PIN code. Default 4. diff --git a/source/_components/weblink.markdown b/source/_components/weblink.markdown new file mode 100644 index 00000000000..4d08fc67f6f --- /dev/null +++ b/source/_components/weblink.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "Weblink" +description: "Instructions how to setup Links within Home Assistant." +date: 2016-02-02 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: +ha_category: Other +--- + +The `weblinks` component allows you to display links in the Home Assistant frontend. + +To use this component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +weblink: + entities: + - name: Router + url: http://192.168.1.1/ + icon: mdi:router-wireless + - name: Home Assistant + url: https://home-assistant.io +``` +Configuration variables: + +- **name** (*Required*): Text for the link. +- **url** (*Required*): The URL for the link. +- **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/wemo.markdown b/source/_components/wemo.markdown new file mode 100644 index 00000000000..e2bf5c9236a --- /dev/null +++ b/source/_components/wemo.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "Belkin WeMo devices" +description: "Instructions how to integrate Belkin WeMo devices into Home Assistant." +date: 2016-02-20 00:41 +sidebar: true +comments: false +sharing: true +footer: true +logo: belkin_wemo.png +ha_category: Hub +--- + +The `wemo` component is the main component to integrate various [Belkin WeMo](http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/) devices with Home Assistant. + +Supported devices will be automatically discovered if the discovery component is enabled. If you are not using the discovery component, loading the `wemo` component will scan for WeMo devices on the local network. + +```yaml +# Example configuration.yaml entry +wemo: +``` + +Alternately, WeMo devices that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, and/or devices in a remote location reachable over a VPN, you will need to manually configure them. This is also useful if you wish to disable discovery for some wemos, even if they are local. Example static configuration: + +```yaml +wemo: + static: + - 192.168.1.23 + - 192.168.52.172 +``` + +Any WeMo devices that are not statically configured but reachable via discovery will still be added automatically. + +Note that if you use this, you may want to configure your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability. diff --git a/source/_components/wink.markdown b/source/_components/wink.markdown index bebe9368ac2..4cd2283687b 100644 --- a/source/_components/wink.markdown +++ b/source/_components/wink.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Wink" description: "Instructions how to setup the Wink hub within Home Assistant." date: 2015-01-20 22:36 diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown new file mode 100644 index 00000000000..01770a49e11 --- /dev/null +++ b/source/_components/zigbee.markdown @@ -0,0 +1,55 @@ +--- +layout: page +title: "ZigBee" +description: "Instructions on how to integrate a ZigBee network with Home Assistant." +date: 2016-01-27 17:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: DIY +--- + +[ZigBee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilise modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local ZigBee device to be connected over a serial port. Through this it will send and receive commands to and from other devices on the ZigBee mesh network. + +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](../binary_sensor.zigbee) (digital input pins) +- [Sensor](../sensor.zigbee) (analog input pins and temperature sensor) +- [Light](../light.zigbee) (digital output pins) +- [Switch](../switch.zigbee) (digital output pins) + +The local ZigBee device (assuming XBee) must have an up to date Router or Coordinator API firmware installed. + +## Configuration + +A `zigbee` section must be present in the `configuration.yaml` file and contain the following options as required: + +- **device**: The serial port to which the local ZigBee device is connected. Default: `/dev/ttyUSB0` + +- **baud**: The baud rate at which to communicate with the local ZigBee device. Default: `9600` + +#### Example + +```yaml +zigbee: + device: /dev/ttyUSB0 + baud: 115200 +``` + +Or to simply use the defaults: + +```yaml +zigbee: +``` + +To find the possible serial port names of your device, run: + +```bash +$ ls /dev/ttyUSB* +``` + ++The port may also appear as /dev/ttyACM* if you're communicating with the ZigBee device through an Arduino. +
diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index ceada253041..accd4824824 100644 --- a/source/_components/zone.markdown +++ b/source/_components/zone.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Zone" description: "Instructions how to setup zones within Home Assistant." date: 2015-10-04 09:23 @@ -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,23 @@ 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`. + +#### State + +`zoning` is the state a `zone` has when it is configured. A `zone` doesn't have another state, all configured zones are `zoning` all the time diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown index 1ec9fad3d4f..ba63c7785d0 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -1,8 +1,8 @@ --- -layout: component +layout: page title: "Z-Wave" description: "Instructions how to integrate your existing Z-Wave within Home Assistant." -date: 2015-03-23 19:59 +date: 2016-02-27 19:59 sidebar: true comments: false sharing: true @@ -15,33 +15,96 @@ ha_category: Hub There is currently support for switches, lights and sensors. All will be picked up automatically after configuring this platform. -### Installation +### {% linkable_title Installation %} -To allow Home Assistant to talk to your Z-Wave USB stick you will have to compile Python Open Z-Wave. This can be done using [this script](https://github.com/balloob/home-assistant/blob/dev/script/build_python_openzwave). _(The Home Assistant docker image has support for Z-Wave built-in)_ +To allow Home Assistant to talk to your Z-Wave USB stick you will have to compile the OpenZWave library and install the related [python-OpenZWave package](https://github.com/OpenZWave/python-openzwave). This can be done as follows. _(Note: The Home Assistant docker image has support for Z-Wave built-in)_ Make sure you have the correct dependencies installed before running the script: ```bash -$ apt-get install cython3 libudev-dev python-sphinx python3-setuptools -$ pip3 install "cython<0.23" +$ sudo apt-get install cython3 libudev-dev python3-sphinx python3-setuptools ``` -### Configuration +Make sure you have at least version 0.23 of cython. + +```bash +$ sudo pip3 install --upgrade cython +``` + +Then get the OpenZWave files and switch to the `python3` branch: + +```bash +$ git clone https://github.com/OpenZWave/python-openzwave.git +$ cd python-openzwave +$ git checkout python3 +$ PYTHON_EXEC=`which python3` make build +$ sudo PYTHON_EXEC=`which python3` make install +``` ++Instead of `make install`, you can alternatively build your own python-openzwave package which can be easily uninstalled: + +`$ sudo PYTHON_EXEC=`which python3` checkinstall --pkgname python-openzwave --pkgversion 1.0 --provides python-openzwave` + +
+ +With this installation, your `config_path` needed below will resemble: + +```bash +/usr/local/lib/python3.4/dist-packages/libopenzwave-0.3.0b8-py3.4-linux-x86_64.egg/config +``` + + +### {% linkable_title Configuration %} ```yaml # Example configuration.yaml entry zwave: usb_path: /dev/ttyUSB0 config_path: /usr/local/share/python-openzwave/config + polling_interval: 10000 + customize: + sensor.greenwave_powernode_6_port_energy_10: + polling_intensity: 1 ``` Configuration variables: - **usb_path** (*Required*): The port where your device is connected to your Home Assistant host. - **config_path** (*Optional*): The path to the Python Open Z-Wave configuration files. +- **polling_interval** (*Optional*): The time period in milliseconds between polls of a nodes value. +- **customize** (*Optional*): This attribute contains node-specific override values: + - **polling_intensity** (*Optional*): Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2-every other time, etc) To find the path of your Z-Wave stick, run: ```bash $ ls /dev/ttyUSB* ``` + +Or, on some other systems (such as Raspberry Pi), use: + +```bash +$ ls /dev/ttyACM* +``` + ++Depending on what's plugged into your USB ports, the name found above may change. You an lock in a name, such as `/dev/zwave`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/). +
+ +#### {% linkable_title Events %} + +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 +# Example configuration.yaml automation entry +automation: + - alias: Turn on Desk light + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_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. diff --git a/source/_cookbook/automation_for_rainy_days.markdown b/source/_cookbook/automation_for_rainy_days.markdown index 63d78ce3d4c..566a3001102 100644 --- a/source/_cookbook/automation_for_rainy_days.markdown +++ b/source/_cookbook/automation_for_rainy_days.markdown @@ -3,15 +3,14 @@ layout: page title: "Automation for rainy days" description: "Basic example how to use weather conditions to set states" date: 2015-10-08 19:05 -sidebar: false +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- -### {% linkable_title Rainy Day Light %} - -This requires a [forecast.io](components/sensor.forecast/) sensor with the condition `weather_precip` that tells if it's raining or not. +This requires a [forecast.io](/components/sensor.forecast/) sensor with the condition `weather_precip` that tells if it's raining or not. Turn on a light in the living room when it starts raining, someone is home, and it's afternoon or later. diff --git a/source/_cookbook/automation_sun.markdown b/source/_cookbook/automation_sun.markdown index 54b986a9dec..73878464180 100644 --- a/source/_cookbook/automation_sun.markdown +++ b/source/_cookbook/automation_sun.markdown @@ -1,12 +1,13 @@ --- layout: page -title: "Automation examples using the sun" +title: "Examples using the sun" description: "Automation examples that use the sun." date: 2015-10-08 19:05 -sidebar: false +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- #### {% linkable_title Turn on the living room lights 45 minutes before sunset if anyone home %} diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown new file mode 100644 index 00000000000..02c3cd1a443 --- /dev/null +++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown @@ -0,0 +1,42 @@ +--- +layout: page +title: "Using time interval and input boolean" +description: "Automation to get a random color every 2 minutes that can be turned on/off." +date: 2016-02-07 22:35 +0800 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation Examples +--- + +#### {% linkable_title Change Hue light on interval to random color based on state of a input boolean %} + +_Note, Philips Hue is currently the only light platform that support the random effect._ + +```yaml +input_boolean: + loop_livingcolors: + name: Loop LivingColors + initial: off + icon: mdi:spotlight + +automation: +# Changes Hue light every two minutes to random color if input boolean is set to on +- alias: 'Set LivingColors to random color' + trigger: + platform: time + minutes: '/2' + seconds: 0 + condition: + platform: state + entity_id: input_boolean.loop_livingcolors + state: 'on' + action: + service: light.turn_on + entity_id: light.woonkamer_livingcolors + data: + effect: random + transition: 5 + brightness: 255 +``` diff --git a/source/_cookbook/basic_example_use_trigger_values.markdown b/source/_cookbook/basic_example_use_trigger_values.markdown index cbff5a43b62..7c062317aac 100644 --- a/source/_cookbook/basic_example_use_trigger_values.markdown +++ b/source/_cookbook/basic_example_use_trigger_values.markdown @@ -1,16 +1,15 @@ --- layout: page -title: "Automation: use_trigger_values" +title: "Example using use_trigger_values" description: "Basic example how to use use_trigger_values in automation" date: 2015-10-08 19:05 -sidebar: false +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- -### {% linkable_title Basic example for use_trigger_values %} - Turn on lights during daytime when it's dark enough < 200 lux. ```yaml diff --git a/source/_cookbook/configuration_yaml_by_brusc.markdown b/source/_cookbook/configuration_yaml_by_brusc.markdown new file mode 100644 index 00000000000..762bf536e65 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_brusc.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Configuration.yaml by brusc" +description: "" +date: 2016-03-14 11:45 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/brusc/Home-Assistant-Configuration +--- + diff --git a/source/_cookbook/configuration_yaml_by_carlo_costanzo.markdown b/source/_cookbook/configuration_yaml_by_carlo_costanzo.markdown new file mode 100644 index 00000000000..e60659cb24d --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_carlo_costanzo.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Configuration.yaml by Carlo Costanzo" +description: "" +date: 2016-02-07 11:45 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://gist.github.com/CCOSTAN/9934de973a293b809868 +--- + diff --git a/source/_cookbook/configuration_yaml_by_danichispa.markdown b/source/_cookbook/configuration_yaml_by_danichispa.markdown new file mode 100644 index 00000000000..b211599c778 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_danichispa.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Configuration.yaml by Danichispa" +description: "" +date: 2016-02-20 02:19 -0800 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/danichispa/hass-config +--- + diff --git a/source/_cookbook/configuration_yaml_by_greenturtwig.markdown b/source/_cookbook/configuration_yaml_by_greenturtwig.markdown new file mode 100644 index 00000000000..dcb11f84540 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_greenturtwig.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Configuration.yaml by GreenTurtwig" +description: "" +date: 2016-02-13 13:51 +0700 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/GreenTurtwig/personal-home-automation/tree/master/Home%20Assistant +--- + diff --git a/source/_cookbook/configuration_yaml_by_happyleavesaoc.markdown b/source/_cookbook/configuration_yaml_by_happyleavesaoc.markdown new file mode 100644 index 00000000000..33fc4f05040 --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_happyleavesaoc.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Configuration.yaml by happyleavesaoc" +description: "" +date: 2016-02-07 11:45 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/happyleavesaoc/my-home-automation/tree/master/homeassistant +--- + diff --git a/source/_cookbook/customize_polling_interval.markdown b/source/_cookbook/customize_polling_interval.markdown new file mode 100644 index 00000000000..e6aff18ebe8 --- /dev/null +++ b/source/_cookbook/customize_polling_interval.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Customize polling interval for any component" +description: "Shows how to customize polling interval for any component via configuration.yaml." +date: 2016-02-12 23:17 -0800 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +--- + +Platforms that require polling will be polled in an interval specified by the main component. For example a light will check every 30 seconds for a changed state. It is possible to overwrite this scan interval for any platform that is being polled by specifying a `scan_interval` config key. In the example below we setup the Philips Hue lights but tell Home Assistant to poll the devices every 10 seconds instead of the default 30 seconds. + +```yaml +# Example configuration.yaml entry to poll Hue lights every 10 seconds. +light: + platform: hue + scan_interval: 10 +``` diff --git a/source/_cookbook/dim_lights_when_playing_media.markdown b/source/_cookbook/dim_lights_when_playing_media.markdown index 488d5752b96..92bea514ca4 100644 --- a/source/_cookbook/dim_lights_when_playing_media.markdown +++ b/source/_cookbook/dim_lights_when_playing_media.markdown @@ -3,10 +3,11 @@ layout: page title: "Dim lights when playing media" description: "Dim lights up or down when playing media" date: 2015-10-15 19:05 -sidebar: false +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- Like it how the lights dim up/down at the movies? Do it at home as well! diff --git a/source/_cookbook/foscam_away_mode_PTZ.markdown b/source/_cookbook/foscam_away_mode_PTZ.markdown new file mode 100644 index 00000000000..3ac9578ccce --- /dev/null +++ b/source/_cookbook/foscam_away_mode_PTZ.markdown @@ -0,0 +1,84 @@ +--- +layout: page +title: "Foscam Recording during Away Mode Only using Pan/Tilt/Zoom Control and Motion Detection" +description: "Example of how to set Foscam to only have Motion Detection Recording while no one is home. When users are home the Foscam will indicate it is not recording by pointing down and away from users" +date: 2016-03-10 13:05 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation Examples +--- + +This requires a [Foscam IP Camera](/components/camera.foscam/) camera with PTZ (Pan, Tilt, Zoom) and CGI functionality ([Source](http://www.ipcamcontrol.net/files/Foscam%20IPCamera%20CGI%20User%20Guide-V1.0.4.pdf)) + +Foscam Cameras can be controlled by Home Assistant through a number of CGI commands. +The following outlines examples of the switch, services, and scripts required to move between 2 preset destinations while controlling motion detection, but many other options of movement are provided in the Foscam CGI User Guide linked above. + +The `switch.foscam_motion` will control whether the motion detection is on or off. This switch supports `statecmd`, which checks the current state of motion detection. + +```yaml +# Replace admin and password with an "Admin" priviledged Foscam user +# Replace ipaddress with the local IP address of your Foscam +switch: + platform: command_line + switches: + #Switch for Foscam Motion Detection + foscam_motion: + oncmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"' + offcmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"' + statecmd: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=)"' + value_template: '{{ value == "1" }}' +``` + +The service `shell_command.foscam_turn_off` sets the camera to point down and away to indicate it is not recording, and `shell_command.foscam_turn_on` sets the camera to point where I'd like to record. h of these services require preset points to be added to your camera. See source above for additional information. + +```yaml +shell_command: + #Created a preset point in Foscam Web Interface named Off which essentially points the camera down and away + foscam_turn_off: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=Off&usr=admin&pwd=password"' + #Created a preset point in Foscam Web Interface named Main which points in the direction I would like to record + foscam_turn_on: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=Main&usr=admin&pwd=password"' +``` + +The `script.foscam_off` and `script.foscam_on` can be used to set the motion detection appropriately, and then move the camera. These scripts can be called as part of an automation with `device_tracker` triggers to set `home` and `not_home` modes for your Foscam and disable motion detection recording while `home`. + +```yaml +script: + foscam_off: + sequence: + - execute_service: switch.turn_off + service_data: + entity_id: switch.foscam_motion + - service: shell_command.foscam_turn_off + foscam_on: + sequence: + - execute_service: switch.turn_off + service_data: + entity_id: switch.foscam_motion + - service: shell_command.foscam_turn_on + - execute_service: switch.turn_on + service_data: + entity_id: switch.foscam_motion +``` + +To automate Foscam being set to "on" (facing the correct way with motion sensor on), I used the following simple automation: + +```yaml +automation: + - alias: Set Foscam to Away Mode when I leave home + trigger: + platform: state + entity_id: group.family + from: 'home' + action: + service: script.foscam_on + - alias: Set Foscam to Home Mode when I arrive Home + trigger: + platform: state + entity_id: group.family + to: 'home' + action: + service: script.foscam_off +``` + diff --git a/source/_cookbook/notify_if_over_threshold.markdown b/source/_cookbook/notify_if_over_threshold.markdown new file mode 100644 index 00000000000..a7651eb534f --- /dev/null +++ b/source/_cookbook/notify_if_over_threshold.markdown @@ -0,0 +1,48 @@ +--- +layout: page +title: "Send notification based on sensor" +description: "Basic example of how to send a templated notification if a sensor is over a given threshold" +date: 2016-02-25 15:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation Examples +--- + +The following example sends a notification via pushbullet if a sensor is over a critical value: + +```yaml + +notify me: + platform: pushbullet + api_key: "API_KEY_HERE" + name: mypushbullet + +automation: + - alias: FanOn + trigger: + platform: numeric_state + entity_id: sensor.furnace + above: 2 + action: + service: notify.mypushbullet + data: + title: "Furnace fan is running" + message: "Fan running because current is {% raw %}{{ states.sensor.furnace.state }}{% endraw %} amps" +``` + +If you also want a notification when it drops back down below that limit, you could add this as well: + +```yaml + - alias: FanOff + trigger: + platform: numeric_state + entity_id: sensor.furnace + below: 2 + action: + service: notify.mypushbullet + data: + title: "Furnace fan is stopped" + message: "Fan stopped because current is {% raw %}{{ states.sensor.furnace.state }}{% endraw %} amps" +``` diff --git a/source/_cookbook/perform_actions_based_on_input_select.markdown b/source/_cookbook/perform_actions_based_on_input_select.markdown new file mode 100644 index 00000000000..63372ff3325 --- /dev/null +++ b/source/_cookbook/perform_actions_based_on_input_select.markdown @@ -0,0 +1,77 @@ +--- +layout: page +title: "Perform actions based on input select" +description: "Example playing media to chromecast based on input select element" +date: 2016-03-07 12:05 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation Examples +--- + +This example uses an [`input_select`](/components/input_select/) element to pick which mp3 file to play on a [Chromecast](components/media_player.cast/). + +```yaml +# Define our dropdown list +input_select: + lullaby: + name: Lullaby + options: + - Rain + - Babbling Brook + - None + initial: None + icon: mdi:weather-rainy + +# Define our media player +media_player: + - platform: cast + host: chromecast-nursery + name: Nursery + +automation: + # If you select "Rain", play the "rain.mp3" file + - alias: Play Rain Lullaby + + trigger: + platform: state + entity_id: input_select.lullaby + to: "Rain" + + action: + service: media_player.play_media + data: + entity_id: media_player.nursery + media_id: http://fileserver/rain.mp3 + media_type: audio/mp4 + + + # If you select "Babbling Brook", play the "babbling_brook.mp3" file + - alias: Play Babbling Brook Lullaby + + trigger: + platform: state + entity_id: input_select.lullaby + to: "Babbling Brook" + + action: + service: media_player.play_media + data: + entity_id: media_player.nursery + media_id: http://fileserver/babbling_brook.mp3 + media_type: audio/mp4 + + # If you select "None, turn the Chromecast off + - alias: Stop the Lullaby + + trigger: + platform: state + entity_id: input_select.lullaby + to: "None" + + action: + service: media_player.turn_off + data: + entity_id: media_player.nursery +``` diff --git a/source/_cookbook/python_component_basic_service.markdown b/source/_cookbook/python_component_basic_service.markdown new file mode 100644 index 00000000000..e6f6bd6b367 --- /dev/null +++ b/source/_cookbook/python_component_basic_service.markdown @@ -0,0 +1,56 @@ +--- +layout: page +title: "Basic Service Example" +description: "" +date: 2016-02-07 12:13 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Custom Python Component Examples +--- + +This is a simple "hello world" example to show the basics of registering a service. To use this example, create the file `+This example requires you to have the [MQTT component](/components/mqtt/) up and running. +
+ +This is a simple hello world example to show the basics of using MQTT in a custom component. To use this example, create the file `View examples by the community.
diff --git a/source/_includes/custom/header.html b/source/_includes/custom/header.html index f2a42ff7be8..15f04816fdc 100644 --- a/source/_includes/custom/header.html +++ b/source/_includes/custom/header.html @@ -1,6 +1,6 @@ diff --git a/source/_includes/custom/navigation.html b/source/_includes/custom/navigation.html index 52f378b5495..2653839f67b 100644 --- a/source/_includes/custom/navigation.html +++ b/source/_includes/custom/navigation.html @@ -1,32 +1,33 @@ diff --git a/source/_includes/edit_github.html b/source/_includes/edit_github.html index 22c4a524ce9..be883cf42a2 100644 --- a/source/_includes/edit_github.html +++ b/source/_includes/edit_github.html @@ -1 +1,3 @@ - \ No newline at end of file +{% if page.hide_github_edit != true %} + +{% endif %} \ No newline at end of file diff --git a/source/_includes/site/sidebar.html b/source/_includes/site/sidebar.html index 862c78ffe8a..e7b0e2dbaaa 100644 --- a/source/_includes/site/sidebar.html +++ b/source/_includes/site/sidebar.html @@ -2,6 +2,8 @@ {% assign url_parts = page.url | split: '/' %} {% if url_parts[1] == 'components' %} {% include asides/component_navigation.html | compact_newlines %} + {% elsif url_parts[1] == 'cookbook' %} + {% include asides/cookbook_navigation.html | compact_newlines %} {% else %} {% include asides/about.html %} diff --git a/source/_layouts/component.html b/source/_layouts/component.html deleted file mode 100644 index 3f387fde493..00000000000 --- a/source/_layouts/component.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default ---- - -
+
+Example of the new views in the frontend. Learn more.
+
+
+
+
+
+
+ SmartThings Bridge Sequence
+
Classifier | +Description | +|
---|---|---|
+ | Assumed State | ++ We are unable to get the state of the device. Best we can do is to assume the state based on our last command. + | +
+ | Cloud Polling | ++ Integration of this device happens via the cloud and requires an active internet connection. Polling the state means that an update might be noticed later. + | +
+ | Cloud Push | ++ Integration of this device happens via the cloud and requires an active internet connection. Home Assistant will be notified as soon as a new state is available. + | +
+ | Local Polling | ++ Offers direct communication with device. Polling the state means that an update might be noticed later. + | +
+ | Local Push | ++ Offers direct communication with device. Home Assistant will be notified as soon as a new state is available. + | +
+
+ Examples of the new [input_select] and [weblink] components.
+
+
+
+
+Hold your NFC tag against the belly of Garfield to unlock the alarm.
+
+
+ Camera feeds are now directly embedded in the frontend.
+
+Use the service developer tool in the frontend to discover available services. +
+ +### {% linkable_title The basics %} + +Call the service `homeassistant.turn_on` on the entity `group.living_room`. This will turn all members of `group.living_room` on. You can also omit `entity_id` and it will turn on all possible entities. + +```yaml +automation: +- trigger: + platform: sun + event: sunset + action: + service: homeassistant.turn_on + entity_id: group.living_room +``` + +### {% linkable_title Passing data to the service call %} + +You can also specify other parameters beside the entity to target. For example, the light turn on service allows specifying the brightness. + +```yaml +automation: +- trigger: + platform: sun + event: sunset + action: + service: light.turn_on + entity_id: group.living_room + data: + brightness: 120 + rgb_color: [255, 0, 0] +``` + +### {% linkable_title Use templates to decide which service to call %} + +You can use [templating] support to dynamically choose which service to call. For example, you can call a certain service based on if a light is on. + +```yaml +automation: +- trigger: + platform: sun + event: sunset + action: + service_template: > + {% raw %}{% if states.sensor.temperature | float > 15 %} + switch.turn_on + {% else %} + switch.turn_off + {% endif %}{% endraw %} + entity_id: switch.ac +``` + +### {% linkable_title Use templates to determine the attributes %} + +Templates can also be used for the data that you pass to the service call. + +```yaml +automation: +- trigger: + platform: sun + event: sunset + action: + service_template: thermostat.set_temperature + data_template: + entity_id: > + {% raw %}{% if is_state('device_tracker.paulus', 'home') %} + thermostat.upstairs + {% else %} + thermostat.downstairs + {% endif %}{% endraw %} + temperature: {% raw %}{{ 22 - distance(states.device_tracker.paulus) }}{% endraw %} +``` + +[templating]: /topics/templating/ diff --git a/source/_topics/state_object.markdown b/source/_topics/state_object.markdown new file mode 100644 index 00000000000..1f1a16425f3 --- /dev/null +++ b/source/_topics/state_object.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "State Objects" +description: "Describes all there is to know about state objects in Home Assistant." +date: 2016-03-12 12:00 -0800 +sidebar: false +comments: false +sharing: true +footer: true +--- + +Your devices are represented in Home Assistant as entities. The entities will write their current state to the state machine for other entities/templates/frontend to access. States are a current representation of the entity. + +If you overwrite a state via the states dev tool or the API, it will not impact the actual device. If the device state is being polled, it will overwrite the state in the state machine the next polling. + +All states will always have an entity id, a state and a timestamp when last updated and last changed. + +Field | Description +----- | ----------- +`state.entity_id` | Entity ID. Format: `-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: @@ -52,36 +52,54 @@ script: {% endif %}{% endraw %} ``` -### {% linkable_title Home Assistant template extensions %} +## {% linkable_title Home Assistant template extensions %} 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. + - `now` will be rendered as current time in your time zone. + - `utcnow` will be rendered as UTC time. + - `distance()` will measure the distance in meters between home, entity, coordinates. + - `closest()` will find the closest entity. -#### {% linkable_title Examples %} + +## {% linkable_title Examples %} + +### {% linkable_title States %} +Next two statements result in same value if state exists. Second one will result in an error if state does not exist. ```jinja2 {% raw %} -# Next two statements result in same value if state exists -# Second one will result in an error if state does not exist {{ states('device_tracker.paulus') }} -{{ states.device_tracker.paulus.state }} +{{ states.device_tracker.paulus.state }}{% endraw %} +``` -# Print an attribute if state is defined +### {% linkable_title Attributes %} + +Print an attribute if state is defined + +```jinja2 +{% raw %} {% if states.device_tracker.paulus %} {{ states.device_tracker.paulus.attributes.battery }} {% else %} ?? -{% endif %} +{% endif %}{% endraw %} +``` -# Print out a list of all the sensor states +### {% linkable_title Sensor states %} + +Print out a list of all the sensor states. + +```jinja2 +{% raw %} {% for state in states.sensor %} {{ state.entity_id }}={{ state.state }}, {% endfor %} @@ -99,9 +117,53 @@ Home Assistant adds extensions to allow templates to access all of the current s {%endif %}{% endraw %} ``` +### {% linkable_title Distance examples %} + +If only 1 location is passed in will measure the distance from home. + +```jinja2 +{% raw %} +Using Lat Lng coordinates: {{ distance(123.45, 123.45) }} + +Using State: {{ distance(device_tracker.paulus) }} + +These can also be combined in any combination: +{{ distance(123.45, 123.45, device_tracker.paulus) }} +{{ distance(device_tracker.anne_therese, device_tracker.paulus) }}{% endraw %} +``` + +### {% linkable_title Closest examples %} + +Find entities closest to the Home Assistant location: + +```jinja2 +{% raw %} +Query all entities: {{ closest(states) }} +Query all entities of a specific domain: {{ closest(states.device_tracker) }} +Query all entities in group.children: {{ closest('group.children') }} +Query all entities in group.children: {{ closest(states.group.children) }}{% endraw %} +``` + +Find entities closest to a coordinate or another entity. All previous arguments still apply for 2nd argument. + +```jinja2 +{% raw %} +Closest to a coordinate: {{ closest(23.456, 23.456, 'group.children') }} +Closest to an entity: {{ closest('zone.school', 'group.children') }} +Closest to an entity: {{ closest(states.zone.school, 'group.children') }}{% endraw %} +``` + +### {% linkable_title Combined %} +Since closest returns a state, we can combine it with distance too + +```jinja2 +{% raw %} +{{ closest(states).name }} is {{ distance(closest(states)) }} meters away.{% endraw %} +``` + ## {% 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/components/index.html b/source/components/index.html index 14f582cd103..87b08f3085b 100644 --- a/source/components/index.html +++ b/source/components/index.html @@ -8,6 +8,7 @@ comments: false sharing: true footer: true is_homepage: true +hide_github_edit: true body_id: components-page regenerate: true --- @@ -35,7 +36,9 @@ Support for these components is provided by the Home Assistant community.pip3 install homeassistant
hass --open-ui
Here are some resources to get started.configuration.yaml
and disable the introduction
component.pip3 install homeassistant
hass --open-ui
Here are some resources to get started.configuration.yaml
and disable the introduction
component.Call a service from a component.
Call a service from a component.
Fire an event on the event bus.
Fire an event on the event bus.
Templates are rendered using the Jinja2 template engine with some Home Assistant specific extensions.
[[processed]]
[[stateObj.attributes.description]]
[[stateObj.attributes.errors]]
[[stateObj.attributes.description]]
[[stateObj.attributes.errors]]