The core of Home Assistant exists of the following parts.
+
+
The Event Bus facilitates the firing and listening of events. This is the beating heart of Home Assistant.
+
+
The State Machine keeps track of the states of things. Fires a state_changed event when a state has been changed.
+
+
The Service Registry listens on the event bus for call_service events and allows other code to register services.
+
+
The Timer will send every 10 seconds a time_changed event on the event bus.
+
+
Take for example the device_tracker component. This component is responsible for keeping track which devices are home. It checks which devices are home every time a time_changed event is fired on the event bus. It will then update the state machine with the information for each device.
+
+
This setup allows us to create simple yet powerful logic for controlling your home:
+
+
In the event that the state of device 'Paulus Nexus 5' changes to the 'Home' state:
+ If the sun has set and the lights are not on:
+ Turn on the lights
+
+In the event that the combined state of all tracked devices changes to 'Not Home':
+ If the lights are on:
+ Turn off the lights
+
+In the event of the sun setting:
+ If the lights are off and the combined state of all tracked device equals 'Home':
+ Turn on the lights
+
+
+
By using the Bus as a central communication hub between components it is easy to replace components or add functionality. If you would want to change the way devices are detected you only have to write a component that updates the device states in the State Machine.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/jwplayer/glow/controlbar/background.png b/assets/jwplayer/glow/controlbar/background.png
new file mode 100644
index 00000000000..c2824cc432c
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/background.png differ
diff --git a/assets/jwplayer/glow/controlbar/blankButton.png b/assets/jwplayer/glow/controlbar/blankButton.png
new file mode 100644
index 00000000000..010159f3eb7
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/blankButton.png differ
diff --git a/assets/jwplayer/glow/controlbar/divider.png b/assets/jwplayer/glow/controlbar/divider.png
new file mode 100644
index 00000000000..77cd829a4b5
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/divider.png differ
diff --git a/assets/jwplayer/glow/controlbar/fullscreenButton.png b/assets/jwplayer/glow/controlbar/fullscreenButton.png
new file mode 100644
index 00000000000..e06aa50ca29
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/fullscreenButton.png differ
diff --git a/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png b/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png
new file mode 100644
index 00000000000..d2bc4fc75a8
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png differ
diff --git a/assets/jwplayer/glow/controlbar/muteButton.png b/assets/jwplayer/glow/controlbar/muteButton.png
new file mode 100644
index 00000000000..40c40ab2734
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/muteButton.png differ
diff --git a/assets/jwplayer/glow/controlbar/muteButtonOver.png b/assets/jwplayer/glow/controlbar/muteButtonOver.png
new file mode 100644
index 00000000000..96fe7bb0242
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/muteButtonOver.png differ
diff --git a/assets/jwplayer/glow/controlbar/normalscreenButton.png b/assets/jwplayer/glow/controlbar/normalscreenButton.png
new file mode 100644
index 00000000000..22295074029
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/normalscreenButton.png differ
diff --git a/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png b/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png
new file mode 100644
index 00000000000..15db44d4e66
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png differ
diff --git a/assets/jwplayer/glow/controlbar/pauseButton.png b/assets/jwplayer/glow/controlbar/pauseButton.png
new file mode 100644
index 00000000000..e399bf34cb9
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/pauseButton.png differ
diff --git a/assets/jwplayer/glow/controlbar/pauseButtonOver.png b/assets/jwplayer/glow/controlbar/pauseButtonOver.png
new file mode 100644
index 00000000000..409d89d29a3
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/pauseButtonOver.png differ
diff --git a/assets/jwplayer/glow/controlbar/playButton.png b/assets/jwplayer/glow/controlbar/playButton.png
new file mode 100644
index 00000000000..f8d9a0079af
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/playButton.png differ
diff --git a/assets/jwplayer/glow/controlbar/playButtonOver.png b/assets/jwplayer/glow/controlbar/playButtonOver.png
new file mode 100644
index 00000000000..3fe284845fa
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/playButtonOver.png differ
diff --git a/assets/jwplayer/glow/controlbar/timeSliderBuffer.png b/assets/jwplayer/glow/controlbar/timeSliderBuffer.png
new file mode 100644
index 00000000000..73b371abbca
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/timeSliderBuffer.png differ
diff --git a/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png b/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png
new file mode 100644
index 00000000000..72322171bd5
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png differ
diff --git a/assets/jwplayer/glow/controlbar/timeSliderCapRight.png b/assets/jwplayer/glow/controlbar/timeSliderCapRight.png
new file mode 100644
index 00000000000..626444a66a7
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/timeSliderCapRight.png differ
diff --git a/assets/jwplayer/glow/controlbar/timeSliderProgress.png b/assets/jwplayer/glow/controlbar/timeSliderProgress.png
new file mode 100644
index 00000000000..132a8e7dc90
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/timeSliderProgress.png differ
diff --git a/assets/jwplayer/glow/controlbar/timeSliderRail.png b/assets/jwplayer/glow/controlbar/timeSliderRail.png
new file mode 100644
index 00000000000..27851dfdf36
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/timeSliderRail.png differ
diff --git a/assets/jwplayer/glow/controlbar/unmuteButton.png b/assets/jwplayer/glow/controlbar/unmuteButton.png
new file mode 100644
index 00000000000..3658453cfc1
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/unmuteButton.png differ
diff --git a/assets/jwplayer/glow/controlbar/unmuteButtonOver.png b/assets/jwplayer/glow/controlbar/unmuteButtonOver.png
new file mode 100644
index 00000000000..138ebb35ba8
Binary files /dev/null and b/assets/jwplayer/glow/controlbar/unmuteButtonOver.png differ
diff --git a/assets/jwplayer/glow/display/background.png b/assets/jwplayer/glow/display/background.png
new file mode 100644
index 00000000000..391152f5e2f
Binary files /dev/null and b/assets/jwplayer/glow/display/background.png differ
diff --git a/assets/jwplayer/glow/display/bufferIcon.png b/assets/jwplayer/glow/display/bufferIcon.png
new file mode 100644
index 00000000000..a3819c1ef19
Binary files /dev/null and b/assets/jwplayer/glow/display/bufferIcon.png differ
diff --git a/assets/jwplayer/glow/display/muteIcon.png b/assets/jwplayer/glow/display/muteIcon.png
new file mode 100644
index 00000000000..e0408bbda5e
Binary files /dev/null and b/assets/jwplayer/glow/display/muteIcon.png differ
diff --git a/assets/jwplayer/glow/display/playIcon.png b/assets/jwplayer/glow/display/playIcon.png
new file mode 100644
index 00000000000..cb384278722
Binary files /dev/null and b/assets/jwplayer/glow/display/playIcon.png differ
diff --git a/assets/jwplayer/glow/dock/button.png b/assets/jwplayer/glow/dock/button.png
new file mode 100644
index 00000000000..391152f5e2f
Binary files /dev/null and b/assets/jwplayer/glow/dock/button.png differ
diff --git a/assets/jwplayer/glow/glow.xml b/assets/jwplayer/glow/glow.xml
new file mode 100644
index 00000000000..71bdced0100
--- /dev/null
+++ b/assets/jwplayer/glow/glow.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/jwplayer/glow/playlist/item.png b/assets/jwplayer/glow/playlist/item.png
new file mode 100644
index 00000000000..812592c3ce5
Binary files /dev/null and b/assets/jwplayer/glow/playlist/item.png differ
diff --git a/assets/jwplayer/glow/playlist/itemOver.png b/assets/jwplayer/glow/playlist/itemOver.png
new file mode 100644
index 00000000000..549f3721d6b
Binary files /dev/null and b/assets/jwplayer/glow/playlist/itemOver.png differ
diff --git a/assets/jwplayer/glow/playlist/sliderCapBottom.png b/assets/jwplayer/glow/playlist/sliderCapBottom.png
new file mode 100644
index 00000000000..048cc623be9
Binary files /dev/null and b/assets/jwplayer/glow/playlist/sliderCapBottom.png differ
diff --git a/assets/jwplayer/glow/playlist/sliderCapTop.png b/assets/jwplayer/glow/playlist/sliderCapTop.png
new file mode 100644
index 00000000000..65c463a0c04
Binary files /dev/null and b/assets/jwplayer/glow/playlist/sliderCapTop.png differ
diff --git a/assets/jwplayer/glow/playlist/sliderRail.png b/assets/jwplayer/glow/playlist/sliderRail.png
new file mode 100644
index 00000000000..121778affdc
Binary files /dev/null and b/assets/jwplayer/glow/playlist/sliderRail.png differ
diff --git a/assets/jwplayer/glow/playlist/sliderThumb.png b/assets/jwplayer/glow/playlist/sliderThumb.png
new file mode 100644
index 00000000000..118c3e03aca
Binary files /dev/null and b/assets/jwplayer/glow/playlist/sliderThumb.png differ
diff --git a/assets/jwplayer/glow/sharing/embedIcon.png b/assets/jwplayer/glow/sharing/embedIcon.png
new file mode 100644
index 00000000000..3394ac9cdcb
Binary files /dev/null and b/assets/jwplayer/glow/sharing/embedIcon.png differ
diff --git a/assets/jwplayer/glow/sharing/embedScreen.png b/assets/jwplayer/glow/sharing/embedScreen.png
new file mode 100644
index 00000000000..b4059754baf
Binary files /dev/null and b/assets/jwplayer/glow/sharing/embedScreen.png differ
diff --git a/assets/jwplayer/glow/sharing/shareIcon.png b/assets/jwplayer/glow/sharing/shareIcon.png
new file mode 100644
index 00000000000..eae1d4e7559
Binary files /dev/null and b/assets/jwplayer/glow/sharing/shareIcon.png differ
diff --git a/assets/jwplayer/glow/sharing/shareScreen.png b/assets/jwplayer/glow/sharing/shareScreen.png
new file mode 100644
index 00000000000..695ec949f86
Binary files /dev/null and b/assets/jwplayer/glow/sharing/shareScreen.png differ
diff --git a/assets/jwplayer/player.swf b/assets/jwplayer/player.swf
new file mode 100644
index 00000000000..0eee3797e5b
Binary files /dev/null and b/assets/jwplayer/player.swf differ
diff --git a/atom.xml b/atom.xml
new file mode 100644
index 00000000000..3deddd032cb
--- /dev/null
+++ b/atom.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+ 2014-12-19T07:49:58-08:00
+ http://balloob.github.io/home-assistant/
+
+
+
+
+ Octopress
+
+
+
+
+
+ 2014-12-18T23:24:45-08:00
+ http://balloob.github.io/home-assistant/blog/2014/12/18/website-launched
+ I finally took the time to setup a simple website to help people getting started with Home Assistant. This will make sure that the README on GitHub can be purely focussed on developers.
+]]>
+
+
+
diff --git a/blog/2014/12/18/website-launched/index.html b/blog/2014/12/18/website-launched/index.html
new file mode 100644
index 00000000000..51b7ae49b34
--- /dev/null
+++ b/blog/2014/12/18/website-launched/index.html
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+ Website launched! - Home Assistant
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
I finally took the time to setup a simple website to help people getting started with Home Assistant. This will make sure that the README on GitHub can be purely focussed on developers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/blog/archives/index.html b/blog/archives/index.html
new file mode 100644
index 00000000000..f44d41dc0e1
--- /dev/null
+++ b/blog/archives/index.html
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+ Blog index - Home Assistant
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
You’ve probably came here beacuse you noticed that your favorite device is not supported and want to add it.
+
+
First step is to decide under which component the device has to reside. Each component is responsible for a specific domain within Home Assistant. An example is the switch component, which is responsible for interaction with different types of switches. The switch component consists of the following files:
+
+
homeassistant/components/switch/__init__.py
+Contains the Switch component code.
+
+
homeassistant/components/switch/wemo.py
+Contains the code to interact with WeMo switches. Called if platform=wemo in switch config.
+
+
homeassistant/components/switch/tellstick.py
+Contains the code to interact with Tellstick switches. Called if platform=tellstick in switch config.
+
+
If a component exists, your job is easy. Have a look at how the component works with other platforms and create a similar file for the platform that you would like to add. If you cannot find a suitable component, you’ll have to add it yourself. When writing a component try to structure it after the Switch component to maximize reusability.
+
+
Communication between Home Assistant and devices should happen via third-party libraries that implement the device API. This will make sure the platform support code stays as small as possible.
Make sure all your code passes Pylint, flake8 (PEP8 and some more) validation. To generate reports, run pylint homeassistant > pylint.txt and flake8 homeassistant --exclude bower_components,external > flake8.txt.
update the demo component with two states that it provides
+
Add your component to home-assistant.conf.example
+
+
+
+
Since you’ve updated domain-icon.html, you’ve made changes to the frontend:
+
+
+
run build_frontend. This will build a new version of the frontend. Make sure you add the changed files frontend.py and frontend.html to the commit.
+
+
+
+
Setting states
+
+
It is the responsibility of the component to maintain the states of the devices in your domain. Each device should be a single state and, if possible, a group should be provided that tracks the combined state of the devices.
+
+
A state can have several attributes that will help the frontend in displaying your state:
+
+
+
friendly_name: this name will be used as the name of the device
+
entity_picture: this picture will be shown instead of the domain icon
+
unit_of_measurement: this will be appended to the state in the interface
The frontend is composed of Polymer web-components and compiled into the file frontend.html. During development you do not want to work with the compiled version but with the seperate files. To have Home Assistant serve the seperate files, set development=1 for the http-component in your config.
+
+
When you are done with development and ready to commit your changes, run build_frontend, set development=0 in your config and validate that everything still works.
+
+
Notes on PyLint and PEP8 validation
+
+
In case a PyLint warning cannot be avoided, add a comment to disable the PyLint check for that line. This can be done using the format # pylint: disable=YOUR-ERROR-NAME. Example of an unavoidable PyLint warning is if you do not use the passed in datetime if you’re listening for time change.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/favicon.png b/favicon.png
new file mode 100644
index 00000000000..0f250673059
Binary files /dev/null and b/favicon.png differ
diff --git a/font/FontAwesome.otf b/font/FontAwesome.otf
new file mode 100644
index 00000000000..70125459f7d
Binary files /dev/null and b/font/FontAwesome.otf differ
diff --git a/font/fontawesome-webfont.eot b/font/fontawesome-webfont.eot
new file mode 100755
index 00000000000..0662cb96bfb
Binary files /dev/null and b/font/fontawesome-webfont.eot differ
diff --git a/font/fontawesome-webfont.svg b/font/fontawesome-webfont.svg
new file mode 100755
index 00000000000..2edb4ec34cb
--- /dev/null
+++ b/font/fontawesome-webfont.svg
@@ -0,0 +1,399 @@
+
+
+
\ No newline at end of file
diff --git a/font/fontawesome-webfont.ttf b/font/fontawesome-webfont.ttf
new file mode 100755
index 00000000000..d3659246915
Binary files /dev/null and b/font/fontawesome-webfont.ttf differ
diff --git a/font/fontawesome-webfont.woff b/font/fontawesome-webfont.woff
new file mode 100755
index 00000000000..b9bd17e158d
Binary files /dev/null and b/font/fontawesome-webfont.woff differ
diff --git a/getting-started/index.html b/getting-started/index.html
new file mode 100644
index 00000000000..1f7fa8cb9bd
--- /dev/null
+++ b/getting-started/index.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+
+ Getting Started - Home Assistant
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This will start the Home Assistant server and create an initial configuration file in config/home-assistant.conf that is setup for demo mode. It will launch its web interface on http://127.0.0.1:8123. The default password is ‘password’.
After you got the demo mode running it is time to enable some real components and get started. An example configuration file has been provided in /config/home-assistant.conf.example.
+
+
Note: you can append ?api_password=YOUR_PASSWORD to the url of the web interface to log in automatically.
+
+
Note: for the light and switch component, you can specify multiple platforms by using sequential sections: [switch], [switch 2], [switch 3] etc
+
+
Philips Hue
+
+
To get Philips Hue working you will have to connect Home Assistant to the Hue bridge.
+
+
Run the following command from your config dir and follow the instructions:
After that add the following lines to your home-assistant.conf:
+
+
1
+2
+
[light]
+platform=hue
+
+
+
+
Wireless router
+
+
Your wireless router is used to track which devices are connected. Three different types of wireless routers are currently supported: tomato, netgear and luci (OpenWRT). To get started add the following lines to your home-assistant.conf (example for Netgear):
Note on tomato: Tomato requires an extra config variable called http_id. The value can be obtained by logging in to the Tomato admin interface and search for http_id in the page source code.
+
+
Note on luci: before the Luci scanner can be used you have to install the luci RPC package on OpenWRT: opkg install luci-mod-rpc.
+
+
Once tracking, the device_tracker component will maintain a file in your config dir called known_devices.csv. Edit this file to adjust which devices have to be tracked.
+
+
As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using nmap. The IP addresses to scan can be specified in any format that nmap understands, including the network-prefix notation (192.168.1.1/24) and the range notation (192.168.1.1-255).
+Home Assistant is an open-source home automation platform running on Python 3. The goal of Home Assistant is to be able to track and control all devices at home and offer a platform for automating control.
+
';
+ }
+ timeline.innerHTML = content;
+}
+
+function getTwitterFeed(user, count, replies) {
+ count = parseInt(count, 10);
+ $.ajax({
+ url: "https://api.twitter.com/1/statuses/user_timeline/" + user + ".json?trim_user=true&count=" + (count + 20) + "&include_entities=1&exclude_replies=" + (replies ? "0" : "1") + "&callback=?"
+ , type: 'jsonp'
+ , error: function (err) { $('#tweets li.loading').addClass('error').text("Twitter's busted"); }
+ , success: function(data) { showTwitterFeed(data.slice(0, count), user); }
+ })
+}
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 00000000000..12b23a0acc4
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,4 @@
+User-agent: *
+Disallow:
+
+Sitemap: http://balloob.github.io/home-assistant/sitemap.xml
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 00000000000..5bf28216faf
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,44 @@
+
+
+
+ http://balloob.github.io/home-assistant/blog/2014/12/18/website-launched/
+ 2014-12-18T23:24:45-08:00
+ 0.8
+
+
+ http://balloob.github.io/home-assistant/blog/archives/
+ 2014-12-19T07:49:58-08:00
+ weekly
+ 0.7
+
+
+ http://balloob.github.io/home-assistant/blog/
+ 2014-12-19T07:49:58-08:00
+ weekly
+ 0.7
+
+
+ http://balloob.github.io/home-assistant/
+ 2014-12-19T07:49:58-08:00
+ weekly
+ 1.0
+
+
+ http://balloob.github.io/home-assistant/contributing/
+ 2014-12-19T07:49:58-08:00
+ weekly
+ 0.7
+
+
+ http://balloob.github.io/home-assistant/getting-started/
+ 2014-12-19T07:49:58-08:00
+ weekly
+ 0.7
+
+
+ http://balloob.github.io/home-assistant/architecture/
+ 2014-12-19T07:49:58-08:00
+ weekly
+ 0.7
+
+
diff --git a/source/_components/arduino.markdown b/source/_components/arduino.markdown
index d6f450c342c..da194d5259f 100644
--- a/source/_components/arduino.markdown
+++ b/source/_components/arduino.markdown
@@ -45,3 +45,9 @@ If that's not working, check your `dmesg` or `journalctl -f` output. Keep in min
A word of caution: The Arduino boards are not storing states. This means that with every initialization the pins are set to off/low.
+Add the user who is used to run Home Assistant to the groups to allow access to the serial port.
+
+```bash
+sudo usermod -a -G dialout,lock $USER
+```
+
diff --git a/source/_components/binary_sensor.apcupsd.markdown b/source/_components/binary_sensor.apcupsd.markdown
index 4b3b3f0005d..663e63031b2 100644
--- a/source/_components/binary_sensor.apcupsd.markdown
+++ b/source/_components/binary_sensor.apcupsd.markdown
@@ -19,11 +19,11 @@ To enable this sensor, add the following lines to your `configuration.yaml` file
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: apcupsd
- name: UPS Online
+ - 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.
+
+- **name** (*Optional*): Name to use in the front end.
diff --git a/source/_components/binary_sensor.enocean.markdown b/source/_components/binary_sensor.enocean.markdown
index 7b39364efeb..5e1253cde7b 100644
--- a/source/_components/binary_sensor.enocean.markdown
+++ b/source/_components/binary_sensor.enocean.markdown
@@ -23,9 +23,12 @@ To use your EnOcean device, you first have to set up your [EnOcean hub](/compone
binary_sensor:
- platform: enocean
id: [0x01,0x90,0x84,0x3C]
+ name: Door
+ sensor_class: opening
```
Configuration variables:
- **id** (*Required*): The ID of the device. This is the 4 bytes long number written on the dimmer.
-- **platform** (*Required*): Set to `enocean`.
+- **name** (*Optional*): An identifier for the Ligh in the frontend.
+- **sensor_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
diff --git a/source/_components/camera.netatmo.markdown b/source/_components/camera.netatmo.markdown
index aa5f3ec1fa6..8e1952b55a7 100644
--- a/source/_components/camera.netatmo.markdown
+++ b/source/_components/camera.netatmo.markdown
@@ -9,7 +9,7 @@ sharing: true
footer: true
logo: netatmo.png
ha_category: Camera
-ha_release: "0.22"
+ha_release: 0.22
---
@@ -29,8 +29,8 @@ camera:
Configuration variables:
-- **home** (*Optionnal*): Will display the cameras of this home only.
-- **cameras** array (*Optionnal*): Cameras to use. Multiple enties allowed.
+- **home** (*Optional*): Will display the cameras of this home only.
+- **cameras** array (*Optional*): Cameras to use. Multiple enties allowed.
- **camera_name**: Name of the camera to display.
If **home** and **cameras** is not provided, all cameras will be displayed.
diff --git a/source/_components/camera.uvc.markdown b/source/_components/camera.uvc.markdown
index 152203103f1..d49d631f9b2 100644
--- a/source/_components/camera.uvc.markdown
+++ b/source/_components/camera.uvc.markdown
@@ -28,7 +28,7 @@ camera:
Configuration variables:
-- **nvr** *Required**: The IP or hostname of the NVR (Network Video Recorder) server.
-- **port** *Optional*: The port number to use for accessing the NVR.
-- **key** *Required*: The API key available from the NVR web interface.
+- **nvr** (*Required*): The IP or hostname of the NVR (Network Video Recorder) server.
+- **port** (*Optional*): The port number to use for accessing the NVR.
+- **key** (*Required*): The API key available from the NVR web interface.
diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown
index ab7e2cc0bea..81a327f03b4 100644
--- a/source/_components/ecobee.markdown
+++ b/source/_components/ecobee.markdown
@@ -17,7 +17,7 @@ The Ecobee platform lets you control a thermostats and view sensor data from the
You will need to obtain an API key from ecobee's [developer site](https://www.ecobee.com/developers/) to use this component. To get the key, first you need to register your thermostat. Once you have done that, click on the 'Become a developer' link on the developer site. Login with your ecobee credentials, accept the SDK agreement, fill in the fields, and click save. Now login to the regular consumer portal, and in the hamburger menu there will br a new option 'Developer'. Select that, then select 'Create New'. Give your app a name (it appears to need to be unique across all users, as I tried 'home-assistant' and it said it was already in use) and a summary (neither of these are important as they are not used anywhere). For Authorization method select 'ecobee PIN'. You don't need an Application Icon or Detailed Description. Click Save. Now under the Name and Summary Section you will have an API key. Copy this key and use it in you configuration section below. Click the 'X' to close the Developer section.
-The first time you run Home-Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking 'Add Application' in the 'My Apps' section in the sidebar. Enter the PIN code from the Home Assistant screeen. To get the PIN code select the item in the Ecobee card. If you do not have an Ecobee card, you may be using groups with default_view that don't show the card. To get around this you can temporarily comment out the default_view section and restart Home Assistant. Once you enter the PIN on the Ecobee site, wait approximately 5 minutes and then click on the 'I have authorized the app' link at the bottom of the Ecobee popup window. If everything worked correctly, you should now be able to restart Home Assistant again to see the full Ecobee card with all of the sensors populated. Now you can re-enable your default_view (if you had to disable it) and add the Ecobee sensors to a group and/or view.
+The first time you run Home-Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking 'Add Application' in the 'My Apps' section in the sidebar. Enter the PIN code from the Home Assistant screeen. To get the PIN code select the item in the Ecobee card. If you do not have an Ecobee card, you may be using groups with default_view that don't show the card. To get around this you can temporarily comment out the default_view section or add the configurator.ecobee component to your default_view and restart Home Assistant. Once you enter the PIN on the Ecobee site, wait approximately 5 minutes and then click on the 'I have authorized the app' link at the bottom of the Ecobee popup window. If everything worked correctly, you should now be able to restart Home Assistant again to see the full Ecobee card with all of the sensors populated or see the list of sensors in the developer tools. Now you can re-enable your default_view (if you had to disable it) and add the Ecobee sensors to a group and/or view.
To set it up, add the following information to your `configuration.yaml` file:
diff --git a/source/_components/enocean.markdown b/source/_components/enocean.markdown
index 6e39caf744e..cab5d3c72ab 100644
--- a/source/_components/enocean.markdown
+++ b/source/_components/enocean.markdown
@@ -18,10 +18,10 @@ The `enocean` component adds support for some of these devices. You will need a
There is currently support for the following device types within Home Assistant:
-- [Binary Sensor](../binary_sensor.enocean) (wall switches)
-- [Sensor](../sensor.enocean) (power meters)
-- [Light](../light.enocean) (dimmers)
-- [Switch](../switch.enocean)
+- [Binary Sensor](/components/binary_sensor.enocean/) (wall switches)
+- [Sensor](/components/sensor.enocean/) (power meters)
+- [Light](/components/light.enocean/) (dimmers)
+- [Switch](/components/switch.enocean/)
However, only a few devices have been confirmed to work. These are:
@@ -29,9 +29,9 @@ However, only a few devices have been confirmed to work. These are:
- Eltako FT55 battery-less wall switch
- Permundo PSC234 (switch and power monitor)
-Other devices will most likely need some changes in the Home-Assistant code in order to work. Support for teaching of devices is also missing at this time.
+Other devices will most likely need some changes in the Home Assistant code in order to work. Support for teaching of devices is also missing at this time.
-# Configuration
+To integrate an EnOcean controller with Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@@ -39,5 +39,7 @@ enocean:
device: /dev/ttyUSB0
```
-If no device is specified, the default will be **/dev/ttyUSB0**
+Configuration variables:
+
+- **device** (*Required*): The port where your device is connected to your Home Assistant host.
diff --git a/source/_components/foursquare.markdown b/source/_components/foursquare.markdown
index 7121988a595..b2277da003d 100644
--- a/source/_components/foursquare.markdown
+++ b/source/_components/foursquare.markdown
@@ -28,7 +28,7 @@ Configuration variables:
- **access_token** (*Required*): A Foursquare API access token.
- **push_secret** (*Required*): The push secret that Foursquare provides to you in the app dashboard.
-#### {% linkable_title Real-Time API %}
+### {% linkable_title Real-Time API %}
The component accepts pushes from Foursquare at `/api/foursquare`. The route does not require authentication.
@@ -45,7 +45,7 @@ automation:
entity_id: script.my_action
```
-#### {% linkable_title Check ins %}
+### {% linkable_title Check ins %}
To check a user in, use the `foursquare/checkin` service.
diff --git a/source/_components/group.markdown b/source/_components/group.markdown
index c26b435e6e8..732a3c84684 100644
--- a/source/_components/group.markdown
+++ b/source/_components/group.markdown
@@ -13,7 +13,7 @@ ha_category: Organization
Groups allow the user to combine multiple entities into one. A group can be promoted to a **view** by setting the `view` option to `yes`. This will make the group available as a new tab in the frontend.
-Check the **Set State** page from the **Developer Tools** and browse the **Current entities:** listing for all available entities.
+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.
diff --git a/source/_components/light.enocean.markdown b/source/_components/light.enocean.markdown
index 7bed96c53d9..5265cbcdca2 100644
--- a/source/_components/light.enocean.markdown
+++ b/source/_components/light.enocean.markdown
@@ -15,13 +15,13 @@ ha_release: 0.21
An EnOcean light can take many formes. Currently only one type has been tested: Eltako FUD61 dimmer.
-To use your EnOcean device, you first have to set up your [EnOcean hub](../enocean) and then add the following to your `configuration.yaml` file:
+To use your EnOcean device, you first have to set up your [EnOcean hub](/components/enocean/) and then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- - name: Living_room
- platform: enocean
+ - platform: enocean
+ name: Living_room
id: [0x01,0x90,0x84,0x3C]
sender_id: [0xFF,0xC6,0xEA,0x04]
```
@@ -30,5 +30,4 @@ Configuration variables:
- **id** (*Required*): The ID of the device. This is the 4 bytes long number written on the dimmer.
- **sender_id** (*Required*): The Sender ID of the device. This is a 4 bytes long number.
-- **platform** (*Required*): Set to `enocean`.
-- **name** (*Required*): An identifier for the switch
+- **name** (*Optional*): An identifier for the Ligh in the frontend.
diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown
index 6a37f6273e2..b5bd2c50054 100644
--- a/source/_components/light.mqtt.markdown
+++ b/source/_components/light.mqtt.markdown
@@ -51,6 +51,8 @@ light:
name: "Office light"
state_topic: "office/rgb1/light/status"
command_topic: "office/rgb1/light/switch"
+ brightness_state_topic: 'office/rgb1/light/brightness'
+ brightness_command_topic: 'office/rgb1/light/brightness/set'
qos: 0
payload_on: "ON"
payload_off: "OFF"
diff --git a/source/_components/media_player.mpchc.markdown b/source/_components/media_player.mpchc.markdown
index 0f16a25798b..c03a58c18a1 100644
--- a/source/_components/media_player.mpchc.markdown
+++ b/source/_components/media_player.mpchc.markdown
@@ -34,9 +34,9 @@ To add MPC-HC to your installation, add the following to your `configuration.yam
# Example configuration.yaml entry
media_player:
platform: mpchc
- host: http://192.168.0.123
- port: 13579
- name: MPC-HC
+ host: http://192.168.0.123
+ port: 13579
+ name: MPC-HC
```
Configuration variables:
diff --git a/source/_components/mqtt.markdown b/source/_components/mqtt.markdown
index f4388c54a67..6a106b62fe6 100644
--- a/source/_components/mqtt.markdown
+++ b/source/_components/mqtt.markdown
@@ -48,7 +48,7 @@ Configuration variables:
The MQTT component needs you to run an MQTT broker for Home Assistant to connect to. There are four options, each with various degrees of ease of setup and privacy.
-#### {% linkable_title Use the embedded broker %}
+### {% linkable_title Embedded broker %}
Home Assistant contains an embedded MQTT broker. If no broker configuration is given, the [HBMQTT broker](https://pypi.python.org/pypi/hbmqtt) is started and Home Asssistant connects to it. Embedded broker default configuration:
@@ -75,7 +75,7 @@ mqtt:
# http://hbmqtt.readthedocs.org/en/latest/references/broker.html#broker-configuration
```
-#### {% linkable_title Run your own %}
+### {% linkable_title Run your own %}
Most private option but requires a bit more work. There are two free and open-source brokers to pick from: [Mosquitto](http://mosquitto.org/) and [Mosca](http://www.mosca.io/).
@@ -94,7 +94,7 @@ mqtt:
There is an issue with the Mosquitto package included in Ubuntu 14.04 LTS. Specify `protocol: 3.1` in your MQTT configuration to work around this issue.
-#### {% linkable_title Public MQTT %}
+### {% linkable_title Public broker %}
The Mosquitto project runs a [public broker](http://test.mosquitto.org). Easiest to setup but there is 0 privacy as all messages are public. Use this only for testing purposes and not for real tracking of your devices.
@@ -110,7 +110,7 @@ mqtt:
certificate: /home/paulus/downloads/mosquitto.org.crt
```
-#### {% linkable_title CloudMQTT %}
+### {% linkable_title CloudMQTT %}
[CloudMQTT](https://www.cloudmqtt.com) is a hosted private MQTT instance that is free up to 10 connected devices. This is enough to get started with for example [OwnTracks](/components/device_tracker.owntracks/) and give you a taste of what is possible.
@@ -174,7 +174,7 @@ The MQTT component will register the service `publish` which allows publishing m
### {% linkable_title Logging %}
-The [logger](/components/logger/) component allow the logging of received MQTT messages.
+The [logger](/components/logger/) component allow the logging of received MQTT messages.
```yaml
# Example configuration.yaml entry
@@ -228,7 +228,7 @@ $ mosquitto_sub -h 127.0.0.1 -v -t "home-assistant/#"
For the embeeded MQTT broker the command looks like the sample below.
```bash
-$ mosquitto_sub -v -V mqttv311 -t "#"
+$ mosquitto_sub -v -V mqttv311 -t "#"
```
Add the username `homeassistant` and your API password if needed.
diff --git a/source/_components/sensor.arduino.markdown b/source/_components/sensor.arduino.markdown
index fa4ce338412..b761c0b8277 100644
--- a/source/_components/sensor.arduino.markdown
+++ b/source/_components/sensor.arduino.markdown
@@ -13,7 +13,7 @@ ha_release: pre 0.7
---
-The `arduino` sensor platform allows allow you to get an numerical values from an analog input pin of an [Arduino](https://www.arduino.cc/) board. Usually the value is between 0 and 1024.
+The `arduino` sensor platform allows you to get an numerical values from an analog input pin of an [Arduino](https://www.arduino.cc/) board. Usually the value is between 0 and 1024.
To enable an Arduino sensor with Home Assistant, add the following section to your `configuration.yaml` file:
diff --git a/source/_components/switch.enocean.markdown b/source/_components/switch.enocean.markdown
index d9c3f10454d..df6f6f47871 100644
--- a/source/_components/switch.enocean.markdown
+++ b/source/_components/switch.enocean.markdown
@@ -15,18 +15,17 @@ ha_release: 0.21
An EnOcean switch can take many forms. Currently only one type has been tested: Permundo PSC234
-To use your EnOcean device, you first have to set up your [EnOcean hub](../enocean) and then add the following to your `configuration.yaml` file:
+To use your EnOcean device, you first have to set up your [EnOcean hub](/components/enocean/) and then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- - name: Television
- platform: enocean
+ - platform: enocean
+ name: Front door
id: [0x01,0x90,0x84,0x3C]
```
Configuration variables:
- **id** (*Required*): The ID of the device. This is a 4 bytes long number.
-- **platform** (*Required*): Set to `enocean`.
-- **name** (*Required*): An identifier for the switch
+- **name** (*Optional*): An identifier for the switch. Default to `EnOcean Switch`.
diff --git a/source/_cookbook/apache_configuration.markdown b/source/_cookbook/apache_configuration.markdown
index e2665a4e829..5921f85214b 100644
--- a/source/_cookbook/apache_configuration.markdown
+++ b/source/_cookbook/apache_configuration.markdown
@@ -25,7 +25,7 @@ Your home assistant is correctly working on this web server and available at loc
To be able to access to your home assistant instance by using https://home.example.org, add to following file into `/etc/httpd/conf/extra/hass.conf`
-```apacheconf
+```text
ProxyPreserveHost On
ProxyRequests Off
@@ -37,7 +37,7 @@ To be able to access to your home assistant instance by using https://home.examp
and make sure that this file is read by apache's main configiuration file `/etc/httpd/conf/httpd.conf`
-```apacheconf
+```text
...
Include conf/extra/hass.conf
...
@@ -69,7 +69,7 @@ Start home assistant: Now, you have another instance running on localhost:8124
To access this instance by using https://countryside.example.org add to `/etc/httpd/conf/extra/hass.conf`
-```apacheconf
+```text
ProxyPreserveHost On
ProxyRequests Off
@@ -83,7 +83,7 @@ To access this instance by using https://countryside.example.org add to `/etc/ht
Add to your `/etc/httpd/conf/extra/hass.conf`
-```apacheconf
+```text
ServerName example.org
ServerSignature Off
diff --git a/source/_cookbook/owntracks_two_mqtt_broker.markdown b/source/_cookbook/owntracks_two_mqtt_broker.markdown
new file mode 100644
index 00000000000..c4be879045f
--- /dev/null
+++ b/source/_cookbook/owntracks_two_mqtt_broker.markdown
@@ -0,0 +1,106 @@
+---
+layout: page
+title: "OwnTracks with two MQTT brokers"
+description: "Setting up OwnTracks with 2 MQTT brokers bridged for use with the MQTT bridge for SmartThings."
+date: 2016-08-27 10:05
+sidebar: true
+comments: false
+sharing: true
+footer: true
+ha_category: Infrastructure
+---
+
+I ([surge919](https://github.com/surge919)) successfully tied in [OwnTracks](http://owntracks.org/) to Home Assistant and [SmartThings](https://www.smartthings.com/) while using authentication for external access. The MQTT bridge doesn't support authentication so I set up 2 MQTT instances.
+
+Here are the steps I performed. Hopefully it saves someone else some time.
+
+It seems to be working pretty well but if anyone sees something incorrect in my configuration, please let me know. This is my first real interaction with MQTT.
+
+Here's a summary of my setup:
+
+Two Docker instances for MQTT
+
+- 1 for internal use (the MQTT bridge for SmartThings - no authentication)
+- 1 for external use (for OwnTracks - with authentication)
+
+All Docker configuration files are on my NAS so the Docker containers can be destroyed without affecting my actual configuration files.
+
+#### Docker setup for the mosquitto internal instance. No authentication for use with the MQTT bridge.
+
+```bash
+$ docker run -ti -p 1883:1883 \
+ -v /volume1/data/mosquitto-int/config:/mqtt/config:ro \
+ -v /volume1/data/mosquitto-int/log:/mqtt/log \
+ -v /volume1/data/mosquitto-int/data/:/mqtt/data/ \
+ --name mosquitto-int -d toke/mosquitto
+```
+
+#### Docker setup for the mosquitto external instance. With authentication for use with Owntracks.
+
+```bash
+$ docker run -ti -p 1884:1883 \
+ -v /volume1/data/mosquitto-ext/config:/mqtt/config:ro \
+ -v /volume1/data/mosquitto-ext/log:/mqtt/log \
+ -v /volume1/data/mosquitto-ext/data/:/mqtt/data/ \
+ -v /volume1/data/mosquitto-ext/etc:/etc/mosquitto \
+ --name mosquitto-ext -d toke/mosquitto
+```
+
+Here are the config files:
+
+`/volume1/data/mosquitto-int/config/mosquitto.conf`
+
+```bash
+connection mosquitto-ext
+persistence_file mosquitto.db
+try_private true
+address 10.0.0.20:1884
+start_type automatic
+sername test
+password test
+notifications true
+topic owntracks/# in
+log_type all
+log_dest file /mqtt/log/mqtt.log
+log_facility 5
+```
+
+`/volume1/data/mosquitto-ext/config/mosquitto.conf`
+
+```bash
+connection mosquitto-int
+persistence_file mosquitto.db
+try_private true
+address 10.0.0.20:1883
+start_type automatic
+username test
+password test
+notifications true
+topic owntracks/# out
+log_type all
+log_dest file /mqtt/log/mqtt.log
+log_facility 5
+allow_anonymous false
+password_file /etc/mosquitto/pwfile
+```
+
+Create a password for `mosquitto-ext`
+
+```bash
+$ docker exec -it mosquitto-ext /bin/bash
+$ cd /etc/mosquitto/
+$ mosquitto_passwd -c /etc/mosquitto/pwfile
+```
+
+### OwnTracks settings for Android
+
+```bash
+Preferences / Connection / Mode - Private MQTT
+
+Fill out
+ Host
+ Identification
+ Security: TLS disabled
+```
+
+
diff --git a/source/_posts/2016-07-16-sqlalchemy-knx-join-simplisafe.markdown b/source/_posts/2016-07-16-sqlalchemy-knx-join-simplisafe.markdown
index eb4e0aac409..5739266899d 100644
--- a/source/_posts/2016-07-16-sqlalchemy-knx-join-simplisafe.markdown
+++ b/source/_posts/2016-07-16-sqlalchemy-knx-join-simplisafe.markdown
@@ -70,15 +70,10 @@ Quick hot fix after we found a bug in the migrator where it wouldn't work with a
[@turbokongen]: https://github.com/turbokongen/
[@usul27]: https://github.com/usul27
[@w1ll1am23]: https://github.com/w1ll1am23/
-<<<<<<< HEAD
-=======
[@n8henrie]: https://github.com/n8henrie/
[@AlucardZero]: https://github.com/AlucardZero/
-<<<<<<< HEAD
->>>>>>> master
-=======
[@Danielhiversen]: https://github.com/danielhiversen
->>>>>>> origin/master
+
[apcupsd-sensor]: /components/sensor.apcupsd/
[Brightness]: /components/light/
diff --git a/source/_posts/2016-08-13-foursquare--fast.com--ffmpeg--gpsd.markdown b/source/_posts/2016-08-13-foursquare-fast-com-ffmpeg-gpsd.markdown
similarity index 100%
rename from source/_posts/2016-08-13-foursquare--fast.com--ffmpeg--gpsd.markdown
rename to source/_posts/2016-08-13-foursquare-fast-com-ffmpeg-gpsd.markdown
diff --git a/source/cookbook/index.markdown b/source/cookbook/index.markdown
index f0b55246a09..56a28fcfbbb 100644
--- a/source/cookbook/index.markdown
+++ b/source/cookbook/index.markdown
@@ -17,7 +17,7 @@ This is a community curated list of different ways to use Home Assistant. Most o
[sec-automation]: /components/#automation
[organization]: /components/#organization
-New recipes can be added via the [home-assistant.io repository](https://github.com/home-assistant/home-assistant.io/tree/master/source/_cookbook).
+New recipes can be added via the [home-assistant.io repository](https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_cookbook).
{% assign cookbook = site.cookbook | sort: 'title' %}
{% assign categories = cookbook | map: 'ha_category' | uniq | sort %}
diff --git a/source/developers/development_checklist.markdown b/source/developers/development_checklist.markdown
index bdbe205abc3..ac2638454ac 100644
--- a/source/developers/development_checklist.markdown
+++ b/source/developers/development_checklist.markdown
@@ -15,5 +15,5 @@ After you finish your work:
- Check that all dependencies are included via the `REQUIREMENTS` variable in your platform/component and only imported inside functions that use them.
- Add any new dependencies to `requirements_all.txt` if needed. Use `script/gen_requirements_all.py`.
- Update the `.coveragerc` file to exclude your platform if there are no tests available or your new code uses a 3rd party library for communication with the device/service/sensor.
- - Provide some documentation for [home-assistant.io](https://home-assistant.io/). It's OK to just add a docstring with configuration details (sample entry for `configuration.yaml` file and alike) to the file header as a start. Visit the [website documentation](/developers/website/) for further information on contributing to [home-assistant.io](https://github.com/home-assistant/home-assistant.io).
+ - Provide some documentation for [home-assistant.io](https://home-assistant.io/). It's OK to just add a docstring with configuration details (sample entry for `configuration.yaml` file and alike) to the file header as a start. Visit the [website documentation](/developers/website/) for further information on contributing to [home-assistant.io](https://github.com/home-assistant/home-assistant.github.io).
diff --git a/source/developers/development_testing.markdown b/source/developers/development_testing.markdown
index d706d585d68..3b3a7156010 100644
--- a/source/developers/development_testing.markdown
+++ b/source/developers/development_testing.markdown
@@ -41,6 +41,12 @@ $ pylint homeassistant/core.py
$ py.test tests/test_core.py
```
+You also run linting tests against all changed files, as reported by `git diff upstream/dev --name-only` using the `lint` script:
+
+```bash
+home-assistant$ script/lint --changed
+```
+
### {% linkable_title Prevent Linter Errors %}
You can save yourself the hassle of extra commits just to fix style errors by enabling the flake8 git commit hook. It will check your code when you attempt to commit to the repository. It will block the commit if there are any style issues, giving you a chance to fix it.
diff --git a/source/developers/releasing.markdown b/source/developers/releasing.markdown
index e9cff8ecd94..17843777b13 100644
--- a/source/developers/releasing.markdown
+++ b/source/developers/releasing.markdown
@@ -25,9 +25,9 @@ This page describes the steps for publishing a new Home Assistant release.
1. Create a blog post in `next` and base it on the text of the PR in the main repository. Add images, additional text, links, etc. if it adds value. Tag each platform/component in message to documentation.
2. Create missing documentation as stumbs in `next`.
3. Update the link on the frontpage (`source/index.html`) to link to the new release blog post and version number.
-4. Create a pull request from `next` to `master` with the upcoming release number as title.
-5. Merge `master` into `next` (`$ git checkout next && git merge master`) to make the PR mergable.
-6. Merge pull request (blog post, updated frontpage, and all new documentation) to `master`.
+4. Create a pull request from `next` to `current` with the upcoming release number as title.
+5. Merge `current` into `next` (`$ git checkout next && git merge master`) to make the PR mergable.
+6. Merge pull request (blog post, updated frontpage, and all new documentation) to `current`.
### {% linkable_title Python Package Index %}
diff --git a/source/developers/server_sent_events.markdown b/source/developers/server_sent_events.markdown
index 6961d7e0d2a..76716100ed6 100644
--- a/source/developers/server_sent_events.markdown
+++ b/source/developers/server_sent_events.markdown
@@ -31,7 +31,7 @@ For more comfort put the HTML snippet below in a file `sse.html` in your `www` f