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 3dc2d536518..4f5f2528c9c 100644 --- a/README.markdown +++ b/README.markdown @@ -1,10 +1,10 @@ # Home Assistant website -This is the source for the [Home-Assistant.io website](https://home-assistant.io) for the [Home Assistant project](https://github.com/balloob/home-assistant) +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 -Setting up to contribute to documentation and the process for submitting pull requests is [explained here](https://home-assistant.io/developers/website/). +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 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 784ca99bcd1..7a5ba4c2b0f 100644 --- a/plugins/linkable_title.rb +++ b/plugins/linkable_title.rb @@ -6,7 +6,7 @@ module Jekyll end def render(context) - title = Liquid::Template.parse(@markup).render context + title = Liquid::Template.parse(@title).render context slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') " #{title}" end diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 56e200dd4cb..e5824460b2c 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -150,6 +150,14 @@ article.post, article.page, article.listing { margin-bottom: 0; } } + + a { + text-decoration: underline; + + &.btn { + text-decoration: none; + } + } } p.note { @@ -204,85 +212,6 @@ p.note { } } -.install-instructions-container { - #normal-install, #raspberry-install, #docker-install, #synology-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, - #synology-install:checked ~ .menu-selector.synology - { - border-bottom-color: $blue; - } - - #normal-install:checked ~ .install-instructions.normal, - #raspberry-install:checked ~ .install-instructions.raspberry, - #docker-install:checked ~ .install-instructions.docker, - #synology-install:checked ~ .install-instructions.synology - { - display: block; - } - - .install-instructions { - margin-top: 30px; - } -} - -.advanced-installs-container { - - #upstart-install, #systemd-install, #osx-install, #synology-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, - #synology-install:checked ~ .menu-selector.synology - { - border-bottom-color: $blue; - } - - #upstart-install:checked ~ .advanced-installs.upstart, - #systemd-install:checked ~ .advanced-installs.systemd, - #osx-install:checked ~ .advanced-installs.osx, - #synology-install:checked ~ .advanced-installs.synology - { - display: block; - } - - .advanced-installs { - margin-top: 30px; - } -} - #components-page { .isotope-item { z-index: 2; @@ -411,3 +340,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/source/_components/binary_sensor.mysensors.markdown b/source/_components/binary_sensor.mysensors.markdown index 291392fe477..30bdca12b01 100644 --- a/source/_components/binary_sensor.mysensors.markdown +++ b/source/_components/binary_sensor.mysensors.markdown @@ -2,7 +2,7 @@ layout: page title: "MySensors Binary Sensor" description: "Instructions how to integrate MySensors binary sensors into Home Assistant." -date: 2016-02-28 01:20 +0100 +date: 2016-04-13 14:20 +0100 sidebar: true comments: false sharing: true @@ -36,5 +36,53 @@ S_MOISTURE | V_TRIPPED For more information, visit the [serial api] of MySensors. +### {% linkable_title Example sketch %} + +```cpp +/** + * Documentation: http://www.mysensors.org + * Support Forum: http://forum.mysensors.org + * + * http://www.mysensors.org/build/binary + */ + + +#include +#include +#include + +#define SN "BinarySensor" +#define SV "1.0" +#define CHILD_ID 1 +#define BUTTON_PIN 3 // Arduino Digital I/O pin for button/reed switch. + +MySensor gw; +Bounce debouncer = Bounce(); +MyMessage msg(CHILD_ID, V_TRIPPED); + +void setup() +{ + gw.begin(); + gw.sendSketchInfo(SN, SV); + // Setup the button. + pinMode(BUTTON_PIN, INPUT_PULLUP); + // After setting up the button, setup debouncer. + debouncer.attach(BUTTON_PIN); + debouncer.interval(5); + gw.present(CHILD_ID, S_DOOR); + gw.send(msg.set(0)); +} + +void loop() +{ + if (debouncer.update()) { + // Get the update value. + int value = debouncer.read(); + // Send in the new value. + gw.send(msg.set(value == LOW ? 1 : 0)); + } +} +``` + [main component]: /components/mysensors/ [serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/camera.rpi_camera.markdown b/source/_components/camera.rpi_camera.markdown index 44cf348374b..a63a436e9ef 100644 --- a/source/_components/camera.rpi_camera.markdown +++ b/source/_components/camera.rpi_camera.markdown @@ -18,7 +18,7 @@ The `rpi` platform allows you to integrate the Raspberry Pi camera into Home Ass ```yaml # Example configuration.yaml entry camera: - platform: raspberry_camera + platform: rpi_camera name: Raspberry Pi Camera image_width: 640 image_height: 480 @@ -34,10 +34,12 @@ Configuration variables: - **name** (optional): name of the camera - **image_width** (optional): set the image width (default: 640) - - **image_height** (optional): set the image width (default: 480) + - **image_height** (optional): set the image height (default: 480) - **image_quality** (optional): set the image quality (from 0 to 100, default: 7) - **image_rotation** (optional): Set image rotation (0-359, default: 0) - **horizontal_flip** (optional): Set horizontal flip (0 to disable, 1 to enable, default: 0) - **vertical_flip** (optional): Set vertical flip (0 to disable, 1 to enable, default: 0) - **timelapse** (optional): Takes a picture every ms (default: 1000) - **file_path** (optional): Save the picture in a custom file path (default: camera components folder) + +The given **file_path** must be an existing file because the camera platform setup make a writeable check on it. diff --git a/source/_components/configurator.markdown b/source/_components/configurator.markdown index 44c594c9edb..3d9661d50bd 100644 --- a/source/_components/configurator.markdown +++ b/source/_components/configurator.markdown @@ -21,6 +21,6 @@ The configurator component allows components to request information from the use - Input fields can be defined with a description, and optional type - It will trigger a callback when the button is pressed -The Hue component in [the demo](/demo) and Plex are implemented using the configurator. See [the source of the demo component](https://github.com/balloob/home-assistant/blob/master/homeassistant/components/demo.py#L132) for a simple example. +The Hue component in [the demo](/demo) and Plex are implemented using the configurator. See [the source of the demo component](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/demo.py#L132) for a simple example. -See [the source](https://github.com/balloob/home-assistant/blob/master/homeassistant/components/configurator.py#L39) for more details on how to use the configurator component. +See [the source](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/configurator.py#L39) for more details on how to use the configurator component. diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index a15d2944401..84698da53e0 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -37,9 +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 platform 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/garage_door.wink.markdown b/source/_components/garage_door.wink.markdown index 091f0584557..85fc8e388d1 100644 --- a/source/_components/garage_door.wink.markdown +++ b/source/_components/garage_door.wink.markdown @@ -11,8 +11,15 @@ logo: wink.png ha_category: Garage Door --- +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 Wink garage door platform allows you to control your [Wink](http://www.wink.com/) enabled garage door. +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/http.markdown b/source/_components/http.markdown index e66976ca8d5..3490451a05d 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -31,10 +31,12 @@ Configuration variables: - **ssl_certificate** (*Optional*): Path to your TLS/SSL certificate to serve Home Assistant over a secure connection. - **ssl_key** (*Optional*): Path to your TLS/SSL key to serve Home Assistant over a secure connection. -On top of the `http` component is a [REST API](/developers/rest_api/) and a [Python API](/developers/python_api/) available. +The [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 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. +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/input_select.markdown b/source/_components/input_select.markdown index b8e574b91f8..dd626c689d6 100644 --- a/source/_components/input_select.markdown +++ b/source/_components/input_select.markdown @@ -11,7 +11,7 @@ logo: home-assistant.png ha_category: Automation --- -The `input_select` component allows the user to define a list of values that can be selected via the frontend and can be used within conditions of automation. +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`: diff --git a/source/_components/input_slider.markdown b/source/_components/input_slider.markdown index 5fd9d136c42..9cd341aac9e 100644 --- a/source/_components/input_slider.markdown +++ b/source/_components/input_slider.markdown @@ -11,7 +11,7 @@ logo: home-assistant.png ha_category: Automation --- -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. +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 @@ -21,6 +21,7 @@ input_slider: initial: 30 min: -20 max: 35 + step: 1 ``` Configuration variables: @@ -30,4 +31,5 @@ Configuration variables: - **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/light.markdown b/source/_components/light.markdown index 56f078f65e3..c544d7d9af0 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -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/). diff --git a/source/_components/light.mysensors.markdown b/source/_components/light.mysensors.markdown index f6a74f40f8b..92b06ce9673 100644 --- a/source/_components/light.mysensors.markdown +++ b/source/_components/light.mysensors.markdown @@ -2,7 +2,7 @@ layout: page title: "MySensors Light" description: "Instructions how to integrate MySensors lights into Home Assistant." -date: 2016-03-02 18:20 +0100 +date: 2016-04-13 14:20 +0100 sidebar: true comments: false sharing: true @@ -33,5 +33,80 @@ V_TYPES with a star (\*) denotes required V_TYPES. Use either V_LIGHT or V_STATU For more information, visit the [serial api] of MySensors. +### {% linkable_title Example sketch %} + +```cpp +/* + * Documentation: http://www.mysensors.org + * Support Forum: http://forum.mysensors.org + * + * http://www.mysensors.org/build/dimmer + */ + +#include +#include + +#define SN "DimmableRGBLED" +#define SV "1.0" +#define CHILD_ID 1 +#define LED_PIN 5 + +MySensor gw; + +char rgb[7] = "ffffff"; // RGB value. +int currentLevel = 0; // Current dimmer level. +MyMessage dimmerMsg(CHILD_ID, V_PERCENTAGE); +MyMessage lightMsg(CHILD_ID, V_STATUS); +MyMessage rgbMsg(CHILD_ID, V_RGB); + +void setup() +{ + gw.begin(incomingMessage); + gw.sendSketchInfo(SN, SV); + gw.present(CHILD_ID, S_RGB_LIGHT); + // Send initial values. + gw.send(lightMsg.set(currentLevel > 0 ? 1 : 0)); + gw.send(dimmerMsg.set(currentLevel)); + gw.send(rgbMsg.set(rgb)); +} + +void loop() +{ + gw.process(); +} + +void incomingMessage(const MyMessage &message) { + if (message.type == V_RGB) { + // Retrieve the RGB value from the incoming message. + // RGB LED not implemented, just a dummy print. + String hexstring = message.getString(); + hexstring.toCharArray(rgb, sizeof(rgb)); + Serial.print("Changing color to "); + Serial.println(rgb); + gw.send(rgbMsg.set(rgb)); + } + + if (message.type == V_STATUS || message.type == V_PERCENTAGE) { + // Retrieve the light status or dimmer level from the incoming message. + int requestedLevel = atoi(message.data); + + // Adjust incoming level if this is a V_LIGHT update [0 == off, 1 == on]. + requestedLevel *= (message.type == V_STATUS ? 100 : 1); + + // Clip incoming level to valid range of 0 to 100 + requestedLevel = requestedLevel > 100 ? 100 : requestedLevel; + requestedLevel = requestedLevel < 0 ? 0 : requestedLevel; + + // Change level value of LED pin. + analogWrite(LED_PIN, (int)(requestedLevel / 100. * 255)); + currentLevel = requestedLevel; + + // Update the gateway with the current V_STATUS and V_PERCENTAGE. + gw.send(lightMsg.set(currentLevel > 0 ? 1 : 0)); + gw.send(dimmerMsg.set(currentLevel)); + } +} +``` + [main component]: /components/mysensors/ [serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/light.tellstick.markdown b/source/_components/light.tellstick.markdown index 8daa1e4918b..a6482c3bdcf 100644 --- a/source/_components/light.tellstick.markdown +++ b/source/_components/light.tellstick.markdown @@ -21,10 +21,4 @@ To use your TellStick device in your installation, add the following to your `co # Example configuration.yaml entry light: platform: tellstick - signal_repetitions: 3 ``` - -Configuration variables: - -- **signal_repetitions** *Optional*: Because the tellstick sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly. - diff --git a/source/_components/media_player.denon.markdown b/source/_components/media_player.denon.markdown index 6d53b6c7617..9a67a23ddb6 100644 --- a/source/_components/media_player.denon.markdown +++ b/source/_components/media_player.denon.markdown @@ -18,6 +18,7 @@ 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.onkyo.markdown b/source/_components/media_player.onkyo.markdown index c7c0f913c1e..7303fe90f56 100644 --- a/source/_components/media_player.onkyo.markdown +++ b/source/_components/media_player.onkyo.markdown @@ -80,13 +80,13 @@ automation: input_select: receiver_source: - name: Source - options: - - HTPC - - Chromecast - - Wii U - - Bluray - - Raspberry Pi - initial: None + name: Source + options: + - HTPC + - Chromecast + - Wii U + - Bluray + - Raspberry Pi + initial: None ``` diff --git a/source/_components/media_player.panasonic_viera.markdown b/source/_components/media_player.panasonic_viera.markdown index 6902988957f..744869cc2eb 100644 --- a/source/_components/media_player.panasonic_viera.markdown +++ b/source/_components/media_player.panasonic_viera.markdown @@ -18,7 +18,7 @@ Currently known supported models: - TX-P42STW50 -If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/balloob/home-assistant.io). +If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io). To add a TV to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 0b39452b466..273e96b6948 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -38,6 +38,7 @@ Currently known supported models: - D8000 - ES5500 - ES6800 +- F6500 -If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/balloob/home-assistant.io). +If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io). The two letters at the beginning of the model number represent the region, UE is Europe, UN is North America and UA is Asia & Australia. The two numbers following that represent the screen size. If you add your model remember to remove these before adding them to the list. diff --git a/source/_components/media_player.yamaha.markdown b/source/_components/media_player.yamaha.markdown index 15017644d6f..a76776a35e7 100644 --- a/source/_components/media_player.yamaha.markdown +++ b/source/_components/media_player.yamaha.markdown @@ -11,10 +11,6 @@ logo: yamaha.png ha_category: Media Player --- -

