- {{ page.title }} -
-- - {{ content }} -
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.
- 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. - - - -[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 + */ + + +#includeYou 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.
+
+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
+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.
-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
+
+
+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+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+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 + */ + +#includeYou 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: + +
+
+
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+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: + +
+
+
+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 ++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 `
+
+
+This example requires you to have the [MQTT component](/components/mqtt/) up and running. +
+ +This is a simple hello world example to show the basics of using MQTT in a custom component. To use this example, create the file `View examples by the community.
diff --git a/source/_includes/custom/header.html b/source/_includes/custom/header.html index f2a42ff7be8..15f04816fdc 100644 --- a/source/_includes/custom/header.html +++ b/source/_includes/custom/header.html @@ -1,6 +1,6 @@ diff --git a/source/_includes/custom/navigation.html b/source/_includes/custom/navigation.html index 52f378b5495..33d52b98af3 100644 --- a/source/_includes/custom/navigation.html +++ b/source/_includes/custom/navigation.html @@ -1,32 +1,18 @@ diff --git a/source/_includes/custom/welcome.html b/source/_includes/custom/welcome.html index ec2b64cb07c..805a04e3867 100644 --- a/source/_includes/custom/welcome.html +++ b/source/_includes/custom/welcome.html @@ -9,5 +9,5 @@ Home Assistant is an open-source home automation platform running on Python 3. T diff --git a/source/_includes/edit_github.html b/source/_includes/edit_github.html index be883cf42a2..0ec614af4d4 100644 --- a/source/_includes/edit_github.html +++ b/source/_includes/edit_github.html @@ -1,3 +1,4 @@ +{% assign url_parts = page.url | split: '/' %} {% if page.hide_github_edit != true %} - -{% endif %} \ No newline at end of file + +{% endif %} diff --git a/source/_includes/site/sidebar.html b/source/_includes/site/sidebar.html index 862c78ffe8a..0fc5b4e130a 100644 --- a/source/_includes/site/sidebar.html +++ b/source/_includes/site/sidebar.html @@ -2,6 +2,12 @@ {% assign url_parts = page.url | split: '/' %} {% if url_parts[1] == 'components' %} {% include asides/component_navigation.html | compact_newlines %} + {% elsif url_parts[1] == 'cookbook' %} + {% include asides/cookbook_navigation.html | compact_newlines %} + {% elsif url_parts[1] == 'developers' %} + {% include asides/developers_navigation.html | compact_newlines %} + {% elsif url_parts[1] == 'getting-started' %} + {% include asides/getting_started_navigation.html | compact_newlines %} {% else %} {% include asides/about.html %} diff --git a/source/_layouts/component.html b/source/_layouts/component.html deleted file mode 100644 index 3f387fde493..00000000000 --- a/source/_layouts/component.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default ---- - -