It's a funny thing - what you find when you start a project you think you know something about. If you're doing it right then you'll likely discover that you're not as slick as you thought you were. I suppose that is why I love these projects and goals so much. They make me stretch. On the flip-side, scope creep is real thing and not every project can be a voyage of discovery. So, this is my self-imposed roadmap for the first two phases of my overall home automation goals.
As described before, this project initially started as a way for my wife who has some disability to be able to control parts of the house. In the time since, I've been able to think about more than just the wow factor of a cool futuristic home and settle back down to earth on a real practical set of solutions for problems people with disabilities face daily - Safety, Security, Accessibility, and Independence.
Thanks to a very understanding employer, I am fortunate enough to work from home most of the time. If I weren't, I'm not sure where we would be. We almost certainly would have had to hire some to stay with my wife after a series surgeries and unexpected emergencies. Even with me home and seconds away, there have a couple of times when my wife fell and I didn't know it. There have been other times when someone came to the door and I couldn't answer it or see who was there. Still others where she couldn't easily reach or change the temperature in the house due to just being home from the hospital.
If you've ever been compromised from surgery or injury, everyday tasks become a problem and sometimes a task for someone else to do.
Not every task, job or problem has a practical technical solution. As much as it pains me to say those words, this is reality.
However, many problems do and if there is a practical solution, wouldn't it be worth the effort to find it?
A big question many people ask is "Why?" why are you building these things from scratch rather than buying a ready made solution? The answer is simple, I buy a solution if there is an off the shelf product that meets my requirements or can be modified to meet my requirements. If there isn't one that does, then I build a solution.
Below are a set of problems and technical solutions that I am pursuing. This list comprises the first two stages of my overall project:
There is a third stage to the project that will cover more advanced topics and projects but these items will not be covered here.
Problem: How to control floor and table lamps?
For a number of reasons, reaching light controls can be dangerous for people with disabilities. Additionally, being able to control them automatically can increase safety and security.
Solution: Inline power switches
This project is pretty straight forward - I need to place some kind of inline remotely controlled switch on the power cords of each lamp in the house. As we have an older house without a great deal of built in lighting, we have a lot of lamps - 18 to be exact. To keep costs down, I need each switch to be as inexpensive as possible but still meet my requirements. Guess what, off the shelf, there are none. At the time I was looking for solutions, all of them required the internet to work - either due to the adoption process, day to day operating the device or both.
I did however find a solution that involved reprogramming a very inexpensive switch ($5 each) with a new firmware. (Firmware is just a fancy name for the software built into the switch. TIP: Software you as a user can change is called software and software built into a device that you aren't intended to change is called firmware.) The device is called a Sonoff Basic (Links below). It is inexpensive and robust. It was easy to find as it is very popular in the home automation community. The reason for it's popularity is because you can fairly easily change its firmware with an open source software called Tasmota. Tasmota was written to be fairly generic for any device that uses the ESP82XX line of processors. The Github page for the software has a detailed WIKI with full instructions on how to reprogram a Sonoff Basic and many other devices.
So, I ordered my first batch of 10 and decided to give them a try. Ordering direct from Itead is the cheapest way to get them - averaging around $6 each with shipping included. That price comes with a cost, though. You can expect 3-6 weeks to receive the devices.
I use the MQTT protocol to communicate to the switches over wifi. Commands are nearly instant and there is no lag in knowing the status of a light. The one downside to these switches is that you have to cut the power cord and place the switch inline with the lamp. This wasn't an issue to me but may be disconcerting for some.
There are other plugs out there now that can also work with Tasmota and are nearly as inexpensive. My advice is use the sonoff for lamps and other corded electronics but if cutting a cord is not your thing, look around for alternatives. I'm working on a follow-up article to this project and S1.2 below that presents many more alternatives. For now, Itead also makes a plugin versions that can have a higher current rating and, depending on version, can also give you feedback on power consumption of the item that is plugged in:
Q & A: Why didn't I use "smart" light bulbs instead?
This is a popular solution and frankly is a practical solution in general. However, cost was the single biggest reason I didn't go the smart bulb route. At $15+ per bulb, it cost significantly more to replace the bulbs. Speaking of replacements, that cost is recurring - once that new smart bulb fails (burns out, succumbs to a surge, etc) you have to pay that $15+ again. Plus, you have to go through the whole setup process again as well. Not very efficient.
Problem: How to control ceiling lights?
For a number of reasons, reaching light controls can be dangerous for people with disabilities. Additionally, being able to control them automatically can increase safety and security.
Solution: WiFi in-wall switches
Wall switches pose an additional challenge. Where adding a plug switch or an inline cord switch can increase the chances of a fire if done incorrectly, they won't likely negate your homeowners insurance in the case of a fire. However, if you go poking around inside the walls, then it is possible that any fire you have - even if it has nothing to do with your device, won't be covered by insurance. So, choosing a in-wall device isn't always as simple.
For one, it is best to find a device that is UL listed. Underwriter's Laboratory listing just means that a company spent a lot of money (hundreds of thousands of dollars in most cases) to send their device for testing and certification. Certification means that the device is safe to use under normal, intended use, in the home. Most insurance companies will cover damage done by a UL listed device.
And this is where the problem arises - that expense of getting listed prevents most of the "smart" switches on the market from getting certified. It doesn't prevent them from being sold, however. One switch I bought was the Kasa Smart Wi-Fi Light Switch by TP-Link. It is one of the few UL listed switches that I could find that also doesn't need an internet connection to operate. It does, however, require one for the setup process and it does "call home" from time to time. It is significantly more expensive than I wanted to spend at $35/ea.
There are numerous smart wall switches available that use various communication types such as WiFi, Z-wave, Zigbee, X10, etc. Few of these are UL listed but if this isn't a concern for you, stay tuned as I'm working on a follow-up article to this project and the S1.1 above that presents many more alternatives.
Q & A: Why didn't I use "smart" light bulbs instead?
In this case I almost did go with the smart bulb route but two problems unique to ceiling lights stopped me. For one, think about how you use your ceiling lights, you flip the switch on the wall to turn them on or off. Now, the wall switch goes from being a convenience to a liability. What if someone turns the wall switch off by habit, the system can't turn on that light - it effectively disappears from your home automation system. Second, LED lights don't do well in enclosed fixtures OR in bathrooms. They fail easily if they get too hot or if the humidity in the air is high. In both cases, the impracticality of using smart bulbs was stronger than the expense of the switch controlling them.
Problem: How to control ceiling fans?
One issue people with nerve damage and many other ailments have is a fluctuating body temperature. One minute they are too cold, the next, too hot. Getting up and trying to reach the fan cord can be dangerous so, remote control is a better solution.
Solution: Inline fan controllers
Fan control can occur at the wall switch or using a device that mounts in the fan base inline with the power connectors. Again, what insurance will allow here is subject to scrutiny so, if in doubt, check with your insurance company.
For fan control, I opted for an inline device that mounts in the fan base. I used the Sonoff iFan02 as it can control both the fan speed (3 speeds), the fan light (on/off), can be reprogrammed with the Tasmota software mentioned above and, at $15, is the least expensive device available. Overall, I am happy with the performance of the fan controller but I do have one major complaint. These fans have an onboard buzzer for audio confirmation of actions being received by the fan either over WiFi from the home automation system or from the included wireless remote. On the remote there is an option to disable the buzzer which is nice. However, if your fan becomes unpaired from the remote, you can't turn off the buzzer from the home automation center and let me tell you, it is VERY loud.
There are several non-WiFi based wireless fan controllers on the market that use RF frequencies 433MHz and 319MHz that can be controlled by a WiFi to RF bridge. I haven't experimented with this yet but there are several articles and videos on the topic online. The easiest way to find information is to search for wifi to rf bridge and your wireless fan controller model number.
Problem: How to control floor and table lamps that now have remote control switches?
Even though the newly enlightened lamps can be controlled by a phone or other device, it is still impractical to either reach down and press the button on the cord on the floor (under the desk, behind the table, etc) or pull out a phone every time you enter/exit a room. Not to mention that someone on a walker may not be able to carry a phone around safely.
Solution: Table-top and in-wall control panels
One major disadvantage of adding the inline switches to the lamp cords is that it becomes more difficult to turn one off or on when you enter or leave a room. Most of the time you need a cell phone, tablet or computer to "flip the switch" on the lamp. So, the need to add an additional set of control panels came about. I will be detailing these in another blog post but to summarize, here is a brief description:
This project is actually 3 projects. I am developing a ESP8266 based WiFi computer with simple momentary push buttons and a screen that can display home status or whatever we would like at a particular location. This "core" project will have different cases and additional functions depending on the use case that is needed. For example, one of the subsequent projects that will use this core is a bedside wireless cell phone charger base with the control panel built in. Another is a low-current in-wall single gang control panel.
Q & A: Why didn't I just get several cheap or used touch screen tablet / phones instead?
I did start with and still use an old tablet for one control panel in the house. An added benefit of using a tablet is that it can be setup to be a digital picture frame when not in use but, I only had one and the cheapest tablet I could find was a $40 tablet from walmart. The control panel core I designed can be built for under $10 with the screen - without the screen, the core comes in at $3 with 8 buttons. Additionally, I can build the core in with other functions and bases as the need arises further increasing the usefulness of the core.
*Update: I have upgraded the core to version 2 with expanded IO, a web interface and support for more I2C devices
Problem: How to add data sets for better automation?
Every automation system requires data to make decisions. Some data is simple and real time. Other data sets need to be analyzed for trends and predictions.
Solution: A weather station to gather trend data over time for analysis and some real-time decisions.
I've always wanted to build a weather station. I have an interest in weather science but, for me a weather station is all of the stuff I like about electronics - real world use of remote sensing that can be used for practical stuff. From home automation to gardening to knowing what's in the air, local weather and environmental sensing can be used to make subtle cumulative changes that add up to better health and lower bills.
Problem: Missed appointments or issues keeping track of medications
Dr appointments, drug reminders, school reminders, work schedules, and other information can lead to information overload at best and over/under dose of medications or missed medical appointments.
Solution: Home Information Center containing important reminders and events
One project I've always wanted to build but couldn't justify the expense was a fridge mounted home information center. This would be a place that would display all of our calendars, tasks lists, to-do's allowance balances, chores lists, etc. I've made attempts at this in the past but never had the motivation to complete it due to the work involved and the expense in building it. However, after my wife became ill and was hospitalized recently, I realized how important a shared calendar at minimum would have been in keeping track of important events during that time, and really since then. This is an ongoing project that will be developed in two stages - the first is a proof of concept that is nearly complete. It is simple and flawed but gets across the idea of what the end product will be.
The second stage is a production ready product. I say product because this idea may actually become a business one day. So, I'll post pictures and some info about this in a later post but I won't describe anything more than how I am building the proof of concept which is all open source. The final coded product will be proprietary.
Problem: Similar to Project 3 - How to control the HVAC system?
One issue people with nerve damage and many other ailments have is a fluctuating body temperature. One minute they are too cold, the next, too hot. Getting up to change the settings can be dangerous so, remote control is a better solution.
Solution: Smart HVAC thermostat
Ok, this one seems like an off the shelf home run, right? Everyone makes a wireless thermostat now so, why build one?
It's true, for most people, any off the shelf smart thermostat should be all that they need - for most people. My requirements are a little more involved plus, I think there is an opening here for a new, locally processed thermostat that is a bit smarter than the ones you can get at Best Buy. Specifically, what do you do if your thermostat isn't centrally located or your house doesn't evenly heat or cool? There are products that allow you to replace your vents with "smart" vents that open or close and create zones. While these solutions are far less expensive than replacing your ductwork for zoning, they are still very expensive and really your just trying to maintain a temperature in a chosen part of the house. Enter, virtual zoning.
This one may also turn into a product, so more to come on this project.
Problem: How to add data sets for better automation (inside)?
In addition to the dataset required for conditional automation for project S1.7, additional data is needed for light automation, security projects and opportunities to improve individual health conditions. An example is to notify when internal and external elements are present that contribute to seasonal allergies or to alter the HVAC schedule or functions to more efficiently filter the inside air.
Solution: Inside air quality, and ambient environmental sensor packs
Build a sensor pack that transmits a collection of useful data for making better decisions.
Problem: How can the system make decisions that are dependent on if the house is occupied or not or where the occupants are in the house?
It would be handy to know who and how many people are in the house and where.
Solution: A reliable presence detection system
Reliable presence detection and identification of multiple occupants (including pets) in a house is the holy grail of the home automation world. I've been researching the subject for many months and one thing is clear, this is a tough challenge and one that can be quite expensive to implement. This project will likely require more than a couple sub projects.
Problem: How to raise the head of your adjustable bed when the manufacturer supplies you with controls designed to fail?
Solution: Exchange one of the damaged controllers with a WiFi connected version!
Problem: What special needs are there for people with disabilities and emergency response?
In an emergency situation, it is critically important for first responders to have as much information about a home and its occupants as possible.
Solution: A truly smart home security system
I worked for a time in the EHS department in college as an IT guy for the department. During my time there I learned a great deal about how critically important timely information is to first responders and to the community at large. My job there was to develop a method to distribute Material Safety Data Sheets campus wide electronically. This was in the days before msdsonline.com or other similar companies were around.
Anyway, this experience altered the way I see security systems and what emergency information should look like. When my wife began to have the issues that she now does, it was clear from watching interactions with her doctors and nurses that having the right information when it is needed can mean the difference between life and death.
All of this is to say that we don't have the security systems in our homes that we should have. Regardless of whether or not that house has a disabled person in it, first responders should have a way to determine how many people are in a dwelling and, if at all possible, where they are. These two pieces of information alone will save lives and reduce the risk of firefighters in a dwelling searching needlessly or in the wrong place. Now imagine how much more effective an EMS crew can be if they have critical info on the people that are unresponsive? I want a security system that is both real-time tracker and a medic alert bracelet on steroids.
These are just a few of the ideas I have for this project. As it stands, this project will be comprised of numerous sub-projects and will likely take more than a year to see through.
Problem: How can a person with disabilities call for help if they've fallen and are unable to move?
Falls pose one of the biggest risks to people who have disabilities or have brittle bones.
Solution: Have the ability to literally call for help even if there is no one else home.
There are several monitoring systems on the market that allow for people to call for help using their voice alone and these are good solutions for people who need them but they tend to serve a singe use case and can be a severe compromise on their privacy. I don't think that it should be either privacy or safety. Plus, it would be nice to give people a closed loop system that they can use with loved ones as the monitor instead of only having the option of a paid service or nothing.
Lastly, not every call for help is an emergency. Sometimes it would be useful for someone to use the system to call someone for assistance who might be outside rather than involve a third party unnecessarily.
In this project I am experimenting with a locally processed voice processor that can run on a raspberry pi - no internet required for processing like is required for an Echo or Google Home device making it more reliable in the event of an issue. Plus, the device I'm designing will have cellular backup and a backup battery in case of power or internet outages for contacting monitoring services or family. This system will also incorporate with the home security system I mentioned in Project S2.1.
***Update, with the sale of Snips and the pending closure of their open development platform, I am going back to the drawing board on the voice processor. There are several open source projects available but I need to test each with my project goals.
Problem: How do we let assistive medical partners like therapists come and go without leaving the door unlocked?
One simple solution to safety is to have someone look in on you from time to time but I don't want to give out a bunch of keys.
Solution: Add an electronic deadbolt that can store several codes that can be removed at will.
This solution proved more difficult that I thought - mostly due to my stubbornness rather than overcoming a technical issue. I didn't want to add more complexity to my home automation system than absolutely necessary. If you recall in Choosing a Home Automation Hub - How Hard Could it Be?, I talked about how adding another protocol to a system has a multiplicative effect on the complexity, and therefore reliability, of a system. As it turns out, there are no WiFi smart locks on the market and for good reason, the batteries die quickly in these power hungry systems. This leaves really only two viable alternatives - Z-Wave and Zigbee. Both of these require a bridge to be connected either to the network or to my home automation hub. I was trying to avoid that.
In the end, I went with a Schlage Z-Wave door lock and Z-Wave USB stick connected to my hub. It was an bear trying to get everything linked up but now that it is, it seems to be very stable and reliable. The best part of it is that the lock doesn't communicate with the internet and if my hub or USB stick has an issue, the lock just keeps right on working as expected. The Home Automation system and the lock are peripheral to each other.
I bought the lock as a return from Amazon at a big discount. This lock sells normally for around $150 depending on finish and model.
Problem: How do I see who is at the door or outside without going to the door or window?
Solution: Add cameras that can sense when people are on the porch or in a place where they shouldn't be.
Living with a disability can feel like living with a target on your back sometimes. For those with disabilities, having some control and access to their property through cameras can give them some peace of mind. Also, being able to talk to someone at the door without having to go to the door can increase safety. Lastly, having family - not strangers - have limited visual access to the home can help with both safety and security.
This project is in the early stages and for security reasons, specific details will not be published on the methods used to accomplish the goals above. However, I will say that only locally processed services, tools and devices are used. No cloud control or external 3rd party monitoring is used for privacy and security reasons.
* Update: I am using commercially available cameras and using the feeds from these in open video processing engines. More to come on this in a future post.
I welcome any feedback you would like to give, any questions you have and/or any suggestions you may have for a relevant project. If you are yourself or are taking care of a person with a disability, I would like to hear from you. Your experiences would be very important to me in helping me understand the world from your point of view.
Additionally, if you are a medical professional, a first responder, or someone with special skills in any of the topics I've mentioned above, I would greatly appreciate any advice you would like to give. I am currently receiving guidance from professionals in a few of the fields mentioned but would always appreciate additional support and guidance.
Please feel free to contact me using my contact form. Sorry for the limited communication methods but this helps alleviate spam and marketers.