-Some users are experiencing errors loading the frontend while using this platform. -

- The `yamaha` platform allows you to control [Yamaha Network Receivers](http://usa.yamaha.com/products/audio-visual/av-receivers-amps/rx) from Home Assistant. Supported devices: diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index 247cffe102a..21c23469150 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -2,7 +2,7 @@ layout: page title: "MySensors" description: "Instructions how to integrate MySensors sensors into Home Assistant." -date: 2016-02-18 20:13 +0100 +date: 2016-04-13 14:20 +0100 sidebar: true comments: false sharing: true @@ -31,7 +31,7 @@ mysensors: debug: true persistence: true version: '1.5' - optimistic: 'true' + optimistic: false ``` Configuration variables: diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index d475db0cb2c..2cd525cb2b7 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -35,9 +35,17 @@ Once loaded, the `notify` platform will expose a service that can be called to s | `title` | yes | Title of the notification. Default is `Home Assistant`. | `target` | yes | Some platforms will allow specifying a recipient that will receive the notification. See your platform page if it is supported. -The notification component supports specifying [templates] for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications. +The notification component supports specifying [templates](/topics/templating/) for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications. -[templates]: /topics/templating/ +In an [action](https://home-assistant.io/components/automation/#actions) of your [automation setup](/components/automation/) it could look like this with a customized subject. + +```yaml +action: + service: notify.notify + data: + message: "Your message goes here" + title: "Custom subject" +``` ### {% linkable_title Test if it works %} diff --git a/source/_components/notify.xmpp.markdown b/source/_components/notify.xmpp.markdown index f410411d006..0f51aa9ca88 100644 --- a/source/_components/notify.xmpp.markdown +++ b/source/_components/notify.xmpp.markdown @@ -22,6 +22,7 @@ notify: sender: YOUR_JID password: YOUR_JABBER_ACCOUNT_PASSWORD recipient: YOUR_RECIPIENT + tls: False ``` Configuration variables: @@ -29,7 +30,8 @@ Configuration variables: - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. - **sender** (*Required*): The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, eg. your_name@jabber.org. - **password** (*Required*): The password for your given Jabber account. -- **priority** (*Required*): The Jabber ID (JID) that will receive the messages. +- **recipient** (*Required*): The Jabber ID (JID) that will receive the messages. +- **tls** (*Optional*): Allow to disable TLS. Defaults to true. All Jabber IDs (JID) must include the domain. Make sure that the password matches the account provided as sender. diff --git a/source/_components/sensor.dweet.markdown b/source/_components/sensor.dweet.markdown index 304fcffa282..5d20971bf49 100644 --- a/source/_components/sensor.dweet.markdown +++ b/source/_components/sensor.dweet.markdown @@ -21,7 +21,7 @@ sensor: platform: dweet name: Dweet.io Temperature device: THING_NAME - value_template: '{{ value_json.VARIABLE }}' + value_template: '{% raw %}{{ value_json.VARIABLE }}{% endraw %}' unit_of_measurement: "°C" ``` diff --git a/source/_components/sensor.loop_energy.markdown b/source/_components/sensor.loop_energy.markdown index d7800d4eb0e..df3e1d6c45f 100644 --- a/source/_components/sensor.loop_energy.markdown +++ b/source/_components/sensor.loop_energy.markdown @@ -26,7 +26,7 @@ You can then open your browser's console window, how you do this varies by brows This should show something like -```javascript +```yaml client_ip: "127.0.0.1" gas_secret: "GAS_SECRET" gas_serial: "GAS_SERIAL" @@ -44,8 +44,8 @@ Now you have the keys, add the following lines to your `configuration.yaml`, rep # Example configuration.yaml entry sensor: platform: loopenergy - electricity_serial: ELECRITCAL_SERIAL - electricity_secret: ELECTRICAL_OFFSET + electricity_serial: ELECTRICAL_SERIAL + electricity_secret: ELECTRICAL_SECRET gas_serial: GAS_SERIAL gas_secret: GAS_SECRET gas_type: metric @@ -63,3 +63,4 @@ Configuration variables: 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.mysensors.markdown b/source/_components/sensor.mysensors.markdown index 2b1c709c59f..9690ece312b 100644 --- a/source/_components/sensor.mysensors.markdown +++ b/source/_components/sensor.mysensors.markdown @@ -2,7 +2,7 @@ layout: page title: "MySensors Sensor" description: "Instructions how to integrate MySensors sensors into Home Assistant." -date: 2016-02-28 01:20 +0100 +date: 2016-04-13 14:20 +0100 sidebar: true comments: false sharing: true @@ -58,5 +58,53 @@ By using V_UNIT_PREFIX, it's possible to set a custom unit for any sensor. The s For more information, visit the [serial api] of MySensors. +### {% linkable_title Example sketch %} + +```cpp +/** + * Documentation: http://www.mysensors.org + * Support Forum: http://forum.mysensors.org + * + * http://www.mysensors.org/build/light + */ + +#include +#include +#include +#include + +#define SN "LightLuxSensor" +#define SV "1.0" +#define CHILD_ID 1 +unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds) + +BH1750 lightSensor; +MySensor gw; +MyMessage msg(CHILD_ID, V_LEVEL); +MyMessage msgPrefix(CHILD_ID, V_UNIT_PREFIX); // Custom unit message. +uint16_t lastlux = 0; + +void setup() +{ + gw.begin(); + gw.sendSketchInfo(SN, SV); + gw.present(CHILD_ID, S_LIGHT_LEVEL); + lightSensor.begin(); + gw.send(msg.set(lastlux)); + gw.send(msgPrefix.set("lux")); // Set custom unit. +} + +void loop() +{ + uint16_t lux = lightSensor.readLightLevel(); // Get Lux value + if (lux != lastlux) { + gw.send(msg.set(lux)); + lastlux = lux; + } + + gw.sleep(SLEEP_TIME); +} +``` + [main component]: /components/mysensors/ [serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/switch.command_line.markdown b/source/_components/switch.command_line.markdown index 6ddb7baa179..bc0e68ce23d 100644 --- a/source/_components/switch.command_line.markdown +++ b/source/_components/switch.command_line.markdown @@ -103,3 +103,4 @@ switch: offcmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"' statecmd: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=)"' value_template: '{{ value == "1" }}' +``` diff --git a/source/_components/switch.mysensors.markdown b/source/_components/switch.mysensors.markdown index f79cd8b8f29..75531e10362 100644 --- a/source/_components/switch.mysensors.markdown +++ b/source/_components/switch.mysensors.markdown @@ -2,7 +2,7 @@ layout: page title: "MySensors Switch" description: "Instructions how to integrate MySensors switches into Home Assistant." -date: 2016-03-02 18:20 +0100 +date: 2016-04-13 14:20 +0100 sidebar: true comments: false sharing: true @@ -40,5 +40,50 @@ S_MOISTURE | V_ARMED For more information, visit the [serial api] of MySensors. +### {% linkable_title Example sketch %} + +```cpp +/* + * Documentation: http://www.mysensors.org + * Support Forum: http://forum.mysensors.org + * + * http://www.mysensors.org/build/relay + */ + +#include +#include + +#define SN "Relay" +#define SV "1.0" +#define CHILD_ID 1 +#define RELAY_PIN 3 + +MySensor gw; +MyMessage msgRelay(CHILD_ID, V_STATUS); + +void setup() +{ + gw.begin(incomingMessage); + gw.sendSketchInfo(SN, SV); + // Initialize the digital pin as an output. + pinMode(RELAY_PIN, OUTPUT); + gw.present(CHILD_ID, S_BINARY); + gw.send(msgRelay.set(0)); +} + +void loop() +{ + gw.process(); +} + +void incomingMessage(const MyMessage &message) +{ + if (message.type == V_STATUS) { + // Change relay state. + digitalWrite(RELAY_PIN, message.getBool() ? 1 : 0); + } +} +``` + [main component]: /components/mysensors/ [serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/switch.tellstick.markdown b/source/_components/switch.tellstick.markdown index 055d445f07b..c5d060f1ea2 100644 --- a/source/_components/switch.tellstick.markdown +++ b/source/_components/switch.tellstick.markdown @@ -21,10 +21,4 @@ To use your TellStick device in your installation, add the following to your `co # Example configuration.yaml entry switch: platform: tellstick - signal_repetitions: 3 ``` - -Configuration variables: - -- **signal_repetitions** *Optional*: Because the tellstick sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly. - diff --git a/source/_components/tellstick.markdown b/source/_components/tellstick.markdown index f0474c47575..82ea76ee185 100644 --- a/source/_components/tellstick.markdown +++ b/source/_components/tellstick.markdown @@ -21,3 +21,8 @@ To get started, add the devices to your `configuration.yaml` file. 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/vera.markdown b/source/_components/vera.markdown index e41ac4410f0..0410c725546 100644 --- a/source/_components/vera.markdown +++ b/source/_components/vera.markdown @@ -11,7 +11,7 @@ logo: vera.png ha_category: Hub --- -The [Vera](http://getvera.com) hub is a controller ainly connecting to Z-Wave devices. +The [Vera](http://getvera.com) hub is a controller mainly connecting to Z-Wave devices. Switches, Lights (inc Dimmers), Sensors and Binary sensors are supported - and will be automaticaly added when HA connects to your Vera controller. diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index 29c84024dc6..58dbe35a517 100644 --- a/source/_components/zone.markdown +++ b/source/_components/zone.markdown @@ -45,7 +45,7 @@ Configuration variables: - **longitude** (*Required*): Longitude of the center point of the zone. - **radius** (*Optional*): Optional radius in meters. Defaults to 100 meters. - **icon** (*Optional*): Optional icon to show instead of name. - +- **passive** (*Optional*): Optional boolean to only use the zone for automation and hide it from the UI and not use the zone for device tracker name. Defaults to false. #### {% linkable_title Home zone %} diff --git a/source/_includes/asides/developers_navigation.html b/source/_includes/asides/developers_navigation.html new file mode 100644 index 00000000000..67f87aac324 --- /dev/null +++ b/source/_includes/asides/developers_navigation.html @@ -0,0 +1,53 @@ +
+ {% include edit_github.html %} + +
+

Development Guide

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

Getting Started Guide

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