diff --git a/.gitmodules b/.gitmodules index e590545c1cb..23f4fc92120 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "_deploy"] path = _deploy - url = https://github.com/balloob/home-assistant.git - branch = gh-pages + url = https://github.com/home-assistant/home-assistant.git + branch = gh-pages diff --git a/Gemfile b/Gemfile index f213d9565a3..85457e9947c 100644 --- a/Gemfile +++ b/Gemfile @@ -15,6 +15,7 @@ group :development do gem 'execjs' gem 'therubyracer', :platforms => :ruby gem 'coderay' + gem 'pry' end group :jekyll_plugins do diff --git a/Gemfile.lock b/Gemfile.lock index a31cd5b321c..edcea1a3d9a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -38,6 +38,7 @@ GEM rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) mercenary (0.3.5) + method_source (0.8.2) octopress (3.0.11) jekyll (>= 2.0) mercenary (~> 0.3.2) @@ -63,6 +64,10 @@ GEM octopress-tag-helpers (1.0.8) jekyll (>= 2.0) posix-spawn (0.3.11) + pry (0.10.3) + coderay (~> 1.1.0) + method_source (~> 0.8.1) + slop (~> 3.4) pygments.rb (0.6.3) posix-spawn (~> 0.3.6) yajl-ruby (~> 1.2.0) @@ -87,6 +92,7 @@ GEM rack (~> 1.4) rack-protection (~> 1.4) tilt (>= 1.3, < 3) + slop (3.6.0) stringex (1.4.0) therubyracer (0.12.2) libv8 (~> 3.16.14.0) @@ -111,6 +117,7 @@ DEPENDENCIES octopress (~> 3.0) octopress-filters octopress-include-tag + pry pygments.rb (~> 0.6.3) rake (~> 10.0) rb-fsevent (~> 0.9) diff --git a/README.markdown b/README.markdown index d7531a67054..4f5f2528c9c 100644 --- a/README.markdown +++ b/README.markdown @@ -1,31 +1,10 @@ # Home Assistant website -This is the source for the [Home Assistant](https://github.com/balloob/home-assistant) website available at [Home-Assistant.io](https://home-assistant.io). All commits made to the `master` branch will be automatically pushed to production. - -Please point your Pull Request (PR) at the `next` branch. - -## Jekyll project to generate and deploy - -| Command | Action | -|---|---| -| `rake preview` | Preview site on [http://127.0.0.1:4000](http://127.0.0.1:4000) -| `rake generate` | Generate new version of the site -| `rake deploy` | Deploy a new version of the site - -_Generating and deploying is no longer necessary as we now have auto-deply._ +This is the source for the [Home-Assistant.io website](https://home-assistant.io) for the [Home Assistant project](https://github.com/home-assistant/home-assistant) ## Setup -_You need to have Ruby installed._ - -- [Ruby installation instructions](https://www.ruby-lang.org/en/documentation/installation/) -- For Fedora and CentOS check the last section of this file. - -```bash -$ git clone --recursive https://github.com/balloob/home-assistant.io.git -$ cd home-assistant.io -$ bundle -``` +Setting up to contribute to documentation and the process for submitting pull requests is [explained here](https://home-assistant.io/developers/website/). ## Create a new blog post @@ -39,23 +18,8 @@ $ rake new_post["title"] $ rake preview ``` -The preview is now available on [http://127.0.0.1:4000](http://127.0.0.1:4000). +This makes the preview available on [http://127.0.0.1:4000](http://127.0.0.1:4000). -## Steps for the deployment of the site - -All developers with write access to the repositories are able to deploy the website. The deploy process is fully automated with `rake generate && rake deploy`. - -```bash -$ git submodule update --init -$ cd _deploy -$ git fetch -$ git pull origin gh-pages -$ cd .. -$ rake generate && rake deploy -``` -```bash -TZ=UTC rake generate && rake deploy -``` ### Setup on Fedora and CentOS On Fedora > 22 or CentOS 7.1.1503 Ruby is not available by default. Please take the notes here as a little guide for the Ruby installation process. @@ -76,4 +40,4 @@ The last command will give you something like this `ruby 2.2.3p173 (2015-08-18 r $ gem install bundler ``` -Now please follow the Setup instructions above. +Now you can follow the [setup instructions](https://home-assistant.io/developers/website/). 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/active_link.rb b/plugins/active_link.rb new file mode 100644 index 00000000000..bd5853f7022 --- /dev/null +++ b/plugins/active_link.rb @@ -0,0 +1,19 @@ +module Jekyll + class ActiveLinkTag < Liquid::Tag + def initialize(tag_name, text, token) + super + parts = text.split(' ', 2) + @href = parts[0] + @title = parts[1] + end + + def render(context) + href = Liquid::Template.parse(@href).render context + title = Liquid::Template.parse(@title).render context + cls = @href == context.registers[:page]["url"] ? "class='active'" : '' + "#{title}" + end + end +end + +Liquid::Template.register_tag('active_link', Jekyll::ActiveLinkTag) diff --git a/plugins/linkable_title.rb b/plugins/linkable_title.rb index da677b296be..7a5ba4c2b0f 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(@title).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 0050821c81d..70dbdb2c322 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 { @@ -112,6 +113,7 @@ article.post, article.page, article.listing { img, table { border-radius: 3px; box-shadow: rgba(0,0,0,0.06) 0 0 10px; + vertical-align: middle; } img.no-shadow { @@ -119,7 +121,7 @@ article.post, article.page, article.listing { box-shadow: none; } - & > table { + & > table, & > .entry-content > table { background-color: #F3FCF5; } @@ -149,6 +151,18 @@ article.post, article.page, article.listing { margin-bottom: 0; } } + + a { + text-decoration: underline; + + &.btn { + text-decoration: none; + } + } + + .frontpage a { + text-decoration: none; + } } p.note { @@ -203,81 +217,6 @@ p.note { } } -.install-instructions-container { - #normal-install, #raspberry-install, #docker-install, .install-instructions { - display: none; - } - - label.menu-selector { - display: inline-block; - text-align: center; - padding: 20px; - white-space: nowrap; - border-bottom: 5px solid $grayLight; - transition: border-bottom-color .5s; - } - - label.menu-selector + label.menu-selector { - margin-left: 10px; - } - - #normal-install:checked ~ .menu-selector.normal, - #raspberry-install:checked ~ .menu-selector.raspberry, - #docker-install:checked ~ .menu-selector.docker - { - border-bottom-color: $blue; - } - - #normal-install:checked ~ .install-instructions.normal, - #raspberry-install:checked ~ .install-instructions.raspberry, - #docker-install:checked ~ .install-instructions.docker - { - display: block; - } - - .install-instructions { - margin-top: 30px; - } -} - -.advanced-installs-container { - - #upstart-install, #systemd-install, #osx-install, .advanced-installs { - display: none; - } - - label.menu-selector { - display: inline-block; - text-align: center; - padding: 20px; - white-space: nowrap; - border-bottom: 5px solid $grayLight; - transition: border-bottom-color .5s; - } - - label.menu-selector + label.menu-selector { - margin-left: 10px; - } - - #upstart-install:checked ~ .menu-selector.upstart, - #systemd-install:checked ~ .menu-selector.systemd, - #osx-install:checked ~ .menu-selector.osx - { - border-bottom-color: $blue; - } - - #upstart-install:checked ~ .advanced-installs.upstart, - #systemd-install:checked ~ .advanced-installs.systemd, - #osx-install:checked ~ .advanced-installs.osx - { - display: block; - } - - .advanced-installs { - margin-top: 30px; - } -} - #components-page { .isotope-item { z-index: 2; @@ -330,6 +269,7 @@ p.note { box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); padding: 8px; text-align: center; + text-decoration: none; .img-container { height: 50px; @@ -406,3 +346,18 @@ p.note { margin-bottom: 8px; font-size: .8em; } + +ul.sidebar-menu { + a.active { + color: #000; + font-weight: bold; + } + + ul { + margin-left: 30px; + } +} + +a code { + color: #049cdb; +} 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..2e654225932 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: alarmdotcom.png ha_category: Alarm +ha_release: 0.11 --- The `alarmdotcom` platform is consuming the information provided by a [Alarm.com](https://www.alarm.com/). diff --git a/source/_components/alarm_control_panel.manual.markdown b/source/_components/alarm_control_panel.manual.markdown index 36b49399a78..3a4eb6a7902 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 @@ -8,6 +8,7 @@ comments: false sharing: true footer: true ha_category: Alarm +ha_release: 0.7.6 --- 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..95967a021ed 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 @@ -9,13 +9,14 @@ sharing: true footer: true logo: mqtt.png ha_category: Alarm +ha_release: 0.7.4 --- The `mqtt` alarm panel platform enables the possibility to control MQTT capable alarm panels. The Alarm icon will change state after receiving a new state from `state_topic`. If these messages are published with *RETAIN* flag, the MQTT alarm panel will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state will be `unknown`. The component will accept the following states from your Alarm Panel (in lower case): -- 'armed' +- 'disarmed' - 'armed_home' - 'armed_away' - 'pending' @@ -45,7 +46,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..64bb0963997 --- /dev/null +++ b/source/_components/alarm_control_panel.nx584.markdown @@ -0,0 +1,30 @@ +--- +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 +ha_release: 0.13 +--- + +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..c806c0cf326 --- /dev/null +++ b/source/_components/alarm_control_panel.verisure.markdown @@ -0,0 +1,19 @@ +--- +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 +ha_release: 0.7.3 +--- + + +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..ee1fbecbcbb 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 @@ -9,17 +9,50 @@ sharing: true footer: true logo: amazon-echo.png ha_category: Voice -featured: false +featured: true --- -The Alexa component allows you to integrate Home Assistant into Alexa/Amazon Echo. This component will allow you to query information and call services within Home Assistant by using your voice. There are no supported sentences out of the box as of now, you will have to define them all yourself. +There are two ways that you can use Amazon Echo and Home Assistant together. + +No matter which method(s) you decide to use, please remember that Amazon Echo requires an active Internet connection to function. If your Internet is down or experiencing issues (or Amazon's infrastructure is having issues), neither of these methods will work. + +### {% linkable_title I just want to turn devices on and off using Echo %} + +If you just want to be able to turn anything with a switch (like lights, switches, media players, etc) on and off, check out Michael Auchter's [Haaska][haaska-github-link] which integrates the [Alexa Lighting API][alexa-lighting-api] into Home Assistant. + +[haaska-github-link]: https://github.com/auchter/haaska +[alexa-lighting-api]: https://developer.amazon.com/public/binaries/content/assets/html/alexa-lighting-api.html + +Implementing Haaska means you can turn things on and off by simply saying + +> Alexa, turn the living room lights on. + +or + +> Alexa, set the living room lights to twenty percent. + +instead of + +> Alexa, tell Home Assistant to turn the living room lights on. + +or + +> Alexa, tell Home Assistant to set the living room lights to twenty percent. + +In addition, you would need to build custom intents for each device and on/off combination using the below method, whereas everything just works without any extra work by using Haaska. + +Please note that you can use Haaska and the built-in Alexa component side-by-side without issue if you wish. + +### {% linkable_title I want to build custom commands to use with Echo %} + +The built-in Alexa component allows you to integrate Home Assistant into Alexa/Amazon Echo. This component will allow you to query information and call services within Home Assistant by using your voice. Home Assistant offers no built-in sentences but offers a framework for you to define your own.
-### {% linkable_title Requirements before using %} -Amazon requires the endpoint of a skill to be hosted via SSL. Self-signed certificates are ok because our skills will only run in development mode. Read more on [our blog][blog-lets-encrypt] about how to set up encryption for Home Assistant. If you are unable to get https up and running, consider using [this AWS Lambda proxy for Alexa skills](https://forums.developer.amazon.com/forums/thread.jspa?messageID=18604). +#### {% linkable_title Requirements before using %} +Amazon requires the endpoint of a skill to be hosted via SSL. Self-signed certificates are ok because our skills will only run in development mode. Read more on [our blog][blog-lets-encrypt] about how to set up encryption for Home Assistant. If you are unable to get HTTPS up and running, consider using [this AWS Lambda proxy for Alexa skills](https://forums.developer.amazon.com/forums/thread.jspa?messageID=18604). [blog-lets-encrypt]: https://home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/ @@ -35,7 +68,7 @@ To get started with Alexa skills: - https - https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD -### {% linkable_title Configuring your Amazon Alexa skill %} +#### {% linkable_title Configuring your Amazon Alexa skill %} Alexa works based on intents. Each intent has a name and variable slots. For example, a `LocateIntent` with a slot that contains a `User`. Example intent schema: @@ -80,7 +113,10 @@ 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/ +Actions are using the [Home Assistant Script Syntax] and also have access to the variables from the intent. + +[templates]: /topics/templating/ +[Home Assistant Script Syntax]: /getting-started/scripts/ Configuring the Alexa component for the above intents would look like this: @@ -104,8 +140,8 @@ alexa: LocateIntent: action: service: notify.notify - data: - message: Your location has been queried via Alexa. + data_template: + message: The location of {{ User }} has been queried via Alexa. speech: type: plaintext text: > diff --git a/source/_components/apcupsd.markdown b/source/_components/apcupsd.markdown new file mode 100644 index 00000000000..54375c28df6 --- /dev/null +++ b/source/_components/apcupsd.markdown @@ -0,0 +1,30 @@ +--- +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 +ha_release: 0.13 +--- + +[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..d6f450c342c 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 @@ -10,13 +10,14 @@ footer: true logo: arduino.png ha_category: DIY featured: true +ha_release: pre 0.7 --- The [Arduino](https://www.arduino.cc/) device family are microcontroller boards that are often based on the ATmega328 chip. They come with digital input/output pins (some can be used as PWM outputs), analog inputs, and a USB connection. The equipment depends on the [type](https://www.arduino.cc/en/Main/Products) of board. The most common ones are the Arduino Uno and the Arduino Leonardo with 14 digital input/output pins and 6 analog input pins. 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 50ddd5f4baf..99e2c26329d 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 @@ -11,345 +11,6 @@ logo: home-assistant.png ha_category: Automation --- -This page will go into more detail about the various options the `automation` component offers. If you haven't yet, read the [getting started page on automation](/getting-started/automation/). +Please see the [getting started section] for in-depth documentation on how to use the automation compnoent. -A configuration section of an automation requires a `trigger` and an `action` section. `condition` and `condition_type` are optional. To keep this page compact, all following sections will not show the full configuration but only the relevant part. - -```yaml -# Example of entry in configuration.yaml -automation: -# Turns on lights 1 hour before sunset if people are home -# and if people get home between 16:00-23:00 -- alias: 'Rule 1 Light on in the evening' - trigger: - # Prefix the first line of each trigger configuration - # with a '-' to enter multiple - - platform: sun - event: sunset - offset: '-01:00:00' - - platform: state - entity_id: group.all_devices - state: 'home' - condition: - # Prefix the first line of each condition configuration - # with a '-'' to enter multiple - - platform: state - entity_id: group.all_devices - state: 'home' - - platform: time - after: '16:00:00' - before: '23:00:00' - action: - service: homeassistant.turn_on - entity_id: group.living_room - -# Turn off lights when everybody leaves the house -- alias: 'Rule 2 - Away Mode' - trigger: - platform: state - entity_id: group.all_devices - state: 'not_home' - action: - service: light.turn_off - entity_id: group.all_lights - -# Notify when Paulus leaves the house in the evening -- alias: 'Leave Home notification' - trigger: - platform: zone - event: leave - zone: zone.home - entity_id: device_tracker.paulus - condition: - platform: time - after: '20:00' - action: - service: notify.notify - data: - message: 'Paulus left the house' -``` - - - [Jump to conditions](#conditions) - - [Jump to actions](#actions) - - [Jump to troubleshooting](#troubleshooting) - -## {% linkable_title Triggers %} - -Triggers are what starts the processing of an automation rule. It is possible to specify multiple triggers for the same rule. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action. - -#### {% linkable_title Event trigger %} -Triggers when an event is being processed. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data to be present. - -```yaml -automation: - trigger: - platform: event - event_type: MY_CUSTOM_EVENT - # optional - event_data: - mood: happy -``` - -#### {% linkable_title MQTT trigger %} -Triggers when a specific message is received on given topic. Optionally can match on the payload being sent over the topic. - -```yaml -automation: - trigger: - platform: mqtt - topic: living_room/switch/ac - # Optional - payload: 'on' -``` - -#### {% linkable_title Numeric state trigger %} -On state change of a specified entity, attempts to parse the state as a number and triggers if value is above and/or below a threshold. - -```yaml -automation: - trigger: - platform: numeric_state - entity_id: sensor.temperature - # Optional - value_template: '{% raw %}{{ state.attributes.battery }}{% endraw %}' - # At least one of the following required - above: 17 - below: 25 -``` - -#### {% linkable_title State trigger %} - -Triggers when the state of an entity changes. If only entity_id given will match all state changes. - -```yaml -automation: - trigger: - platform: state - entity_id: device_tracker.paulus - # Optional - from: 'not_home' - to: 'home' -``` - -

- Use quotes around your values for `from` and `to` to avoid the YAML parser interpreting values as booleans. -

- -#### {% linkable_title Sun trigger %} -Trigger when the sun is setting or rising. An optional time offset can be given to have it trigger for example 45 minutes before sunset, when dusk is setting in. - -```yaml -automation: - trigger: - platform: sun - # Possible values: sunset, sunrise - event: sunset - # Optional time offset. This example is 45 minutes. - offset: '-00:45:00' -``` - -#### {% linkable_title Template trigger %} - -Template triggers work by evaluating a [template] on each state change. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below). - -```yaml -automation: - trigger: - platform: template - value_template: '{% raw %}{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}{% endraw %}' -``` - -#### {% 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. 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 - # 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' - -automation 3: - trigger: - platform: time - # You can also match on interval. This will match every 5 minutes - minutes: '/5' - seconds: 0 -``` - -#### {% 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/). - -```yaml -automation: - trigger: - platform: zone - entity_id: device_tracker.paulus - zone: zone.home - # Event is either enter or leave - event: enter -``` - -## {% linkable_title Conditions %} - -Conditions are an optional part of an automation rule and be used to prevent an action from happening when triggered. Conditions look very familiar to triggers but are very different. A trigger will look at events happening at the system while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is on or off. - -An automation rule can have mulitiple triggers. By default the action will only fire if all conditions pass. An optional key `condition_type: 'or'` can be set on the automation rule to fire action if any condition matches. In the example below, the automation would trigger if the time is before 05:00 _OR_ after 20:00. - -```yaml -automation: - condition_type: or - condition: - - platform: time - before: '05:00' - - platform: time - after: '20:00' -``` - -If your triggers and conditions are exactly the same, you can use a shortcut to specify conditions. In this case, triggers that are not valid conditions will be ignored. - -```yaml -automation: - condition: use_trigger_values -``` - -#### {% linkable_title Numeric state condition %} - -Attempts to parse the state of specified entity as a number and triggers if value is above and/or below a threshold. - -```yaml -automation: - condition: - platform: numeric_state - entity_id: sensor.temperature - # At least one of the following required - above: 17 - below: 25 - # Optional - value_template: '{% raw %}{{ state.attributes.battery }}{% endraw %}' -``` - -#### {% linkable_title State condition %} - -Tests if an entity is a specified state. - -```yaml -automation: - condition: - platform: state - entity_id: device_tracker.paulus - state: not_home -``` - -#### {% linkable_title Sun condition %} - -The sun condition can test if the sun has already set or risen when a trigger occurs. The `before` and `after` keys can only be set to `sunset` or `sunrise`. They have a corresponding optional offset value (`before_offset`, `after_offset`) that can be added, similar to the [sun trigger](#sun-trigger). - -```yaml -automation: - condition: - platform: sun - after: sunset - # Optional offset value - after_offset: "-1:00:00" -``` - -#### {% linkable_title Template condition %} - -The template condition will test if [given template][template] renders a value equal to true. This is achieved by having the template result in a true boolean expression or by having the template render 'true'. - - -```yaml -automation: - condition: - platform: template - value_template: '{% raw %}{{ state.attributes.battery > 50 }}{% endraw %}' - # Or value_template could be: - # {% raw %}{% if state.attributes.battery > 50 %}true{% else %}false{% endif %}{% endraw %} -``` - -#### {% linkable_title Time condition %} - -The time condition can test if it is after a specified time, before a specified time or if it is a certain day of the week - -```yaml -automation: - condition: - platform: time - # At least one of the following is required. - after: '15:00:00' - before: '23:00:00' - weekday: - - mon - - wed - - fri -``` - -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/). - -```yaml -automation: - condition: - platform: zone - entity_id: device_tracker.paulus - zone: zone.home -``` - -## {% linkable_title Actions %} - -When an automation rule fires, it calls a service. For this service you can specify an entity id it should apply to and optional service parameters (to specify for example the brightness). - -```yaml -automation: - # Change the light in the kitchen and living room to 150 brightness and color red. - action: - service: homeassistant.turn_on - entity_id: - - light.kitchen - - light.living_room - data: - brightness: 150 - rgb_color: [255, 0, 0] -``` - -```yaml -automation: - # Notify me on my mobile phone of an event - action: - service: notify.notify - data: - message: Something just happened, better take a look! -``` - -If you want to specify multiple services to be called or include a delay, have a look at the [script component](/components/script/). If you want to describe how certain entities should look, check out the [scene component](/components/scene/). - -## {% linkable_title Troubleshooting %} - -You can verify that your automation rules are being initialized correctly by watching both the realtime logs and also the logbook. The realtime logs will show the rules being initialized (once for each trigger): - -```plain -INFO [homeassistant.components.automation] Initialized rule Rainy Day -INFO [homeassistant.components.automation] Initialized rule Rainy Day -INFO [homeassistant.components.automation] Initialized rule Rainy Day -INFO [homeassistant.components.automation] Initialized rule Rain is over -``` - -The Logbook component will show a line entry when an automation is triggered. You can look at the previous entry to determine which trigger in the rule triggered the event. - -![Logbook example](/images/components/automation/logbook.png) - -[template]: /getting-started/templating/ \ No newline at end of file +[getting started section]: /getting-started/automation/ diff --git a/source/_components/binary_sensor.apcupsd.markdown b/source/_components/binary_sensor.apcupsd.markdown new file mode 100644 index 00000000000..650786af19e --- /dev/null +++ b/source/_components/binary_sensor.apcupsd.markdown @@ -0,0 +1,29 @@ +--- +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 +ha_release: 0.13 +--- + +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..5dc581c119f 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,12 @@ sharing: true footer: true logo: arest.png ha_category: Binary Sensor +ha_iot_class: "Local Polling" +ha_release: 0.9 --- -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 +38,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..ba3b32a98fa --- /dev/null +++ b/source/_components/binary_sensor.bloomsky.markdown @@ -0,0 +1,26 @@ +--- +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 +ha_release: 0.14 +--- + +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 69% rename from source/_components/binary_sensor.command.markdown rename to source/_components/binary_sensor.command_line.markdown index 74147e8a3a9..56de407e4d9 100644 --- a/source/_components/binary_sensor.command.markdown +++ b/source/_components/binary_sensor.command_line.markdown @@ -1,13 +1,15 @@ --- -layout: component -title: "Command line 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 +ha_release: 0.12 --- @@ -18,9 +20,10 @@ 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' + sensor_class: opening payload_on: "1" payload_off: "0" value_template: '{% raw %}{{ value.x }}{% endraw %}' @@ -30,9 +33,10 @@ Configuration variables: - **command** (*Required*): The action to take to get the value. - **name** (*Optional*): Let you overwrite the the name of the device. By default *name* from the device is used. +- **sensor_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. - **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 +49,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 +62,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..aa279efb200 --- /dev/null +++ b/source/_components/binary_sensor.http.markdown @@ -0,0 +1,79 @@ +--- +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 +ha_release: pre 0.7 +--- + +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 6ab07dff653..a5cd4ab05f7 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: mqtt.png ha_category: Binary Sensor +ha_release: 0.9 --- @@ -25,6 +26,7 @@ binary_sensor: qos: 0 payload_on: "ON" payload_off: "OFF" + sensor_class: opening value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` @@ -35,7 +37,8 @@ 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. +- **sensor_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. +- **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..32a31c409b0 --- /dev/null +++ b/source/_components/binary_sensor.mysensors.markdown @@ -0,0 +1,88 @@ +--- +layout: page +title: "MySensors Binary Sensor" +description: "Instructions how to integrate MySensors binary sensors into Home Assistant." +date: 2016-04-13 14:20 +0100 +sidebar: true +comments: false +sharing: true +footer: true +logo: mysensors.png +ha_category: Binary Sensor +ha_release: 0.14 +--- + +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. + +### {% linkable_title Example sketch %} + +```cpp +/** + * Documentation: http://www.mysensors.org + * Support Forum: http://forum.mysensors.org + * + * http://www.mysensors.org/build/binary + */ + + +#include +#include +#include + +#define SN "BinarySensor" +#define SV "1.0" +#define CHILD_ID 1 +#define BUTTON_PIN 3 // Arduino Digital I/O pin for button/reed switch. + +MySensor gw; +Bounce debouncer = Bounce(); +MyMessage msg(CHILD_ID, V_TRIPPED); + +void setup() +{ + gw.begin(); + gw.sendSketchInfo(SN, SV); + // Setup the button. + pinMode(BUTTON_PIN, INPUT_PULLUP); + // After setting up the button, setup debouncer. + debouncer.attach(BUTTON_PIN); + debouncer.interval(5); + gw.present(CHILD_ID, S_DOOR); + gw.send(msg.set(0)); +} + +void loop() +{ + if (debouncer.update()) { + // Get the update value. + int value = debouncer.read(); + // Send in the new value. + gw.send(msg.set(value == LOW ? 1 : 0)); + } +} +``` + +[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 index cc50ba8bfbe..014b0c3f727 100644 --- a/source/_components/binary_sensor.nest.markdown +++ b/source/_components/binary_sensor.nest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Nest binary sensor" +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 @@ -12,12 +12,12 @@ ha_category: Binary Sensor --- -The Nest binary sensor platform let you monitor various states of a thermostat from [Nest](https://nest.com). +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 -sensor: +binary_sensor: platform: nest monitored_conditions: - 'fan' @@ -34,5 +34,14 @@ sensor: 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](https://home-assistant.io/components/nest/) configured to use this sensor.

+

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..e9e1ae774d9 --- /dev/null +++ b/source/_components/binary_sensor.nx584.markdown @@ -0,0 +1,52 @@ +--- +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" +ha_release: 0.14 +--- + +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 +``` diff --git a/source/_components/binary_sensor.octoprint.markdown b/source/_components/binary_sensor.octoprint.markdown new file mode 100644 index 00000000000..7a05254c5e4 --- /dev/null +++ b/source/_components/binary_sensor.octoprint.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "OctoPrint Binary Sensor" +description: "Instructions how to integrate OctoPrint binary sensors within Home Assistant." +date: 2016-05-05 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: octoprint.png +ha_category: Binary Sensor +ha_release: 0.19 +--- + + +The `OctoPrint` binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error. + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +binary_sensor: + platform: octoprint + monitored_conditions: + - Printing + - Printing Error +``` + +Configuration variables: + +- **monitored_conditions** array (*Required*): States to monitor. + - Printing + - Printing Error + +

You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor.

diff --git a/source/_components/binary_sensor.rest.markdown b/source/_components/binary_sensor.rest.markdown index 6cb56043db0..1bca8ac767d 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 @@ -8,6 +8,7 @@ comments: false sharing: true footer: true ha_category: Binary Sensor +ha_release: 0.10 --- @@ -17,11 +18,12 @@ 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 name: REST GET binary sensor + sensor_class: opening value_template: '{% raw %}{{ value_json.state }}{% endraw %}' ``` @@ -29,22 +31,24 @@ or for a POST request: ```yaml # Example configuration.yaml entry -sensor: +binary_sensor: platform: rest resource: http://IP_ADDRESS/ENDPOINT method: POST + name: REST POST binary sensor + sensor_class: opening value_template: '{% raw %}{{ value_json.state }}{% endraw %}' payload: '{ "device" : "door" }' - name: REST POST binary sensor ``` 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. -- **payload** (*Optional*): The payload to send with a POST request. Usualy formed as a dictionary. - **name** (*Optional*): Name of the REST binary sensor. +- **sensor_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. +- **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.

Make sure that the URL matches exactly your endpoint or resource. diff --git a/source/_components/binary_sensor.rpi_gpio.markdown b/source/_components/binary_sensor.rpi_gpio.markdown index 4bc2f7581c4..a75fce5c0c9 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: raspberry-pi.png ha_category: Sensor +ha_release: pre 0.7 --- -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..4f1842d62d0 --- /dev/null +++ b/source/_components/binary_sensor.tcp.markdown @@ -0,0 +1,42 @@ +--- +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 +ha_release: 0.14 +--- + +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 +binary_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 %}" + buffer_size: BUFFER_SIZE +``` + +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. +- **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..03af11a3a0a --- /dev/null +++ b/source/_components/binary_sensor.template.markdown @@ -0,0 +1,50 @@ +--- +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*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend. + - **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.vera.markdown b/source/_components/binary_sensor.vera.markdown new file mode 100644 index 00000000000..b8004fa74bb --- /dev/null +++ b/source/_components/binary_sensor.vera.markdown @@ -0,0 +1,17 @@ +--- +layout: page +title: "Vera Binary Sensor" +description: "Instructions how to integrate Vera binary sensors into Home Assistant." +date: 2016-03-26 23:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: vera.png +ha_category: Binary Sensor +ha_iot_class: "Local Push" +--- + +The `vera` platform allows you to get data from your [Vera](http://getvera.com/) binary sensors from within Home Assistant. + +They will be automatically discovered if the vera component is loaded. diff --git a/source/_components/binary_sensor.wink.markdown b/source/_components/binary_sensor.wink.markdown new file mode 100644 index 00000000000..262d9c48615 --- /dev/null +++ b/source/_components/binary_sensor.wink.markdown @@ -0,0 +1,19 @@ +--- +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 +ha_release: 0.14 +--- + + +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 index 7d270316e27..e6fb6a1ddb2 100644 --- a/source/_components/binary_sensor.zigbee.markdown +++ b/source/_components/binary_sensor.zigbee.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: ZigBee Binary Sensor +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 @@ -11,9 +11,21 @@ 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 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`. +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 configure a digital input as a binary sensor, use the following variables: +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`. @@ -21,13 +33,3 @@ To configure a digital input as a binary sensor, use the following variables: - **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'. -#### Example - -```yaml -binary_sensor: - - name: Hallway PIR Sensor - platform: zigbee - pin: 0 - address: 0013A20040892FA2 - on_state: low -``` diff --git a/source/_components/binary_sensor.zwave.markdown b/source/_components/binary_sensor.zwave.markdown new file mode 100644 index 00000000000..80b29acab8b --- /dev/null +++ b/source/_components/binary_sensor.zwave.markdown @@ -0,0 +1,15 @@ +--- +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 +ha_release: 0.14 +--- + +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..40e8924069b 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: @@ -20,7 +20,7 @@ To enable your Foscam IP camera in your installation, add the following to your # Example configuration.yaml entry camera: platform: foscam - ip: 192.168.0.123 + ip: IP_ADDRESS name: Door Camera port: 88 username: USERNAME @@ -29,9 +29,15 @@ camera: Configuration variables: -- **ip** *Required*: The IP address your camera. -- **port** *Optional*: The port that the camera is running on. The default is 88. -- **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. +- **ip** (*Required*): The IP address your camera. +- **port** (*Optional*): The port that the camera is running on. The default is 88. +- **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. +

+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..9b9984c3ffa 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 @@ -8,20 +8,16 @@ comments: false sharing: true footer: true ha_category: Camera +logo: camcorder.png +ha_release: pre 0.7 --- -This component allows you to integrate any IP camera into Home Assistant. It supports fetching images from a url with optional HTTP authentication. +The `generic` camera platform allows you to integrate any IP camera into Home Assistant. It supports fetching images from a url with optional HTTP authentication. -Home Assistant will serve the images via its server, making it possible to view your IP camera's while outside of your network. +Home Assistant will serve the images via its server, making it possible to view your IP camera's while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]?time=[timestamp]`. -As part of the basic support the following features will be provided: - -- MJPEG video streaming -- Saving a snapshot -- Recording(JPEG frame capture) - -To enable this sensor in your installation, add the following to your `configuration.yaml` file: +To enable this camery in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry 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..9f84a34851b 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 @@ -7,13 +7,17 @@ sidebar: true comments: false sharing: true footer: true +logo: camcorder.png ha_category: Camera +ha_release: pre 0.7 --- -The mjpeg component allows you to integrate IP cameras which are capable to stream their video with MJPEG into Home Assistant. +The `mjpeg` camera platform 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: +Home Assistant will serve the images via its server, making it possible to view your IP camera's while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]?time=[timestamp]`. + +To enable this camera in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -31,3 +35,7 @@ Configuration variables: - **name** *Optional*: This parameter allows you to override the name of your camera. - **username** *Optional*: The username for accessing your camera. - **password** *Optional*: The password for accessing your camera. + +

+There is a known issue in urllib3 that you will get error messages in your logs like [StartBoundaryNotFoundDefect(), MultipartInvariantViolationDefect()], unparsed data: '' but the component still works fine. You can ignore the messages. +

