4 ms·
I've been running Home Assistant (the software in the blog post) for a little over a year now. (started out on a raspberry pi, upgraded to an Intel NUC recently
by Klathmon 9y ago
I've been running Home Assistant (the software in the blog post) for a little over a year now. (started out on a raspberry pi, upgraded to an Intel NUC recently for more power, and to do more non-home-automation related things on it)
It's by far one of the most well-managed community-driven open source projects i've ever used.
All of the "components" are just small-ish python programs that contain mostly "glue" code, and they are required to use 3rd party libraries to actually implement the real work. This spreads the workload out across many repos in terms of breaking changes and help, and makes it much easier to contribute back to (you aren't contributing to a massive monolithic repo, you are contributing to a small 200 line python library with 20 stars on github, much less pressure!).
Because of this architecture layout, anything that has a python library that can be consitered part of "home automation" most likely has it implemented already. In my setup alone I have:
* chromecasts
* 2 different smart TV brands
* many zwave switches (run through a vera, not using zwave directly)
* many zwave door/window sensors
* multiple ip cameras
* a wifi thermostat
* a few IR controllers for "dumb" IR devices
* phone/device tracking (which keeps all the data stored locally)
* usps/ups/fedex package tracking and delivery notifications
* network speed monitoring
* have-i-been-pwned monitoring and notifications
* weather
* a 3d printer's completion percentage
* a google home
* an amazon echo
* ups runtime monitoring
* multiple esp8266 based sensors and switches for various hacked together things
* and more that i'm probably forgetting
And all of it is processed locally (when possible), stored locally (in a postgresql database), secured via TLS, available on any browser anywhere, and on a server I maintain and manage (with the help of some automations I created in hass itself). And speaking of automations, it's python, so they are basically unlimited. I have an automation that will notify me on my phone if it will start raining at my phone's current location before I can get home, and only while on my motorcycle.
It's not perfect (it's pre-1.0 software, so there are still semi-frequent breaking changes, and configuration is mostly manual still via yaml files), but it's been a such an amazing experience.
Home Assistant is the reason why I love IoT.
- deleted 9y ago[deleted]
- Jayakumark 9y agoJust curious on how you use Esp8266 based sensors and switches . Can you list some of your best use cases ?
- Klathmon 9y agoSure! One of them is hooked up to a button on a humidifier in my house. I pulled it apart, and just solidered it to one of the buttons and just have the esp8266 respond to some lan rest commands. Using Hass I hook that up to the nest's indoor humidity sensor and it auto turns on when needed. Then I grabbed a small load sensor and hooked it up to the ESP8266 to every hour or so send the load value back to Hass for the water tank in the humidifier. So now I also get notifications when I need to fill the water reservoir! Most of them are little things though. One is solidered to the light in my oven that shows if it's on or not, and it can notify us if we leave the oven on, another uses a very hacky (literally 2 paperclips!) Short sensor to say when I open a drawer next to my desk. If I haven't opened it by 9:30 and work is on my calendar, it will notify my phone reminding me to take my medicine! Once you have the major components setup in something like Hass, and you've worked through the headache of setting up the esp8266s, it becomes really quick, and there are so many uses for them. My next idea is to put a load sensor in the center post of my chair and notify me if I've been sitting for too long (and maybe of the sensor is accurate enough, maybe weigh me every day? I'm like 90% sire it won't be though...)
- Jayakumark 9y agoThanks , I was just thinking the load sensor one today in my office to lock my computer when I get out of chair and set slack to offline status as I always forget to do that . You should really start a blog or do a write up in hackster.io . Also looks like they announced hass.io to auto update and manage home assistant a breeze
- oh_sigh 9y agoI like the architecture of HA as well, but is there a way to use the HA level interface but making it program driven, as opposed to config-driven? I know python...I don't know all of the config variables for the yaml language they encourage you to write
- sdague 9y agoThat's what the AppDaemon project is about - https://home-assistant.io/docs/ecosystem/appdaemon/ https://home-assistant.io/docs/ecosystem/appdaemon/ - it let's you do the automation rules inside code instead of inside yaml. You'll still need/want yaml for basic device connections and grouping, but doing complex automations can be done easier in AppDaemon.
- Klathmon 9y agoThey recently introduced "straight python" components i believe, so you can just write in that. Additionally there are multiple apis you can use to interface other than the front end at https://home-assistant.io/developers/api/ https://home-assistant.io/developers/api/ Also the HA front end just calls those backend apis, so if you "emulated" those you could use it as a drop in for some other backend (in theory)
- oh_sigh 9y agoThanks, I'll check that out!