Updated documentation
One of the main complaints that we receive is something along the lines “I read that X is possible yet I am unable to find it on the website.”. This post is to announce that we have taken the first steps to improve it by revamping the getting started and developers sections. It’s still a work in progress but we now have a solid foundation to build on for the future 👍.
Our documentation has been going through various phases. Initially it was just the README in our GitHub repository. I discovered Jekyll and GitHub pages in December 2014 and created home-assistant.io. I more or less broke the README in 5 pages and called it a website. Back then we had a whopping 11 components!
As Home Assistant grew, so did our documentation. Fabian Affolter does an amazing job in making sure there is at least a documentation stub for each new feature that lands. And that’s quite a feat given our frequent releases! But despite all the efforts, the documentation outgrew our existing documentation organization.
Today it has been almost 1.5 years since we started the website. We now have 264 components and platforms under our belt and have been honored with 1.5 million page views ✨. And hopefully we now also have documentation that our community deserves.
Finally, if you see some content that could use more clarifcation or is outdated, don’t hesitate to use the ‘Edit in GitHub’ link that is present on each page.
0.17: Onkyo, Panasonic, GTFS and config validation
Another awesome release ready to hit your homes. YAML can be hard for beginners and more experienced automators. So to help catch those pesky errors that sneak into your files we’ve been hard at work to introduce config validation! Especially huge thanks to @jaharkes for his hard work on this. Config validation is still in its early stages. More common platforms and components have been added but we didn’t do everything yet.
When we encounter an invalid config we will now write a warning to your logs. You can see those in the frontend by clicking on the last developer tool. We’re looking into options to make it more clear - it is a work in progress.
Another big thing is the addition of GTFS support. You probably don’t know it, but GTFS is the standard that public transit companies all over the world use to distribute their schedule. This means that you can now have the time of the next bus/train/etc right in your frontend.
- Config validation (@balloob, @jaharkes)
- Sensor: GTFS support (public transit open standard) (@robbiet480)
- Camera: Raspberry PI support added (@LucaSoldi)
- Z-Wave: improved startup reliability (@srcLurker)
- Media Player: Onkyo receiver now supported (@danieljkemp)
- Sensor: Loop Energy now supported (@pavoni)
- Thermostat: Z-Wave now supported (@coteyr, @turbokongen, @luxus)
- Sensor: NZBGet now supported (@justyns)
- Media Player: Panasonic Viera TV now supported (@florianholzapfel)
- Thermostats: Use whole degrees if user uses Fahrenheit (@JshWright)
- Frontend: more material love (@balloob)
Breaking changes
As of now we are not aware of any breaking changes. However, it might be that Home Assistant will not start for you because of an invalid configuration. A common mistake that people are making is that they are still referring to execute_service
in their script configs. This should be service
.
Static website
The frontend of Home Assistant is served with the help of a local web server. If you have customized your installation you already use this functionality. The content of your folder www
in your Home Assistant configuration directory (.homeassistant
) is available under /local
(eg. https://localhost:8123/local/index.html
for an index.html
file).
But there is more you can do! You can not only host images for customization there but HTML files or even web applications including CSS and Javascript.
Read on →
Your hub should be local and open
Today the news spread that Google will be shutting down the Revolv hubs. And shutting down here doesn’t mean they stop selling or supporting them - no, they are sending an update to each hub to turn your perfectly fine home automation hub into a useless piece of plastic. The fact that this seemed like a good idea by Google astonishes me. If anything, they should have gone the same route as ninjasphere: open it all up and let people decide on the fate of their own hub.
I’ve said it before but I’ll repeat it again:
The cloud should be treated as an extension to your smart home instead of running it.
Your hub should not be affected when your internet breaks down or the company that sold you your hub goes out of business. It should work locally so that it can continue to work even long after the vendor goes out of business or decides to kill it. Preferably, your hub should also be open so that the community can take over development after the vendor stops caring.
Unless you can afford losing a product here and there, be cautious when buying IoT products that depend on the cloud from companies that are not well established. The chances are high that they go bankrupt or get acquired and closed. This however is easier said than done as Gartner predicts that by 2017, 50 percent of IoT solutions will originate in startups that are less than three years old.
0.16: Embedded MQTT broker, Uber, Yamaha receivers and Growl
Party people, 0.16 is here! The big thing with this release is that we have completely removed the barrier to get started by MQTT by being able to launch an embedded MQTT server: hbMQTT. Just add mqtt:
to your config and a broker is launched and connected with Home Assistant.
Further in this release a bunch of cool new stuff, bug fixes and rewrites for the Vera and Tellstick component (see breaking changes section at bottom for this!).
Rock on.
- Device Tracker - OwnTracks: Allow entry into passive zones using iBeacons (@pavoni)
- Tellstick: rewrite to component to address concurrency issues (@stefan-jonasson)
- Z-Wave: add services to heal and soft reset network (@srcLurker)
- New component input_slider added (@persandstrom)
- Light - Hue: Option added to ignore unreachable property (@maddox)
- Notify: MessageBird support added (@florianholzapfel)
- HTTP: Failed login attempts are now logged (@fabaff)
- Vera: rewrite to component to simplify code and organize for reusability (@pavoni)
- Discovery: support for Squeezebox (Logitech media) server added (@jaharkes)
- Discovery: fix uPNP discovery crashing some routers (@jaharkes)
- Switch: Wake on LAN platform added (@joopert)
- Services for thermostats, notify and media player will now validate passed in parameters (@MartinHjelmare)
- Switch - Arduino: support for default state and negate port functionality (@tilutza)
- Switch: PulseAudio loopback now supported (@Cinntax)
- Sensor: Uber now supported (@robbiet480)
- Notify: Growl (GNTP) now supported (@robbiet480)
- Media Player: Yamaha receivers now supported (@aoakeson)
Breaking changes
-
Automation: support for old deprecated config has been removed
-
Tellstick configuration has changed
tellstick:
signal_repetitions: X
- Vera configuration has changed
vera:
vera_controller_url: http://192.168.1.161:3480/
# Optional to exclude devices - this is a list of vera device ids
exclude: [ 13, 14, 16, 20, 23, 72, 73, 74, 75, 76, 77, 78, 88, 89, 99]
# Optional to import switches as lights - this is a list of vera device ids
lights: [15, 17, 19, 21, 22, 24, 26, 43, 64, 70, 87]
0.15: Unforked Open Z-Wave, templated service calls, extended scene support and PEP257 compliance.
Two weeks has past so here is 0.15! We have been focussing a lot on quality. Making sure the system is more stable and reliable. I usually try to highlight one cool thing in the release notes but this release has 4 exciting announcements!
- @fabaff has upgraded the codebase to follow the PEP257 documentation standard.
- @partofthething has migrated us to use the main Python Open Z-Wave library instead of our forked version.
- To make our automations more powerful, @persandstrom added the option to use templates to dynamically create service calls. This works for automation, Alexa, universal media player, template switch. Learn more.
- @MartinHjelmare has upgraded our scene support to now support all built-in services and components.
Besides bug fixes, this release also brings:
- Scene: Converted to a platform based component (@sander76)
- Scene: Hunter Douglas Powerview now supported (@sander76)
- Lock: MQTT platform added (@fabaff)
- Device Tracker: OwnTracks will allow filtering inaccurate GPS locations (@HydrelioxGitHub)
- Binary Sensor: Wemo Motion now supported (@pavoni, @ryanlaux)
# Example using templates for service and data in service call.
# Works for automation, Alexa, universal media player, template switch.
automation:
- trigger:
- platform: state
entity_id: switch.bathroom
action:
service: >
{% if is_state('switch.bathroom', 'on') %}
switch.turn_on
{% else %}
switch.turn_off
{% endif %}
target:
entity_id: switch.{{ states('input_select.is') }}
Breaking Changes
- Media Player: Attributes to call service play_media has been renamed to
media_content_type
andmedia_content_id
, to match the corresponding media player state attributes. This change affects automations, scripts and scenes.
0.14: Steam, D-Link smart plugs and Neurio Energy Sensors
It’s been another two weeks which means it’s time for release: 0.14!
- Notify: Command line platform added (@stefan-jonasson)
- Sensor: Verisure mousedetectors now supported (@turbokongen)
- Core: Entities can now expose if they assume their state representation is correct (@balloob)
- Sensor: TCP platform added (@flyte)
- Binary Sensor: TCP platform added (@flyte)
- Sensor: Neurio energy sensor now supported (@infamy)
- Binary Sensor: nx584 support added (@kk7ds)
- Improve and clarify CI testing (@sdague)
- Automation: State triggers and conditions now takes optional
for
config parameter to only trigger when a state hasn’t changed for a certain period of time (@pavoni, @stefan-jonasson) - Sensor: Nest weather data added (@w1ll1am23)
- Device Tracker: Ubiquiti Unifi now supported (@kk7ds)
- Binary Sensor: MySensors now supported (@MartinHjelmare)
- Binary Sensor: Bloomsky now supported (@balloob)
- Binary Sensor: Z-Wave now supported (@tpatja)
- Switch: D-Link smart plugs now supported (@LinuxChristian)
- Script: Toggle support added (@Andythigpen)
- Light: Wemo now supported (@jaharkes)
- Rollershutter: Command line platform added (@t30)
- Sensor: Steam now supported (@GreenTurtwig)
- Binary Sensor: Wink now supported (@w1ll1am23)
- Demo has been updated (@kfgoode)
- Frontend: new UI for camera’s (@balloob)
Camera feeds are now directly embedded in the frontend.
Backwards incompatible changes
- Component: Simple Alarm has been removed. Still available in the cookbook.
- Script: Turning on a script that is already on is now a no-op instead of skipping current delay.
- Wemo switches now have to be set up via the main Wemo component
- Command line platforms for switch, sensor and binary_sensor have been renamed to
command_line
. - The rfxtrx sensors entity ids will incur a one time change to move to a stable format. See the docs for more details.
Community Highlights
Home Assistant land has been busy and a lot of people have been creating awesome stuff. We’ve added a cookbook section to the website full of examples how you can automate different things. Make sure you take a look and share your own recipes too!
Home automation demo by Part of the Thing
Haaska - Alexa Skill Adapter for Home Assistant
Haaska allows you to control lights, switches, and scenes exposed by your Home Assistant instance using an Amazon Echo. This is different from our own Alexa component because it will teach the Amazon Echo directly about the devices instead of teaching it to talk to Home Assistant. It will not allow you to use custom sentences but it will allow you to skip the ‘Ask Home Assistant’ part when giving commands:
- “Alexa, set kitchen to twenty percent”
- “Alexa, turn on evening scene”
- “Alexa, turn off bedroom light”
Integrating Home Assistant with HomeKit
Contributor Maddox has created a plugin for HomeBridge, an open-source HomeKit bridge. This will allow you to control your home using Siri on your Apple devices. HomeBridge has recently restructured so you’ll have to install the plugin separately with the homebridge-homeassistant npm package.
Example config.json entry to load Home Assistant:
"platforms": [
{
"platform": "HomeAssistant",
"name": "HomeAssistant",
"host": "http://192.168.1.50:8123",
"password": "xxx",
"supported_types": ["light", "switch", "media_player", "scene"]
}
]
HomeBridge on GitHub HomeBridge Home Assistant Plugin
Custom alarm system with Home Assistant
User thaijames describes in the Home Assistant forums how he has created his own NFC-based alarm system using Home Assistant, DIY components and Garfield dolls.
Hold your NFC tag against the belly of Garfield to unlock the alarm.
Multi-room audio with Snapcast, Mopidy, and Home Assistant
Would you like to listen to music in every room in your home, controlled from one source? Then multi-room audio is for you.
Multi-room audio can be achieved by having a computer attached to speakers in every room. On each computer, services run to play and/or control the audio. With this DIY approach, the kind of computer and speakers is very much up to you. It could be your desktop computer with attached powered speakers, your HTPC hooked up to your TV and receiver, a Raspberry Pi with Amp or DAC, or even an Android device.
You’ll need two key software packages, besides Home Assistant. The first is Mopidy, a music server that can play local files, or connect to streaming music services like Spotify. The second is Snapcast, which enables synchronized audio streaming across your network. Both can be integrated into Home Assistant. Each room audio device will run an instance of the Snapcast client, and optionally a Mopidy instance. Your server will run a special instance of Mopidy and the Snapcast server.
Finally, you also need a player to control Mopidy. Any MPD-compatible player will work, and there are several Mopidy-only web-based options available. On Android, Remotedy is particularly nice since you can access multiple Mopidy instances in one place.
Home Assistant will provide device status, and volume control for each room. If you want to play music in all your rooms (on all your clients), access the server instance of Mopidy. If you want to play music only in a specific room, access that specific Mopidy instance. If you’re using a web UI for Mopidy, you can add links to each instance in Home Assistant with the weblink component.
Read on →
0.13: Speedtest.net, Bloomsky, Splunk and Garage Doors
The focus of 0.13 was on test coverage, big cheers to @rmkraus for his hard work on this. I’m proud to announce that we’ve hit the 90% test coverage of the core + important components. A big milestone for the project.
Examples of the new [input_select] and weblink components.
Not only did we gain a lot of test coverage, we also attracted a lot of new developers that contributed a variety of components and platforms:
- Core: Add service to restart Home Assistant (@rmkraus)
- Core: Allow device to report as unavailable (@MartinHjelmare)
- Core: Allow overriding polling interval in platforms and via config (@balloob)
- Frontend: support for a default view have been added to replace the show all view (@balloob)
- Component: Added apcupsd component (@flyte)
- Component: Added component to log values to Splunk (@miniconfig)
- Component: Added garage door component including Wink support (@xrolfex)
- Component: Added input_select component (@balloob)
- Component: Added proximity component to track people closest to a location (@nickwaring, @Bart274 )
- Component: Added support for Bloomsky Weather Station (@haraldnagel)
- Component: Added support for pushing stats to graphite (@kk7ds)
- Component: Added support for SCSGate devices (@flavio)
- Component: Added weblink component to link to other pages (@MagnusKnutas)
- Component: Support for Ubiquiti mFI sensors and switchable devices added (@kk7ds)
- Alarm control panel: Added Caddx/GE/Interlogix NetworX support (@kk7ds)
- Camera: MJPEG camera’s will now show real stream instead of a 2fps stream (@stjohnjohnson)
- Camera: Added Unifi video cameras support (@kk7ds)
- Device Tracker: Aruba platform now uses SSH instead of telnet (@carlosmgr)
- History: Show correct graphs for thermostats (@sdague)
- Light: Added MySensors support (@MartinHjelmare)
- Lock: Added Verisure support (@turbokongen)
- Media Player: Added Samsung TV support (@stefan-jonasson)
- Media Player: Added Snapcast support (@happyleavesaoc)
- MQTT: Allow using templates in publish service (@flyte)
- Notify: Added REST support (@Theb-1)
- Sensor: Added Speedtest.net support (@nkgilley)
- Switch: Added template platform (@pavoni)
- Thermostat: Support for Honeywell in the US added (@kk7ds)
- Z-Wave: Allow configuring polling and support scenes (@lukas-hetzenecker)
- Bug fixes and improvements by @persandstrom, @fabaff, @balloob, @pavoni, @philipbl, @MartinHjelmare, @rmkraus, @molobrakos, @lukas-hetzenecker, @TangoAlpha, @deisi, @Danielhiversen, @roqeer, @jaharkes