diff --git a/source/_components/camera.rpi_camera.markdown b/source/_components/camera.rpi_camera.markdown new file mode 100644 index 00000000000..e2b6b4f2634 --- /dev/null +++ b/source/_components/camera.rpi_camera.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Raspberry Pi Camera" +description: "Instructions how to integrate Raspberry Pi within Home Assistant." +date: 2016-04-08 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: raspberry-pi.png +ha_category: Camera +ha_iot_class: "Local Polling" +ha_release: 0.17 +--- + + +The `rpi` platform allows you to integrate the Raspberry Pi camera into Home Assistant. This component uses the application "raspistill" to store the image from camera. + +```yaml +# Example configuration.yaml entry +camera: + platform: rpi_camera + name: Raspberry Pi Camera + image_width: 640 + image_height: 480 + image_quality: 7 + image_rotation: 0 + timelapse: 1000 + horizontal_flip: 0 + vertical_flip: 0 + file_path: /tmp/image.jpg +``` + +Configuration variables: + + - **name** (optional): name of the camera + - **image_width** (optional): set the image width (default: 640) + - **image_height** (optional): set the image height (default: 480) + - **image_quality** (optional): set the image quality (from 0 to 100, default: 7) + - **image_rotation** (optional): Set image rotation (0-359, default: 0) + - **horizontal_flip** (optional): Set horizontal flip (0 to disable, 1 to enable, default: 0) + - **vertical_flip** (optional): Set vertical flip (0 to disable, 1 to enable, default: 0) + - **timelapse** (optional): Takes a picture every ms (default: 1000) + - **file_path** (optional): Save the picture in a custom file path (default: camera components folder) + +The given **file_path** must be an existing file because the camera platform setup make a writeable check on it. diff --git a/source/_components/camera.uvc.markdown b/source/_components/camera.uvc.markdown new file mode 100644 index 00000000000..152203103f1 --- /dev/null +++ b/source/_components/camera.uvc.markdown @@ -0,0 +1,34 @@ +--- +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 +ha_release: 0.13 +--- + + +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..3d9661d50bd 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 @@ -21,6 +21,6 @@ The configurator component allows components to request information from the use - Input fields can be defined with a description, and optional type - It will trigger a callback when the button is pressed -The Hue component in [the demo](/demo) and Plex are implemented using the configurator. See [the source of the demo component](https://github.com/balloob/home-assistant/blob/master/homeassistant/components/demo.py#L132) for a simple example. +The Hue component in [the demo](/demo) and Plex are implemented using the configurator. See [the source of the demo component](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/demo.py#L132) for a simple example. -See [the source](https://github.com/balloob/home-assistant/blob/master/homeassistant/components/configurator.py#L39) for more details on how to use the configurator component. +See [the source](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/configurator.py#L39) for more details on how to use the configurator component. diff --git a/source/_components/conversation.markdown b/source/_components/conversation.markdown index 7851621520d..8e52a6927a1 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,12 +7,13 @@ sidebar: true comments: false sharing: true footer: true -logo: conversation.png -ha_category: "Other" +logo: home-assistant.png +ha_category: "Voice" --- -The conversation component can process sentences into commands for Home Assistant. It is currently limited to parsing commands in the format `turn `. +The conversation component can process sentences into commands for Home Assistant. It is currently limited to parsing commands in the format `turn `. + To enable the conversion option in your installation, add the following to your `configuration.yaml` file: @@ -21,8 +22,12 @@ 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.

+ +

+Apple iPhones do not support this feature in any browser. +

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..1834d591db4 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: aruba.png ha_category: Presence Detection +ha_release: 0.7 --- diff --git a/source/_components/device_tracker.asuswrt.markdown b/source/_components/device_tracker.asuswrt.markdown index 4ca50a9ef3b..74e76adce4e 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: asus.png ha_category: Presence Detection +ha_release: pre 0.7 --- diff --git a/source/_components/device_tracker.bluetooth_tracker.markdown b/source/_components/device_tracker.bluetooth_tracker.markdown new file mode 100644 index 00000000000..c2b972c6812 --- /dev/null +++ b/source/_components/device_tracker.bluetooth_tracker.markdown @@ -0,0 +1,29 @@ +--- +layout: page +title: "Bluetooth Tracker" +description: "Instructions how to integrate bluetooth tracking within Home Assistant." +date: 2016-04-10 17:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: bluetooth.png +ha_category: Presence Detection +ha_iot_class: "Local Poll" +ha_release: 0.18 +--- + +This tracker discovers new devices on boot and tracks bluetooth devices periodically based on interval_seconds value. Devices discovered are stored with 'bt_' as the prefix for device mac in `known_devices.yaml`. + +

+Requires PyBluez. If you are on raspbian, make sure you first install `bluetooth` and `libbluetooth-dev` by running `sudo apt install bluetooth libbluetooth-dev` +

+ +To use the Bluetooth tracker in your installation, add the following to your `configuration.yaml` file: + +```yaml +device_tracker: + platform: bluetooth_tracker +``` + +For additional configuration variables check the [Device tracker page](/components/device_tracker/). 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 5d8acb12e53..b695d02ad71 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 @@ -9,13 +9,14 @@ sharing: true footer: true logo: avm.png ha_category: Presence Detection +ha_release: 0.10 --- 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

To use an Fritz!Box router in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/device_tracker.icloud.markdown b/source/_components/device_tracker.icloud.markdown index 39299c46308..7853b182716 100644 --- a/source/_components/device_tracker.icloud.markdown +++ b/source/_components/device_tracker.icloud.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "iCloud" description: "Instructions how to use iCloud to track devices in Home Assistant." date: 2015-12-15 1000 @@ -9,12 +9,13 @@ sharing: true footer: true logo: icloud.png ha_category: Presence Detection +ha_release: 0.10 --- The `icloud` platform allows you to detect presence using the [iCloud](https://www.icloud.com/) service. iCloud allows users to track their location on iOS devices. -It does require that your device has beend registered with "Find My iPhone". +It does require that your device is registered with "Find My iPhone". To integrate iCloud in Home Assistant, add the following section to your `configuration.yaml` file: @@ -39,3 +40,7 @@ This may cause battery drainage as it wakes up your device to get the current lo You may receive an email from Apple stating that someone has logged into your account.

+

+If you have two-factor authentication enabled on your iCloud account you will not be able to use this presence detection in HA, even with an app-specific password. +

+ diff --git a/source/_components/device_tracker.locative.markdown b/source/_components/device_tracker.locative.markdown index 17df285ccfa..dd1d40fc169 100644 --- a/source/_components/device_tracker.locative.markdown +++ b/source/_components/device_tracker.locative.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Locative" description: "Instructions how to use Locative to track devices in Home Assistant." date: 2015-10-13 19:00 diff --git a/source/_components/device_tracker.luci.markdown b/source/_components/device_tracker.luci.markdown index 3db44706c83..81e60df206c 100644 --- a/source/_components/device_tracker.luci.markdown +++ b/source/_components/device_tracker.luci.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "OpenWRT (luci)" description: "Instructions how to integrate OpenWRT routers into Home Assistant." date: 2015-03-23 19:59 diff --git a/source/_components/device_tracker.markdown b/source/_components/device_tracker.markdown index bb36d19013d..91f67ed880d 100644 --- a/source/_components/device_tracker.markdown +++ b/source/_components/device_tracker.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Device Tracker" description: "Instructions how to setup device tracking within Home Assistant." date: 2015-01-20 22:36 @@ -36,4 +36,15 @@ device_tracker: Once tracked, a file will be created in your config dir called `known_devices.yaml`. Edit this file to adjust which devices to be tracked. Here you can also setup a URL for each device to be used as the entity picture and set whether the device will be show in the UI when in the away state. -Multiple device trackers can be used in parallel, such as [Owntracks](/components/device_tracker.owntracks/) and [Nmap](/components/device_tracker.nmap_scanner/). The state of the device will be determined by the source that reported last. Device tracker will look for global settings (track_new_devices, consider_home and home_interval) under the configuration of the first platform. \ No newline at end of file +Multiple device trackers can be used in parallel, such as [Owntracks](/components/device_tracker.owntracks/) and [Nmap](/components/device_tracker.nmap_scanner/). The state of the device will be determined by the source that reported last. Device tracker will look for global settings (track_new_devices, consider_home and home_interval) under the configuration of the first platform. + +To add Nmap tracking just add the mac address to the OwnTracks or iCloud device `mac:` configuration. To use both OwnTracks and Nmap you could use the following example: + +``` +owntracksdevicename: + name: Friendly Name! + mac: EA:AA:55:E7:C6:94 + picture: + track: yes + hide_if_away: no +``` diff --git a/source/_components/device_tracker.mqtt.markdown b/source/_components/device_tracker.mqtt.markdown index 70c71cdebe6..7c0eed7d1d4 100644 --- a/source/_components/device_tracker.mqtt.markdown +++ b/source/_components/device_tracker.mqtt.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "MQTT device tracker" +layout: page +title: "MQTT Device Tracker" description: "Instructions how to use MQTT to track devices in Home Assistant." date: 2015-09-19 20:41 sidebar: true diff --git a/source/_components/device_tracker.netgear.markdown b/source/_components/device_tracker.netgear.markdown index a5a508ba4d4..4466885b505 100644 --- a/source/_components/device_tracker.netgear.markdown +++ b/source/_components/device_tracker.netgear.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Netgear" description: "Instructions how to integrate Netgear routers into Home Assistant." date: 2015-03-23 19:59 @@ -9,6 +9,7 @@ sharing: true footer: true logo: netgear.png ha_category: Presence Detection +ha_iot_class: "Local Polling" --- @@ -23,6 +24,7 @@ device_tracker: host: YOUR_ROUTER_IP username: YOUR_ADMIN_USERNAME password: YOUR_ADMIN_PASSWORD + port: YOUR_ROUTER_PORT ``` Configuration variables: @@ -30,5 +32,6 @@ Configuration variables: - **host** (*Required*): The IP address of your router, e.g. 192.168.1.1. - **username** (*Required*: The username of an user with administrative privileges, usually *admin*. - **password** (*Required*): The password for your given admin account. +- **port** (*Optional*): The port your router communicates with (defaults to 5000, but 80 is also known to be used on some models) See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.nmap_scanner.markdown b/source/_components/device_tracker.nmap_scanner.markdown index f5fb0f42685..de2989900e2 100644 --- a/source/_components/device_tracker.nmap_scanner.markdown +++ b/source/_components/device_tracker.nmap_scanner.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Nmap" description: "Instructions how to integrate Nmap into Home Assistant." date: 2015-03-23 19:59 @@ -27,6 +27,9 @@ device_tracker: home_interval: 10 ``` -`home_interval` is an optional value set in minutes. This will be the number of minutes nmap will not scan this device, assuming it is home, in order to preserve the device battery. +Configuration variables: + +- **hosts** (*Required*): Thenetwork range to scan in CIDR notation, eg. 192.168.1.1/24 +- **home_interval** (*Optional*): The number of minutes nmap will not scan this device, assuming it is home, in order to preserve the device battery. See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown index 2160821844f..9aab6a52b14 100644 --- a/source/_components/device_tracker.owntracks.markdown +++ b/source/_components/device_tracker.owntracks.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Owntracks" description: "Instructions how to use Owntracks to track devices in Home Assistant." date: 2015-09-22 07:00 @@ -10,6 +10,7 @@ footer: true logo: owntracks.png ha_category: Presence Detection featured: true +ha_release: 0.7.4 --- @@ -23,9 +24,12 @@ To integrate Owntracks in Home Assistant, add the following section to your `con # Example configuration.yaml entry device_tracker: platform: owntracks + max_gps_accuracy: 200 ``` -There is no further configuration needed for tracking Owntracks devices. +Configuration variables: + +- **max_gps_accuracy** (*Optional*): Sometimes Owntracks can report GPS location with a very low accuracy (few kilometers). That can trigger false zoning in your Home Assistant installation. With the parameter, you can filter these GPS reports. The number has to be in meter. For example, if you put 200 only GPS report with an accuracy under 200 will be take in account. ### {% linkable_title Using Owntracks with other device trackers %} Owntracks can also be used with other device trackers, such as [Nmap](/components/device_tracker.nmap_scanner/) or [Netgear](/components/device_tracker.netgear/). To do this, fill in the `mac` field to the Owntracks entry in `known_devices.yaml` with the MAC address of the device you want to track. This way the state of the device will be determined by the source that reported last. diff --git a/source/_components/device_tracker.snmp.markdown b/source/_components/device_tracker.snmp.markdown index d5ef35f20fc..7452f39f741 100644 --- a/source/_components/device_tracker.snmp.markdown +++ b/source/_components/device_tracker.snmp.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "SNMP" description: "Instructions how to integrate SNMP into Home Assistant." date: 2015-10-08 12:00 @@ -9,6 +9,7 @@ sharing: true footer: true logo: network-snmp.png ha_category: Presence Detection +ha_release: 0.7.5 --- @@ -19,9 +20,12 @@ This device tracker needs SNMP to be enabled on the router.

OID examples: -- Microtik: 1.3.6.1.4.1.14988.1.1.1.2.1.1 (confirmed) +- Mikrotik: 1.3.6.1.4.1.14988.1.1.1.2.1.1 (confirmed, unknown RouterOS version/model) +- Mikrotik: 1.3.6.1.2.1.4.22.1.2 (confirmed, RouterOS 6.x on RB2011) - Aruba: 1.3.6.1.4.1.14823.2.3.3.1.2.4.1.2 (untested) - BiPAC 7800DXL: 1.3.6.1.2.1.17.7.1.2.2.1.1 (confirmed on firmware 2.32e) +- OpenWrt: 1.3.6.1.2.1.4.22.1.2 (tested on Chaos Calmer 15.05 firmware, need to install snmpd package) +- pfSense: 1.3.6.1.2.1.4.22.1.2 (tested on 2.2.4-RELEASE, need to enable SNMP service) To use the snmp platform in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/device_tracker.thomson.markdown b/source/_components/device_tracker.thomson.markdown index bb85bd340d0..8a81c40ad9e 100644 --- a/source/_components/device_tracker.thomson.markdown +++ b/source/_components/device_tracker.thomson.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Thomson" description: "Instructions how to integrate Thomson routers into Home Assistant." date: 2015-08-30 19:00 diff --git a/source/_components/device_tracker.tomato.markdown b/source/_components/device_tracker.tomato.markdown index ad55ca2938d..e9bb3582dcf 100644 --- a/source/_components/device_tracker.tomato.markdown +++ b/source/_components/device_tracker.tomato.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Tomato" description: "Instructions how to integrate Tomato routers into Home Assistant." date: 2015-03-23 19:59 @@ -33,3 +33,6 @@ Configuration variables: - **http_id** (*Required*): The value can be obtained by logging in to the Tomato admin interface and search for `http_id` in the page source code. See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. + +A description of the API s available in this [Tomato API](http://paulusschoutsen.nl/blog/2013/10/tomato-api-documentation/) blog post. + diff --git a/source/_components/device_tracker.tplink.markdown b/source/_components/device_tracker.tplink.markdown index a95022d65a2..37fa0f80fdc 100644 --- a/source/_components/device_tracker.tplink.markdown +++ b/source/_components/device_tracker.tplink.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "TP-Link" description: "Instructions how to integrate TP-Link routers into Home Assistant." date: 2015-06-22 10:30 @@ -9,6 +9,7 @@ sharing: true footer: true logo: tp-link.png ha_category: Presence Detection +ha_release: pre 0.7 --- diff --git a/source/_components/device_tracker.ubus.markdown b/source/_components/device_tracker.ubus.markdown index 9ad16682b54..ffa6d159d98 100644 --- a/source/_components/device_tracker.ubus.markdown +++ b/source/_components/device_tracker.ubus.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "OpenWRT (ubus)" description: "Instructions how to integrate OpenWRT routers into Home Assistant." date: 2015-03-23 19:59 @@ -9,6 +9,7 @@ sharing: true footer: true logo: openwrt.png ha_category: Presence Detection +ha_release: 0.7.6 --- _This is one of the two ways we support OpenWRT. If you encounter problems, try [luci](/components/device_tracker.luci/)._ diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown new file mode 100644 index 00000000000..6ddf9166065 --- /dev/null +++ b/source/_components/device_tracker.unifi.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "Ubiquiti Unifi WAP" +description: "Instructions how to use a Unifi WAP controller as a device tracker module." +date: 2016-02-19 20:59 +sidebar: true +comments: false +sharing: true +footer: true +logo: ubiquiti.png +ha_category: Presence Detection +ha_release: 0.14 +--- + + +This platform allows you to detect presence by looking at connected devices to a [Ubiquiti](http://ubnt.com/) [Unifi](https://www.ubnt.com/enterprise/#unifi) controller. + +To use this device tracker in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +device_tracker: + platform: unifi + host: CONTROLLER + port: PORT + username: YOUR_ADMIN_USERNAME + password: YOUR_ADMIN_PASSWORD +``` + +Configuration variables: + +- **host** (*Optional*): The hostname or IP address of your controller. Defaults to localhost. +- **port** (*Optional*): The port of your controller's web interface. Defaults to 8443. +- **username** (*Required*: The username of an user with administrative privileges, usually *admin*. +- **password** (*Required*): The password for your given admin account. + +See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_components/discoverable.markdown b/source/_components/discoverable.markdown new file mode 100644 index 00000000000..19c16ce0ac3 --- /dev/null +++ b/source/_components/discoverable.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "Discoverable" +description: "Instructions how to setup the discoverable component with Home Assistant." +date: 2016-03-01 07:00 +sidebar: true +comments: false +sharing: true +footer: true +--- + +The Home Assistant discovery protocol is a lightweight feature that introduces support for Home Assistant servers to be discoverable. This will allow [Home Assistant instances](https://github.com/balloob/micropython-home-assistant) running with [MicroPython](https://micropython.org/) to get started without any required configuration (Example from the [MicroPython Home Assistant](https://github.com/balloob/micropython-home-assistant) documentation): + +```python +from homeassistant.discovery import get_instance() + +hass = get_instance() + +for state in hass.states(): + print(state) +``` + +To enable `discovery` in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yml entry +discoverable: + expose_password: yes +``` + + +Configuration variables: + +- **expose_password** (*Optional*): It is up to the user to expose the password in the discovery response (Default: off). If password not exposed, uHA instances will have to provide it (`get_instance('my password')`). + diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index 9f316298063..84698da53e0 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Discovery" description: "Instructions how to setup Home Assistant to discover new devices." date: 2015-01-24 14:39 @@ -37,5 +37,13 @@ If running home-assistant in a docker container use switch `--net=host` to put i If you are developing a new platform, please read [how to make your platform discoverable]({{site_root}}/developers/add_new_platform/#discovery).

-There is currently a known issue with running this playform on a 64-bit version of Python. +There is currently a known issue with running this platform on a 64-bit version of Python and Windows. +

+ +

+If you are on Windows and you're using Python 3.5, download the Netifaces dependency here. +

+ +

+If you see `Not initializing discovery because could not install dependency netdisco==0.6.1` in the logs, you will need to install the `python3-dev` or `python3-devel` package on your system manually (eg. `sudo apt-get install python3-dev` or `sudo dnf -y install python3-devel`). On the next restart of home-assistant, discovery should work. If you still get an error, check if you have a compiler (`gcc`) available on your system.

diff --git a/source/_components/downloader.markdown b/source/_components/downloader.markdown index 928d1b0da98..b667bfcc6ce 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,8 +7,9 @@ sidebar: true comments: false sharing: true footer: true -logo: downloader.png +logo: home-assistant.png ha_category: Other +ha_release: pre 0.7 --- The `downloader` component provides a service to download files. It will raise an error and not continue to set itself up when the download directory does not exist. diff --git a/source/_components/dweet.markdown b/source/_components/dweet.markdown new file mode 100644 index 00000000000..9b57782db83 --- /dev/null +++ b/source/_components/dweet.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "Dweet.io" +description: "Record events in InfluxDB." +date: 2016-05-07 07:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: dweet.png +ha_category: "History" +featured: true +ha_release: 0.19 +--- + +The `dweet` component makes it possible to transfer details collected with Home Assistant to [Dweet.io](http://dweet.io/) and visualize them with [freeboard.io](https://freeboard.io). Keep in mind that your information will be public! + +

+ +

+ + +

+ The publishing interval is limited to 1 second. This means that it's possible to missing fast changes. +

+ +To use the `deweet` component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +dweet: + name: HAExport + whitelist: + - input_slider.brightness + - input_boolean.notify_home + - sensor.weather_temperature + - sensor.cpu +``` + +Configuration variables: + +- **name** (*Required*): Choose must choose an unique name. +- **whitelist** (*Required*): List of entity IDs you want to publish. + diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index fc21f7042ec..529a293ad0e 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: ecobee.png ha_category: Hub +featured: true --- diff --git a/source/_components/feedreader.markdown b/source/_components/feedreader.markdown new file mode 100644 index 00000000000..70e0718c481 --- /dev/null +++ b/source/_components/feedreader.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: Feedreader +description: "Instructions how to integrate RSS feeds into Home Assistant." +date: 2016-04-18 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rss.gif +ha_category: Other +ha_release: 0.18 +--- + +Add an RSS/Atom feed reader that polls feeds every hour and sends new entries into the event bus. + +To use RSS feeds in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +feedreader: + urls: + - https://home-assistant.io/atom.xml + - https://github.com/blog.atom +``` + +Configuration variables: + +- **urls** (*Required*): List of URLS for your feeds. + +Feedreader events can be used out of the box to trigger automation actions, e.g.: + +```yaml +automation: + - alias: Trigger action when new element(s) in RSS feed + trigger: + platform: event + event_type: feedreader + action: + service: script.turn_on + entity_id: script.my_action +``` + +For more advanced use cases, a custom component registering to the `feedreader` event type could be used instead: + +```python +EVENT_FEEDREADER = "feedreader" +hass.bus.listen(EVENT_FEEDREADER, event_listener) +``` + +To get started developing custom components, please refer to the [developers](/developers) documentation 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.mqtt.markdown b/source/_components/garage_door.mqtt.markdown new file mode 100644 index 00000000000..b7e78a5c290 --- /dev/null +++ b/source/_components/garage_door.mqtt.markdown @@ -0,0 +1,61 @@ +--- +layout: page +title: "MQTT Garage door" +description: "Instructions how to setup the MQTT controllable garage doors within Home Assistant." +date: 2016-04-10 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: mqtt.png +ha_category: Garage Door +ha_release: 0.18 +--- + + +The `mqtt` garage door platform let you control your MQTT enabled garage door. + +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 switch will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the switch will be false/off. + +When a state topic is not available, the switch will work in optimistic mode. In this mode, the switch will immediately change state after every command. Otherwise, the switch 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 switch operation. + +To use your MQTT binary sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yml entry +garage_door: + platform: mqtt + state_topic: "home-assistant/garage-door" + command_topic: "home-assistant/garage-door/set" + name: "MQTT Sensor" + optimistic: false + qos: 0 + retain: true + state_open: "STATE_OPEN" + state_closed: "STATE_CLOSED" + service_open: "SERVICE_OPEN" + service_close: "SERVICE_CLOSE" + value_template: '{% raw %}{{ value.x }}{% endraw %}' +``` + +Configuration variables: + +- **state_topic** (*Required*): The MQTT topic subscribed to receive sensor values. +- **name** (*Optional*): The name of the sensor. Default is 'MQTT Sensor'. +- **state_open** (*Optional*): The payload that represents open state. Default is"STATE_OPEN" +- **state_closed** (*Optional*): The payload that represents closed state. Default is "STATE_CLOSED" +- **service_open** (*Optional*): The payload that represents open state in service mode. Default is"SERVICE_OPEN" +- **service_close** (*Optional*): The payload that represents closed state in service mode. Default is "SERVICE_CLOSE" +- **optimistic** (*Optional*): Flag that defines if switch 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. + +For a quick check you can use the commandline tools shipped with `mosquitto` to send MQTT messages. Set the state of your sensor manually: + +```bash +$ mosquitto_pub -h 127.0.0.1 -t home-assistant/garage-door/set -m "OFF" +``` + diff --git a/source/_components/garage_door.wink.markdown b/source/_components/garage_door.wink.markdown new file mode 100644 index 00000000000..d905f66d7e0 --- /dev/null +++ b/source/_components/garage_door.wink.markdown @@ -0,0 +1,26 @@ +--- +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 +ha_release: 0.13 +--- + +Wink garage door functionality is currently limited to view only. Wink garage doors will still show the current state of the door, but control has been disabled for third parties. If you have a Chamberlain garage door, and would like to control it via Home Assistant, please contact Chamberlain and request that they re-enabled third-party control. + +The following quote is from Wink. + +
+As part of our agreement with Chamberlain, third-party access to control Chamberlain garage doors has been restricted. Please contact Chamberlain directly to inquire about permissions. +
+ +~~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..172d17d9b64 --- /dev/null +++ b/source/_components/graphite.markdown @@ -0,0 +1,32 @@ +--- +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 +ha_release: 0.13 +--- + +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 e28ac57bbd6..3eb481b314f 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 @@ -15,9 +15,17 @@ Groups allow the user to combine multiple entities into one. A group can be prom Check the **Set State** page from the **Developer Tools** and browse the **Current entities:** listing for all available entities. +By default, every group appears in the HOME tab. If you name a group `default_view` it will REPLACE the contents of the HOME tab so you can customize it as you wish. + ```yaml # Example configuration.yaml entry group: + default_view: + view: yes + entities: + - group.awesome_people + - group.climate + kitchen: name: Kitchen entities: @@ -35,24 +43,32 @@ group: Configuration variables: +- **view** (*Optional*): If yes then the entry will be shown as a view (tab). - **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. +- **icon** (*Optional*): If the group is a view, this icon will show at the top in the frontend instead of the name. If it's not a view, then the icon shows when this group is used in another group. +- **entities** (*Required*): array or comma delimited string, list of entities to group.

Example of groups shown as views in the frontend.

-If all entities are switches or lights they can be controlled as one with a switch at the top of the card. Grouped states should share the same type of states (ON/OFF or HOME/NOT_HOME). +If all entities in a group are switches or lights then Home Assistant adds a switch at the top of the card that turns them all on/off at once. + +You can create views (tabs) that contain other groups. +Notice in the example below that in order to refer to the group "Living Room", you use `group.living_room` (lowercase and spaces replaced with underscores). ```yaml -# Example configuration.yaml entry -group: - living_room: - - light.bowl - - light.ceiling - - light.tv_back_light - children: device_tracker.child_1, device_tracker.child_2 -``` +# Example configuration.yaml entry that shows two groups, referred to in a view group (tab) + Living Room: + entities: + - light.light_family_1 + - binary_sensor.motion_living + Bedroom: light.light_bedroom, switch.sleeping + Rooms: + view: yes + name: Rooms + entities: + - group.living_room + - group.bedroom +``` \ No newline at end of file diff --git a/source/_components/history.markdown b/source/_components/history.markdown index d2cd12b6f1b..90e5df451aa 100644 --- a/source/_components/history.markdown +++ b/source/_components/history.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "History" description: "Instructions how to enable history support for Home Assistant." date: 2015-03-23 19:59 @@ -28,22 +28,22 @@ history:

-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..973ac048044 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 @@ -21,13 +21,27 @@ http: development: 1 ssl_certificate: /etc/letsencrypt/live/hass.example.com/fullchain.pem ssl_key: /etc/letsencrypt/live/hass.example.com/privkey.pem + cors_allowed_origins: + - google.com + - home-assistant.io ``` 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. +- **cors_allowed_origins** (*Optional*): A list of origin domain names to allow [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) requests from. Enabling this will set the `Access-Control-Allow-Origin` header to the Origin header if it is found in the list, and the `Access-Control-Allow-Headers` to `Origin, Accept, X-Requested-With, Content-type, X-HA-access`. + +The [Set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) blog post gives you details about the encryption of your traffic using free certificates from [Let's Encrypt](https://letsencrypt.org/). + +On top of the `http` component is a [REST API](/developers/rest_api/) and a [Python API](/developers/python_api/) available. There is also support for [Server-sent events](/developers/server_sent_events/) available. + +The `http` platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) sends and receives messages over HTTP. + +To use those kind of [sensors](/components/sensor.http/) or [binary sensors](components/binary_sensor.http/) 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) need to be sent to the endpoint of the device and must be **POST**. diff --git a/source/_components/hvac.markdown b/source/_components/hvac.markdown new file mode 100644 index 00000000000..c4a0d96f44e --- /dev/null +++ b/source/_components/hvac.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "HVAC" +description: "Instructions on how to integrate HVAC devices status with Home Assistant." +date: 2016-05-07 09:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_release: 0.19 +--- + +The `hvac` component is built for the controlling and monitoring of HVAC (heating, ventilating, and air conditioning) devices. + +To enable this component, pick one of the platforms and add it to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +hvac: + platform: demo +``` + diff --git a/source/_components/hvac.zwave.markdown b/source/_components/hvac.zwave.markdown new file mode 100644 index 00000000000..373256a6cc0 --- /dev/null +++ b/source/_components/hvac.zwave.markdown @@ -0,0 +1,15 @@ +--- +layout: page +title: "Z-Wave HVAC" +description: "Instructions on how to integrate HVAC Z-Wave devices status with Home Assistant." +date: 2016-05-07 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: z-wave.png +ha_category: HVAC +ha_release: 0.19 +--- + +To get your Z-Wave `hvac` devices working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/) and the [HVAC component](/components/hvac/). 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..adb5c49e8b3 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 @@ -9,6 +9,8 @@ sharing: true footer: true logo: influxdb.png ha_category: "History" +featured: true +ha_release: 0.9 --- The `influxdb` component makes it possible to transfer all state changes to an external [InfluxDB](https://influxdb.com/) database. For more details, [see the blog post on InfluxDB](/blog/2015/12/07/influxdb-and-grafana/). @@ -23,6 +25,11 @@ influxdb: database: DB_TO_STORE_EVENTS username: MY_USERNAME password: MY_PASSWORD + ssl: true + verify_ssl: true + blacklist: + - entity.id1 + - entity.id2 ``` Configuration variables: @@ -32,4 +39,6 @@ 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. +- **blacklist** (*Optional*): List of entities not logged to influxdb. diff --git a/source/_components/input_boolean.markdown b/source/_components/input_boolean.markdown index 4b874a236d6..68d26181d13 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 @@ -17,7 +17,7 @@ The `input_boolean` component allows the user to define boolean values that can # Example configuration.yaml entry input_boolean: notify_home: - name: Notify when someome arrives home + name: Notify when someone arrives home initial: off icon: mdi:car ``` @@ -31,3 +31,22 @@ Configuration variables: 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`. +Here's an example of an automation using the above input_boolean. This action will only occur if the switch is on. + +```yaml +automation: + alias: Arriving home + trigger: + platform: state + entity_id: binary_sensor.motion_garage + to: 'on' + condition: + platform: state + entity_id: input_boolean.notify_home + state: 'on' + action: + service: notify.pushbullet + data: + title: "" + message: "Honey, I'm home!" +``` diff --git a/source/_components/input_select.markdown b/source/_components/input_select.markdown new file mode 100644 index 00000000000..6bc2bddfe36 --- /dev/null +++ b/source/_components/input_select.markdown @@ -0,0 +1,45 @@ +--- +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 +ha_release: 0.13 +--- + +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. When a user selectes a new item, a state transition event is generated. This state event can be used in an `automation` trigger. + +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/input_slider.markdown b/source/_components/input_slider.markdown new file mode 100644 index 00000000000..0fc6fc08975 --- /dev/null +++ b/source/_components/input_slider.markdown @@ -0,0 +1,36 @@ +--- +layout: page +title: "Input Slider" +description: "Instructions how to integrate the Input Slider component into Home Assistant." +date: 2016-03-15 06:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Automation +ha_release: 0.16 +--- + +The `input_slider` component allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. Changes to the slider generate state events. These state events can be utilized as `automation` triggers as well. + +```yaml +# Example configuration.yaml entry +input_slider: + slider1: + name: Slider 1 + initial: 30 + min: -20 + max: 35 + step: 1 +``` + +Configuration variables: + +- **[alias]** (*Required*): Alias for the slider input. +- **name** (*Optional*): Friendly name of the slider input. +- **initial** (*Optional*): Initial value when Home Assistant starts. +- **min** (*Optional*): Minimum value for the slider. +- **max** (*Optional*): Maximum value for the slider. +- **step** (*Optional*): Step value for the slider. + diff --git a/source/_components/insteon_hub.markdown b/source/_components/insteon_hub.markdown index 407c6c81c9a..7e6aa5f098b 100644 --- a/source/_components/insteon_hub.markdown +++ b/source/_components/insteon_hub.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Insteon Hub" description: "Instructions how to setup the Insteon Hub within Home Assistant." date: 2016-01-27 08:00 @@ -19,7 +19,7 @@ To integrate your Insteon Hub with Home Assistant, add the following section to ```yaml # Example configuration.yaml entry -insteon: +insteon_hub: username: YOUR_USERNAME password: YOUR_PASSWORD api_key: YOUR_API_KEY 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..d3c28ba9295 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: universal_devices.png ha_category: Hub +ha_release: pre 0.7 --- The ISY994 is a home automation controller that is capable of controlling Insteon and X10 devices. The controller is also capable of controlling Z-Wave devices but that functionality has not yet been confirmed with Home Assistant. diff --git a/source/_components/keyboard.markdown b/source/_components/keyboard.markdown index 4bf2672e14b..07b3e2db260 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 @@ -7,7 +7,9 @@ sidebar: true comments: false sharing: true footer: true +logo: keyboard.png ha_category: Automation +ha_release: pre 0.7 --- @@ -28,7 +30,7 @@ keyboard: ## {% linkable_title Dependencies %} -You may need to install platform-specific [dependencies for PyUserInput](https://github.com/SavinaRoja/PyUserInput#dependencies) in order to use the keyboard component. In most cases this can be done by running: +You may need to install platform-specific [dependencies for PyUserInput](https://github.com/PyUserInput/PyUserInput#dependencies) in order to use the keyboard component. In most cases this can be done by running: ```bash $ pip3 install [package name] diff --git a/source/_components/light.blinksticklight.markdown b/source/_components/light.blinksticklight.markdown index e1e1c186c7c..5040ee6fe99 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: blinkstick.png ha_category: Light +ha_release: 0.7.5 --- -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..c6bc83680df 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,13 @@ If you want to enable the light component directly, add the following lines to y light: platform: hue host: DEVICE_IP_ADDRESS - # Optional, make this unique if specifying multiple Hue hubs + allow_unreachable: true filename: my_hue_hub_token.conf ``` + +Configuration variables: + +- **host** (*Required*): IP address of the device, eg. 192.168.1.10. +- **allow_unreachable** (*Optional*): This will allow unreachable bulbs to report their state correctly. By default *name* from the device is used. +- **filename** (*Optional*): Make this unique if specifying multiple Hue hubs. + diff --git a/source/_components/light.hyperion.markdown b/source/_components/light.hyperion.markdown index db95cad7a4b..18e6dcc31f3 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 @@ -8,6 +8,7 @@ comments: false sharing: true footer: true ha_category: Light +ha_release: 0.7.6 --- This platform allows you to integrate your [Hyperion](https://github.com/tvdzwan/hyperion/wiki) into Home Assistant. diff --git a/source/_components/light.lifx.markdown b/source/_components/light.lifx.markdown index f6456c04566..bc61eef7fb8 100644 --- a/source/_components/light.lifx.markdown +++ b/source/_components/light.lifx.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "LIFX" description: "Instructions how to integrate LIFX into Home Assistant." date: 2016-01-27 08:00 @@ -9,6 +9,8 @@ sharing: true footer: true logo: lifx.png ha_category: Light +ha_iot_class: "Local Push" +ha_release: 0.12 --- The `lifx` platform allows you to integrate your [LIFX](http://www.lifx.com) into Home Assistant. @@ -23,5 +25,5 @@ light: Configuration variables: - **server** (*Optional*): Your server address. Only needed if using more than one network interface. Omit if you are unsure. -- **consumer_secret** (*Optional*): The broadcast address, set to reach all LIFX bulbs. +- **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..d4006358385 100644 --- a/source/_components/light.limitlessled.markdown +++ b/source/_components/light.limitlessled.markdown @@ -1,35 +1,28 @@ --- -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" +ha_release: pre 0.7 --- `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 +46,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..c544d7d9af0 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 @@ -11,7 +11,7 @@ footer: true This component allows you to track and control various light bulbs. -It has [4 built-in light profiles](https://github.com/balloob/home-assistant/blob/master/homeassistant/components/light/light_profiles.csv) which you're able to extend by putting a `light_profiles.csv` file in your config dir. +It has [4 built-in light profiles](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/light/light_profiles.csv) which you're able to extend by putting a `light_profiles.csv` file in your config dir. Preferred way to setup the Philips Hue platform is through the [the discovery component]({{site_root}}/components/discovery/). For the Wink light platform enable [the wink component]({{site_root}}/components/wink/). @@ -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 6e8b57ce211..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 @@ -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_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the state value. -- **brightness_value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the brightness value. -- **rgb_value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the RGB value. +- **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..b66c1b93401 --- /dev/null +++ b/source/_components/light.mysensors.markdown @@ -0,0 +1,113 @@ +--- +layout: page +title: "MySensors Light" +description: "Instructions how to integrate MySensors lights into Home Assistant." +date: 2016-04-13 14:20 +0100 +sidebar: true +comments: false +sharing: true +footer: true +logo: mysensors.png +ha_category: Light +featured: false +ha_release: 0.13 +--- + +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. + +### {% linkable_title Example sketch %} + +```cpp +/* + * Documentation: http://www.mysensors.org + * Support Forum: http://forum.mysensors.org + * + * http://www.mysensors.org/build/dimmer + */ + +#include +#include + +#define SN "DimmableRGBLED" +#define SV "1.0" +#define CHILD_ID 1 +#define LED_PIN 5 + +MySensor gw; + +char rgb[7] = "ffffff"; // RGB value. +int currentLevel = 0; // Current dimmer level. +MyMessage dimmerMsg(CHILD_ID, V_PERCENTAGE); +MyMessage lightMsg(CHILD_ID, V_STATUS); +MyMessage rgbMsg(CHILD_ID, V_RGB); + +void setup() +{ + gw.begin(incomingMessage); + gw.sendSketchInfo(SN, SV); + gw.present(CHILD_ID, S_RGB_LIGHT); + // Send initial values. + gw.send(lightMsg.set(currentLevel > 0 ? 1 : 0)); + gw.send(dimmerMsg.set(currentLevel)); + gw.send(rgbMsg.set(rgb)); +} + +void loop() +{ + gw.process(); +} + +void incomingMessage(const MyMessage &message) { + if (message.type == V_RGB) { + // Retrieve the RGB value from the incoming message. + // RGB LED not implemented, just a dummy print. + String hexstring = message.getString(); + hexstring.toCharArray(rgb, sizeof(rgb)); + Serial.print("Changing color to "); + Serial.println(rgb); + gw.send(rgbMsg.set(rgb)); + } + + if (message.type == V_STATUS || message.type == V_PERCENTAGE) { + // Retrieve the light status or dimmer level from the incoming message. + int requestedLevel = atoi(message.data); + + // Adjust incoming level if this is a V_LIGHT update [0 == off, 1 == on]. + requestedLevel *= (message.type == V_STATUS ? 100 : 1); + + // Clip incoming level to valid range of 0 to 100 + requestedLevel = requestedLevel > 100 ? 100 : requestedLevel; + requestedLevel = requestedLevel < 0 ? 0 : requestedLevel; + + // Change level value of LED pin. + analogWrite(LED_PIN, (int)(requestedLevel / 100. * 255)); + currentLevel = requestedLevel; + + // Update the gateway with the current V_STATUS and V_PERCENTAGE. + gw.send(lightMsg.set(currentLevel > 0 ? 1 : 0)); + gw.send(dimmerMsg.set(currentLevel)); + } +} +``` + +[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..95dd54f172a 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 @@ -8,23 +8,52 @@ comments: false sharing: true footer: true ha_category: Light +ha_release: 0.7.5 --- -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: +The `rfxtrx` platform support lights that communicate in the frequency range of 433.92 MHz. +First you have to set up your [rfxtrx hub.](/components/rfxtrx/) +The easiest way to find your lights is to add this to your `configuration.yaml`: + +```yaml +light: + platform: rfxtrx + automatic_add: True +``` + +Launch your homeassistant and go the website. +Push your remote and your device should be added: + +

+ +

+ +Here the name is 0b11000102ef9f210010f70 and you can verify that it works from the frontend. +Then you should update your configuration to: +```yaml +light: + platform: rfxtrx + devices: + 0b11000102ef9f210010f70: + name: device_name +``` + +Example configuration: ```yaml # Example configuration.yaml entry light: - platform: rfxtrx - devices: - living_room: - name: Living Room - packetid: XXXXX - automatic_add: True + platform: rfxtrx + devices: + 0b11000f10e9e5660b010f70: + name: Light1 + 0b1100100f29e5660c010f70: + name: Light_TV ``` 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. +- **fire_event** *Optional*: Fires an event even if the state is the same as before. Can be used for automations. diff --git a/source/_components/light.scsgate.markdown b/source/_components/light.scsgate.markdown new file mode 100644 index 00000000000..5162abe217b --- /dev/null +++ b/source/_components/light.scsgate.markdown @@ -0,0 +1,31 @@ +--- +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 +ha_release: 0.13 +--- + +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..a81d2384646 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,16 +9,16 @@ 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: +To use your TellStick device, you first have to set up your [Tellstick hub](https://home-assistant.io/components/tellstick/) and then add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry light: platform: tellstick ``` - diff --git a/source/_components/light.vera.markdown b/source/_components/light.vera.markdown index 5ab3de9e3c9..810ea94cfca 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 @@ -9,31 +9,12 @@ sharing: true footer: true logo: vera.png ha_category: Light +ha_iot_class: "Local Push" --- +The `vera` platform allows you to control your [Vera](http://getvera.com/) lights from within Home Assistant. -This vera light platform allows you to control your [Vera](http://getvera.com/) lights. +They will be automatically discovered if the vera component is loaded. -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. +For more configuration information see the [Vera component](/components/vera/) documentation. -To use your Vera lights in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - platform: vera - vera_controller_url: http://YOUR_VERA_IP:3480/ - device_data: - 12: - name: My awesome sensor - exclude: true - 13: - name: Another sensor -``` - -Configuration variables: - -- **vera_controller_url** (*Required*): This is the base URL of your vera controller including the port number if not running on 80, eg. http://192.168.1.21:3480/ -- **device_data** array (*Optional*):This contains an array additional device information for your Vera devices. It is not required and if not specified all sensors configured in your Vera controller will be added with default values. You should use the id of your Vera device as the key for the device within `device_data`. - - **name** (*Optional*):This parameter allows you to override the name of your Vera device in the frontend, if not specified the value configured for the device in your Vera will be used. - - **exclude** (*Optional*): This parameter allows you to exclude the specified device, it should be set to "True" if you want this device excluded. diff --git a/source/_components/light.wemo.markdown b/source/_components/light.wemo.markdown new file mode 100644 index 00000000000..a2ff553aada --- /dev/null +++ b/source/_components/light.wemo.markdown @@ -0,0 +1,22 @@ +--- +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" +ha_release: 0.14 +--- + + +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 index 0c71f8e4bfc..25832fedbd1 100644 --- a/source/_components/light.zigbee.markdown +++ b/source/_components/light.zigbee.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: ZigBee Light description: "Instructions on how to set up ZigBee lights within Home Assistant." date: 2016-01-28 12:38 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..7394ddf7730 --- /dev/null +++ b/source/_components/lock.mqtt.markdown @@ -0,0 +1,54 @@ +--- +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 +ha_release: 0.15 +--- + +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..61e901986e8 --- /dev/null +++ b/source/_components/lock.verisure.markdown @@ -0,0 +1,19 @@ +--- +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 +ha_release: 0.13 +--- + + +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..b12225d5b13 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: wink.png ha_category: Lock +ha_release: 0.9 --- -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/locks.zwave.markdown b/source/_components/locks.zwave.markdown new file mode 100644 index 00000000000..f5a1802fb6e --- /dev/null +++ b/source/_components/locks.zwave.markdown @@ -0,0 +1,15 @@ +--- +layout: page +title: "Z-Wave Lock" +description: "Instructions how to setup the Z-Wave Locks within Home Assistant." +date: 2016-05-07 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: z-wave.png +ha_category: Locks +ha_release: 0.19 +--- + +To get your Z-Wave locks working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/). 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..3cb7a36d2f5 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 @@ -11,11 +11,11 @@ logo: home-assistant.png ha_category: "Other" --- -The logger component lets one define the level of logging activities in Home Assistant. +The logger component lets you define the level of logging activities in Home Assistant. To enable the logger in your installation, add the following to your `configuration.yaml` file: -By default log all messages and ignore log event lowest than critical for custom omponents. +By default log all messages and ignore events lower than critical for specified components. ```yaml # Example configuration.yaml entry @@ -26,7 +26,7 @@ logger: homeassistant.components.camera: critical ``` -By default ignore all messages lowest than critical and log event for custom components. +By default ignore all messages lower than critical and log event for specified components. ```yaml # Example configuration.yaml entry @@ -41,7 +41,7 @@ logger: Possible log severities are: -- citical +- critical - fatal - error - warning 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..9a67a23ddb6 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,12 +12,13 @@ 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: - Denon DRA-N5 - Denon RCD-N8 (untested) +- Denon RCD-N9 (partial support) To add a Denon Network Receiver to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/media_player.firetv.markdown b/source/_components/media_player.firetv.markdown index 8f52a5582da..9a5aca9937b 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: firetv.png ha_category: Media Player +ha_release: 0.7.6 --- -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 +27,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 :5555`, background the process - Configure Home Assistant as follows: diff --git a/source/_components/media_player.itunes.markdown b/source/_components/media_player.itunes.markdown index 5e5c890353a..625a46a59ff 100644 --- a/source/_components/media_player.itunes.markdown +++ b/source/_components/media_player.itunes.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "iTunes" description: "Instructions how to integrate iTunes into Home Assistant." date: 2015-06-22 11:00 @@ -9,6 +9,7 @@ sharing: true footer: true logo: itunes.png ha_category: Media Player +ha_release: 0.7.3 --- diff --git a/source/_components/media_player.kodi.markdown b/source/_components/media_player.kodi.markdown index effa67c954f..8861c04c1d4 100644 --- a/source/_components/media_player.kodi.markdown +++ b/source/_components/media_player.kodi.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Kodi" description: "Instructions how to integrate Kodi into Home Assistant." date: 2015-06-22 11:00 @@ -10,10 +10,11 @@ footer: true logo: kodi.png ha_category: Media Player featured: true +ha_release: pre 0.7 --- -The kodi platform allows you to control a [Kodi](http://kodi.tv/) multimedia system from Home Assistant. +The `kodi` platform allows you to control a [Kodi](http://kodi.tv/) multimedia system from Home Assistant. To add Kodi to your installation, add the following to your `configuration.yaml` file: @@ -21,7 +22,8 @@ To add Kodi to your installation, add the following to your `configuration.yaml` # Example configuration.yaml entry media_player: platform: kodi - url: http://192.168.0.123/jsonrpc + host: http://192.168.0.123 + port: 8080 name: Kodi user: USERNAME password: PASSWORD @@ -29,7 +31,8 @@ media_player: Configuration variables: -- **url** *Required*: The URL of the XBMC/Kodi JSON-RPC API, eg. http://192.168.0.123/jsonrpc +- **host** *Required*: The host name or address of the device that is running XBMC/Kodi +- **port** *Required*: The port number, default 8080 - **name** *Optional*: The name of the device used in the frontend. - **username** *Optional*: The XBMC/Kodi HTTP username. - **password** *Optional*: The XBMC/Kodi HTTP password. diff --git a/source/_components/media_player.markdown b/source/_components/media_player.markdown index 5a227781835..0589f06e938 100644 --- a/source/_components/media_player.markdown +++ b/source/_components/media_player.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Media Player" description: "Instructions how to setup your media players with Home Assistant." date: 2015-01-24 14:39 @@ -13,31 +13,38 @@ Interacts with media players on your network. Please check the sidebar for a ful ## {% linkable_title Services %} - ### {% linkable_title Media control services %} -Available services: `turn_off`, `volume_up`, `volume_down`, `media_play_pause`, `media_play`, `media_pause`, `media_next_track` +Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `media_play_pause`, `media_play`, `media_pause`, `media_next_track`, `media_previous_track` | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | Target a specific media player. Defaults to all. -### {% linkable_title Media play services %} - -There are three services to start playing YouTube video's on the media player. - -#### {% linkable_title Service `media_player/play_youtube_video` %} - -Service to start playing a YouTube video on the media player. +#### {% linkable_title Service `media_player/mute_volume` %} | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | Target a specific media player. Defaults to all. -| `video` | no | YouTube video to be played, ie. `L0MK7qz13bU` +| `mute` | no | True/false for mute/unmute -#### {% linkable_title Service `media_player/start_fireplace` and `media_player/start_epic_sax` %} - -Will either start a fireplace or Epic Sax Guy 10h on the media player. +#### {% linkable_title Service `media_player/set_volume_level` %} | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | Target a specific media player. Defaults to all. +| `volume` | no | Integer for volume level + +#### {% linkable_title Service `media_player/media_seek` %} + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | Target a specific media player. Defaults to all. +| `position` | no | Position to seek to. The format is platform dependent. + +#### {% linkable_title Service `media_player/play_media` %} + +| Service data attribute | Optional | Description | +| ------------------------------- | -------- | ----------- | +| `entity_id` | yes | Target a specific media player. Defaults to all. +| `media_content_id` | no | A media identifier. The format of this is component dependent. For example, you can provide URLs to Sonos and Cast but only a playlist ID to iTunes. +| `media_content_type` | no | A media type. Must be one of `MUSIC`, `TVSHOW`, `VIDEO`, `EPISODE`, `CHANNEL` or `PLAYLIST`. For example, to play music you would set `media_content_type` to `MUSIC`. diff --git a/source/_components/media_player.mpd.markdown b/source/_components/media_player.mpd.markdown index 49d5b265325..449a5972500 100644 --- a/source/_components/media_player.mpd.markdown +++ b/source/_components/media_player.mpd.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Music Player Daemon (MPD)" description: "Instructions how to integrate Music Player Daemon into Home Assistant." date: 2015-06-02 08:00 @@ -9,10 +9,11 @@ sharing: true footer: true logo: mpd.png ha_category: Media Player +ha_release: pre 0.7 --- -The mpd platform allows you to control a [Music Player Daemon](http://www.musicpd.org/) from Home Assistant. Unfortunatly you will not be able to manipulate the playlist (add or delete songs) or add transitions between the songs. +The `mpd` platform allows you to control a [Music Player Daemon](http://www.musicpd.org/) from Home Assistant. Unfortunatly you will not be able to manipulate the playlist (add or delete songs) or add transitions between the songs. To add MPD to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/media_player.onkyo.markdown b/source/_components/media_player.onkyo.markdown new file mode 100644 index 00000000000..dca6873bf17 --- /dev/null +++ b/source/_components/media_player.onkyo.markdown @@ -0,0 +1,93 @@ +--- +layout: page +title: "Onkyo" +description: "Instructions how to integrate Onkyo receivers into Home Assistant." +date: 2016-03-30 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: onkyo.png +ha_category: Media Player +ha_release: 0.17 +--- + + +The `onkyo` platform allows you to control a [Onkyo receiver](http://www.onkyo.com/) from Home Assistant. + +To add an Onkyo receiver to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: onkyo +``` + +A few notes: + +Source selection has no front-end UI, but can be controlled by way of service calls. Select the source string from the following list: + +- video1 +- video2 +- video3 +- video4 +- video5 +- video6 +- video7 +- dvd +- bd-dvd +- tape1 +- tv-tape +- tape2 +- phono +- cd +- tv-cd +- fm +- am +- tuner +- dlna +- internet-radio +- usb +- network +- universal-port +- multi-ch +- xm +- sirius + +Sample automation and input select + +```yaml +automation: + alias: Receiver Source + trigger: + platform: state + entity_id: input_select.receiver_source + action: + service: media_player.select_source + data_template: + entity_id: media_player.txnr535_000000000000 + source: > + {% raw %}{% if is_state('input_select.receiver_source', 'HTPC') %} + pc + {% elif is_state('input_select.receiver_source', 'Chromecast') %} + aux1 + {% elif is_state('input_select.receiver_source', 'Wii U') %} + game + {% elif is_state('input_select.receiver_source', 'Bluray') %} + bd + {% elif is_state('input_select.receiver_source', 'Raspberry Pi') %} + tv + {% endif %}{% endraw %} + +input_select: + receiver_source: + name: Source + options: + - HTPC + - Chromecast + - Wii U + - Bluray + - Raspberry Pi + initial: None +``` + diff --git a/source/_components/media_player.panasonic_viera.markdown b/source/_components/media_player.panasonic_viera.markdown new file mode 100644 index 00000000000..f9135c75fc2 --- /dev/null +++ b/source/_components/media_player.panasonic_viera.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "Panasonic Viera TV" +description: "Instructions on how to integrate a Panasonic Viera TV into Home Assistant." +date: 2016-03-17 13:04 +sidebar: true +comments: false +sharing: true +footer: true +logo: panasonic.png +ha_category: Media Player +featured: false +ha_release: 0.17 +--- + +The `panasonic_viera` platform allows you to control a Panasonic Viera TV. + +Currently known supported models: + +- TX-P42STW50 + +If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io). + +To add a TV to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: panasonic_viera + host: 192.168.0.10 + port: 55000 + name: Living Room TV +``` + +Configuration variables: + +- **host** *Required*: The IP of the Panasonic Viera TV, e.g. `192.168.0.10` +- **port** *Optional*: The port of your Panasonic Viera TV. Defaults to `55000` +- **name** *Optional*: The name you would like to give to the Panasonic Viera TV. + diff --git a/source/_components/media_player.pioneer.markdown b/source/_components/media_player.pioneer.markdown new file mode 100644 index 00000000000..0d05f454731 --- /dev/null +++ b/source/_components/media_player.pioneer.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "Pioneer Network Receivers" +description: "Instructions on how to integrate a Pioneer Network Receivers into Home Assistant." +date: 2016-05-07 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: pioneer.png +ha_category: Media Player +featured: false +ha_release: 0.19 +--- + +The `pioneer` platform allows you to control Pioneer Network Receivers. + +To add a Pioneer receiver to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: pioneer + host: 192.168.0.10 + name: Living receiver +``` + +Configuration variables: + +- **host** *Required*: The IP of the Pioneer device, eg. `192.168.0.10` +- **name** *Optional*: The name you would like to give to the receiver. + diff --git a/source/_components/media_player.plex.markdown b/source/_components/media_player.plex.markdown index 4488e68fb87..a90abe77d89 100644 --- a/source/_components/media_player.plex.markdown +++ b/source/_components/media_player.plex.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Plex" description: "Instructions how to integrate Plex into Home Assistant." date: 2015-10-05 21:21 @@ -10,10 +10,11 @@ footer: true logo: plex.png ha_category: Media Player featured: true +ha_release: 0.7.4 --- -The Plex platform allows you to connect a [Plex Media Server](https://plex.tv) to Home Assistant. It will allow you to control media playback and see the current playing item. The preferred way to setup the Plex platform is by enabling the the [the discovery component](/components/discovery/) and requires GDM to be enabled. +The `plex` platform allows you to connect a [Plex Media Server](https://plex.tv) to Home Assistant. It will allow you to control media playback and see the current playing item. The preferred way to setup the Plex platform is by enabling the the [the discovery component](/components/discovery/) and requires GDM to be enabled. If local authentication is enabled or multiple users are defined, HASS requires an authentication token to be entered in the webinterface. See [Finding your account token / X-Plex-Token](https://support.plex.tv/hc/en-us/articles/204059436). diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown new file mode 100644 index 00000000000..75cff8e9a34 --- /dev/null +++ b/source/_components/media_player.samsungtv.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Samsung Smart TV" +description: "Instructions on how to integrate a Samsung Smart TV into Home Assistant." +date: 2016-02-13 12:02 +sidebar: true +comments: false +sharing: true +footer: true +logo: samsung.png +ha_category: Media Player +featured: false +ha_release: 0.13 +--- + +The `samsungtv` platform allows you to control a [Samsung Smart TV](http://www.samsung.com/uk/consumer/tv-audio-video/televisions/). + +When the TV is first connected, you will need to accept Home Assistant on the TV to allow communication. + +To add a TV to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: samsungtv + host: 192.168.0.10 + name: Living Room TV +``` + +Configuration variables: + +- **host** *Required*: The IP of the Samsung Smart TV, e.g. 192.168.0.10 +- **name** *Optional*: The name you would like to give to the Samsung Smart TV. + + +Currently known supported models: + +- C7700 +- D7000 +- D8000 +- ES5500 +- ES6800 +- F6500 + +If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io). +The two letters at the beginning of the model number represent the region, UE is Europe, UN is North America and UA is Asia & Australia. The two numbers following that represent the screen size. If you add your model remember to remove these before adding them to the list. diff --git a/source/_components/media_player.snapcast.markdown b/source/_components/media_player.snapcast.markdown new file mode 100644 index 00000000000..f694932b9b6 --- /dev/null +++ b/source/_components/media_player.snapcast.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "SnapCast" +description: "Instructions on how to integrate SnapCast into Home Assistant." +date: 2016-02-01 19:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: +ha_category: Media Player +featured: false +ha_release: 0.13 +--- + +The `snapcast` platform allows you to control [SnapCast](https://github.com/badaix/snapcast) from Home Assistant. + +To add SnapCast to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: snapcast +``` diff --git a/source/_components/media_player.sonos.markdown b/source/_components/media_player.sonos.markdown index 22354e8d55a..b2db3341a49 100644 --- a/source/_components/media_player.sonos.markdown +++ b/source/_components/media_player.sonos.markdown @@ -1,7 +1,7 @@ --- -layout: component +layout: page title: "Sonos" -description: "Instructions how to integrateSonos devices into Home Assistant." +description: "Instructions how to integrate Sonos devices into Home Assistant." date: 2015-09-12 13:00 sidebar: true comments: false @@ -10,10 +10,11 @@ footer: true logo: sonos.png ha_category: Media Player featured: true +ha_release: 0.7.3 --- -The sonos platform allows you to control your [Sonos](http://www.sonos.com) HiFi wireless speakers and audio components from Home Assistant. +The `sonos` platform allows you to control your [Sonos](http://www.sonos.com) HiFi wireless speakers and audio components from Home Assistant. To add your Sonos components to your installation, add the following to your `configuration.yaml` file. It will perform auto-discovery of your connected speakers. @@ -23,3 +24,12 @@ media_player: platform: sonos ``` +You can also specify hosts to connect to if they cannot be found with auto-discovery. + +```yaml +# Example configuration.yaml entry +media_player: + platform: sonos + hosts: IP +``` + diff --git a/source/_components/media_player.squeezebox.markdown b/source/_components/media_player.squeezebox.markdown index 5d1a11ce52a..e819dba2bc6 100644 --- a/source/_components/media_player.squeezebox.markdown +++ b/source/_components/media_player.squeezebox.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Logitech Squeezebox" description: "Instructions on how to integrate a Logitech Squeezebox player into Home Assistant." date: 2015-08-09 11:00 @@ -9,6 +9,7 @@ sharing: true footer: true logo: logitech.png ha_category: Media Player +ha_release: pre 0.7 --- diff --git a/source/_components/media_player.universal.markdown b/source/_components/media_player.universal.markdown index f634f7bdb88..fd0267ffb52 100644 --- a/source/_components/media_player.universal.markdown +++ b/source/_components/media_player.universal.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Universal" description: "Instructions how to create a universal media player in Home Assistant." date: 2016-01-12 22:00 diff --git a/source/_components/media_player.webostv.markdown b/source/_components/media_player.webostv.markdown new file mode 100644 index 00000000000..32e65807f16 --- /dev/null +++ b/source/_components/media_player.webostv.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "LG WebOS TV" +description: "Instructions how to integrate a LG WebOS TV within Home Assistant." +date: 2016-04-18 23:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: webos.png +ha_category: Media Player +ha_iot_class: "Local Poll" +ha_release: 0.18 +--- + +The `webostv` platform allows you to control a LG WebOS Smart TV. + +When the TV is first connected, you will need to accept Home Assistant on the TV to allow communication. + +To add a TV to your installation, add the following to your `configuration.yaml` file and follow the configurator instructions: + +```yaml +# Example configuration.yaml entry +media_player: + platform: webostv + host: 192.168.0.10 + name: Living Room TV +``` + +Configuration variables: + +- **host** *Optional*: The IP of the LG WebOS Smart TV, e.g. 192.168.0.10 +- **name** *Optional*: The name you would like to give to the LG WebOS Smart TV. + +If you do not provide a host name, all LG WebOS Smart TV's within your network will be auto-discovered if your TV network name is set to `[LG] webOS TV` diff --git a/source/_components/media_player.yamaha.markdown b/source/_components/media_player.yamaha.markdown new file mode 100644 index 00000000000..85c6e4e07d4 --- /dev/null +++ b/source/_components/media_player.yamaha.markdown @@ -0,0 +1,42 @@ +--- +layout: page +title: "Yamaha Network Receivers" +description: "Instructions how to integrate Yamaha Network Receivers into Home Assistant." +date: 2016-03-26 0:58 -0700 +sidebar: true +comments: false +sharing: true +footer: true +logo: yamaha.png +ha_category: Media Player +ha_release: 0.16 +--- + +The `yamaha` platform allows you to control [Yamaha Network Receivers](http://usa.yamaha.com/products/audio-visual/av-receivers-amps/rx) from Home Assistant. + +Supported devices: + +- HTR-4065 +- RX-V473 +- RX-V573 +- RX-V673 +- RX-V773 +- And more + +To add a Yamaha Network Receiver to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +media_player: + platform: yamaha + name: 'Basement Receiver' +``` +Configuration variables: + +- **name** (*Optional*): Name of the device + +A few notes: + +- This will automatically search your network for Yamaha receivers. It will add a media player device for each one. +- Currently the only controls that are available is Power On/Off, Mute, and Volume control. Other functions such as source select are in progress of being developed. + diff --git a/source/_components/modbus.markdown b/source/_components/modbus.markdown index f33ca58ca30..133e1692097 100644 --- a/source/_components/modbus.markdown +++ b/source/_components/modbus.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Modbus" description: "Instructions how to integrate Modbus within Home Assistant." date: 2015-04-25 9:16 @@ -9,6 +9,7 @@ sharing: true footer: true logo: modbus.png ha_category: Hub +ha_release: pre 0.7 --- diff --git a/source/_components/mqtt.markdown b/source/_components/mqtt.markdown index 2c0684ac9f1..df2adc25741 100644 --- a/source/_components/mqtt.markdown +++ b/source/_components/mqtt.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "MQTT" description: "Instructions how to setup MQTT within Home Assistant." date: 2015-08-07 18:00 @@ -10,6 +10,7 @@ footer: true logo: mqtt.png ha_category: Hub featured: true +ha_release: pre 0.7 --- MQTT (aka MQ Telemetry Transport) is a machine-to-machine or "Internet of Things" connectivity protocol on top of TCP/IP. It allows extremely lightweight publish/subscribe messaging transport. @@ -38,11 +39,40 @@ Configuration variables: - **username** (*Optional*): The username to use with your MQTT broker. - **password** (*Optional*): The corresponding password for the username to use with your MQTT broker. - **certificate** (*Optional*): Certificate to use to encrypt communication with the broker. +- **client_key** (*Optional*): Client key (example: `/home/user/owntracks/cookie.key`) +- **client_cert** (*Optional*): Client certificate (example: `/home/user/owntracks/cookie.crt`) - **protocol** (*Optional*): Protocol to use: 3.1 or 3.1.1. By default it connects with 3.1.1 and falls back to 3.1 if server does not support 3.1. ## {% linkable_title Picking a broker %} -The MQTT component needs you to run an MQTT broker for Home Assistant to connect to. There are three options, each with various degrees of ease of setup and privacy. +The MQTT component needs you to run an MQTT broker for Home Assistant to connect to. There are four options, each with various degrees of ease of setup and privacy. + +#### {% linkable_title Use the embedded broker %} + +Home Assistant contains an embedded MQTT broker. If no broker configuration is given, the [HBMQTT broker](https://pypi.python.org/pypi/hbmqtt) is started and Home Asssistant connects to it. Embedded broker default configuration: + +| Setting | Value | +| ------- | ----- | +| Host | localhost +| Port | 1883 +| Protocol | 3.1.1 +| User | homeassistant +| Password | Your API [password](/components/http/) +| Websocket port | 8080 + +

+This broker does not currently work with OwnTracks because of a protocol version issue. +

+ +If you want to customize the settings of the embedded broker, use `embedded:` and the values shown in the [HBMQTT Broker configuration](http://hbmqtt.readthedocs.org/en/latest/references/broker.html#broker-configuration). This will replace the default configuration. + +```yaml +# Example configuration.yaml entry +mqtt: + embedded: + # Your HBMQTT config here. Example at: + # http://hbmqtt.readthedocs.org/en/latest/references/broker.html#broker-configuration +``` #### {% linkable_title Run your own %} @@ -111,22 +141,56 @@ Home Assistant will automatically load the correct certificate if you connect to ## {% linkable_title Building on top of MQTT %} + - [MQTT Alarm control panel](/components/alarm_control_panel.mqtt/) + - [MQTT Binary sensor](/components/binary_sensor.mqtt/) - [MQTT Sensor](/components/sensor.mqtt/) - [MQTT Switch](/components/switch.mqtt/) + - [MQTT Light](/components/light.mqtt/) + - [MQTT Lock](/components/lock.mqtt/) - [MQTT Device Tracker](/components/device_tracker.mqtt/) - [OwnTracks Device Tracker](/components/device_tracker.owntracks/) - - [MQTT automation rule](/components/automation/#mqtt-based-automation) - - [MQTT alarm](/components/alarm_control_panel.mqtt/) - - Integrating it into own component. See the [MQTT example component](https://github.com/balloob/home-assistant/blob/dev/config/custom_components/mqtt_example.py) how to do this. + - [MQTT automation rule](/getting-started/automation-trigger/#mqtt-trigger) + + - Integrating it into own component. See the [MQTT example component](/cookbook/python_component_mqtt_basic/) how to do this. + +### {% linkable_title Publish service %} + +The MQTT component will register the service `publish` which allows publishing messages to MQTT topics. There are two ways of specifiying your payload. You can either use `payload` to hard-code a payload or use `payload_template` to specify a [template](/topics/templating/) that will be rendered to generate the payload. + +```json +{ + "topic": "home-assistant/light/1/command", + "payload": "on" +} +``` + +```json +{ + "topic": "home-assistant/light/1/state", + "payload_template": "{% raw %}{{ states('device_tracker.paulus') }}{% endraw %}" +} +``` ## {% linkable_title Testing your setup %} -For debugging purposes `mosquitto` is shipping commandline tools to send and recieve MQTT messages. For sending test messages to a broker running on localhost: +The `mosquitto` broker package is shipping commandline tools to send and recieve MQTT messages. As an alternative have a look at [hbmqtt_pub](http://hbmqtt.readthedocs.org/en/latest/references/hbmqtt_pub.html) and [hbmqtt_sub](http://hbmqtt.readthedocs.org/en/latest/references/hbmqtt_sub.html) which are provied by HBMQTT. For sending test messages to a broker running on localhost check the example below: ```bash $ mosquitto_pub -h 127.0.0.1 -t home-assistant/switch/1/on -m "Switch is ON" ``` +If you are using the embeeded MQTT broker, the command looks a little different because you need to add the MQTT protocol version. + +```bash +$ mosquitto_pub -V mqttv311 -t "hello" -m world +``` + +or if you are using a API password. + +```bash +$ mosquitto_pub -V mqttv311 -u homeassistant -P -t "hello" -m world +``` + Another way to send MQTT messages by hand is to use the "Developer Tools" in the Frontend. Choose "Call Service" and then `mqtt/mqtt_send` under "Available Services". Enter something similar to the example below into the "Service Data" field. ```json @@ -148,6 +212,14 @@ For reading all messages sent on the topic `home-assistant` to a broker running $ mosquitto_sub -h 127.0.0.1 -v -t "home-assistant/#" ``` +For the embeeded MQTT broker the command looks like the sample below. + +```bash +$ mosquitto_sub -v -V mqttv311 -t "#" +``` + +Add the username `homeassistant` and your API password if needed. + ## {% linkable_title Processing JSON %} The MQTT switch and sensor platforms support processing JSON over MQTT messages and parse them using JSONPath. JSONPath allows you to specify where in the JSON the value resides that you want to use. The following examples will always return the value `100`. @@ -168,4 +240,4 @@ switch: More information about the full JSONPath syntax can be found [here][JSONPath syntax]. -[JSONPath syntax]: https://github.com/kennknowles/python-jsonpath-rw#jsonpath-syntax \ No newline at end of file +[JSONPath syntax]: https://github.com/kennknowles/python-jsonpath-rw#jsonpath-syntax diff --git a/source/_components/mqtt_eventstream.markdown b/source/_components/mqtt_eventstream.markdown index a208bdae3e7..4844302ac2a 100644 --- a/source/_components/mqtt_eventstream.markdown +++ b/source/_components/mqtt_eventstream.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "MQTT Eventstream" description: "Instructions how to setup MQTT eventstream within Home Assistant." date: 2016-01-13 08:00 @@ -8,10 +8,11 @@ comments: false sharing: true footer: true logo: mqtt.png -ha_category: Others +ha_category: Other +ha_release: 0.11 --- -The `mqtt_eventstream` components two Home Assistant instances via MQTT. +The `mqtt_eventstream` components connects two Home Assistant instances via MQTT. To integrate MQTT Eventstream into Home Assistant, add the following section to your `configuration.yaml` file: diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index 26214db8b51..7c5c3bbe5f7 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -1,8 +1,8 @@ --- -layout: component +layout: page title: "MySensors" description: "Instructions how to integrate MySensors sensors into Home Assistant." -date: 2015-05-14 21:57 +date: 2016-04-21 13:30 +0100 sidebar: true comments: false sharing: true @@ -12,49 +12,58 @@ ha_category: Hub featured: true --- -The [MySensors](https://www.mysensors.org) project combines Arduino boards with NRF24L01 radio boards to build sensor networks. The component will automatically add all available switches and sensors to Home Assistant. +The [MySensors](https://www.mysensors.org) project combines Arduino boards with NRF24L01 radio boards to build sensor networks. The component will automatically add all available devices to Home Assistant, after [presentation](#presentation) is done. -### Configuration +### {% linkable_title Configuration %} -Integrate your Serial MySensors Gateway by adding the following to your `configuration.yaml` file: +Integrate your Serial or Ethernet MySensors Gateway by adding the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry mysensors: gateways: - - port: '/dev/ttyUSB0' + - device: '/dev/ttyUSB0' persistence_file: 'path/mysensors.json' - - port: '/dev/ttyACM1' + baud_rate: 38400 + - device: '/dev/ttyACM0' persistence_file: 'path/mysensors2.json' + baud_rate: 115200 + - device: '192.168.1.18' + persistence_file: 'path/mysensors3.json' + tcp_port: 5003 debug: true persistence: true version: '1.5' + optimistic: false ``` Configuration variables: -- **port** (*Required*): The port where your board is connected to your Home Assistant host. +- **device** (*Required*): The path to the serial gateway where it is connected to your Home Assistant host, or the address of the tcp ethernet gateway. Resolving DNS addresses is theoretically supported but not tested. +- **baud_rate** (*Optional*): Specifies the baud rate of the connected serial gateway. Default is 115200. +- **tcp_port** (*Optional*): Specifies the port of the connected tcp ethernet gateway. Default is 5003. - **debug** (*Optional*): Enable or disable verbose debug logging. Default is false. - **persistence** (*Optional*): Enable or disable local persistence of sensor information. If this is disabled, then each sensor will need to send presentation messages after Home Assistant starts. Default is true. -- **persistence_file** (*Optional*): Path to a file to save sensor information. The file extension determines the file type. Currently supported file types are 'pickle' and 'json'. +- **persistence_file** (*Optional*): The path to a file to save sensor information. The file extension determines the file type. Currently supported file types are 'pickle' and 'json'. - **version** (*Optional*): Specifies the MySensors protocol version to use. Supports 1.4 and 1.5. Default is 1.4. +- **optimistic** (*Optional*): Enable or disable optimistic mode for actuators (switch/light). Default is false. Set this to true if no state feedback from actuators is possible. Home Assistant will assume that the command succeeded and change state. -If you are using an original Arduino the port will be named `ttyACM*`. The exact number can be determined with the command shown below. +If you are using an original Arduino as a serial gateway, the port will be named `ttyACM*`. The exact number can be determined with the command shown below. ```bash $ ls /dev/ttyACM* ``` -### Presentation +### {% linkable_title Presentation %} Present a MySensors sensor or actuator, by following these steps: -1. Connect your gateway to your computer. +1. Connect the serial gateway to your computer or the ethernet gateway to your network. 2. Configure the MySensors component in configuration.yaml. 3. Start hass. -4. Wait for "gateway started" in the log output. +4. Wait for "Connected to [device]" in the log output. 5. Write and upload your MySensors sketch to the sensor. Make sure you: - - Either use a manual node id, or AUTO for requesting a node id from the controller, in gw.begin(). + - Either use a manual node id, or AUTO for requesting a node id from the controller, in the begin method for initialization of the MySensors library. - Send sketch name. - Present the sensor's S_TYPE. - Send at least one initial value per V_TYPE. diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown index b04bfb93c26..f8a4723fe8a 100644 --- a/source/_components/nest.markdown +++ b/source/_components/nest.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Nest" description: "Instructions how to integrate Nest into Home Assistant." date: 2016-01-29 21:57 diff --git a/source/_components/notify.command_line.markdown b/source/_components/notify.command_line.markdown new file mode 100644 index 00000000000..b6f7a2ce9e1 --- /dev/null +++ b/source/_components/notify.command_line.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "Command line Notify" +description: "Instructions how to add command line notifications to Home Assistant." +date: 2016-02-22 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: command_line.png +ha_category: Notifications +ha_release: 0.14 +--- + +The `command_line` platform allows you to use external tools for notifications from Home Assistant. The message will be passed in as STDIN. + +To enable those notifications in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + name: NOTIFIER_NAME + platform: command_line + command: "espeak -vmb/mb-us1" +``` + +Configuration variables: + +- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +- **command** (*Required*): The action to take. + +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.file.markdown b/source/_components/notify.file.markdown index da02630853f..4084f2bbed2 100644 --- a/source/_components/notify.file.markdown +++ b/source/_components/notify.file.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "File" description: "Instructions how to add file notifications to Home Assistant." date: 2015-06-22 10:00 @@ -7,11 +7,13 @@ sidebar: true comments: false sharing: true footer: true +logo: file.png ha_category: Notifications +ha_release: pre 0.7 --- -The file platform allows you to store notifications from Home Assistant as a file. +The `file` platform allows you to store notifications from Home Assistant as a file. To enable file notifications in your installation, add the following to your `configuration.yaml` file: @@ -30,4 +32,4 @@ Configuration variables: - **filename** (*Required*): Name of the file to use. The file will be created if it doesn't exist and saved in your `config/` folder. - **timestamp** (*Optional*): Setting `timestamp` to 1 adds a timestamp to every entry. -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.free_mobile.markdown b/source/_components/notify.free_mobile.markdown index a3d6c53f574..ed79113add4 100644 --- a/source/_components/notify.free_mobile.markdown +++ b/source/_components/notify.free_mobile.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Free Mobile" description: "Instructions how to add user notifications to Home Assistant." date: 2016-01-12 08:36 @@ -9,6 +9,7 @@ sharing: true footer: true logo: free_mobile.png ha_category: Notifications +ha_release: 0.11 --- The `free_mobile` platform is using the French mobile operator [Free Mobile](http://mobile.free.fr/) to send SMS to your own cell phone. diff --git a/source/_components/notify.gntp.markdown b/source/_components/notify.gntp.markdown new file mode 100644 index 00000000000..bf84923a0ed --- /dev/null +++ b/source/_components/notify.gntp.markdown @@ -0,0 +1,36 @@ +--- +layout: page +title: "GNTP (Growl)" +description: "Instructions for adding GNTP/Growl notifications to Home Assistant." +date: 2016-03-25 18:18 +sidebar: true +comments: false +sharing: true +footer: true +logo: gntp.png +ha_category: Notifications +ha_release: 0.16 +--- + + +[GNTP](http://www.growlforwindows.com/gfw/help/gntp.aspx) is a specification for sending and receiving notifications between computers. The most well known server implementations are [Growl](http://growl.info) for Mac and [Growl for Windows](http://www.growlforwindows.com/gfw/). + +To use GNTP notifications, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + name: NOTIFER_NAME + platform: gntp +``` + +GNTP will attempt to connect to a local server running on port 23053 if no `hostname` is provided. + +Configuration variables: + +- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +- **app_name** (*Optional*): The application name that will be displayed on every notification and will be registered with the server. +- **app_icon** (*Optional*): The icon that will be displayed on every notification. You can provide a HTTP URL or a `file://` URL. File URLs only work if Home Assistant and the GNTP server are running on the same machine. If no `app_icon` is set a local copy of the Home Assistant logo will be used. If you choose to use a HTTP URL please make the maximum image size 150 px by 150 px as Growl for Mac will sometimes timeout when registering. +- **hostname** (*Optional*): The hostname or IP address of the GNTP server to contact. +- **password** (*Optional*): The password to authenticate to the GNTP server with. +- **port** (*Optional*): The port that the GNTP server runs on. The specification states that servers should not allow users to use any port other than 23053 but `port` is provided here just in case. diff --git a/source/_components/notify.google_voice.markdown b/source/_components/notify.google_voice.markdown index 677f8749d98..aa1a6901e3b 100644 --- a/source/_components/notify.google_voice.markdown +++ b/source/_components/notify.google_voice.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Google Voice SMS" description: "Instructions how to add user notifications to Home Assistant." date: 2016-01-29 @@ -28,9 +28,25 @@ notify: Configuration variables: - **username** (*Required*): Enter your the Google email address you have signed up for Google Voice with. Go to https://www.google.com/voice to setup your Google Voice account. -- **password** (*Required*): Enter the password associated with the above email. Go to https://www.pushbullet.com/ to retrieve your API key. +- **password** (*Required*): Enter the password associated with the above email. - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. ### Usage Google Voice is a notify platform and thus can be controlled by calling the notify service [as described here](/components/notify/). It will send a notification to all devices listed in the notification **target**. + +```yaml +# Example automation notification entry +automation: + - alias: The sun has set + trigger: + platform: sun + event: sunset + action: + service: notify.googlevoice + data: + message: 'The sun has set' + target: + - 5555555555 + - 5555555556 +``` diff --git a/source/_components/notify.instapush.markdown b/source/_components/notify.instapush.markdown index 9160a0ea649..aeed476d1d6 100644 --- a/source/_components/notify.instapush.markdown +++ b/source/_components/notify.instapush.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Instapush" description: "Instructions how to add Instapush notifications to Home Assistant." date: 2015-05-01 18:00 @@ -9,10 +9,11 @@ sharing: true footer: true logo: instapush.png ha_category: Notifications +ha_release: pre 0.7 --- -The instapush platform uses [Instapush](https://instapush.im) to delivery notifications from Home Assistant to your Android or iOS device. +The `instapush` platform uses [Instapush](https://instapush.im) to delivery notifications from Home Assistant to your Android or iOS device. The Instapush [Getting Started page](https://instapush.im/home/start/) will guide through the process of creating the required items. @@ -49,4 +50,4 @@ curl -X POST \ ``` For further details, please check the [API](https://instapush.im/developer/rest). -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index ed8f64c4d7d..39ba50c756e 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Notifications" description: "Instructions how to add user notifications to Home Assistant." date: 2015-01-20 22:36 @@ -35,9 +35,17 @@ Once loaded, the `notify` platform will expose a service that can be called to s | `title` | yes | Title of the notification. Default is `Home Assistant`. | `target` | yes | Some platforms will allow specifying a recipient that will receive the notification. See your platform page if it is supported. -The notification component supports specifying [templates] for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications. +The notification component supports specifying [templates](/topics/templating/) for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications. -[templates]: /getting-started/templating/ +In an [action](https://home-assistant.io/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) it could look like this with a customized subject. + +```yaml +action: + service: notify.notify + data: + message: "Your message goes here" + title: "Custom subject" +``` ### {% linkable_title Test if it works %} diff --git a/source/_components/notify.message_bird.markdown b/source/_components/notify.message_bird.markdown new file mode 100644 index 00000000000..3a48b2d9f04 --- /dev/null +++ b/source/_components/notify.message_bird.markdown @@ -0,0 +1,45 @@ +--- +layout: page +title: "MessageBird" +description: "Instructions how to add user notifications to Home Assistant." +date: 2016-03-15 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: message_bird.png +ha_category: Notifications +ha_release: 0.16 +--- + +The `MessageBird` notification platform sends notifications as SMS messages using [MessageBird](https://www.messagebird.com/) to your mobile phone. + +To enable MessageBird notifications in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + platform: message_bird + api_key: YOUR_API_KEY + name: NOTIFIER_NAME + sender: SENDER_NAME +``` + +Configuration variables: + +- **api_key** (*Required*): Enter the API key for MessageBird. Go to https://www.messagebird.com/ to retrieve your API key. +- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +- **sender** (*Optional*): Setting the optional parameter `sender`. This will be the sender of the SMS. It may be either a telephone number (e.g. `+4915112345678`) or a text with a maximum length of 11 characters. Defaults to `HA`. + +### {% linkable_title Usage %} + +MessageBird is a notify platform and thus can be controlled by calling the notify service [as described here](/components/notify/). It will send a notification to the specified mobile phone number(s). + +#### {% linkable_title Example service payload %} + +```json +{ + "message": "A message for many people", + "target": [ "+49123456789", "+43123456789" ] +} +``` diff --git a/source/_components/notify.mqtt.markdown b/source/_components/notify.mqtt.markdown index a83e2622954..1f42e72e43d 100644 --- a/source/_components/notify.mqtt.markdown +++ b/source/_components/notify.mqtt.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "MQTT notifications" +layout: page +title: "MQTT Notifications" description: "Instructions how to add MQTT notifications to Home Assistant." date: 2016-02-01 08:00 sidebar: true diff --git a/source/_components/notify.nma.markdown b/source/_components/notify.nma.markdown index ccd634f28c7..7c548f7fb96 100644 --- a/source/_components/notify.nma.markdown +++ b/source/_components/notify.nma.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Notify My Android" description: "Instructions how to add user notifications to Home Assistant." date: 2015-05-01 18:00 @@ -9,6 +9,7 @@ sharing: true footer: true logo: nma.png ha_category: Notifications +ha_release: pre 0.7 --- @@ -31,4 +32,4 @@ Configuration variables: Details for the API : https://www.notifymyandroid.com/api.jsp -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.pushbullet.markdown b/source/_components/notify.pushbullet.markdown index c8877437343..5860998a158 100644 --- a/source/_components/notify.pushbullet.markdown +++ b/source/_components/notify.pushbullet.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "PushBullet" description: "Instructions how to add user notifications to Home Assistant." date: 2015-01-20 22:36 diff --git a/source/_components/notify.pushetta.markdown b/source/_components/notify.pushetta.markdown index 2690df81331..9374e7e0409 100644 --- a/source/_components/notify.pushetta.markdown +++ b/source/_components/notify.pushetta.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Pushetta" description: "Instructions how to add Pushetta notifications to Home Assistant." date: 2015-11-10 18:00 @@ -45,4 +45,4 @@ curl -X POST \ For further details, please check the [API](http://pushetta.com/pushetta-api/). -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.pushover.markdown b/source/_components/notify.pushover.markdown index 02aa891990a..36d7c7e0076 100644 --- a/source/_components/notify.pushover.markdown +++ b/source/_components/notify.pushover.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "PushOver" description: "Instructions how to add user notifications to Home Assistant." date: 2015-01-20 22:36 @@ -9,6 +9,7 @@ sharing: true footer: true logo: pushover.png ha_category: Notifications +ha_release: pre 0.7 --- diff --git a/source/_components/notify.rest.markdown b/source/_components/notify.rest.markdown new file mode 100644 index 00000000000..253b78096d6 --- /dev/null +++ b/source/_components/notify.rest.markdown @@ -0,0 +1,41 @@ +--- +layout: page +title: "REST" +description: "Instructions how to add RESTful notifications to Home Assistant." +date: 2016-02-12 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Notifications +ha_release: 0.13 +--- + + +The `rest` notification platform allows you to deliver [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) notifications from Home Assistant to another party. + +To enable the REST notification in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + name: NOTIFIER_NAME + platform: rest + resource: http://IP_ADDRESS/ENDPOINT + method: GET + message_param_name: MESSAGE_PARAMETER_NAME + title_param_name: TITLE_PARAMETER_NAME + target_param_name: TARGET_PARAMETER_NAME +``` + +Configuration variables: + +- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +- **resource** (*Required*): The resource or endpoint that will recieve the value. +- **method** (*Optional*): The method of the request. Default is GET. +- **message_param_name** (*Optional*): Parameter name for the message. Defaults to `message`. +- **title_param_name** (*Optional*): Parameter name for the title. Defaults to none. +- **target_param_name** (*Optional*): Parameter name for the target. Defaults to none. + +To use notifications, please see the [getting started with automation page](/getting-started/automation/). + diff --git a/source/_components/notify.sendgrid.markdown b/source/_components/notify.sendgrid.markdown new file mode 100644 index 00000000000..1ba53da012a --- /dev/null +++ b/source/_components/notify.sendgrid.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "SendGrid" +description: "Instructions how to add email notifications via SendGrid to Home Assistant." +date: 2016-02-27 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: sendgrid.png +ha_category: Notifications +--- + +The `sendgrid` notification platform sends email notifications via [SendGrid](https://sendgrid.com/), a proven cloud-based email platform. + +To enable notification emails via SendGrid in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + name: NOTIFIER_NAME + platform: sendgrid + api_key: API_KEY + sender: SENDER_EMAIL_ADDRESS + recipient: YOUR_RECIPIENT +``` + +Configuration variables: + +- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +- **api_key** (*Required*): SendGrid API key - https://app.sendgrid.com/settings/api_keys +- **sender** (*Required*): E-mail address of the sender. +- **recipient** (*Required*): Recipient of the notification. + +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.slack.markdown b/source/_components/notify.slack.markdown index df0d51888e0..54df1121347 100644 --- a/source/_components/notify.slack.markdown +++ b/source/_components/notify.slack.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Slack" description: "Instructions how to add Slack notifications to Home Assistant." date: 2015-08-06 18:00 @@ -9,10 +9,11 @@ sharing: true footer: true logo: slack.png ha_category: Notifications +ha_release: pre 0.7 --- -The slack platform allows you to deliver notifications from Home Assistant to [Slack](https://slack.com/). +The `slack` platform allows you to deliver notifications from Home Assistant to [Slack](https://slack.com/). You need to obtain the [Slack API token](https://api.slack.com/web?sudo=1) to be able to send notifications. @@ -33,5 +34,5 @@ Configuration variables: - **api_key** (*Required*): The slack API token to use for sending slack messages. You can get your slack API token here https://api.slack.com/web?sudo=1 - **default_channel** (*Required*): The default channel to post to if no channel is explicitly specified when sending the notification message. -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.smtp.markdown b/source/_components/notify.smtp.markdown index d56dcc00c0d..9b9c419e8f1 100644 --- a/source/_components/notify.smtp.markdown +++ b/source/_components/notify.smtp.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "SMTP" description: "Instructions how to add e-mail notifications to Home Assistant." date: 2015-06-03 18:00 @@ -9,6 +9,7 @@ sharing: true footer: true logo: smtp.png ha_category: Notifications +ha_release: pre 0.7 --- @@ -43,11 +44,11 @@ Configuration variables: This platform is fragile and not able to catch all exceptions in a smart way because of the large number of possible configuration combinations. -A combination that will work properly is port 587 and STARTTLS. It's recommanded to enable STARTTLS, if possible. +A combination that will work properly is port 587 and STARTTLS. It's recommended to enable STARTTLS, if possible. Keep in mind that if the password contains a colon, it needs to be wrapped in apostrophes in the `configuration.yaml` file. For Google Mail (smtp.gmail.com) an additional step in the setup process is needed. Google has some extra layers of protection which need special attention. By default, the usage by external applications, especially scripts, is limited. Visit the [Less secure apps](https://www.google.com/settings/security/lesssecureapps) page and enable it. -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.syslog.markdown b/source/_components/notify.syslog.markdown index 9ff602d809c..89f7f3b2246 100644 --- a/source/_components/notify.syslog.markdown +++ b/source/_components/notify.syslog.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Syslog" description: "Instructions how to add syslog notifications to Home Assistant." date: 2015-06-09 16:00 @@ -8,10 +8,11 @@ comments: false sharing: true footer: true ha_category: Notifications +ha_release: pre 0.7 --- -The syslog platform allows you to deliver notifications from Home Assistant to the local syslog. +The `syslog` platform allows you to deliver notifications from Home Assistant to the local syslog. To enable syslog notifications in your installation, add the following to your `configuration.yaml` file: @@ -57,4 +58,4 @@ The table contains values to use in your `configuration.yaml` file. For details about facility, option, and priority please consult the [wikpedia article](http://en.wikipedia.org/wiki/Syslog) and [RFC 3164](http://tools.ietf.org/html/rfc3164). -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index b804aa5bff7..e2f656f92dc 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Telegram" description: "Instructions how to add Telegram notifications to Home Assistant." date: 2015-10-09 18:00 @@ -9,6 +9,7 @@ sharing: true footer: true logo: telegram.png ha_category: Notifications +ha_release: 0.7.5 --- @@ -64,4 +65,4 @@ Configuration variables: - **api_key** (*Required*): The API token of your bot. - **chat_id** (*Required*: The chat ID of your user. -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.twitter.markdown b/source/_components/notify.twitter.markdown index 97ea742ce19..c8f22d3ffc3 100644 --- a/source/_components/notify.twitter.markdown +++ b/source/_components/notify.twitter.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Twitter" description: "Instructions how to add Twitter notifications to Home Assistant." date: 2016-01-27 07:00 @@ -9,12 +9,13 @@ sharing: true footer: true logo: twitter.png ha_category: Notifications +ha_release: 0.12 --- The `twitter` platform uses [Twitter](https://twitter.com) to delivery notifications from Home Assistant. -Go to [Twitter Apps](https://apps.twitter.com/app/new) and create an application. Visit "Keys and Access Tokens" of the application to get the details ("Consumer Key", "Consumer Secret", and "Access Token Secret" which needs to be generated). +Go to [Twitter Apps](https://apps.twitter.com/app/new) and create an application. Visit "Keys and Access Tokens" of the application to get the details ("Consumer Key", "Consumer Secret", "Access Token" and "Access Token Secret" which needs to be generated). To add Twitter to your installation, add the following to your `configuration.yaml` file: @@ -25,6 +26,7 @@ notify: platform: twitter consumer_key: ABCDEFGHJKLMNOPQRSTUVXYZ consumer_secret: ABCDEFGHJKLMNOPQRSTUVXYZ + access_token: ABCDEFGHJKLMNOPQRSTUVXYZ access_token_secret: ABCDEFGHJKLMNOPQRSTUVXYZ ``` @@ -33,6 +35,7 @@ Configuration variables: - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. - **consumer_key** (*Required*): Your "Consumer Key" (API Key) for the application. - **consumer_secret** (*Required*): Your "Consumer Secret" (API Secret) for the application. +- **access_token** (*Required*): Your "Access Token" for the application. - **access_token_secret** (*Required*): Your "Access Token Secret" for the application. -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.webostv.markdown b/source/_components/notify.webostv.markdown new file mode 100644 index 00000000000..f69708da52e --- /dev/null +++ b/source/_components/notify.webostv.markdown @@ -0,0 +1,49 @@ +--- +layout: page +title: "LG WebOS TV notifications" +description: "Instructions how to integrate a LG WebOS TV within Home Assistant." +date: 2016-04-18 23:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: webos.png +ha_category: Notifications +ha_iot_class: "Local Poll" +ha_release: 0.18 +--- + +The `webostv` platform allows you to send notifications to a LG WebOS Smart TV. + +When the TV is first connected, you will need to accept Home Assistant on the TV to allow communication. + +To add a TV to your installation, add the following to your `configuration.yaml` file and follow the configurator instructions: + +```yaml +# Example configuration.yaml entry +notify: + platform: webostv + host: 192.168.0.112 + name: livingroom_tv +``` + +Configuration variables: + +- **host** *Required*: The IP of the LG WebOS Smart TV, e.g. 192.168.0.10 +- **name** *Required*: The name you would like to give to the LG WebOS Smart TV. + +A possible automation could be: + +```yaml +# Example configuration.yaml entry +automation: + - alias: Open a window + trigger: + platform: numeric_state + entity_id: sensor.netatmo_livingroom_co2 + above: 999 + action: + service: notify.livingroom_tv + data: + message: "You should open a window! (Livingroom Co2: {{ states.sensor.netatmo_livingroom_co2.state }}ppm)" +``` diff --git a/source/_components/notify.xmpp.markdown b/source/_components/notify.xmpp.markdown index d381fd0fca1..8d09f3e4b0f 100644 --- a/source/_components/notify.xmpp.markdown +++ b/source/_components/notify.xmpp.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Jabber (XMPP)" description: "Instructions how to add Jabber (XMPP) notifications to Home Assistant." date: 2015-05-08 18:00 @@ -9,10 +9,11 @@ sharing: true footer: true logo: xmpp.png ha_category: Notifications +ha_release: pre 0.7 --- -The xmpp platform allows you to deliver notifications from Home Assistant to a [Jabber (XMPP)](http://xmpp.org) account. +The `xmpp` platform allows you to deliver notifications from Home Assistant to a [Jabber (XMPP)](http://xmpp.org) account. ```yaml # Example configuration.yaml entry @@ -22,6 +23,7 @@ notify: sender: YOUR_JID password: YOUR_JABBER_ACCOUNT_PASSWORD recipient: YOUR_RECIPIENT + tls: False ``` Configuration variables: @@ -29,9 +31,10 @@ Configuration variables: - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. - **sender** (*Required*): The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, eg. your_name@jabber.org. - **password** (*Required*): The password for your given Jabber account. -- **priority** (*Required*): The Jabber ID (JID) that will receive the messages. +- **recipient** (*Required*): The Jabber ID (JID) that will receive the messages. +- **tls** (*Optional*): Allow to disable TLS. Defaults to true. All Jabber IDs (JID) must include the domain. Make sure that the password matches the account provided as sender. -To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). +To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/octoprint.markdown b/source/_components/octoprint.markdown new file mode 100644 index 00000000000..67b3846901b --- /dev/null +++ b/source/_components/octoprint.markdown @@ -0,0 +1,30 @@ +--- +layout: page +title: "OctoPrint" +description: "Instructions how to setup the OctoPrint in Home Assistant." +date: 2015-01-20 22:36 +sidebar: true +comments: false +sharing: true +footer: true +logo: octoprint.png +ha_category: Hub +featured: true +ha_release: 0.19 +--- + +[OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors, you will have to setup sensors and binary sensors separately. + +To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your configuration.yaml. + + +```yaml +octoprint: + host: http://YOUR_OCTOPRINT_HOST + api_key: YOUR_API_KEY +``` + +Configuration variables: + +- **api_key** (*Required*): The retrieved api key. +- **host** (*Required*): The octoprint host. diff --git a/source/_components/proximity.markdown b/source/_components/proximity.markdown new file mode 100644 index 00000000000..c0fdcd24cd7 --- /dev/null +++ b/source/_components/proximity.markdown @@ -0,0 +1,58 @@ +--- +layout: page +title: "Proximity" +description: "Instructions how to setup Proximity monitoring within Home Assistant." +date: 2016-02-07 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Organization +ha_release: 0.13 +--- + +The `proximity` component allows you to monitor the proximity of devices to a particular [zone](/components/zone/) and the direction of travel. The result is an entity created in Home Assistant which maintains the proximity data. + +This component is useful to reduce the number of automation rules required when wanting to perform automations based on locations outside a particular zone. The [zone](/getting-started/automation-trigger/#zone-trigger) and [state](/getting-started/automation-trigger/#state-trigger) based triggers allow similar control but the number of rules grows exponentially when factors such as direction of travel need to be taken into account. + +Some examples of its use include: + +- Increase thermostat temperature as you near home +- Decrease temperature the further away from home you travel + +The Proximity entity which is created has the following values: + +- `state`: Distance from the monitored zone (in km) +- `dir_of_travel`: Direction of the closest device to the monitored zone. Values are: + - 'not set' + - 'arrived' + - 'towards' + - 'away_from' + - 'unknown' + - 'stationary' +- `dist_to_zone`: Distance from the monitored zone (in km) + +To enable this component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +proximity: + zone: home + ignored_zones: + - twork + - elschool + devices: + - device_tracker.nwaring_nickmobile + - device_tracker.eleanorsiphone + - device_tracker.tsiphone + tolerance: 50 +``` + +Configuration variables: + +- **zone** (*Optional*): The zone to which this component is measuring the distance to. Default is the home zone. +- **ignored_zones** array (*Optional*): Where proximity is not calculated for a device (either the device being monitored or ones being compared (e.g. work or school). +- **devices** array (*Optional*): A list of devices to compare location against to check closeness to the configured zone. +- **tollerance** (*Optional*): The tolerance used to calculate the direction of travel in meters (m) to filter out small GPS coordinate changes. + diff --git a/source/_components/rfxtrx.markdown b/source/_components/rfxtrx.markdown index 8dccdf26c99..bb4635fb6bb 100644 --- a/source/_components/rfxtrx.markdown +++ b/source/_components/rfxtrx.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "RFXtrx" description: "Instructions how to integrate RFXtrx into Home Assistant." date: 2015-10-08 10:15 @@ -8,8 +8,10 @@ comments: false sharing: true footer: true ha_category: Hub +ha_release: pre 0.7 --- -The rfxtrx component supports RFXtrx devices by [RFXCOM](http://www.rfxcom.com) which communicate in the frequency range of 433.92 MHz. + +The `rfxtrx` component supports RFXtrx devices by [RFXCOM](http://www.rfxcom.com) which communicate in the frequency range of 433.92 MHz. To enable RFXtrx in your installation, add the following to your `configuration.yaml` file: @@ -20,33 +22,10 @@ rfxtrx: debug: True ``` + Configuration variables: - **device** (*Required*): The path to your device, e.g. `/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1Y0NJGR-if00-port0` - **debug** (*Optional*): If you want to receive debug output. -### How to find the packet_id for your devices -Make sure you have enabled all RFXtrx related platforms. Push your remote and the device will be added automatically. After that you can see you device packetid in the state developer tools in the app. - -Example for X10 and Chacon DI.O signals, if you see in state developer tools the following entities: - -``` -light.123efab1__1b2200000890efab1213f60 -light.a8__0123454041230170 -``` - -You must add the following to your `configuration.yaml`: - -```YAML -light: - platform: rfxtrx - automatic_add: True - devices: - 123efab1: - name: My DI.0 light device - packetid: 1b2200000890efab1213f60 - a8: - name: My X10 light device - packetid: 0123454041230170 -``` diff --git a/source/_components/rollershutter.command_line.markdown b/source/_components/rollershutter.command_line.markdown new file mode 100644 index 00000000000..6a2651f61a0 --- /dev/null +++ b/source/_components/rollershutter.command_line.markdown @@ -0,0 +1,39 @@ +--- +layout: page +title: "Command line Rollershutter" +description: "Instructions how to have rollershutters call command line commands." +date: 2016-02-22 13:45 +sidebar: true +comments: false +sharing: true +footer: true +logo: command_line.png +ha_category: Rollershutter +ha_release: 0.14 +--- +A rollershutter platform that issues specific commands when it is moved up, down and stopped. This might very well become our most powerful platform as it allows anyone to integrate any type of rollershutter into Home Assistant that can be controlled from the command line, including calling other scripts! + +To enable command_rollershutter in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +rollershutter: +- platform: command_line + rollershutters: + Kitchen Rollershutter: + upcmd: move_command up kitchen + downcmd: move_command down kitchen + stopcmd: move_command stop kitchen + statecmd: state_command kitchen + value_template: '{% raw %}{{ value }}{% endraw %}' +``` + +Configuration variables: + +- **rollershutters** (*Required*): The array that contains all command rollershutters. + - **entry** (*Required*): Name of the command rollershutter. Multiple entries are possible. + - **upcmd** (*Required*): The action to take for move up. + - **downcmd** (*Required*): The action to take for move down. + - **stopcmd** (*Required*): The action to take for stop. + - **statecmd** (*Optional*): If given, this command will be run. Returning a result code `0` will indicate that the rollershutter is fully closed, returning a result code `100` will indicate that the rollershutter is fully open. + - **value_template** (*Optional - default: '{% raw %}{{ value }}{% endraw %}'*): If specified, statecmd will ignore the result code of the command but the template evaluating will indicate the position of the rollershutter. diff --git a/source/_components/rollershutter.markdown b/source/_components/rollershutter.markdown index 34f479fae51..1fe740d433c 100644 --- a/source/_components/rollershutter.markdown +++ b/source/_components/rollershutter.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Rollershutters" description: "Instructions how to integrate rollershutters into Home Assistant." date: 2015-12-01 12:00 diff --git a/source/_components/rollershutter.mqtt.markdown b/source/_components/rollershutter.mqtt.markdown index a9b92398d6e..a880f101a38 100644 --- a/source/_components/rollershutter.mqtt.markdown +++ b/source/_components/rollershutter.mqtt.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "MQTT Rollershutter" description: "Instructions how to integrate MQTT motorized devices into Home Assistant." date: 2015-12-01 12:00 @@ -9,23 +9,26 @@ sharing: true footer: true logo: mqtt.png ha_category: Rollershutter +ha_release: 0.9 --- -This platform enables the possibility to control an MQTT rollershutter. The device state will be updated only after receiving the a new state from `state_topic`. If these messages are published with RETAIN flag, the MQTT device will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state will be `unknown`. +The `mqtt` rollershutter platform enables the possibility to control an MQTT rollershutter. The device state will be updated only after receiving the a new state from `state_topic`. If these messages are published with RETAIN flag, the MQTT device will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state will be `unknown`. There is a state attribute that stores the relative position of the device, where 0% means the device is `closed` and all other intermediate positions means the device is `open`. +To enable this platform, add the following lines to your `configuration.yaml`: + ```yaml # Example configuration.yaml entry -motor: +rollershutter: platform: mqtt name: "Bedroom Rollershutter" state_topic: "home/bedroom/rollershutter" command_topic: "home/bedroom/rollershutter/set" qos: 0 - payload_open: "OPEN" - payload_close: "CLOSE" + payload_up: "OPEN" + payload_down: "CLOSE" payload_stop: "STOP" value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` @@ -37,7 +40,7 @@ Configuration variables: - **name** (*Optional*): The name of the rollershutter. Default is 'MQTT Rollershutter'. - **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. If not defined, the rollershutter will be stateless, that is, no information about current position or open/closed. If defined, the received payload must be a integer between 0 and 100, that represents the percentage for fully closed and fully open, respectively. - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0. This QoS will also be used to publishing messages. -- **payload_open** (*Optional*): The payload to open the rollershutter. Default is "OPEN". -- **payload_close** (*Optional*): The payload to close the rollershutter. Default is "CLOSE". +- **payload_up** (*Optional*): The payload to open the rollershutter. Default is "OPEN". +- **payload_down** (*Optional*): The payload to close the rollershutter. Default is "CLOSE". - **payload_stop** (*Optional*): The payload to stop the rollershutter. Default is "STOP". -- **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. diff --git a/source/_components/rollershutter.scsgate.markdown b/source/_components/rollershutter.scsgate.markdown new file mode 100644 index 00000000000..a1843b77a80 --- /dev/null +++ b/source/_components/rollershutter.scsgate.markdown @@ -0,0 +1,31 @@ +--- +layout: page +title: "SCSGate Rollershutter" +description: "Instructions how to integrate SCSGate motorized devices into Home Assistant." +date: 2016-01-31 22:16 +sidebar: true +comments: false +sharing: true +footer: true +logo: bus_scs.png +ha_category: Rollershutter +--- +The SCSGate device can control motirized roller shutters connected to the BTicino MyHome system. + +To enable SCSGate roller shutters in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +rollershutter: + 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. + +**Known limitation:** it is not possible to know the current state of the roller shutter. diff --git a/source/_components/scene.hunterdouglas_powerview.markdown b/source/_components/scene.hunterdouglas_powerview.markdown new file mode 100644 index 00000000000..3c6ab60238b --- /dev/null +++ b/source/_components/scene.hunterdouglas_powerview.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "PowerView Scenes" +description: "Instructions how to setup Hunter Douglas PowerView scenes within Home Assistant." +date: 2016-03-11 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: hunter-douglas-powerview.png +ha_category: Rollershutter +ha_release: 0.15 +--- + +Implements the [Hunter Douglas PowerView](http://www.hunterdouglas.com/operating-systems/powerview-motorization/support) platform scene control. It queries the PowerView Hub and Home Assistant displays them as scenes. + +Scenes can be activated using the service `scene.turn_on`. + +```yaml +# Example configuration.yaml entry +scene: + platform: hunterdouglas_powerview + address: IP_ADDRESS +``` + +Configuration variables: + +- **address** (*Required*): IP address of the PowerView Hub, eg. 192.168.1.10. diff --git a/source/_components/scene.markdown b/source/_components/scene.markdown index 083bd0c0a34..8b3cd94cd9d 100644 --- a/source/_components/scene.markdown +++ b/source/_components/scene.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Scenes" description: "Instructions how to setup scenes within Home Assistant." date: 2015-03-23 19:59 @@ -11,9 +11,7 @@ logo: home-assistant.png ha_category: Organization --- -A user can create scenes that capture the states you want certain entities to be. For example a scene can contain that light A should be turned on and light B should be bright red. - -Scenes can be activated using the service `scene.turn_on`. +You can create scenes that capture the states you want certain entities to be. For example a scene can specify that light A should be turned on and light B should be bright red. ```yaml # Example configuration.yaml entry @@ -33,3 +31,19 @@ scene: brightness: 100 light.ceiling: off ``` + +Scenes can be activated using the service `scene.turn_on` (there is no 'scene.turn_off' service). + +```yaml +# Example automation +... +automation: + trigger: + platform: state + entity_id: device_tracker.sweetheart + from: 'not_home' + to: 'home' + action: + service: scene.turn_on + entity_id: scene.romantic +``` diff --git a/source/_components/script.markdown b/source/_components/script.markdown index 5a9f6d285f9..e1ddf497f02 100644 --- a/source/_components/script.markdown +++ b/source/_components/script.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Scripts" description: "Instructions how to setup scripts within Home Assistant." date: 2015-03-23 19:59 @@ -11,20 +11,31 @@ logo: home-assistant.png ha_category: Automation --- -The script component allows users to create a sequence of service calls and delays. Scripts can be started using the service `script/turn_on` and interrupted using the service `script/turn_off`. +The script component allows users to specify a sequence of actions to be executed by Home Assistant when turned on. The script component will create an entity for each script and allow them to be controlled via services. + +The sequence of actions is specified using the [Home Assistant Script Syntax]. + +[Home Assistant Script Syntax]: /getting-started/scripts/ ```yaml # Example configuration.yaml entry script: + message_temperature: + sequence: + # This is Home Assistant Script Syntax + - service: notify.notify + data_template: + message: Current temperature is {% raw %}{{ states.sensor.temperature.state }}{% endraw %} + # Turns on the bedroom lights and then the living room lights 1 minute later wakeup: alias: Wake Up sequence: + # This is Home Assistant Script Syntax - event: LOGBOOK_ENTRY event_data: name: Paulus message: is waking up - # Optional entity_id: device_tracker.paulus domain: light - alias: Bedroom lights on @@ -33,10 +44,28 @@ script: entity_id: group.bedroom brightness: 100 - delay: - # supports seconds, milliseconds, minutes, hours, etc. + # supports seconds, milliseconds, minutes, hours minutes: 1 - alias: Living room lights on service: light.turn_on data: entity_id: group.living_room ``` + +### {% linkable_title Passing parameters in service calls %} + +As part of the service, parameters can be passed in that will be made available to the script as variables within templates. + +There are two ways to activate scripts. One is using the generic `script.turn_on` service. To pass variables to the script with this service, call it using the following parameters: + +```yaml +{ + "entity_id": "script.wakeup", + "variables": { + "hello": "world", + "name": "Paulus" + } +} +``` + +If you are calling the script service directly, for example `script.wakeup`. All service data will be made available as variables. diff --git a/source/_components/scsgate.markdown b/source/_components/scsgate.markdown new file mode 100644 index 00000000000..43841dc0cd9 --- /dev/null +++ b/source/_components/scsgate.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "SCSGate" +description: "Instructions how to integrate SCSGate into Home Assistant." +date: 2016-01-31 19:20 +sidebar: true +comments: false +sharing: true +footer: true +logo: bus_scs.png +ha_category: Hub +ha_release: 0.13 +--- + +The SCSGate component support the [SCSGate](https://translate.google.com/translate?hl=en&sl=it&tl=en&u=http%3A%2F%2Fguidopic.altervista.org%2Feibscsgt%2Finterface.html) device. This a homebrew device allows to interact with the MyHome system from BTicino/Legrande. + +To enable SCSGate in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +scsgate: + device: PATH_TO_DEVICE +``` + +Configuration variables: + +- **device** (*Required*): The path to your device, e.g. `/dev/ttyACM0` + +### How to find the scs_id for your devices + +The SCSGate component relies on the [scsgate](https://github.com/flavio/scsgate) python module. + +This module provides also a command line tool called `scs-monitor`. This program can be used to find the IDs of your lights, switches and roller shutters and produce the YAML snippet to insert into your `configuration.yaml` file. + +For more information checkout [this](http://scsgate.readthedocs.org/en/latest/?badge=latest#creation-of-a-home-assistant-configuration-file) section of `scsgate`'s documentation. diff --git a/source/_components/sensor.apcupsd.markdown b/source/_components/sensor.apcupsd.markdown new file mode 100644 index 00000000000..2a1d18741d3 --- /dev/null +++ b/source/_components/sensor.apcupsd.markdown @@ -0,0 +1,94 @@ +--- +layout: page +title: APCUPSd Sensor +description: "Instructions on how to set up APCUPSd sensors within Home Assistant." +date: 2016-02-10 18:28 +sidebar: true +comments: false +sharing: true +footer: true +logo: apcupsd.png +ha_category: Sensor +--- + +Any of the lines of output from the [apcaccess](http://linux.die.net/man/8/apcaccess) command can be used as a sensor device in Home Assistant. In order to create a sensor for a value, create an entity within a `sensor` section of your configuration. The following parameters may be used: + +- **name** (*Required*): The name you'd like to give the sensor in Home Assistant. +- **platform** (*Required*): Set to `apcupsd`. +- **type** (*Required*): The label for the value you'd like to track based on the output of `apcaccess`. Refer to the examples for ideas. + +#### Example + +Given the following output from `apcaccess`: + +```yaml +APC : 001,051,1149 +DATE : 2016-02-09 17:13:31 +0000 +HOSTNAME : localhost +VERSION : 3.14.12 (29 March 2014) redhat +UPSNAME : netrack +CABLE : Custom Cable Smart +DRIVER : APC Smart UPS (any) +UPSMODE : Stand Alone +STARTTIME: 2016-02-09 16:06:47 +0000 +MODEL : SMART-UPS 1400 +STATUS : TRIM ONLINE +LINEV : 247.0 Volts +LOADPCT : 13.0 Percent +BCHARGE : 100.0 Percent +TIMELEFT : 104.0 Minutes +MBATTCHG : 5 Percent +MINTIMEL : 3 Minutes +MAXTIME : 0 Seconds +MAXLINEV : 249.6 Volts +MINLINEV : 244.4 Volts +OUTPUTV : 218.4 Volts +SENSE : High +DWAKE : 0 Seconds +DSHUTD : 180 Seconds +DLOWBATT : 2 Minutes +LOTRANS : 196.0 Volts +HITRANS : 253.0 Volts +RETPCT : 15.0 Percent +ITEMP : 30.6 C +ALARMDEL : Low Battery +BATTV : 27.6 Volts +LINEFREQ : 50.0 Hz +LASTXFER : High line voltage +NUMXFERS : 0 +TONBATT : 0 Seconds +CUMONBATT: 0 Seconds +XOFFBATT : N/A +SELFTEST : NO +STESTI : 336 +STATFLAG : 0x0500000A +DIPSW : 0x00 +REG1 : 0x00 +REG2 : 0x00 +REG3 : 0x00 +MANDATE : 07/13/99 +SERIALNO : GS9888761008 +BATTDATE : 13/11/15 +NOMOUTV : 230 Volts +NOMBATTV : 24.0 Volts +EXTBATTS : 0 +FIRMWARE : 70.11.I +END APC : 2016-02-09 17:13:46 +0000 +``` + +Use the (case insensitive) values from the left hand column as your `type`: + +```yaml +sensor: + - name: Mains Voltage + platform: apcupsd + type: linev + + - name: UPS Load + platform: apcupsd + type: loadpct + + - name: UPS Temperature + platform: apcupsd + type: itemp +``` diff --git a/source/_components/sensor.arduino.markdown b/source/_components/sensor.arduino.markdown index fa013a9f0df..fa4ce338412 100644 --- a/source/_components/sensor.arduino.markdown +++ b/source/_components/sensor.arduino.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Arduino sensor" +layout: page +title: "Arduino Sensor" description: "Instructions how to integrate Arduino boards pins as sensors within Home Assistant." date: 2015-09-14 18:28 sidebar: true @@ -9,10 +9,11 @@ sharing: true footer: true logo: arduino.png ha_category: DIY +ha_release: pre 0.7 --- -The arduino sensor platform allows allow you to get an numerical values from an analog input pin of an [Arduino](https://www.arduino.cc/) board. Usually the value is between 0 and 1024. +The `arduino` sensor platform allows allow you to get an numerical values from an analog input pin of an [Arduino](https://www.arduino.cc/) board. Usually the value is between 0 and 1024. To enable an Arduino sensor with Home Assistant, add the following section to your `configuration.yaml` file: diff --git a/source/_components/sensor.arest.markdown b/source/_components/sensor.arest.markdown index 89326f3db32..40926089f5f 100644 --- a/source/_components/sensor.arest.markdown +++ b/source/_components/sensor.arest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "aREST sensor" +layout: page +title: "aREST Sensor" description: "Instructions how to integrate aREST sensors within Home Assistant." date: 2015-09-07 18:15 sidebar: true @@ -9,10 +9,11 @@ sharing: true footer: true logo: arest.png ha_category: Sensor +ha_iot_class: "Local Polling" --- -The arest 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` 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 enabled device in your installation, add the following to your `configuration.yaml` file: @@ -44,11 +45,11 @@ Configuration variables: - **monitored_variables** array (*Optional*): List of exposed variables. - **name** (*Required*): The name of the variable you wish to monitor. - **unit** (*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. - **pins** array (*Optional*): List of pins to monitor. Analog pins need a leading **A** for the pin number. - **name** (*Optional*): The name of the variable you wish to monitor. - **unit_of_measurement** (*Optional*): Defines the unit 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. The variables in the `monitored_variables` array must be available in the response of the device. As a starting point you could use the one of the example sketches (eg. [Ethernet](https://raw.githubusercontent.com/marcoschwartz/aREST/master/examples/Ethernet/Ethernet.ino) for an Arduino with Ethernet shield). In those sketches are two variables (`temperature` and `humidity`) available which will act as endpoints. diff --git a/source/_components/sensor.bitcoin.markdown b/source/_components/sensor.bitcoin.markdown index efb232c67fe..9b4525c9e3c 100644 --- a/source/_components/sensor.bitcoin.markdown +++ b/source/_components/sensor.bitcoin.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Bitcoin" description: "Instructions how to integrate Bitcoin data within Home Assistant." date: 2015-05-08 17:15 @@ -9,14 +9,11 @@ sharing: true footer: true logo: bitcoin.png ha_category: Sensor +ha_release: pre 0.7 --- -The bitcoin platform displays various details about the [Bitcoin](https://bitcoin.org) network. - -If you have an online wallet from [Blockchain.info](https://blockchain.info/) the sensor is capable to show your current balance. - -You need to enable the API access for your online wallet to get the balance. To do that log in and move to 'Account Setting', choose 'IP Restrictions', and check 'Enable Api Access'. You will get an email message from blockchain.info where you must authorize the API access. +The `bitcoin` sensor platform displays various details about the [Bitcoin](https://bitcoin.org) network. To add the Bitcoin sensor to your installation, add a selection of the available display options to your `configuration.yaml` file: @@ -24,8 +21,6 @@ To add the Bitcoin sensor to your installation, add a selection of the available # Example configuration.yaml entry sensor: platform: bitcoin - wallet: 'YOUR WALLET_ID' - password: YOUR_ACCOUNT_PASSWORD currency: YOUR CURRENCY display_options: - exchangerate @@ -53,8 +48,6 @@ sensor: Configuration variables: -- **wallet** (*Optional*): This is your wallet identifier from https://blockchain.info to access the online wallet. -- **password** (*Optional*): Password for your online wallet. - **currency** (*Optional*): The currency to exchange to, eg. CHF, USD, EUR, etc. Default is USD. - **display_options** array (*Required*): Options to display in the frontend. - **exchangerate**: Exchange rate of 1 BTC diff --git a/source/_components/sensor.bloomsky.markdown b/source/_components/sensor.bloomsky.markdown new file mode 100644 index 00000000000..08a9852e086 --- /dev/null +++ b/source/_components/sensor.bloomsky.markdown @@ -0,0 +1,42 @@ +--- +layout: page +title: "BloomSky Sensor" +description: "Instructions how to integrate the BloomSky sensors within Home Assistant." +date: 2016-02-03 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: bloomsky.png +ha_category: Sensor +--- + + +The `bloomsky` sensor component allows you to view the measurements made by sensors in the [BloomSky](https://www.bloomsky.com) weather station. This can work in concert with the [BloomSky camera](/components/camera.bloomsky). + +To enable these sensors in your installation, set up the [BloomSky component](/components/bloomsky) with your API key add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: bloomsky + monitored_conditions: + - Temperature + - Humidity + - Rain + - Pressure + - UVIndex + - Luminance + - Night +``` + +Configuration variables: + +- **monitored_conditions** array *Required*: The sensors that you wish to monitor on all of your devices. Select from these options: + - Humidity + - Luminance + - Night + - Pressure + - Rain + - Temperature + - UVIndex diff --git a/source/_components/sensor.command_sensor.markdown b/source/_components/sensor.command_line.markdown similarity index 92% rename from source/_components/sensor.command_sensor.markdown rename to source/_components/sensor.command_line.markdown index 914ce66f8ff..0e26cae696f 100644 --- a/source/_components/sensor.command_sensor.markdown +++ b/source/_components/sensor.command_line.markdown @@ -1,12 +1,13 @@ --- -layout: component -title: "Command line sensor" +layout: page +title: "Command line Sensor" description: "Instructions how to integrate command line sensors into Home Assistant." date: 2015-09-13 10:10 sidebar: true comments: false sharing: true footer: true +logo: command_line.png ha_category: Sensor --- @@ -18,7 +19,7 @@ To enable it, add the following lines to your `configuration.yaml`: ```yaml # Example configuration.yaml entry sensor: - platform: command_sensor + platform: command_line command: SENSOR_COMMAND name: Command sensor unit_of_measurement: "°C" @@ -30,7 +31,7 @@ Configuration variables: - **command** (*Required*): The action to take to get the value. - **name** (*Optional*): Name of the command sensor. - **unit_of_measurement** (*Optional*): Defines the unit 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 %} @@ -49,7 +50,7 @@ To use those information, the entry for a sensor in the `configuration.yaml` fil ```yaml # Example configuration.yaml entry sensor: - platform: command_sensor + platform: command_line name: HD Temperature command: "hddtemp -n /dev/sda" unit_of_measurement: "°C" @@ -61,7 +62,7 @@ Thanks to the [`proc`](https://en.wikipedia.org/wiki/Procfs) file system, variou ```yaml # Example configuration.yaml entry - - platform: command_sensor + - platform: command_line name: CPU Temperature command: "cat /sys/class/thermal/thermal_zone0/temp" unit_of_measurement: "°C" @@ -76,7 +77,7 @@ The `correction_factor` will make sure that the value is shown in a useful forma You can see directly in the frontend (**Developer tools** -> **About**) what release of Home Assistant you are running. The Home Assistant releases are available on the [Python Package Index](https://pypi.python.org/pypi). This makes it possible to get the current release. ```yaml - - platform: command_sensor + - platform: command_line command: python3 -c "import requests; print(requests.get('https://pypi.python.org/pypi/homeassistant/json').json()['info']['version'])" name: HA release ``` @@ -105,7 +106,7 @@ To use the script you need to add something like the following to your `configur ```yaml # Example configuration.yaml entry sensor: - platform: command_sensor + platform: command_line name: Brightness command: "python3 /path/to/script/arest-value.py" unit_of_measurement: "°C" diff --git a/source/_components/sensor.cpuspeed.markdown b/source/_components/sensor.cpuspeed.markdown index 96e04b4c57b..ba02555414a 100644 --- a/source/_components/sensor.cpuspeed.markdown +++ b/source/_components/sensor.cpuspeed.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "CPU speed" description: "Instructions how to integrate CPU speed within Home Assistant." date: 2015-10-15 11:00 @@ -8,10 +8,11 @@ comments: false sharing: true footer: true ha_category: Sensor +ha_iot_class: "Local Push" --- -The cpuspeed sensor platform to allow you to monitor the current CPU speed. +The `cpuspeed` sensor platform to allow you to monitor the current CPU speed. To add this platform to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.deutsche_bahn.markdown b/source/_components/sensor.deutsche_bahn.markdown new file mode 100644 index 00000000000..fcb2afbe6c5 --- /dev/null +++ b/source/_components/sensor.deutsche_bahn.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "Deutsche Bahn" +description: "Instructions how to integrate timetable data for travelling in Germany within Home Assistant." +date: 2015-06-02 21:45 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +logo: db.png +ha_iot_class: "Local Polling" +--- + + +The `deutsche_bahn` sensor will give you the departure time of the next train for the given connection. In case of a delay, the delay is also shown. Additional `ATTRIBUTES` are used to inform about eg. the type of the train, price and if it is ontime. The data are coming from the [bahn.de](http://www.bahn.de/p/view/index.shtml) website. + + +To enable this sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: deutsche_bahn + from: NAME_OF_START_STATION + to: NAME_OF_FINAL_STATION +``` + +Configuration variables: + +- **from** (*Required*): The name of the start station. +- **to** (*Required*): The name of the end station. + diff --git a/source/_components/sensor.dht.markdown b/source/_components/sensor.dht.markdown index 3f00c01b4d3..0b4844c3b07 100644 --- a/source/_components/sensor.dht.markdown +++ b/source/_components/sensor.dht.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "DHT sensor" +layout: page +title: "DHT Sensor" description: "Instructions how to integrate DHTxx sensors within Home Assistant." date: 2015-08-30 19:15 sidebar: true @@ -8,10 +8,12 @@ comments: false sharing: true footer: true ha_category: DIY +ha_release: 0.7 +logo: dht.png --- -The dht sensor platform allows you to get the current temperature and humidity from a DHT11, DHT22, or AM2302 device. +The `dht` sensor platform allows you to get the current temperature and humidity from a DHT11, DHT22, or AM2302 device. To use your DHTxx sensor in your installation, add the following to your `configuration.yaml` file: @@ -21,6 +23,7 @@ sensor: platform: dht sensor: DHT22 pin: 23 + name: Living Room monitored_conditions: - temperature - humidity @@ -30,6 +33,7 @@ Configuration variables: - **sensor** (*Required*): The sensor type, supported devices are DHT11, DHT22, and AM2302 - **pin** (*Required*): The pin the sensor is connected to. +- **name** (*Optional*): The name of the sensor - **monitored_conditions** array: Conditions to monitor. - **temperature**: - **humidity**: diff --git a/source/_components/sensor.dweet.markdown b/source/_components/sensor.dweet.markdown index eec0d5d6f84..1894645a774 100644 --- a/source/_components/sensor.dweet.markdown +++ b/source/_components/sensor.dweet.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Dweet.io" description: "Instructions how to integrate Dweet.io sensors within Home Assistant." date: 2015-12-10 10:15 @@ -9,6 +9,7 @@ sharing: true footer: true logo: dweet.png ha_category: Sensor +ha_release: 0.10 --- The `dweet` sensor platform allows you to get details from your devices which are publishing their values to [Dweet.io](https://dweet.io/). @@ -21,7 +22,7 @@ sensor: platform: dweet name: Dweet.io Temperature device: THING_NAME - value_template: '{{ value_json.VARIABLE }}' + value_template: '{% raw %}{{ value_json.VARIABLE }}{% endraw %}' unit_of_measurement: "°C" ``` diff --git a/source/_components/sensor.ecobee.markdown b/source/_components/sensor.ecobee.markdown index ec9fcf8338c..ebd63bb6acc 100644 --- a/source/_components/sensor.ecobee.markdown +++ b/source/_components/sensor.ecobee.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Ecobee sensor" +layout: page +title: "Ecobee Sensor" description: "Instructions how to setup the Ecobee sensors within Home Assistant." date: 2015-11-30 18:00 sidebar: true diff --git a/source/_components/sensor.efergy.markdown b/source/_components/sensor.efergy.markdown index 8a61b44a3f2..a8030465fbf 100644 --- a/source/_components/sensor.efergy.markdown +++ b/source/_components/sensor.efergy.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Efergy" description: "Instructions how to integrate Efergy devices within Home Assistant." date: 2015-07-11 0:15 @@ -9,6 +9,7 @@ sharing: true footer: true logo: efergy.png ha_category: Sensor +ha_release: pre 0.7 --- diff --git a/source/_components/sensor.eliqonline.markdown b/source/_components/sensor.eliqonline.markdown index e8e767b3b17..c39161635f1 100644 --- a/source/_components/sensor.eliqonline.markdown +++ b/source/_components/sensor.eliqonline.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Eliqonline" description: "Instructions how to integrate Eliqonline devices within Home Assistant." date: 2015-07-11 0:15 @@ -9,6 +9,7 @@ sharing: true footer: true logo: eliq.png ha_category: Sensor +ha_release: 0.10 --- diff --git a/source/_components/sensor.fitbit.markdown b/source/_components/sensor.fitbit.markdown new file mode 100644 index 00000000000..e96194c80f8 --- /dev/null +++ b/source/_components/sensor.fitbit.markdown @@ -0,0 +1,69 @@ +--- +layout: page +title: "Fitbit" +description: "Instructions how to integrate Fitbit devices within Home Assistant." +date: 2016-05-09 15:01 +sidebar: true +comments: false +sharing: true +footer: true +logo: fitbit.png +ha_category: Sensor +ha_iot_class: "Cloud Polling" +ha_release: 0.19 +--- + +The Fitbit sensor allows you to expose data from [Fitbit](http://fitbit.com) to Home Assistant. + +Enable the sensor by adding the following to your configuration: + +```yaml +sensor: + platform: fitbit + monitored_resources: + - "body/weight" +``` + +Restart Home Assistant once this is complete. Go to the frontend. You will see a new entry for configuring Fitbit. Follow the instructions there to complete the setup process. + +Please be aware that Fitbit has very low rate limits, 150 per user per hour. The clock resets at the _top_ of the hour (meaning it is not a rolling 60 minutes). There is no way around the limits. Due to the rate limits, the sensor only updates every 30 minutes. You can manually trigger an update by restarting Home Assistant. Keep in mind that 1 request is used for every entry in `monitored_resources`. + +The unit system that the sensor will use is based on the country you set in your Fitbit profile. + +Below is the list of resources that you can add to `monitored_resources`. One sensor is exposed for every resource. + +```text +activities/activityCalories +activities/calories +activities/caloriesBMR +activities/distance +activities/elevation +activities/floors +activities/heart +activities/minutesFairlyActive +activities/minutesLightlyActive +activities/minutesSedentary +activities/minutesVeryActive +activities/steps +activities/tracker/activityCalories +activities/tracker/calories +activities/tracker/distance +activities/tracker/elevation +activities/tracker/floors +activities/tracker/minutesFairlyActive +activities/tracker/minutesLightlyActive +activities/tracker/minutesSedentary +activities/tracker/minutesVeryActive +activities/tracker/steps +body/bmi +body/fat +body/weight +sleep/awakeningsCount +sleep/efficiency +sleep/minutesAfterWakeup +sleep/minutesAsleep +sleep/minutesAwake +sleep/minutesToFallAsleep +sleep/startTime +sleep/timeInBed +``` diff --git a/source/_components/sensor.forecast.markdown b/source/_components/sensor.forecast.markdown index e8707d91ec2..42bdc2beb21 100644 --- a/source/_components/sensor.forecast.markdown +++ b/source/_components/sensor.forecast.markdown @@ -1,7 +1,7 @@ --- -layout: component +layout: page title: "Forecast.io" -description: "Instructions how to integrate Forecast.io within Home Assistant." +description: "How to integrate Forecast.io within Home Assistant." date: 2015-04-25 9:06 sidebar: true comments: false @@ -10,12 +10,12 @@ footer: true logo: forecast.png ha_category: Weather featured: true +ha_release: pre 0.7 --- +The `forecast` platform uses the [Forecast.io](https://forecast.io/) web service as a source of meteorological data for your location. The location is based on the `longitude` and `latitude` coordinates configured in `configuration.yaml`. The coordinates are auto-detected but to take advantage of the hyper-local weather reported by forecast.io, you can refine them down to your exact home address. GPS coordinates can be found by using Google Maps and clicking on your home. -The forecast platform uses the [Forecast.io](https://forecast.io/) web service as a source for meteorological data for your location. The location is based on the Longitude and Latitude cooridinates configured in `configuration.yaml`. The cooridinates are auto detected but to take advantage of the hyper-local weather reported by forecast.io, you can refine them down to your exact home address. GPS cooridinates can be found by using Google Maps and clicking on your home. - -You need an API key which is free but requires a [registration](https://developer.forecast.io/register). You can make 1000 requests per day. This means that you could create one approximately every 1.4 minutes. +You need an API key which is free but requires [registration](https://developer.forecast.io/register). You can make up to 1000 requests per day which means that you could make one approximately every 86 seconds. To add Forecast.io to your installation, add the following to your `configuration.yaml` file: @@ -42,16 +42,21 @@ sensor: - pressure - visibility - ozone + - minutely_summary + - hourly_summary + - daily_summary ``` Configuration variables: - **api_key** (*Required*): Your API key for http://forecast.io/. - **monitored_conditions** array (*Required*): Conditions to display in the frontend. - - **summary**: A human-readable text summary. + - **summary**: A human-readable text summary of the current conditions. - **precip_type**: The type of precipitation occurring. - **precip_intensity**: The average expected intensity of precipitation occurring. + - **precip_probability**: A value between 0 and 1 which is representing the probability of precipitation. - **temperature**: The current temperature. + - **apparent_temperature**: A numerical value representing the apparent (or "feels like") temperature. - **dew_point**: The dew point. - **wind_speed**: The wind speed. - **wind_bearing**: Where the wind is coming from in degrees, with true north at 0° and progressing clockwise. @@ -60,6 +65,9 @@ Configuration variables: - **pressure**: The sea-level air pressure in millibars. - **visibility**: The average visibility. - **ozone**: The columnar density of total atmospheric ozone in Dobson. + - **minutely_summary**: A human-readable text summary for the next hour. + - **hourly_summary**: A human-readable text summary for the next 24 hours. + - **daily_summary**: A human-readable text summary for the next 7 days. - **units** (*Optional*): Specify the unit system. Default to `si` or `us` based on the temperature preference in Home Assistant. Other options are `auto`, `us`, `si`, `ca`, and `uk2`. `auto` will let forecast.io decide the unit system based on location. diff --git a/source/_components/sensor.glances.markdown b/source/_components/sensor.glances.markdown index 632427d052b..ff7554804fd 100644 --- a/source/_components/sensor.glances.markdown +++ b/source/_components/sensor.glances.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "Glances" description: "Instructions how to integrate Glances sensors into Home Assistant." date: 2015-09-14 19:10 @@ -9,10 +9,11 @@ sharing: true footer: true logo: glances.png ha_category: Sensor +ha_iot_class: "Local Polling" --- -The glances sensor platform is consuming the system information provided by the [Glances](https://github.com/nicolargo/glances) API. This enables one to track remote host and display their stats in Home Assistant. +The `glances` sensor platform is consuming the system information provided by the [Glances](https://github.com/nicolargo/glances) API. This enables one to track remote host and display their stats in Home Assistant. This sensors needs a running instance of `glances` on the host. The minimal supported version of `glances` is 2.3: diff --git a/source/_components/sensor.google_travel_time.markdown b/source/_components/sensor.google_travel_time.markdown new file mode 100644 index 00000000000..be06fb1d94b --- /dev/null +++ b/source/_components/sensor.google_travel_time.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "Google Maps Travel Time" +description: "Instructions on how to add Google Maps travel time to Home Assistant." +date: 2016-03-28 10:19 +sidebar: true +comments: false +sharing: true +footer: true +logo: +ha_category: Sensor +ha_iot_class: "Cloud Polling" +ha_release: 0.19 +--- + +Sensor to provide travel time from Google maps api. + +Get an api key [here](https://github.com/googlemaps/google-maps-services-python#api-keys). + +```yaml +# Example entry for configuration.yaml +sensor: + platform: google_travel_time + api_key: XXXX_XXXXX_XXXXX + origin: Trondheim, Norway + destination: Paris, France + travel_mode: bicycling # can be ["driving", "walking", "bicycling", "transit"] +``` diff --git a/source/_components/sensor.gtfs.markdown b/source/_components/sensor.gtfs.markdown new file mode 100644 index 00000000000..6683670cb3e --- /dev/null +++ b/source/_components/sensor.gtfs.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "Public Transit (GTFS)" +description: "Instructions on how to use public transit open data in Home Assistant." +date: 2016-03-28 10:19 +sidebar: true +comments: false +sharing: true +footer: true +logo: train.png +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: 0.17 +--- + + +The `gtfs` sensor will give you the next departure time and associated data from your public transit station/stop. The data comes from your chosen public transit authority and is formatted as [General Transit Feed Specification](https://developers.google.com/transit/gtfs/) data, commonly known as GTFS. + +You need to find a valid GTFS data set, which you can usually find just by searching the internet. Most public transit authorities have GTFS available somewhere, as Google requires public transit authorities to provide the data if they wish to appear on Google Maps. You may also be able to find data at either [TransitFeeds](http://transitfeeds.com/feeds) or [GTFS Data Exchange](http://www.gtfs-data-exchange.com/). + +Here are some examples: + +- [Bay Area Rapid Transit (BART)](http://www.bart.gov/schedules/developers/gtfs) - The light rail system for the San Francisco Bay Area. +- [Metropolitan Transit Authority of New York City (MTA)](http://www.bart.gov/schedules/developers/gtfs) - Provides separate data feeds for subway, bus, LIRR and Metro-North of the greater New York City metropolitan region. +- [GBRail.info](http://www.gbrail.info/) - Provides data feeds for most if not all rail companies in Britain. + +You need to download a GTFS ZIP file and put it into a folder named `gtfs` in your configuration directory. For ease of use, it is suggested that you rename the file to just the agency/data source name (i.e. `bart.zip` instead of `google_transit_20160328_v1.zip`). You can also unzip and place a folder in the `gtfs` folder. + +The data will be converted into a queryable format and saved as a SQLite3 database alongside the source data. The sensor will check for the existence of this SQLite3 data at every startup and will re-import the ZIP/Folder if none is found. + +To update the data, delete the SQLite3 file and restart Home Assistant. + +To find your stop ID, open the `stops.txt` file inside the ZIP file/unzipped folder. The format of the ID is different for every transit agency but will be the first "column" (meaning the string before the first comma) in a row. + +The sensor attributes will contain all related information for the specific trip, such as agency information, origin and destination stop information, origin and destination stop time and the route information. + +Your mileage may vary depending on the transit agency used. Most agencies respect the GTFS format but some will do weird things like adding extra columns or using different data formatting. If you have any data specific issues, please report them to the [PyGTFS](https://github.com/jarondl/pygtfs) project, which is what the GTFS sensor uses to parse data. + +**Please note**: This is a _static_ data source. Currently, there is no GTFS Realtime support in this sensor due to issues surrounding parsing the protocol buffer format in Python 3. Once those issues have been fixed Realtime support will be added. Once added, the sensor will check for any delays and advisories and report them in the sensor as needed. + +```yaml +# Example configuration.yaml entry +sensor: + platform: gtfs + origin: STOP_ID + destination: STOP_ID + data: DATA_SOURCE +``` + +Configuration variables: + +- **origin** (*Required*): The stop ID of your origin station. +- **destination** (*Required*): The stop ID of your destination station. +- **data** (*Required*): The name of the ZIP file or folder containing the GTFS data. It must be located inside the `gtfs` folder of your configuration directory. diff --git a/source/_components/sensor.http.markdown b/source/_components/sensor.http.markdown new file mode 100644 index 00000000000..b9586d01fe6 --- /dev/null +++ b/source/_components/sensor.http.markdown @@ -0,0 +1,56 @@ +--- +layout: page +title: "HTTP Sensor" +description: "Instructions how to integrate HTTP sensors within Home Assistant." +date: 2016-02-05 12:15 +sidebar: true +comments: false +sharing: true +footer: true +logo: http.png +ha_category: Sensor +ha_release: pre 0.7 +--- + +The URL for a sensor looks like the example below: + +```bash +http://IP_ADDRESS:8123/api/states/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 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.loop_energy.markdown b/source/_components/sensor.loop_energy.markdown new file mode 100644 index 00000000000..0e399d3d665 --- /dev/null +++ b/source/_components/sensor.loop_energy.markdown @@ -0,0 +1,67 @@ +--- +layout: page +title: "Loop Energy" +description: "Instructions how to integrate Loop Energy devices within Home Assistant." +date: 2016-04-02 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: loop.png +ha_category: Sensor +ha_release: 0.17 +--- + + +Integrate your [Loop Energy](https://www.your-loop.com/) meter information into Home Assistant. + +To use this sensor you need the the client serial number and secret keys for your devices. + +The library used to get the data isn't officially supported and the only way to get the keys is to log into loop energy's website and type a command into your browser console. + +To do this log into [Loop Energy](https://www.your-loop.com/). Once you're logged in you should be able see see your live readings on the webpage. + +You can then open your browser's console window, how you do this varies by browser but in Chrome you click on `More Tools / Developer Tools' and click on the console window. You then type:- + +`Drupal.settings.navetas_realtime.` + +This should show something like + +```yaml +client_ip: "127.0.0.1" +gas_secret: "GAS_SECRET" +gas_serial: "GAS_SERIAL" +host: "www.your-loop.com" +... +secret: "ELECTRICAL_SECRET" +serial: "ELECTRICAL_SERIAL" +``` + +The serial and secret tokens are the ones you need. If you just have an electricity monitor - then you won't see the gas keys. + +Now you have the keys, add the following lines to your `configuration.yaml`, replacing the `SERIAL` and `SECRET` keys with the ones you found in the console: + +```yaml +# Example configuration.yaml entry +sensor: + platform: loopenergy + electricity_serial: ELECTRICAL_SERIAL + electricity_secret: ELECTRICAL_SECRET + gas_serial: GAS_SERIAL + gas_secret: GAS_SECRET + gas_type: metric + gas_calorific: 39.11 +``` + +Configuration variables: + +- **electricity_serial** (*Required*): Serial number of your electricity sensor +- **electricity_secret** (*Required*): Secret key for your electricity sensor +- **gas_serial** (*Optional*): Serial number for your gas sensor. +- **gas_secret** (*Optional*): Secret key for your gas sensor. +- **gas_type** (*Optional*): Type of meter `imperial` or `metric`, defaults to metric. +- **gas_calorific** (*Optional*): Calorific value of your gas supply (usually on your gas bill) - defaults to 39.11. + +The electricity readings are updated every 10 seconds and the gas readings every 15 minutes. + +The gas readings are experimental and not all gas meters are properly supported - so if the data you see doesn't agree with the readings you see via loop energy please report an issue. 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..a8f4acdc32e 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: modbus.png ha_category: Sensor +ha_release: pre 0.7 --- -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..f6c4c5e148e 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: mqtt.png ha_category: Sensor +ha_release: 0.7 --- @@ -33,7 +34,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 %} @@ -41,7 +42,7 @@ In this section you find some real life examples of how to use this sensor. ### {% linkable_title Get battery level %} -If you are using the [Owntracks](components/device_tracker.owntracks/) and enable the reporting of the battery level then you can use a MQTT sensor to keep track of your battery. A regular MQTT message from Owntracks looks like this: +If you are using the [Owntracks](/components/device_tracker.owntracks/) and enable the reporting of the battery level then you can use a MQTT sensor to keep track of your battery. A regular MQTT message from Owntracks looks like this: ```bash owntracks/tablet/tablet {"_type":"location","lon":7.21,"t":"u","batt":92,"tst":144995643,"tid":"ta","acc":27,"lat":46.12} @@ -56,6 +57,6 @@ sensor: state_topic: "owntracks/tablet/tablet" name: "Battery Tablet" unit_of_measurement: "%" - value_template: '{{ value_json.batt }}' + value_template: {% raw %}'{{ value_json.batt }}'{% endraw %} ``` diff --git a/source/_components/sensor.mysensors.markdown b/source/_components/sensor.mysensors.markdown index bc58715d98b..9690ece312b 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-04-13 14:20 +0100 sidebar: true comments: false sharing: true @@ -20,9 +20,6 @@ The following sensor types are supported: S_TYPE | V_TYPE -------------------|--------------------------------------- -S_DOOR | V_TRIPPED -S_MOTION | V_TRIPPED -S_SMOKE | V_TRIPPED S_TEMP | V_TEMP S_HUM | V_HUM S_BARO | V_PRESSURE, V_FORECAST @@ -46,16 +43,68 @@ S_TYPE | V_TYPE ---------------|---------------------------------- S_COLOR_SENSOR | V_RGB S_MULTIMETER | V_VOLTAGE, V_CURRENT, V_IMPEDANCE -S_SPRINKLER | V_TRIPPED -S_WATER_LEAK | V_TRIPPED -S_SOUND | V_TRIPPED, V_LEVEL -S_VIBRATION | V_TRIPPED, V_LEVEL -S_MOISTURE | V_TRIPPED, V_LEVEL +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. +### {% linkable_title Example sketch %} + +```cpp +/** + * Documentation: http://www.mysensors.org + * Support Forum: http://forum.mysensors.org + * + * http://www.mysensors.org/build/light + */ + +#include +#include +#include +#include + +#define SN "LightLuxSensor" +#define SV "1.0" +#define CHILD_ID 1 +unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds) + +BH1750 lightSensor; +MySensor gw; +MyMessage msg(CHILD_ID, V_LEVEL); +MyMessage msgPrefix(CHILD_ID, V_UNIT_PREFIX); // Custom unit message. +uint16_t lastlux = 0; + +void setup() +{ + gw.begin(); + gw.sendSketchInfo(SN, SV); + gw.present(CHILD_ID, S_LIGHT_LEVEL); + lightSensor.begin(); + gw.send(msg.set(lastlux)); + gw.send(msgPrefix.set("lux")); // Set custom unit. +} + +void loop() +{ + uint16_t lux = lightSensor.readLightLevel(); // Get Lux value + if (lux != lastlux) { + gw.send(msg.set(lux)); + lastlux = lux; + } + + gw.sleep(SLEEP_TIME); +} +``` + [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 e70634ee3ff..5cbf2782abe 100644 --- a/source/_components/sensor.nest.markdown +++ b/source/_components/sensor.nest.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Nest sensor" +layout: page +title: "Nest Sensor" description: "Instructions how to integrate Nest sensors within Home Assistant." date: 2016-01-13 19:59 sidebar: true @@ -12,7 +12,7 @@ ha_category: Sensor --- -The Nest sensor platform let you monitor sensors connected to your [Nest](https://nest.com) thermostat. +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: @@ -30,10 +30,30 @@ sensor: - 'local_ip' - 'last_connection' - 'battery_level' + - 'weather_condition' + - 'weather_temperature' + - 'weather_humidity' + - 'wind_speed' + - 'wind_direction' ``` Configuration variables: - **monitored_conditions** array (*Required*): States to monitor. + - 'temperature' + - 'target' + - 'away_temperature[0]' + - 'away_temperature[1]' + - '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 component](https://home-assistant.io/components/nest/) configured to use this sensor.

+

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..6ef192d7459 --- /dev/null +++ b/source/_components/sensor.neurio_energy.markdown @@ -0,0 +1,35 @@ +--- +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" +ha_release: 0.14 +--- + + +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.nzbget.markdown b/source/_components/sensor.nzbget.markdown new file mode 100644 index 00000000000..89179741e25 --- /dev/null +++ b/source/_components/sensor.nzbget.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "NZBGet" +description: "Instructions how to integrate NZBGet within Home Assistant." +date: 2016-04-08 19:59 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: 0.17 +--- + +The `nzbget` platform will allow you to monitor your downloads with [NZBGet](http://NZBGet.net) from within Home Assistant and setup automation based on the information. + +To use NZBGet with your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: nzbget + base_url: http://192.168.1.18:6789 + username: apiuser + password: apipass + monitored_variables: + - ArticleCacheMB + - DownloadRate + - DownloadPaused + - FreeDiskSpaceMB + - PostPaused + - RemainingSizeMB +``` + +Configuration variables: + +- **base_url** (*Required*): The URL to your NZBGet installation. +- **username** (*Optional*): The username to access your NZBGet installation. +- **password** (*Optional*): The password to access your NZBGet installation. +- **monitored_variables** (*Required*): Array of monitored details. diff --git a/source/_components/sensor.octoprint.markdown b/source/_components/sensor.octoprint.markdown new file mode 100644 index 00000000000..58aaacb01b8 --- /dev/null +++ b/source/_components/sensor.octoprint.markdown @@ -0,0 +1,36 @@ +--- +layout: page +title: "OctoPrint Sensor" +description: "Instructions how to integrate OctoPrint sensors within Home Assistant." +date: 2016-05-05 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: octoprint.png +ha_category: Sensor +ha_release: 0.19 +--- + + +The `OctoPrint` sensor platform let you monitor various states of your 3D printer and its print jobs. + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +sensor: + platform: octoprint + monitored_conditions: + - Current State + - Temperatures + - Job Percentage +``` + +Configuration variables: + +- **monitored_conditions** array (*Required*): States to monitor. + - Current State (Text of current state) + - Temperatures (Temperatures of all available tools)(print head, print bed, ...) These will be displayed as tool0, tool1, ... please refer to your OctoPrint frontend to associate tool number with actual device. + - Job Percentage + +

You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor.

diff --git a/source/_components/sensor.onewire.markdown b/source/_components/sensor.onewire.markdown index 44cb32bea84..1acd557c5ad 100644 --- a/source/_components/sensor.onewire.markdown +++ b/source/_components/sensor.onewire.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "One wire sensor" +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 @@ -8,6 +8,7 @@ comments: false sharing: true footer: true ha_category: Sensor +ha_release: 0.12 --- The `onewire` platform supports sensors which are using the One wire (1-wire) bus for communication. diff --git a/source/_components/sensor.openweathermap.markdown b/source/_components/sensor.openweathermap.markdown index 11b0dd5b541..6c8a4f85c69 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: openweathermap.png ha_category: Weather +ha_release: pre 0.7 --- -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 39149765480..aae1513a326 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 @@ -8,6 +8,7 @@ comments: false sharing: true footer: true ha_category: Sensor +ha_release: 0.7.4 --- @@ -44,8 +45,8 @@ 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. -- **payload** (*Optional*): The payload to send with a POST request. Usualy formed as a dictionary. +- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the value. +- **payload** (*Optional*): The payload to send with a POST request. Depends on the service, but usually formed as JSON. - **name** (*Optional*): Name of the REST sensor. - **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any. @@ -66,7 +67,7 @@ In this section you find some real life examples of how to use this sensor. ### {% linkable_title External IP address %} -Always want to know your external IP address. [JSON Test](http://www.jsontest.com) will provide you this information at their http://ip.jsontest.com/ endpoint. +You can find your external IP address using the service [JSON Test](http://www.jsontest.com) at their http://ip.jsontest.com/ endpoint. To display the IP address, the entry for a sensor in the `configuration.yaml` file will look like this. @@ -93,7 +94,7 @@ Add something similar to the entry below to your `configuration.yaml` file: ### {% 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. +The Home Assistant [API](/developers/rest_api/) exposes 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 diff --git a/source/_components/sensor.rfxtrx.markdown b/source/_components/sensor.rfxtrx.markdown index 9b8efa6c138..294b1dc2369 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,66 @@ 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: +First you have to set up your [rfxtrx hub.](/components/rfxtrx/) +The easiest way to find your sensors is to add this to your `configuration.yaml`: +```yaml +sensor: + platform: rfxtrx + automatic_add: True +``` + +Then when the sensor emits a signal it will be automatically added: + +

+ +

+ +Here the name is 0a52080000301004d240259 and you can verify that it works from the frontend. +Then you should update your configuration to: +```yaml +sensor: + platform: rfxtrx + devices: + 0a52080000301004d240259: + name: device_name +``` + +If you want to display several data types from one sensor: ```yaml -# Example configuration.yaml entry -sensor: - platform: rfxtrx +sensor: + platform: rfxtrx + devices: + 0a520802060100ff0e0269: + name: Bath + data_type: + - Humidity + - Temperature ``` + + + +Example configuration: +```yaml +# Example configuration.yaml entry +sensor: + platform: rfxtrx + automatic_add: True + devices: + 0a52080705020095220269: + name: Lving + 0a520802060100ff0e0269: + name: Bath + data_type: + - Humidity + - Temperature +``` + +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..68bdf6035a3 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: sabnzbd.png ha_category: Sensor +ha_release: pre 0.7 --- -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..29b620cce14 --- /dev/null +++ b/source/_components/sensor.speedtest.markdown @@ -0,0 +1,76 @@ +--- +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 +ha_release: 0.13 +--- + +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 [speedtest-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..dd448fe0dea --- /dev/null +++ b/source/_components/sensor.steam_online.markdown @@ -0,0 +1,52 @@ +--- +layout: page +title: "Steam" +description: "Instructions on how to set up Steam sensors in Home Assistant." +date: 2016-04-30 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: steam.png +ha_category: Sensor +ha_iot_class: "Cloud Polling" +ha_release: 0.14 +--- + + +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..3349f272eb4 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 @@ -7,11 +7,14 @@ sidebar: true comments: false sharing: true footer: true +logo: train.png ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: pre 0.7 --- -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..e47965cb186 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 @@ -8,9 +8,10 @@ comments: false sharing: true footer: true ha_category: Sensor +ha_release: pre 0.7 --- -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..6e5bc6a0a46 --- /dev/null +++ b/source/_components/sensor.tcp.markdown @@ -0,0 +1,102 @@ +--- +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 +ha_release: 0.14 +--- + +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 temperature 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..d4bbbdb841d 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,9 +12,10 @@ 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: + +To use your TellStick device, you first have to set up your [Tellstick hub](https://home-assistant.io/components/tellstick/) and then add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry 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 index 7be558afb14..956d276aca9 100644 --- a/source/_components/sensor.template.markdown +++ b/source/_components/sensor.template.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: "Template sensor" +layout: page +title: "Template Sensor" description: "Instructions how to integrate Template sensors into Home Assistant." date: 2016-01-27 07:00 sidebar: true @@ -8,6 +8,7 @@ comments: false sharing: true footer: true ha_category: Sensor +ha_release: 0.12 --- The `template` platform supports sensors which breaks out `state_attributes` from other entities. @@ -32,7 +33,7 @@ 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](/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 %} @@ -41,7 +42,7 @@ 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. +This example shows the sun angle in the frontend. ```yaml sensor: @@ -53,5 +54,44 @@ sensor: 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) + +### {% linkable_title Change the unit of measurment %} + +With a template sensor it's easy to convert given values into others if the unit of measurement don't fit your needs. + +```yaml +sensor: + platform: template + sensors: + transmission_down_speed_kbps: + value_template: {% raw %}'{{ states.sensor.transmission_down_speed.state | multiply(1024) }}'{% endraw %} + friendly_name: 'Transmission Down Speed' + unit_of_measurement: 'kB/s' + transmission_up_speed_kbps: + value_template: {% raw %}'{{ states.sensor.transmission_up_speed.state | multiply(1024) }}'{% endraw %} + friendly_name: 'Transmission Up Speed' + unit_of_measurement: 'kB/s' +``` diff --git a/source/_components/sensor.thinkingcleaner.markdown b/source/_components/sensor.thinkingcleaner.markdown new file mode 100644 index 00000000000..b3562066f51 --- /dev/null +++ b/source/_components/sensor.thinkingcleaner.markdown @@ -0,0 +1,26 @@ +--- +layout: page +title: "Thinking Cleaner sensors" +description: "Instructions how to integrate a ThinkingCleaner within Home Assistant." +date: 2016-04-10 17:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: thinkingcleaner.png +ha_category: Sensor +ha_iot_class: "Local Poll" +ha_release: 0.18 +--- + +The `ThinkingCleaner` sensor platform simple displays information about your [ThinkingCleaner](http://www.thinkingcleaner.com) addon. + +To enable this sensor in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: thinkingcleaner +``` + +This will automatically add sensors for each Thinking Cleaner in your network. diff --git a/source/_components/sensor.time_date.markdown b/source/_components/sensor.time_date.markdown index 612bce17a13..2ca3159d912 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,14 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png ha_category: Sensor +ha_iot_class: "Local Push" +ha_release: pre 0.7 --- -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..1ba46279193 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: torque.png ha_category: Sensor +ha_release: 0.10 --- The `torque` platform will allow you to monitor [Torque](http://torque-bhp.com/) data relayed from a bluetooth OBD2 stick via the Torque mobile application. diff --git a/source/_components/sensor.transmission.markdown b/source/_components/sensor.transmission.markdown index 7714f867188..8346c809471 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: transmission.png ha_category: Sensor +ha_release: pre 0.7 --- -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 `transmission` 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 @@ -36,19 +37,19 @@ Configuration variables: - **name** (*Optional*): The name to use when displaying this Transmission instance. - **username** (*Optional*): Your Transmission username, if you use authentication. - **password** (*Optional*): Your Transmission password, if you use authentication. -- **display_variables** array: Conditions to display in the frontend. +- **monitored_variables** array: Conditions to display in the frontend. - **current_status**: The status of your Transmission daemon. - **download_speed**: The current download speed. - **upload_speed**: The current upload speed. -To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Perferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed. +To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed.

-If everthing is setup correctly, the details will show up in the frontend. +If everything is setup correctly, the details will show up in the frontend.

diff --git a/source/_components/sensor.twitch.markdown b/source/_components/sensor.twitch.markdown index 56c5dff9331..4edbbbcfe19 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: twitch.png ha_category: Sensor +ha_release: 0.10 --- diff --git a/source/_components/sensor.uber.markdown b/source/_components/sensor.uber.markdown new file mode 100644 index 00000000000..e73bf44d7a8 --- /dev/null +++ b/source/_components/sensor.uber.markdown @@ -0,0 +1,44 @@ +--- +layout: page +title: "Uber" +description: "How to integrate Uber in Home Assistant" +date: 2016-03-24 23:04 +sidebar: true +comments: false +sharing: true +footer: true +logo: uber.png +ha_category: Sensor +ha_iot_class: "Cloud Polling" +ha_release: 0.16 +--- + + +The `uber` sensor will give you time and price estimates for all available [Uber](https://uber.com) products at the given `start_latitude` and `start_longitude`.The `ATTRIBUTES` are used to provide extra information about products, such as estimated trip duration, distance and vehicle capacity. By default, 2 sensors will be created for each product at the given `start` location, one for pickup time and one for current price. The sensor is powered by the official Uber [API](https://developer.uber.com/). + + +You must create an application [here](https://developer.uber.com/dashboard/create) to obtain a `server_token`. + +To enable this sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: uber + start_latitude: 37.8116380 + start_longitude: -122.2648050 + end_latitude: 37.7768520 + end_longitude: -122.4155500 + server_token: 'BeAPPTDsWZSHLf7fd9OWjZkIezweRw18Q8NltY27' + product_ids: + - '04a497f5-380d-47f2-bf1b-ad4cfdcb51f2' +``` + +Configuration variables: + +- **start_latitude** (*Required*): The starting latitude for a trip. +- **start_longitude** (*Required*): The starting longitude for a trip. +- **end_latitude** (*Optional*): The ending latitude for a trip. While `end_latitude` is optional, it is strongly recommended to provide an `end_latitude`/`end_longitude` when possible as you will get more accurate price and time estimates. +- **end_longitude** (*Optional*): The ending longitude for a trip. While `end_longitude` is optional, it is strongly recommended to provide an `end_latitude`/`end_longitude` when possible as you will get more accurate price and time estimates. +- **server_token** (*Required*): A server token obtained from [developer.uber.com](https://developer.uber.com) after [creating an app](https://developer.uber.com/dashboard/create). +- **product_ids** (*Options*): A list of Uber product UUIDs. If provided, sensors will only be created for the given product IDs. Please note that product IDs are region and some times even more specific geographies based. The easiest way to find a UUID is to click on a sensor in the Home Assistant frontend and look for "Product ID" in the attributes. diff --git a/source/_components/sensor.vera.markdown b/source/_components/sensor.vera.markdown index 6386b2efaa7..da1c1124d17 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 @@ -9,29 +9,10 @@ sharing: true footer: true logo: vera.png ha_category: Sensor +ha_iot_class: "Local Push" --- +The `vera` platform allows you to get data from your [Vera](http://getvera.com/) sensors from within Home Assistant. + +They will be automatically discovered if the vera component is loaded. -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: - -```yaml -# Example configuration.yaml entry -sensor: - platform: vera - vera_controller_url: http://YOUR_VERA_IP:3480/ - device_data: - 12: - name: My awesome sensor - exclude: true - 13: - name: Another sensor -``` - -Configuration variables: - -- **vera_controller_url** (*Required*): This is the base URL of your vera controller including the port number if not running on 80, eg. http://192.168.1.21:3480/ -- **device_data** array (*Optional*):This contains an array additional device information for your Vera devices. It is not required and if not specified all sensors configured in your Vera controller will be added with default values. You should use the id of your Vera device as the key for the device within `device_data`. - - **name** (*Optional*):This parameter allows you to override the name of your Vera device in the frontend, if not specified the value configured for the device in your Vera will be used. - - **exclude** (*Optional*): This parameter allows you to exclude the specified device, it should be set to "True" if you want this device excluded. 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..3b63b96bf08 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,14 @@ sidebar: true comments: false sharing: true footer: true +logo: home-assistant.png ha_category: Sensor +ha_iot_class: "Local Push" +ha_release: pre 0.7 --- -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..0cbeb4f7f0d 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: yr.png ha_category: Weather +ha_release: 0.11 --- diff --git a/source/_components/sensor.zigbee.markdown b/source/_components/sensor.zigbee.markdown index db03ea55bcf..45a58641aca 100644 --- a/source/_components/sensor.zigbee.markdown +++ b/source/_components/sensor.zigbee.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: ZigBee Sensor description: "Instructions on how to set up ZigBee sensors within Home Assistant." date: 2016-01-28 10:08 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..514b908b14a --- /dev/null +++ b/source/_components/splunk.markdown @@ -0,0 +1,33 @@ +--- +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" +ha_release: 0.13 +--- + +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 index fbaa914b3ef..0ad7398e3c7 100644 --- a/source/_components/statsd.markdown +++ b/source/_components/statsd.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "StatsD" description: "Record events in StatsD." date: 2016-01-25 08:00 @@ -8,6 +8,7 @@ comments: false sharing: true footer: true ha_category: "History" +ha_release: 0.12 --- The `statsd` component makes it possible to transfer all state changes to an external [StatsD](https://github.com/etsy/statsd) instance. diff --git a/source/_components/sun.markdown b/source/_components/sun.markdown index 3d5c3268b97..08bcf3e25a8 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,13 +7,13 @@ sidebar: true comments: false sharing: true footer: true -logo: sun.png +logo: home-assistant.png ha_category: Weather --- The sun component will use your current location to track if the sun is above or below the horizon.The sun can be used within automation as [a trigger with an optional offset to simulate dawn/dusk][automation-trigger]. -[automation-trigger]: /components/automation/#sun-trigger +[automation-trigger]: /getting-started/automation-trigger/#sun-trigger ```yaml # Example configuration.yaml entry @@ -22,12 +22,12 @@ homeassistant: longitude: -117.22743 sun: - elevation: 123 + elevation: 102 ``` Configuration variables: -- **elevation** (*Optional*): The solar elevation angle is the altitude of the sun. If ommitted will be retrieved from Google Maps. +- **elevation** (*Optional*): The (physical) elevation of your location, in metres above sea level. If ommitted will be retrieved from Google Maps.

@@ -59,5 +59,6 @@ The sun event need to have the type 'sun', which service to call, which event (s | State Attributes | Description | | --------- | ----------- | -| `next_rising` | Date and time of the next sun rising -| `next_setting` | Date and time of the next sun setting +| `next_rising` | Date and time of the next sun rising (in UTC). +| `next_setting` | Date and time of the next sun setting (in UTC). +| `elevation` | Solar elevation. This is the angle between the sun and the horizon. Negative values mean the sun is below the horizon. diff --git a/source/_components/switch.acer_projector.markdown b/source/_components/switch.acer_projector.markdown new file mode 100644 index 00000000000..fac3494da63 --- /dev/null +++ b/source/_components/switch.acer_projector.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "Acer Projector Switch" +description: "Instructions how to integrate Acer Projector switches into Home Assistant." +date: 2016-05-07 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: acer.png +ha_category: Switch +ha_iot_class: "Local Polling" +ha_release: 0.19 +--- + + +The `acer_projector` switch platform allows you to control the state of RS232 connected projectors from [Acer](http://www.acer.com). + +To use your Acer Projector in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + platform: acer_projector + filename: /dev/ttyUSB0 + name: Projector + timeout: 1 + write_timeout: 1 +``` + +Configuration variables: + +- **filename** (*Required*): The pipe where the projector is connected to +- **name** (*Optional*): The name to use when displaying this switch. +- **timeout** (*Optional*): Timeout for the connection in seconds. +- **write_timeout** (*Optional*): Write timeout in seconds. + diff --git a/source/_components/switch.arduino.markdown b/source/_components/switch.arduino.markdown index 7bdd9363e40..e6426f688e3 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: arduino.png ha_category: DIY +ha_release: pre 0.7 --- -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: @@ -24,6 +25,8 @@ switch: 11: name: Fan Office type: digital + default: on + negate: true 12: name: Light Desk type: digital @@ -34,6 +37,8 @@ Configuration variables: - **pins** (*Required*): Array of pins to use. The number corresponds with the pin numbering schema of your board. - **name**: Name that will be used in the frontend for the pin. - **type**: The type of the pin. At the moment only 'digital' is supported. + - **default**: The initial value for this port. + - **negate**: If this pin should be inverted. The digital pins are numbered from 0 to 13. The available pins are 2 till 13. For testing purposes you can use pin 13 because with that pin you can control the internal LED. diff --git a/source/_components/switch.arest.markdown b/source/_components/switch.arest.markdown index 8874ec4fd4e..9307e029539 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,11 @@ sharing: true footer: true logo: arest.png ha_category: Switch +ha_iot_class: "Local Polling" +ha_release: 0.16 --- -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 66% rename from source/_components/switch.command_switch.markdown rename to source/_components/switch.command_line.markdown index 333f2ba277c..d45f734179c 100644 --- a/source/_components/switch.command_switch.markdown +++ b/source/_components/switch.command_line.markdown @@ -1,13 +1,15 @@ --- -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 +ha_release: pre 0.7 --- @@ -18,7 +20,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 +49,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 +68,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" @@ -74,15 +76,34 @@ switch: ### {% linkable_title Control your VLC player %} -This switch will control a local VLC media player ([Source](https://automic.us/forum/viewtopic.php?f=4&t=144)). +This switch will control a local VLC media player ([Source](https://community.home-assistant.io/t/vlc-player/106)). ```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 +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: {% raw %}'{{ value == "1" }}'{% endraw %} +``` + +- Replace admin and password with an "Admin" priviledged Foscam user +- Replace ipaddress with the local IP address of your Foscam diff --git a/source/_components/switch.dlink.markdown b/source/_components/switch.dlink.markdown new file mode 100644 index 00000000000..8f2379408b9 --- /dev/null +++ b/source/_components/switch.dlink.markdown @@ -0,0 +1,42 @@ +--- +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" +ha_release: 0.14 +--- + + +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 +- DSP-W110 + +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. Default password is the `PIN` inlcuded on the configuration card. + diff --git a/source/_components/switch.edimax.markdown b/source/_components/switch.edimax.markdown index 479d6fba0cd..8f6164d32b6 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: edimax.png ha_category: Switch +ha_release: pre 0.7 --- -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..36f4581e40e 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,12 @@ comments: false sharing: true footer: true logo: hikvision.png -ha_category: Camera +ha_category: Switch +ha_release: pre 0.7 --- -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..c3512345703 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: modbus.png ha_category: Switch +ha_release: pre 0.7 --- -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..a12213a51ff 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: mqtt.png ha_category: Switch +ha_release: 0.7 --- The `mqtt` switch platform let you control your MQTT enabled light. @@ -19,7 +20,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 +29,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 +42,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 43de6457344..77944cce9cc 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-04-21 13:30 +0100 sidebar: true comments: false sharing: true @@ -31,7 +31,7 @@ S_LOCK | V_LOCK_STATUS S_TYPE | V_TYPE -------------|------------------ S_LIGHT | V_STATUS -S_BINARY | V_STATUS, V_LIGHT +S_BINARY | [V_STATUS or V_LIGHT] S_SPRINKLER | V_STATUS S_WATER_LEAK | V_ARMED S_SOUND | V_ARMED @@ -40,5 +40,51 @@ S_MOISTURE | V_ARMED For more information, visit the [serial api] of MySensors. +### {% linkable_title Example sketch %} + +```cpp +/* + * Documentation: http://www.mysensors.org + * Support Forum: http://forum.mysensors.org + * + * http://www.mysensors.org/build/relay + */ + +#include +#include + +#define SN "Relay" +#define SV "1.0" +#define CHILD_ID 1 +#define RELAY_PIN 3 + +MySensor gw; +MyMessage msgRelay(CHILD_ID, V_STATUS); + +void setup() +{ + gw.begin(incomingMessage); + gw.sendSketchInfo(SN, SV); + // Initialize the digital pin as an output. + pinMode(RELAY_PIN, OUTPUT); + gw.present(CHILD_ID, S_BINARY); + gw.send(msgRelay.set(0)); +} + +void loop() +{ + gw.process(); +} + +void incomingMessage(const MyMessage &message) +{ + if (message.type == V_STATUS) { + // Change relay state. + digitalWrite(RELAY_PIN, message.getBool() ? 1 : 0); + gw.send(msgRelay.set(message.getBool() ? 1 : 0)); + } +} +``` + [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..a68cf2761e3 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: @@ -20,9 +20,11 @@ To use your Orvibo switch in your installation, add the following to your `confi switch: platform: orvibo host: IP_ADDRESS + mac: MA:CA:DD:RE:SS:00 ``` Configuration variables: - **host** (*Required*): IP address of your switch, eg. 192.168.1.10. +- **mac** (*Optional*): MAC address of the switch, eg "AA:BB:CC:DD:EE:FF". This is required if the switch is connected to a different subnet to the machine running Home Assistant diff --git a/source/_components/switch.pulseaudio_loopback.markdown b/source/_components/switch.pulseaudio_loopback.markdown new file mode 100644 index 00000000000..bf8d0bf5f9d --- /dev/null +++ b/source/_components/switch.pulseaudio_loopback.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "PulseAudio Loopback Switch" +description: "Instructions how to use Pulseaudio loopback modules to build a flexible whole-home audio system." +date: 2016-03-22 21:00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: pulseaudio.png +ha_category: Switch +ha_release: 0.16 +--- + + +The goal behind this switch is to allow a very flexible whole home audio system based upon PulseAudio. + +For example, for a system with a 7.1 surround sound card, and 3 instances of mpd running, it is possible to quickly route the output of any mpd instance to any of the 8 possible (4 stereo) channels on the sound card, by loading/unloading a loopback module. This loading/unloading functionality is provided by this component. When the switch is 'on', the loopback module is loaded. When the switch is 'off', the module is not loaded. + +The benefit of this approach is that this audio routing can occur without modifying the design-time configuration of mpd or PulseAudio. + +This component uses a TCP connection to control a local or remote PulseAudio server- so there are no local dependencies. + +To enable this switch, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + platform: pulseaudio_loopback + name: mpd1 -> bedroom + host: 127.0.0.1 + port: 4712 + source_name: mpd1.monitor + sink_name: bedroom +``` + +Configuration variables: + +- **sink_name** (*Required*): The name of the Pulseaudio sink that will recieve the audio. +- **source_name** (*Required*): The name of the Pulseaudio source that will supply the audio. +- **name** (*Optional*): Name of the switch. +- **host** (*Optional*): The IP address or host name of the PulseAudio server. If not specified, 127.0.0.1 is used. +- **port** (*Optional*): The port that Pulseaudio is listening on. Defaults to 4712. +- **buffer_size** (*Optional*): How much data to load from Pulseaudio at once. Default is 1KB. +- **tcp_timeout** (*Optional*): How long to wait for a response from Pulseaudio before giving up. Default is 3 seconds. + +

+This component relies on raw TCP commands to PulseAudio. In order for PulseAudio to accept commands with +this component, module-cli-protocol must be loaded on the PulseAudio server. +

+ diff --git a/source/_components/switch.rest.markdown b/source/_components/switch.rest.markdown index ed7dfdc110c..b2c7e027112 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 @@ -8,6 +8,7 @@ comments: false sharing: true footer: true ha_category: Switch +ha_release: 0.7.6 --- diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown index 24eea9da287..ee66a922d78 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 @@ -8,24 +8,56 @@ comments: false sharing: true footer: true ha_category: Switch +ha_release: 0.7.5 --- -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: +The `rfxtrx` platform support switches that communicate in the frequency range of 433.92 MHz. + +First you have to set up your [rfxtrx hub.](/components/rfxtrx/) +The easiest way to find your switches is to add this to your `configuration.yaml`: ```yaml -# Example configuration.yaml entry switch: - platform: rfxtrx - devices: - living_room: - name: Living Room - packetid: XXXXX - automatic_add: True + platform: rfxtrx + automatic_add: True +``` + +Launch your homeassistant and go the website. +Push your remote and your device should be added: + +

+ +

+ +Here the name is 0b11000102ef9f210010f70 and you can verify that it works from the frontend. +Then you should update your configuration to: +```yaml +switch: + platform: rfxtrx + devices: + 0b11000102ef9f210010f70: + name: device_name +``` + +Example configuration: +```yaml +# Example configuration.yaml entry +switch: + platform: rfxtrx + automatic_add: False + signal_repetitions: 2 + devices: + 0b1100ce3213c7f210010f70: + name: Movment1 + 0b11000a02ef2gf210010f50: + name: Movment2 + 0b1111e003af16aa10000060: + name: Door ``` 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. +- **fire_event** *Optional*: Fires an event even if the state is the same as before. Can be used for automations. diff --git a/source/_components/switch.rpi_gpio.markdown b/source/_components/switch.rpi_gpio.markdown index 284352994b1..81e09670203 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: raspberry-pi.png ha_category: Switch +ha_release: pre 0.7 --- -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.rpi_rf.markdown b/source/_components/switch.rpi_rf.markdown new file mode 100644 index 00000000000..683c919e84f --- /dev/null +++ b/source/_components/switch.rpi_rf.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Raspberry Pi RF Switch" +description: "Instructions how to integrate devices controlled via codes sent with low-cost GPIO RF modules on a Raspberry Pi into Home Assistant as a switch." +date: 2016-05-10 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: raspberry-pi.png +ha_category: Switch +ha_release: 0.19 +--- + + +The `rpi_rf` switch platform allows you to control devices over 433/315MHz LPD/SRD signals with generic low-cost GPIO RF modules on a [Raspberry Pi](https://www.raspberrypi.org/). + +Interoperable with codes sniffed via [the rpi-rf module](https://pypi.python.org/pypi/rpi-rf) or [rc-switch](https://github.com/sui77/rc-switch). +For more info see the PyPi module description: [rpi-rf](https://pypi.python.org/pypi/rpi-rf). + +To enable, add the following to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +switch: + platform: rpi_rf + gpio: 17 + switches: + bedroom_light: + code_on: 1234567 + code_off: 1234568 + ambilight: + pulselength: 200 + code_on: 987654 + code_off: 133742 + living_room_light: + protocol: 5 + code_on: 654321 + code_off: 654320 +``` + +Configuration variables: + +- **gpio** (*Required*): GPIO to which the data line of the TX module is connected. +- **switches:** (*Required*): The array that contains all switches. + - **[entry]** (*Required*): Name of the switch. Multiple entries are possible. + - **code_on** (*Required*): Decimal code to switch the device on. + - **code_off** (*Required*): Decimal code to switch the device off. + - **protocol** (*Optional*): RF Protocol (Default is `1`). + - **pulselength** (*Optional*): Pulselength (Default is the protocol default). + diff --git a/source/_components/switch.scsgate.markdown b/source/_components/switch.scsgate.markdown new file mode 100644 index 00000000000..d09b50de07c --- /dev/null +++ b/source/_components/switch.scsgate.markdown @@ -0,0 +1,31 @@ +--- +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 +ha_release: 0.13 +--- + +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..cb00059fc53 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,21 +9,16 @@ 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: +To use your TellStick device, you first have to set up your [Tellstick hub](https://home-assistant.io/components/tellstick/) and then add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry switch: 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/switch.template.markdown b/source/_components/switch.template.markdown new file mode 100644 index 00000000000..21057e58786 --- /dev/null +++ b/source/_components/switch.template.markdown @@ -0,0 +1,104 @@ +--- +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 +ha_release: 0.13 +--- + +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.thinkingcleaner.markdown b/source/_components/switch.thinkingcleaner.markdown new file mode 100644 index 00000000000..a8137652fcd --- /dev/null +++ b/source/_components/switch.thinkingcleaner.markdown @@ -0,0 +1,26 @@ +--- +layout: page +title: "Thinking Cleaner switches" +description: "Instructions how to integrate a ThinkingCleaner within Home Assistant." +date: 2016-04-10 17:24 +sidebar: true +comments: false +sharing: true +footer: true +logo: thinkingcleaner.png +ha_category: Switch +ha_iot_class: "Local Poll" +ha_release: 0.18 +--- + +The `ThinkingCleaner` switch platform allows you to control your [ThinkingCleaner](http://www.thinkingcleaner.com) addon. + +To enable this switch in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: thinkingcleaner +``` + +This will automatically add switches for each Thinking Cleaner in your network. diff --git a/source/_components/switch.transmission.markdown b/source/_components/switch.transmission.markdown index c6aa8e84cdf..3ffb614d96f 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: transmission.png ha_category: Switch +ha_release: pre 0.7 --- -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..db2562a193d 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 @@ -9,29 +9,11 @@ sharing: true footer: true logo: vera.png ha_category: Switch +ha_iot_class: "Local Push" --- +The `vera` platform allows you to control your [Vera](http://getvera.com/) switches from within Home Assistant. -This vera switch platform allows you to control your [Vera](http://getvera.com/) switches. +They will be automatically discovered if the vera component is loaded. -To use your Vera switches in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -switch: - platform: vera - vera_controller_url: http://YOUR_VERA_IP:3480/ - device_data: - 12: - name: My awesome sensor - exclude: true - 13: - name: Another sensor -``` - -Configuration variables: - -- **vera_controller_url** (*Required*): This is the base URL of your vera controller including the port number if not running on 80, eg. http://192.168.1.21:3480/ -- **device_data** array (*Optional*):This contains an array additional device information for your Vera devices. It is not required and if not specified all sensors configured in your Vera controller will be added with default values. You should use the id of your Vera device as the key for the device within `device_data`. - - **name** (*Optional*):This parameter allows you to override the name of your Vera device in the frontend, if not specified the value configured for the device in your Vera will be used. - - **exclude** (*Optional*): This parameter allows you to exclude the specified device, it should be set to "True" if you want this device excluded. +For more configuration information see the [Vera component](/components/vera/) documentation. 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.wake_on_lan.markdown b/source/_components/switch.wake_on_lan.markdown new file mode 100644 index 00000000000..c9d33443592 --- /dev/null +++ b/source/_components/switch.wake_on_lan.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "Wake on LAN Switch" +description: "Instructions how to integrate a wake on lan switch." +date: 2016-03-18 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: ethernet.png +ha_category: Switch +ha_release: 0.16 +--- + +The `wake_on_lan` (WOL) switch platform allows you to turn on a [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) enabled computer. + +

+The WOL switch can only turn on your computer and monitor the state. There is no universal way to turn off a computer remotely. +

+ +To enable this switch in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yml entry +switch: + platform: wake_on_lan + mac_address: "00-01-02-03-04-05" + name: "WOL" + host: "192.168.1.1" +``` + +Configuration variables: + +- **mac_address** (*Required*): MAC address to send the wake up command to. +- **name** (*Optional*): The name of the switch. Default is 'Wake on LAN'. +- **host** (*Optional*): The IP address or hostname to check the state of the device (on/off). + 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 index e75435b0184..41097f32e68 100644 --- a/source/_components/switch.zigbee.markdown +++ b/source/_components/switch.zigbee.markdown @@ -1,6 +1,6 @@ --- -layout: component -title: ZigBee Switch +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 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 bf571f33590..134440c00ad 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 @@ -10,11 +10,12 @@ footer: true logo: telldus.png ha_category: Hub featured: false +ha_release: 0.11 --- 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. -To get started using Telldus Live, you will have to obtain developer keys from (https://api.telldus.com/keys/index)[developer-keys]. +To get started using Telldus Live, you will have to obtain developer keys from the [developer page](https://api.telldus.com/keys/index). To integrate your Telldus Live with Home Assistant, add the following section to your `configuration.yaml` file: diff --git a/source/_components/tellstick.markdown b/source/_components/tellstick.markdown index 913415ece60..82ea76ee185 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,20 +12,17 @@ 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. ```yaml # Example configuration.yaml entry -switch: - platform: tellstick - -sensor: - platform: tellstick - -# All dimmers will be picked up as lights. -light: - platform: tellstick +tellstick: + signal_repetitions: X ``` +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 and light to try to send each signal repeatedly. + diff --git a/source/_components/thermostat.ecobee.markdown b/source/_components/thermostat.ecobee.markdown index eb25c3f2f29..15a7f040d20 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: ecobee.png ha_category: Thermostat +ha_release: 0.9 --- To get your Ecobee thermostats working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/). diff --git a/source/_components/thermostat.eq3btsmart.markdown b/source/_components/thermostat.eq3btsmart.markdown new file mode 100644 index 00000000000..645ed3c49d9 --- /dev/null +++ b/source/_components/thermostat.eq3btsmart.markdown @@ -0,0 +1,63 @@ +--- +layout: page +title: "EQ3 Bluetooth Smart Thermostats" +description: "Instructions how to integrate EQ3 Bluetooth Smart Thermostats into Home Assistant." +date: 2016-04-18 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: eq3.gif +ha_category: Thermostat +ha_iot_class: "Local Poll" +--- + +This platform allows you to integrate EQ3 Bluetooth Smart Thermostats. + +The only functionality is to set the temperature, there doesn't seem to be any way to query the temperature sensor or battery level ([read more](https://forum.fhem.de/index.php/topic,39308.15.html)). + +Setup is a bit more cumbersome than for most other thermostats. It has to be paired first: + +```bash +bluetoothctl +scan on + +scan off + +pair +trust +disconnect +exit +``` + +Then check with gatttool if the connection works as expected: + +```bash +gatttool -b 00:11:22:33:44:55 -I +[00:11:22:33:44:55][LE]> connect +Attempting to connect to 00:11:22:33:44:55 +Connection successful +[00:11:22:33:44:55][LE]> char-write-req 0x0411 03 +Characteristic value was written successfully +Notification handle = 0x0421 value: 02 01 09 14 04 2d +[00:11:22:33:44:55][LE]> disconnect +[00:11:22:33:44:55][LE]> exit +``` + +Important: For gatttool or homeassistant to work, the thermostat needs to be disconnected from bluetoothd, so I found it best to modify the hass-daemon startscript by adding: + +```bash +/usr/bin/bt-device -d CC-RT-BLE +``` + +to the start function of /etc/init.d/hass-daemon. + + +```yaml +# Example configuration.yaml entry +thermostat: + platform: eq3btsmart + devices: + room1: + mac: '00:11:22:33:44:55' +``` diff --git a/source/_components/thermostat.heat_control.markdown b/source/_components/thermostat.heat_control.markdown index d27bb3993bb..2b698f9cc11 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 intital 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..1143dbc07a4 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 @@ -9,10 +9,13 @@ sharing: true footer: true logo: heatmiser.png ha_category: Thermostat +ha_release: 0.10 --- -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 +38,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..e7b85c7290b 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 @@ -9,10 +9,11 @@ sharing: true footer: true logo: homematic.png ha_category: Thermostat +ha_release: 0.9 --- -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 3164fb8c633..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 @@ -12,7 +12,7 @@ ha_category: Thermostat --- -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: diff --git a/source/_components/thermostat.proliphix.markdown b/source/_components/thermostat.proliphix.markdown index 6f8a4ce9b2c..13b53668b80 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 @@ -9,6 +9,7 @@ sharing: true footer: true logo: proliphix.png ha_category: Thermostat +ha_release: 0.11 --- 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/thermostat.zwave.markdown b/source/_components/thermostat.zwave.markdown new file mode 100644 index 00000000000..3817564c5bd --- /dev/null +++ b/source/_components/thermostat.zwave.markdown @@ -0,0 +1,15 @@ +--- +layout: page +title: "Z-Wave Thermostat" +description: "Instructions how to setup the Z-Wave thermostat within Home Assistant." +date: 2016-04-03 9:52 +sidebar: true +comments: false +sharing: true +footer: true +logo: z-wave.png +ha_category: Thermostat +ha_release: 0.17 +--- + +To get your Z-Wave thermostat working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/). 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/upnp.markdown b/source/_components/upnp.markdown new file mode 100644 index 00000000000..64061eb08a2 --- /dev/null +++ b/source/_components/upnp.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "UPnP" +description: "Automatically creates port mappings on your router for Home Assistant." +date: 2016-04-10 19:16 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: "Other" +ha_release: 0.18 +--- + +The `upnp` component automatically creates port forwarding mappings on your router for Home Assistant. UPnP or NAT-PMP needs to be enabled on your router for this component to work. + +# Installation +You need to install [miniupnpc](https://github.com/miniupnp/miniupnp/tree/master/miniupnpc) before using the UPnP component: + +```bash +$ git clone https://github.com/miniupnp/miniupnp.git +$ cd miniupnp/miniupnpc +$ make +$ make pythonmodule3 +$ sudo make installpythonmodule3 +``` + +# Configuration + +```yaml +# Example configuration.yaml entry +upnp: +``` + +A port mapping will be created using the IP address and port that Home Assistant is running on. The mapping will never automatically expire. Upon stopping Home Assistant, the mapping will be removed from your router. diff --git a/source/_components/vera.markdown b/source/_components/vera.markdown index 4ceee75d400..0410c725546 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 @@ -11,11 +11,29 @@ logo: vera.png ha_category: Hub --- +The [Vera](http://getvera.com) hub is a controller mainly connecting to Z-Wave devices. -The [Vera](http://getvera.com) ecosystem is using Z-Wave for communication between the Vera controller and the devices. +Switches, Lights (inc Dimmers), Sensors and Binary sensors are supported - and will be automaticaly added when HA connects to your Vera controller. -## {% linkable_title Building on top of Vera %} +To use Vera devices in your installation, add the following to your configuration.yaml file using the IP and port number of your Vera controller: + +```yaml +vera: + vera_controller_url: http://192.168.1.161:3480/ +``` + +By default your switches will be added to HA as switches, however if some of them are light switches, you can tell HA this using the optional ```lights``` parameter as shown below. + +Vera imports detailed zwave devices into HA - this can include system devices and other devices that you don't use, you can tell HA not to load these devices using the ```exclude:``` parameter as shown below. + +You can find the vera device id either by looking at your vera controller - or by checking the ```Vera Device Id``` attribute on each device imported into HA. + +```yaml +vera: + vera_controller_url: http://192.168.1.161:3480/ + # Optional to exclude devices - this is a list of vera device ids + exclude: [ 13, 14, 16, 20, 23, 72, 73, 74, 75, 76, 77, 78, 88, 89, 99] + # Optional to import switches as lights - this is a list of vera device ids + lights: [15, 17, 19, 21, 22, 24, 26, 43, 64, 70, 87] +``` - - [Vera Sensor](/components/sensor.vera/) - - [Vera Switch](/components/switch.vera/) - - [Vera Light](/components/light.vera/) diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown index 06c635ecb31..37a0948a919 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 @@ -9,17 +9,18 @@ sharing: true footer: true logo: verisure.png ha_category: Hub +ha_release: pre 0.7 --- - - Home Assistant has support to integrate your [Verisure](https://www.verisure.com/) devices. We support: - * Smartplugs - * Reading from thermometers and hygrometers integrated in various devices - * Reading alarm status + * [Alarm](/components/alarm_control_panel.verisure/) + * [Smartplugs](/components/switch.verisure/) + * Reading from thermometers and hygrometers integrated in various [devices](/components/sensor.verisure/) + * Mouse Detector + * [Locks](/components/lock.verisure/) To integrate Verisure with Home Assistant, add the following section to your `configuration.yaml` file: @@ -32,6 +33,8 @@ verisure: hygrometers: 0 smartplugs: 1 thermometers: 0 + locks: 0 + mouse: 1 code_digits: 4 ``` @@ -42,6 +45,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..1b91e3f7221 --- /dev/null +++ b/source/_components/weblink.markdown @@ -0,0 +1,35 @@ +--- +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 +ha_release: 0.13 +--- + +The `weblink` component allows you to display links in the Home Assistant frontend. + +To use this component in your installation, add something like 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..df99afa5081 --- /dev/null +++ b/source/_components/wemo.markdown @@ -0,0 +1,35 @@ +--- +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 +featured: true +--- + +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/zeroconf.markdown b/source/_components/zeroconf.markdown new file mode 100644 index 00000000000..f243c10dbfc --- /dev/null +++ b/source/_components/zeroconf.markdown @@ -0,0 +1,21 @@ +--- +layout: page +title: "Zeroconf/Avahi/Bonjour" +description: "Exposes Home Assistant using the Zeroconf protocol." +date: 2016-04-10 18:50 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: "Other" +ha_release: 0.18 +--- + +The `zeroconf` component exposes your Home Assistant to the local network using [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking). Zeroconf is also sometimes known as Bonjour, Rendezvous and Avahi. + +```yaml +# Example configuration.yaml entry +zeroconf: +``` + +The registration will include metadata about the Home Assistant instance, including a base URL that can be used to access Home Assistant, the currently running Home Assistant version, and whether an API password is needed to access the instance. diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown index 51ae3f4fae0..0d973649f90 100644 --- a/source/_components/zigbee.markdown +++ b/source/_components/zigbee.markdown @@ -1,5 +1,5 @@ --- -layout: component +layout: page title: "ZigBee" description: "Instructions on how to integrate a ZigBee network with Home Assistant." date: 2016-01-27 17:10 @@ -9,6 +9,7 @@ sharing: true footer: true logo: zigbee.png ha_category: DIY +ha_release: 0.12 --- [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. diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index a0bd59ad1a2..db1de8acfe7 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 @@ -11,7 +11,7 @@ logo: home-assistant.png ha_category: Organization --- -Zones allow you to specify certain regions on earth (for now). When a device tracker sees a device to be within a zone, the state will take the name from the zone. Zones can also be used as a [trigger](/components/automation/#zone-trigger) or [condition](/components/automation/#zone-condition) inside automation setups. +Zones allow you to specify certain regions on earth (for now). When a device tracker sees a device to be within a zone, the state will take the name from the zone. Zones can also be used as a [trigger](/getting-started/automation-trigger/#zone-trigger) or [condition](/getting-started/automation-condition/#zone-condition) inside automation setups. Zones support the usual method to specify multiple zones, use keys `zone:`, `zone 2:` etc. @@ -45,12 +45,20 @@ Configuration variables: - **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. - +- **passive** (*Optional*): Optional boolean to only use the zone for automation and hide it from the UI and not use the zone for device tracker name. Defaults to false. #### {% 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'**. +

+Devices that are in the zone **'Home'** will not appear on the map in the Home Assistant UI. +

+ #### {% 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`, 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..248e7d8d369 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -1,47 +1,220 @@ --- -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 footer: true logo: z-wave.png ha_category: Hub +featured: true --- [Z-Wave](http://www.z-wave.com/) integration for Home Assistant allows you to observe and control connected Z-Wave devices. Z-Wave support requires a [supported Z-Wave USB stick](https://github.com/OpenZWave/open-zwave/wiki/Controller-Compatibility-List) to be plugged into the host. 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: +

Do not use root to build python-openzwave as it will surely fail.

+```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: 60000 + 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. Be careful about using polling values below 30000 (30 seconds) as polling can flood the zwave network and cause problems. +- **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. + +#### {% linkable_title Services %} + +The Z-Wave component exposes four services to help maintain the network. + +| Service | Description | +| ------- | ----------- | +| add_node | Put the zwave controller in inclusion mode. Allows one to add a new device to the zwave network.| +| remove_node | Put the zwave controller in exclusion mode. Allows one to remove a device from the zwave network.| +| heal_network | Tells the controller to "heal" the network. Bascially asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. | +| soft_reset | Tells the controller to do a "soft reset". This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command.| +| test_network | Tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked "presumed dead".| + +The soft_reset and heal_network commands can be used as part of an automation script +to help keep a zwave network running relliably. For example: + +```yaml +# Example configuration.yaml automation entry +automation: + - alias: soft reset at 2:30am + trigger: + platform: time + after: '2:30:00' + action: + service: zwave.soft_reset + + - alias: heal at 2:31am + trigger: + platform: time + after: '2:31:00' + action: + service: zwave.heal_network +``` + +#### {% linkable_title Device Specific Notes & Configuration %} + +##### {% linkable_title Aeon Minimote %} + +Here's a handy configuration for the Aeon Labs Minimote that defines all possible button presses. Put it into `automation.yaml`. + +```yaml +- alias: Minimote Button 1 Pressed + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 1 + +- alias: Minimote Button 1 Held + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 2 + +- alias: Minimote Button 2 Pressed + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 3 + +- alias: Minimote Button 2 Held + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 4 + +- alias: Minimote Button 3 Pressed + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 5 + +- alias: Minimote Button 3 Held + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 6 + +- alias: Minimote Button 4 Pressed + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 7 + +- alias: Minimote Button 4 Held + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 8 +``` + +##### {% linkable_title Aeotec MultiSensor 6 %} + +In order for Home Assistant to recognize well the motion sensor, you will need to change its configuration from `Basic Set (default)` to `Binary Sensor report`. Currently there's no way to do this in Home Assistant but you can use ozwcp (OpenZWave control panel), Domoticz or similar to do it diff --git a/source/_cookbook/automation_flashing_lights.markdown b/source/_cookbook/automation_flashing_lights.markdown new file mode 100644 index 00000000000..9bd23647d42 --- /dev/null +++ b/source/_cookbook/automation_flashing_lights.markdown @@ -0,0 +1,108 @@ +--- +layout: page +title: "Examples for flashing lights" +description: "Automation examples for flashing lights in case of an alarm." +date: 2016-03-30 08:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation Examples +--- + +#### {% linkable_title Flashing lights triggered by an alarm %} + +For flashing regular lights in case the the triggering of an alarm. + +```yaml +# AlmAct1 - switch to activate the alarm in Room1 +# AlmSnd1 - switch for a buzzer + +automation: +- alias: 'Alarm_PIR_Room1' + trigger: + platform: state + entity_id: binary_sensor.PIR1 + state: 'on' + condition: + - platform: state + entity_id: switch.AlmAct1 + state: 'on' + - platform: state + entity_id: script.alarm_room1 + state: 'off' + action: + # start alarm on movement if alarm activated + # and the alarm is not triggered + service: script.turn_on + entity_id: script.alarm_room1 + +- alias: 'flash_room1_start' + trigger: + platform: state + entity_id: switch.AlmSnd1 + state: 'on' + action: + service: script.turn_on + entity_id: script.flash_room1 + +- alias: 'flash_room1_stop' + trigger: + platform: state + entity_id: switch.REL1 + state: 'off' + condition: + platform: state + entity_id: switch.AlmSnd1 + state: 'off' + action: + service: script.turn_off + entity_id: script.flash_room1 + +script: + alarm_room1: + alias: Alarm room1 + sequence: + - alias: Alarm Room1 Start + service: homeassistant.turn_on + data: + entity_id: switch.AlmSnd1 + - alias: Set Ack Room1 + service: homeassistant.turn_on + data: + entity_id: input_boolean.ack1 + - alias: email_Room1 + service: notify.email + data: + message: 'Movement alarm in Room1' + - delay: + # time interval for alarm sound and light flashing + seconds: 60 + - alias: Alarm Room1 Stop + service: homeassistant.turn_off + data: + entity_id: switch.AlmSnd1 + + flash_room1: + alias: Flash Room1 On + sequence: + - alias: Light Room1 On + service: homeassistant.turn_on + data: + entity_id: switch.REL1 + - delay: + # time for flash light on + seconds: 1 + - alias: Light Room1 Off + service: homeassistant.turn_off + data: + entity_id: switch.REL1 + - delay: + # time for flash light off + seconds: 1 + - alias: loop_room1 + service: script.turn_on + data: + entity_id: script.flash_room1 +``` + 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..ce8c7a3bd23 --- /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/homeassistant +--- + diff --git a/source/_cookbook/configuration_yaml_by_geekofweek.markdown b/source/_cookbook/configuration_yaml_by_geekofweek.markdown new file mode 100644 index 00000000000..7ca356543fb --- /dev/null +++ b/source/_cookbook/configuration_yaml_by_geekofweek.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Configuration.yaml by geekofweek" +description: "" +date: 2016-04-23 13:51 +0700 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +ha_external_link: https://github.com/geekofweek/homeassistant +--- + 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/configuration_yaml_from_bassclarinetl2 b/source/_cookbook/configuration_yaml_from_bassclarinetl2 new file mode 100644 index 00000000000..91af768b15e --- /dev/null +++ b/source/_cookbook/configuration_yaml_from_bassclarinetl2 @@ -0,0 +1,446 @@ +homeassistant: + # Name of the location where Home Assistant is running + name: example.com + # Location required to calculate the time the sun rises and sets + latitude: 37 + longitude: -121 + # C for Celcius, F for Fahrenheit + temperature_unit: F + # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones + time_zone: America/Los_Angeles + customize: + switch.aeon_labs_smart_energy_switch_switch_2: + friendly_name: Mac Switch-Meter + switch.leviton_unknown_type1a02_id0334_switch_3: + friendly_name: W Nightstand + entity_picture: /local/zwvapl.jpg + switch.hub_switch: + friendly_name: Wink Hub Switch + entity_picture: /local/wemoswitch.jpg + switch.leviton_unknown_type1a02_id0334_switch_4: + friendly_name: Christmas Tree + entity_picture: /local/zwvapl.jpg + switch.leviton_unknown_type1a02_id0334_switch_5: + friendly_name: Roof Lights + entity_picture: /local/zwvapl.jpg + + light.w_bedroom_ceiling_: + friendly_name: Will's Bedroom Ceiling Lights (Wink) + entity_picture: /local/casetta.jpg + light.living_room_wall_: + friendly_name: Living Room Couch Lights (Wink) + entity_picture: /local/casetta.jpg + + media_player.my_shield_android_tv: + friendly_name: Dalek (Cast) + entity_picture: /local/shieldtv.jpg + media_player.chromecast: + friendly_name: Jeff chromecast + entity_picture: /local/chromecast.jpg + media_player.kodi: + friendly_name: Tardis-Win7 (Kodi) + entity_picture: /local/kodi.png + media_player.kodi_2: + friendly_name: Dalek (Kodi) + media_player.roku_2_xd__12a18n045363: + friendly_name: Parents Roku + entity_picture: /local/roku2xd.jpg + + sensor.aeon_labs_smart_energy_switch_power_2: + friendly_name: Mac Usage (W) + sensor.aeon_labs_smart_energy_switch_previous_reading_2: + friendly_name: Mac Usage Previous (W) + hidden: true + sensor.aeon_labs_smart_energy_switch_energy_2: + friendly_name: Mac Usage (kWh) + hidden: true + +##################### +## GROUPS +##################### +group: + w_bedroom: + - switch.leviton_unknown_type1a02_id0334_switch_3 + - light.w_bedroom_ceiling_ + christmas: + - switch.leviton_unknown_type1a02_id0334_switch_4 + - switch.leviton_unknown_type1a02_id0334_switch_5 + almanac: + - sensor.date + - sensor.time + - sensor.time_utc + - sun.sun + tracker: + - device_tracker.will_wnexus +# OpenWeatherMap: +# - sensor.weather_temperature +# - sensor.weather_humidity +# - sensor.weather_pressure +# - sensor.weather_rain +# - sensor.weather_wind_speed +# - sensor.weather_cloud_coverage +# - sensor.weather_forecast + Meteobridge: + - sensor.outdoor_temp_meteobridge + - sensor.outdoor_humidity_meteobridge + - sensor.outdoor_dewpoint_meteobridge + - sensor.precip_rate_meteobridge + - sensor.wind_direction_meteobridge + - sensor.wind_gust_meteohub + - sensor.wind_chill_meteobridge + - sensor.wind_speed_meteobridge + - sensor.indoor_dewpoint_meteobridge + - sensor.indoor_humidity_meteobridge + - sensor.indoor_temp_meteobridge + - sensor.precip_change_meteobridge + - sensor.precip_total_meteobridge + - sensor.sea_level_pressure_meteobridge + - sensor.barometric_pressure_meteobridge + +#################### +## ZONES +#################### +zone: + name: Home + latitude: 37 + longitude: -121 + radius: 200 + icon: mdi:home + +zone 2: + name: Barracuda_(SJ) + latitude: 37 + longitude: -121 + radius: 100 + +zone 3: + name: SFC + latitude: 37 + longitude: -122 + radius: 95 + +#################### +## NOTIFICATIONS +#################### + + +#################### +## AUTOMATION +#################### +automation: +#- alias: 'W_at_work' +# trigger: +# - platform: zone +# entity_id: device_tracker.will_wnexus +# zone: zone.barracuda_sj +# event: enter +# - platform: time +# after: '07:15' +# before: '09:00' +# action: +# service: ifttt.trigger +# data: {"event":"hassnotification_dadsms", "value1": "Will's at Work"} +- alias: "Update_Update" + trigger: + platform: state + entity_id: updater.updater + action: + service: ifttt.trigger + data: {"event":"hassnotification_willsms","value1":"HASS has an update"} +- alias: 'Christmas Roof ON' + trigger: + platform: sun + event: sunset + offset: '-01:00:00' + action: + service: homeassistant.turn_on + entity_id: switch.leviton_unknown_type1a02_id0334_switch_5 +- alias: 'Christmas Roof OFF' + trigger: + platform: time + hours: 1 + minutes: 0 + seconds: 0 + action: + service: homeassistant.turn_off + entity_id: switch.leviton_unknown_type1a02_id0334_switch_5 +- alias: 'Christmas Tree ON' + trigger: + platform: time + hours: 8 + minutes: 0 + seconds: 0 + action: + service: homeassistant.turn_on + entity_id: switch.leviton_unknown_type1a02_id0334_switch_4 +- alias: 'Christmas Tree (OFF)' + trigger: + platform: time + hours: 23 + minutes: 0 + seconds: 0 + action: + service: homeassistant.turn_off + entity_id: switch.leviton_unknown_type1a02_id0334_switch_4 +#- alias: test notify +# trigger: +# platform: time +# minutes: '/5' #every 5 min +# action: +# service: notify.pushEtta +# data: +# message: 5 Min Test + + +################################# +### COMPONENTS ### +################################# +#discovery: +sun: +#updater: +history: +#conversation: +frontend: +logbook: + +http: + api_password: Austin12# + server_port: 8123 + ssl_certificate: /etc/letsencrypt/live/example.com/fullchain.pem + ssl_key: /etc/letsencrypt/live/example.com/privkey.pem + +ifttt: + key: gm3dAtxwX8RpbA793mHWbK1bftO1wgScKt0ZHiT9GyC + +media_player 1: + platform: plex +#media_player 2: +# platform: squeezebox +# host: 192.168.2.80 +# port: 9000 +media_player 3: + platform: cast +media_player 4: + platform: kodi + url: http://192.168.2.129:8080/jsonrpc + user: kodi + password: kodi +media_player 5: + platform: plex +media_player 6: + platform: kodi + url: http://192.168.2.165/jsonrpc +media_player 7: + platform: samsungtv + host: 192.168.2.90 + name: Parents TV + +wink: + access_token: cf83448f669cd3acd3b969b063028565 + refresh_token: 6213c8a1d519d864e08b7364c91eaf22 + +zwave: + usb_path: /dev/ttyUSB0 + config_path: /usr/local/share/python-openzwave/config + polling_interval: 10000 + +#zigbee: +# device: /dev/ttyUSB1 +# baud: 115200 + +mqtt: + broker: 127.0.0.1 + port: 8883 + username: hass + password: austin + +device_tracker 1: + platform: owntracks + + track_new_devices: yes + interval_seconds: 40 + consider_home: 120 + +device_tracker 2: + platform: nmap_tracker + hosts: 192.168.2.0/24 + home_interval: 3 + +#sensor: +# platform: openweathermap +# api_key: b693a8bb2f60dcedc7b4bf33649ed4f1 +# forecast: 1 +# monitored_conditions: +# - temperature +# - wind_speed +# - humidity +# - pressure +# - clouds +# - rain + +sensor 2: + platform: time_date + display_options: + - 'time' + - 'date' + - 'time_utc' + +### BEGIN METEO SENSORS ### +sensor 3: + platform: tcp + name: Outdoor Temp (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[2]}}" + unit: C + +sensor 4: + platform: tcp + name: Outdoor Humidity (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[3]}}" + unit: Percent + +sensor 5: + platform: tcp + name: Outdoor Dewpoint (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[4] }}" + unit: C + +sensor 6: + platform: tcp + name: Wind Direction (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[7]}}" + unit: Degrees + +sensor 7: + platform: tcp + name: Wind Gust (Meteohub) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[8]}}" + unit: m/s + +sensor 8: + platform: tcp + name: Wind Speed (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[9]}}" + unit: m/s + +sensor 9: + platform: tcp + name: Wind Chill (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[10]}}" + unit: C + +sensor 10: + platform: tcp + name: Precip Rate (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[13]}}" + unit: mm/hr + +sensor 11: + platform: tcp + name: Precip Total (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[14]}}" + unit: mm + +sensor 12: + platform: tcp + name: Precip Change (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[15]}}" + unit: mm + +sensor 13: + platform: tcp + name: Indoor Temp (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[18]}}" + unit: C + +sensor 14: + platform: tcp + name: Indoor Humidity (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[19]}}" + unit: percent + +sensor 15: + platform: tcp + name: Indoor Dewpoint (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[20]}}" + unit: C + +sensor 16: + platform: tcp + name: Barometric Pressure (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[21]}}" + unit: mb + +sensor 17: + platform: tcp + name: Sea Level Pressure (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[22]}}" + unit: mb + +sensor 18: + platform: steam_online + api_key: [Redact] + accounts: + - 76561198012067051 + +switch: + platform: wemo diff --git a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown new file mode 100644 index 00000000000..dd69f051804 --- /dev/null +++ b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown @@ -0,0 +1,460 @@ +--- +layout: page +title: "Configuration.yaml by bassclarinetl2" +description: "" +date: 2016-03-24 17:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Example configuration.yaml +--- + +```yaml +homeassistant: + # Name of the location where Home Assistant is running + name: example.com + # Location required to calculate the time the sun rises and sets + latitude: 37 + longitude: -121 + # C for Celcius, F for Fahrenheit + temperature_unit: F + # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones + time_zone: America/Los_Angeles + customize: + switch.aeon_labs_smart_energy_switch_switch_2: + friendly_name: Mac Switch-Meter + switch.leviton_unknown_type1a02_id0334_switch_3: + friendly_name: W Nightstand + entity_picture: /local/zwvapl.jpg + switch.hub_switch: + friendly_name: Wink Hub Switch + entity_picture: /local/wemoswitch.jpg + switch.leviton_unknown_type1a02_id0334_switch_4: + friendly_name: Christmas Tree + entity_picture: /local/zwvapl.jpg + switch.leviton_unknown_type1a02_id0334_switch_5: + friendly_name: Roof Lights + entity_picture: /local/zwvapl.jpg + + light.w_bedroom_ceiling_: + friendly_name: Will's Bedroom Ceiling Lights (Wink) + entity_picture: /local/casetta.jpg + light.living_room_wall_: + friendly_name: Living Room Couch Lights (Wink) + entity_picture: /local/casetta.jpg + + media_player.my_shield_android_tv: + friendly_name: Dalek (Cast) + entity_picture: /local/shieldtv.jpg + media_player.chromecast: + friendly_name: Jeff chromecast + entity_picture: /local/chromecast.jpg + media_player.kodi: + friendly_name: Tardis-Win7 (Kodi) + entity_picture: /local/kodi.png + media_player.kodi_2: + friendly_name: Dalek (Kodi) + media_player.roku_2_xd__12a18n045363: + friendly_name: Parents Roku + entity_picture: /local/roku2xd.jpg + + sensor.aeon_labs_smart_energy_switch_power_2: + friendly_name: Mac Usage (W) + sensor.aeon_labs_smart_energy_switch_previous_reading_2: + friendly_name: Mac Usage Previous (W) + hidden: true + sensor.aeon_labs_smart_energy_switch_energy_2: + friendly_name: Mac Usage (kWh) + hidden: true + +##################### +## GROUPS +##################### +group: + w_bedroom: + - switch.leviton_unknown_type1a02_id0334_switch_3 + - light.w_bedroom_ceiling_ + christmas: + - switch.leviton_unknown_type1a02_id0334_switch_4 + - switch.leviton_unknown_type1a02_id0334_switch_5 + almanac: + - sensor.date + - sensor.time + - sensor.time_utc + - sun.sun + tracker: + - device_tracker.will_wnexus +# OpenWeatherMap: +# - sensor.weather_temperature +# - sensor.weather_humidity +# - sensor.weather_pressure +# - sensor.weather_rain +# - sensor.weather_wind_speed +# - sensor.weather_cloud_coverage +# - sensor.weather_forecast + Meteobridge: + - sensor.outdoor_temp_meteobridge + - sensor.outdoor_humidity_meteobridge + - sensor.outdoor_dewpoint_meteobridge + - sensor.precip_rate_meteobridge + - sensor.wind_direction_meteobridge + - sensor.wind_gust_meteohub + - sensor.wind_chill_meteobridge + - sensor.wind_speed_meteobridge + - sensor.indoor_dewpoint_meteobridge + - sensor.indoor_humidity_meteobridge + - sensor.indoor_temp_meteobridge + - sensor.precip_change_meteobridge + - sensor.precip_total_meteobridge + - sensor.sea_level_pressure_meteobridge + - sensor.barometric_pressure_meteobridge + +#################### +## ZONES +#################### +zone: + name: Home + latitude: 37 + longitude: -121 + radius: 200 + icon: mdi:home + +zone 2: + name: Barracuda_(SJ) + latitude: 37 + longitude: -121 + radius: 100 + +zone 3: + name: SFC + latitude: 37 + longitude: -122 + radius: 95 + +#################### +## NOTIFICATIONS +#################### + + +#################### +## AUTOMATION +#################### +automation: +#- alias: 'W_at_work' +# trigger: +# - platform: zone +# entity_id: device_tracker.will_wnexus +# zone: zone.barracuda_sj +# event: enter +# - platform: time +# after: '07:15' +# before: '09:00' +# action: +# service: ifttt.trigger +# data: {"event":"hassnotification_dadsms", "value1": "Will's at Work"} +- alias: "Update_Update" + trigger: + platform: state + entity_id: updater.updater + action: + service: ifttt.trigger + data: {"event":"hassnotification_willsms","value1":"HASS has an update"} +- alias: 'Christmas Roof ON' + trigger: + platform: sun + event: sunset + offset: '-01:00:00' + action: + service: homeassistant.turn_on + entity_id: switch.leviton_unknown_type1a02_id0334_switch_5 +- alias: 'Christmas Roof OFF' + trigger: + platform: time + hours: 1 + minutes: 0 + seconds: 0 + action: + service: homeassistant.turn_off + entity_id: switch.leviton_unknown_type1a02_id0334_switch_5 +- alias: 'Christmas Tree ON' + trigger: + platform: time + hours: 8 + minutes: 0 + seconds: 0 + action: + service: homeassistant.turn_on + entity_id: switch.leviton_unknown_type1a02_id0334_switch_4 +- alias: 'Christmas Tree (OFF)' + trigger: + platform: time + hours: 23 + minutes: 0 + seconds: 0 + action: + service: homeassistant.turn_off + entity_id: switch.leviton_unknown_type1a02_id0334_switch_4 +#- alias: test notify +# trigger: +# platform: time +# minutes: '/5' #every 5 min +# action: +# service: notify.pushEtta +# data: +# message: 5 Min Test + + +################################# +### COMPONENTS ### +################################# +#discovery: +sun: +#updater: +history: +#conversation: +frontend: +logbook: + +http: + api_password: Austin12# + server_port: 8123 + ssl_certificate: /etc/letsencrypt/live/example.com/fullchain.pem + ssl_key: /etc/letsencrypt/live/example.com/privkey.pem + +ifttt: + key: [redacted] + +media_player 1: + platform: plex +#media_player 2: +# platform: squeezebox +# host: 192.168.2.80 +# port: 9000 +media_player 3: + platform: cast +media_player 4: + platform: kodi + url: http://192.168.2.129:8080/jsonrpc + user: kodi + password: kodi +media_player 5: + platform: plex +media_player 6: + platform: kodi + url: http://192.168.2.165/jsonrpc +media_player 7: + platform: samsungtv + host: 192.168.2.90 + name: Parents TV + +wink: + access_token: [redacted] + refresh_token: [redacted] + +zwave: + usb_path: /dev/ttyUSB0 + config_path: /usr/local/share/python-openzwave/config + polling_interval: 10000 + +#zigbee: +# device: /dev/ttyUSB1 +# baud: 115200 + +mqtt: + broker: 127.0.0.1 + port: 8883 + username: [redacted] + password: [redacted] + +device_tracker 1: + platform: owntracks + + track_new_devices: yes + interval_seconds: 40 + consider_home: 120 + +device_tracker 2: + platform: nmap_tracker + hosts: 192.168.2.0/24 + home_interval: 3 + +#sensor: +# platform: openweathermap +# api_key: [redacted] +# forecast: 1 +# monitored_conditions: +# - temperature +# - wind_speed +# - humidity +# - pressure +# - clouds +# - rain + +sensor 2: + platform: time_date + display_options: + - 'time' + - 'date' + - 'time_utc' + +### BEGIN METEO SENSORS ### +sensor 3: + platform: tcp + name: Outdoor Temp (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[2]}}" + unit: C + +sensor 4: + platform: tcp + name: Outdoor Humidity (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[3]}}" + unit: Percent + +sensor 5: + platform: tcp + name: Outdoor Dewpoint (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[4] }}" + unit: C + +sensor 6: + platform: tcp + name: Wind Direction (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[7]}}" + unit: Degrees + +sensor 7: + platform: tcp + name: Wind Gust (Meteohub) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[8]}}" + unit: m/s + +sensor 8: + platform: tcp + name: Wind Speed (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[9]}}" + unit: m/s + +sensor 9: + platform: tcp + name: Wind Chill (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[10]}}" + unit: C + +sensor 10: + platform: tcp + name: Precip Rate (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charset=UTF-8\n\n" + value_template: "{{value.split (' ')[13]}}" + unit: mm/hr + +sensor 11: + platform: tcp + name: Precip Total (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[14]}}" + unit: mm + +sensor 12: + platform: tcp + name: Precip Change (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[15]}}" + unit: mm + +sensor 13: + platform: tcp + name: Indoor Temp (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[18]}}" + unit: C + +sensor 14: + platform: tcp + name: Indoor Humidity (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[19]}}" + unit: percent + +sensor 15: + platform: tcp + name: Indoor Dewpoint (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[20]}}" + unit: C + +sensor 16: + platform: tcp + name: Barometric Pressure (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[21]}}" + unit: mb + +sensor 17: + platform: tcp + name: Sea Level Pressure (Meteobridge) + host: 192.168.2.82 + port: 5556 + timeout: 6 + payload: "Content-type: text/xml; charaset=UTF-8\n\n" + value_template: "{{value.split (' ')[22]}}" + unit: mb + +sensor 18: + platform: steam_online + api_key: [Redact] + accounts: + - 76561198012067051 + +switch: + platform: wemo +``` 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..59d20576c58 --- /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: + - service: switch.turn_off + data: + entity_id: switch.foscam_motion + - service: shell_command.foscam_turn_off + foscam_on: + sequence: + - service: switch.turn_off + data: + entity_id: switch.foscam_motion + - service: shell_command.foscam_turn_on + - service: switch.turn_on + 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 `/custom_components/hello_service.py` and copy the below example code. + +Services can be called from automation and from the service "Developer tools" in the frontend. + +```python +# The domain of your component. Should be equal to the name of your component. +DOMAIN = 'hello_service' + +ATTR_NAME = 'name' +DEFAULT_NAME = 'World' + + +def setup(hass, config): + """Setup is called when Home Assistant is loading our component.""" + + def handle_hello(call): + name = call.data.get(ATTR_NAME, DEFAULT_NAME) + + hass.states.set('hello.service.hello', name) + + hass.services.register(DOMAIN, 'hello', handle_hello) + + # Return boolean to indicate that initialization was successfully. + return True +``` + +Load the component by adding the following to your `configuration.yaml`. When your component is loaded, a new service should be available to call. + +```yaml +# configuration.yaml entry +hello_service: +``` + +Open the frontend and in the sidebar, click the first icon in the developer tool section. This will open the Call Service developer tool. On the right, find your service and click on it. This will automatically fill in the correct values. + +Pressing "Call Service" will now call your service without any parameters. This will cause your service to create a state with the default name 'World'. If you want to specify the name, you have to specify parameters. Add the following JSON as Service Data and press "Call Service again". + +```json +{ + "name": "Planet" +} +``` + +The service will now overwrite the previous state with "Planet". diff --git a/source/_cookbook/python_component_basic_state.markdown b/source/_cookbook/python_component_basic_state.markdown new file mode 100644 index 00000000000..d81d478ad16 --- /dev/null +++ b/source/_cookbook/python_component_basic_state.markdown @@ -0,0 +1,125 @@ +--- +layout: page +title: "Basic State Setting 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 tutorial/example on how to write a component for [Home Assistant](https://home-assistant.io/). We will work on a component called "hello_state" to begin with. The purpose of this component is to display a given text in the frontend. + +The setup of a development environment is described in the [Developers section](/developers/#starting-development) of the documentation. + +## {% linkable_title Component %} + +To get started, create the file `/custom_components/hello_state.py` and copy the below example code. + +```python +""" +Support for showing text in the frontend. + +For more details about this component, please refer to the documentation at +https://home-assistant.io/components/hello_state/ +""" +import logging + +_LOGGER = logging.getLogger(__name__) + +DOMAIN = 'hello_state' +DEPENDENCIES = [] + +def setup(hass, config=None): + """Setup the Hello State component. """ + _LOGGER.info("The 'hello state' component is ready!") + + return True +``` + +1. In the file header we decided to add some details: A short description and the link to the documentation. +2. We want to do some logging. This means that we import the Python logging module and create an alias. +3. The component name is equal to the domain name. +4. At the moment this component has no dependencies. For detail check [dependencies](/developers/creating_components/#dependencies) section. +5. The `setup` function will take care of the initialization of our component. + The component will only write a log message. Keep in mind for later that you have several options for the severity: + + - `_LOGGER.info(msg)` + - `_LOGGER.warning(msg)` + - `_LOGGER.error(msg)` + - `_LOGGER.critical(msg)` + - `_LOGGER.exception(msg)` + +7. We return `True` if everything is ok. + +Add the component to your `configuration.yaml` file. + +```yaml +hello_state: +``` + +After a start or a restart of Home Assistant the component will create an entry in the log. + +```bash +16-03-12 14:16:42 INFO (MainThread) [custom_components.hello_state] The 'hello state' component is ready! +``` + +The next step is the introduction of configuration options. Most configuration details are coming out of the `configuration.yaml` file. To do that we need to update the `def setup()` method to accept configuration information and access the configuration variable in the `setup` method. + +More details about this topic can be found in the [User given configuration](/developers/creating_components/#config-user-given-configuration) section. + +```python +import logging + +_LOGGER = logging.getLogger(__name__) + +DOMAIN = 'hello_state' +DEPENDENCIES = [] + +CONF_TEXT = 'text' +DEFAULT_TEXT = 'No text!' + +def setup(hass, config): + """Setup the Hello State component. """ + # Get the text from the configuration. Use DEFAULT_TEXT if no name is provided. + text = config[DOMAIN].get(CONF_TEXT, DEFAULT_TEXT) + + # States are in the format DOMAIN.OBJECT_ID + hass.states.set('hello_state.Hello_State', text) + + return True +``` + +To add the latest feature of our component, update the entry in your `configuration.yaml` file. + +```yaml +information: + text: 'Hello, World!' +``` + +Thanks to `DEFAULT_TEXT` variable the component will launch even if no `text:` field is used in the `configuration.yaml` file. Quite often there are variables which are required. It's important to check if all mandatory configuration variables are provided. If not, the setup should fail. We will use the `validate_config` function as a helper to achive this. The next listing shows the essential parts. + +```python +from homeassistant.helpers import validate_config +[...] + if not validate_config(config, {DOMAIN: [CONF_TEXT]}, _LOGGER): + return False +``` + +If `text:` is missing, there will be a warning in the log file. + +```bash +16-03-12 14:37:37 ERROR (MainThread) [custom_components.hello_state] Missing required configuration items in hello_state: text +16-03-12 14:37:37 ERROR (MainThread) [homeassistant.bootstrap] component hello_state failed to initialize +``` + +After a start or a restart of Home Assistant the component will be visible in the frontend if the `configuration.yaml` file is up-to-date. + +

+ +

+ +To get your component included in the Home Assistant releases, follow the steps described in the [Submitting improvements](https://home-assistant.io/developers/#submitting-improvements) section. Basically you only need to move your component in the `homeassistant/component/` directory of your fork and create a Pull Request. + diff --git a/source/_cookbook/python_component_mqtt_basic.markdown b/source/_cookbook/python_component_mqtt_basic.markdown new file mode 100644 index 00000000000..a4f4603dd43 --- /dev/null +++ b/source/_cookbook/python_component_mqtt_basic.markdown @@ -0,0 +1,78 @@ +--- +layout: page +title: "Basic MQTT Example" +description: "" +date: 2016-02-07 12:13 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Custom Python Component Examples +--- + +

+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 `/custom_components/hello_mqtt.py` and copy the below example code. + +This example follows a topic on MQTT and updates the state of an entity to the last message received on that topic. It will also register a service 'set_state' that will publish a message to the MQTT topic that we're listening to. + +```python +import homeassistant.loader as loader + +# The domain of your component. Should be equal to the name of your component. +DOMAIN = "hello_mqtt" + +# List of component names (string) your component depends upon. +DEPENDENCIES = ['mqtt'] + + +CONF_TOPIC = 'topic' +DEFAULT_TOPIC = 'home-assistant/hello_mqtt' + + +def setup(hass, config): + """Setup the Hello MQTT component.""" + mqtt = loader.get_component('mqtt') + topic = config[DOMAIN].get('topic', DEFAULT_TOPIC) + entity_id = 'hello_mqtt.last_message' + + # Listener to be called when we receive a message. + def message_received(topic, payload, qos): + """A new MQTT message has been received.""" + hass.states.set(entity_id, payload) + + # Subscribe our listener to a topic. + mqtt.subscribe(hass, topic, message_received) + + # Set the intial state + hass.states.set(entity_id, 'No messages') + + # Service to publish a message on MQTT. + def set_state_service(call): + """Service to send a message.""" + mqtt.publish(hass, topic, call.data.get('new_state')) + + # Register our service with Home Assistant. + hass.services.register(DOMAIN, 'set_state', set_state_service) + + # Return boolean to indicate that initialization was successfully. + return True +``` + +Load the component by adding the following to your `configuration.yaml`. When your component is loaded, a new entity should popup and there should be a new service available to call. + +```yaml +# configuration.yaml entry +hello_mqtt: + topic: some_mqtt/topic/here +``` + +You can call the service with example payload: + +```json +{ + "new_state": "some new state" +} +``` diff --git a/source/_cookbook/python_component_simple_alarm.markdown b/source/_cookbook/python_component_simple_alarm.markdown new file mode 100644 index 00000000000..e014a695f02 --- /dev/null +++ b/source/_cookbook/python_component_simple_alarm.markdown @@ -0,0 +1,124 @@ +--- +layout: page +title: "Flash lights when intruder detected" +description: "Detect intruders by checking if the light is turning on while no one is home." +date: 2016-02-14 0:40 -0800 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation in Python Examples +--- + +This example component will detect intruders. It does so by checking if lights are being turned on while there is no one at home. When this happens it will turn the lights red, flash them for 30 seconds and send a message via [the notifiy component](/components/notify/). It will also flash a specific light when a known person comes home. + +This component depends on the components [device_tracker](/components/device_tracker/) and [light](/components/light/) being setup. + +To set it up, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +simple_alarm: + known_light: light.Bowl + unknown_light: group.living_room +``` + +Configuration variables: + +- **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. + +Create the file `/custom_components/simple_alarm.py` and copy paste the content below: + +```python +"""Simple alarm component.""" +import logging + +import homeassistant.loader as loader +from homeassistant.components import device_tracker, light, notify +from homeassistant.helpers.event import track_state_change +from homeassistant.const import STATE_ON, STATE_OFF, STATE_HOME, STATE_NOT_HOME + +DOMAIN = "simple_alarm" + +DEPENDENCIES = ['group', 'device_tracker', 'light'] + +# Attribute to tell which light has to flash whem a known person comes home +# If omitted will flash all. +CONF_KNOWN_LIGHT = "known_light" + +# Attribute to tell which light has to flash whem an unknown person comes home +# If omitted will flash all. +CONF_UNKNOWN_LIGHT = "unknown_light" + +# Services to test the alarms +SERVICE_TEST_KNOWN_ALARM = "test_known" +SERVICE_TEST_UNKNOWN_ALARM = "test_unknown" + + +def setup(hass, config): + """ Sets up the simple alarms. """ + logger = logging.getLogger(__name__) + + light_ids = [] + + for conf_key in (CONF_KNOWN_LIGHT, CONF_UNKNOWN_LIGHT): + light_id = config[DOMAIN].get(conf_key, light.ENTITY_ID_ALL_LIGHTS) + + if hass.states.get(light_id) is None: + logger.error( + 'Light id %s could not be found in state machine', light_id) + + return False + + light_ids.append(light_id) + + # pylint: disable=unbalanced-tuple-unpacking + known_light_id, unknown_light_id = light_ids + + if hass.states.get(device_tracker.ENTITY_ID_ALL_DEVICES) is None: + logger.error('No devices are being tracked, cannot setup alarm') + + return False + + def known_alarm(): + """ Fire an alarm if a known person arrives home. """ + light.turn_on(hass, known_light_id, flash=light.FLASH_SHORT) + + def unknown_alarm(): + """ Fire an alarm if the light turns on while no one is home. """ + light.turn_on( + hass, unknown_light_id, + flash=light.FLASH_LONG, rgb_color=[255, 0, 0]) + + # Send a message to the user + notify.send_message( + hass, "The lights just got turned on while no one was home.") + + # Setup services to test the effect + hass.services.register( + DOMAIN, SERVICE_TEST_KNOWN_ALARM, lambda call: known_alarm()) + hass.services.register( + DOMAIN, SERVICE_TEST_UNKNOWN_ALARM, lambda call: unknown_alarm()) + + def unknown_alarm_if_lights_on(entity_id, old_state, new_state): + """ Called when a light has been turned on. """ + if not device_tracker.is_on(hass): + unknown_alarm() + + track_state_change( + hass, light.ENTITY_ID_ALL_LIGHTS, + unknown_alarm_if_lights_on, STATE_OFF, STATE_ON) + + def ring_known_alarm(entity_id, old_state, new_state): + """ Called when a known person comes home. """ + if light.is_on(hass, known_light_id): + known_alarm() + + # Track home coming of each device + track_state_change( + hass, hass.states.entity_ids(device_tracker.DOMAIN), + ring_known_alarm, STATE_NOT_HOME, STATE_HOME) + + return True +``` diff --git a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown index 41a6b1b1643..cca4f2f07d1 100644 --- a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown +++ b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown @@ -3,10 +3,11 @@ layout: page title: "Restart Home Assistant if Wemo Switch is not detected" description: "Restart Home Assistant if Wemo Switch is not detected." date: 2016-01-29 08:00 -sidebar: false +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- ### {% linkable_title Restart Home Assistant %} @@ -52,11 +53,11 @@ script: sequence: - delay: minutes: 15 - - execute_service: notify.pushbullet - service_data: + - service: notify.pushbullet + data: message: 'WeMo not found, restarting HA' - - execute_service: switch.turn_on - service_data: + - service: switch.turn_on + data: entity_id: switch.killhass automation: diff --git a/source/_cookbook/send_a_reminder.markdown b/source/_cookbook/send_a_reminder.markdown index bb0296f04aa..e08d2c9767d 100644 --- a/source/_cookbook/send_a_reminder.markdown +++ b/source/_cookbook/send_a_reminder.markdown @@ -3,16 +3,16 @@ layout: page title: "Send a reminder" description: "Send a reminder" date: 2015-12-16 08:00 -sidebar: false +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- -#### {% linkable_title Send a reminder %} Always forget to eat lunch? Let Home Assistant send you a reminder. -Add a [notify platform](/components/notify/) of your choice +Add a [notify platform](/components/notify/) of your choice. ```yaml notify: diff --git a/source/_cookbook/track_battery_level.markdown b/source/_cookbook/track_battery_level.markdown index e60d54c5980..905ae5f30fa 100644 --- a/source/_cookbook/track_battery_level.markdown +++ b/source/_cookbook/track_battery_level.markdown @@ -3,14 +3,13 @@ layout: page title: "Track your battery level" description: "Basic example how to track the battery level of your mobile devices." date: 2016-01-29 09:00 -sidebar: false +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- -### {% linkable_title Battery level %} - The [iCloud](/components/device_tracker.icloud/) is gathering various details about your device including the battery level. To display it in the Frontend use a [template sensor](/components/sensor.template/). ```yaml diff --git a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown index ff04a27bfa9..78c668a00da 100644 --- a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown +++ b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown @@ -1,21 +1,22 @@ --- layout: page -title: "Motion detected light" +title: "Turn on lights for 10 minutes after motion detected" description: "Turn on lights for 10 minutes when motion detected." date: 2015-10-08 19:05 -sidebar: false +sidebar: true comments: false sharing: true footer: true +ha_category: Automation Examples --- #### {% linkable_title Turn on lights with a resettable off timer %} -This recipe will turn on a light when there is motion and turn off the light when ten minutes has passed without any motion events . +This recipe will turn on a light when there is motion and turn off the light when ten minutes has passed without any motion events. ```yaml automation: - alias: Turn on kitchen lights when there is movement + alias: Turn on kitchen lights when there is movement trigger: - platform: state entity_id: sensor.motion_sensor @@ -28,16 +29,16 @@ script: timed_lamp: alias: "Turn on lamp and set timer" sequence: - # Cancel ev. old timers - - execute_service: script.turn_off - service_data: + # Cancel ev. old timers + - service: script.turn_off + data: entity_id: script.timer_off - - execute_service: light.turn_on - service_data: + - service: light.turn_on + data: entity_id: light.kitchen - # Set new timer - - execute_service: script.turn_on - service_data: + # Set new timer + - service: script.turn_on + data: entity_id: script.timer_off timer_off: @@ -45,7 +46,7 @@ script: sequence: - delay: minutes: 10 - - execute_service: light.turn_off - service_data: + - service: light.turn_off + data: entity_id: light.kitchen ``` diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index 0bb8f074e01..66c5fc29646 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -21,7 +21,19 @@ {% assign imp_name = file_parts | first %} {% endif %} - {% if is_platform and parent_name != 'sensor' %} + {% if page.ha_iot_class %} +
+ IoT class: {{ page.ha_iot_class }} +
+ {% endif %} + + {% if page.ha_release %} +
+ Introduced in release: {{ page.ha_release }} +
+ {% endif %} + + {% if is_platform and parent_name != 'sensor' and parent_name != 'binary_sensor' %}
This is a platform for the {{parent_component.title}} component. diff --git a/source/_includes/asides/cookbook_navigation.html b/source/_includes/asides/cookbook_navigation.html new file mode 100644 index 00000000000..7b6287c0565 --- /dev/null +++ b/source/_includes/asides/cookbook_navigation.html @@ -0,0 +1,27 @@ +
+ {% include edit_github.html %} + {% assign cookbook = site.cookbook | sort: 'title' %} + + + +
+

{{page.ha_category}}

+
    + {% for recipe in cookbook %} + {% if recipe.ha_category == page.ha_category %} +
  • + {% if recipe.url == page.url %} + {{recipe.title}} + {% elsif recipe.ha_external_link %} + {{recipe.title}} + {% else %} + {{recipe.title}} + {% endif %} +
  • + {% endif %} + {% endfor %} +
+
+
diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html new file mode 100644 index 00000000000..67f87aac324 --- /dev/null +++ b/source/_includes/asides/developers_navigation.html @@ -0,0 +1,53 @@ +
+ {% include edit_github.html %} + +
+

Development Guide

+ +
+
diff --git a/source/_includes/asides/getting_started_navigation.html b/source/_includes/asides/getting_started_navigation.html new file mode 100644 index 00000000000..21c7496446d --- /dev/null +++ b/source/_includes/asides/getting_started_navigation.html @@ -0,0 +1,57 @@ +
+ {% include edit_github.html %} + +
+

Getting Started Guide

+ +
+
diff --git a/source/_includes/custom/footer.html b/source/_includes/custom/footer.html index efc3c3c40a6..7123ee56fc6 100644 --- a/source/_includes/custom/footer.html +++ b/source/_includes/custom/footer.html @@ -1,6 +1,6 @@