Home automation

The home automation project started with some basic X10 modules. I'd seen similar in Steve Ciarcia’s Circuit Cellar in Byte magazine decades ago.

Starting development a Samsung Photo Frame SPF-85V was used to display information from a custom RSS feed as an 800px x 600px image. A Windows service downloaded news headlines every so often and updated the RSS feed. Later I added weather, Fitbit stats, sunrise and sunset times, reminders such as birthdays and messages that people leave me online.

Introducing automation the concept of remote devices was added, with only X10 support at first. Adding a web console for configuration and updating the database, automation schedules were up and running. Lights were doing their thing on fixed or sun schedules with optional random offsets.

Adding an ethernet-infrared controller, remote control was added to TV, amplifier and other devices that use typical IR remote controllers.

Modules

The system is comprised of three main modules all hosted internally - a Windows service, an IIS web site and the home automation display referred to as 'Newsbot'.

The Windows service does all the processing of things like Fitbit, news and weather updates, generating the RSS feed for the photo frame in addition to looking for requested changes in device settings and sending updates to said devices. The web site provides access to everything. The output on the photo frame displays the date and time, weather, Fitbit stats, news headlines and major status information. A CLI app provides control from that environment.

The web portal is my home page in Chrome, the mobile page is bookmarked on the iPhone. Both accessed via SSL and require user authentication.

Samsung Photo Frame SPF-85V iPhone console Web console

Server

Being accustomed to appliances doing their thing it was a pain to wake on 2020-03-30 to discover my server of 14 years had died and the apartment didn't work. Messed around manually switching lights and TV on to start the day. Replaced batteries in remote controls. Moved X10 interface, code and database backups to an old laptop.

As the new server was being selected I knew there would be issues with async control of the X10 interface. An ethernet-serial converter I had lying around was put into quick-and-dirty use. Later tidying up the ethernet-based X10 code and moving it into its own thread the control of the remaining X10 devices has been more stable than ever.

Tuya Wi-Fi

I'd always anticipated using devices other than X10 and the code was waiting for it. In 2022 I purchased some basic Wi-Fi controlled devices, played with some .NET libraries and got them online. Over the years X10 devices have been failing, now replaced with Wi-Fi units the apartment is fully up and running again.

The Wi-Fi power sockets are nice and stable, occasionally one or two of the lights lose their Wi-Fi connection. The back end retries until the required state is set. The same code recognises that 3rd party apps or physical switches have been used to control devices and updates the state in the back end. An X10 controller has been repurposed and put in control of the router, back end code detects Wi-Fi or internet issues and restarts the router as required - necessary now that much control, although internal, is via Wi-Fi.

Future

No specific plans but I'm hoping to add other technologies to the system - off-the-shelf sensors and other modules. Given the view from the apartment I've always wanted to add a webcam. Might update lighting to move to a warmer color in the evening. The Arduino project is slowly reawakening, I'm anticipating sensor stats from that being used. As I'm doing more Linux coding at work I suspect Linux-based apps will be introduced at home.

History

  • 2022-07-09 - If Wi-Fi or internet is down then reset router via X10
  • 2022-06-22 - Found a better .NET library to control the Wi-Fi devices, we're up and running
  • 2022-03-03 - Purchased a Wi-Fi light and power socket and started looking at controlling them
  • 2021-12-30 - Finally got replacement server, back end moved from laptop
  • 2020-03-30 - Server died, right at the start of COVID-19 lock downs, back end moved to old laptop
  • 2019-01-26 - Add icon to Newsbot that system at work needs attention
  • 2016-04-03 - Update the photo frame output style - news, device stats, weather, Fitbit, sunrise/set, online messages
  • 2016-02-21 - Add CLI app to control devices
  • 2015-10-11 - Add web page for control from phone
  • 2014-04-20 - Add Fitbit support
  • 2013-07-22 - Rewriting the automation code
  • 2013-06-07 - Web console started
  • 2013-04-21 - Samsung Photo Frame SPF-85V research/purchase, 1st version of RSS feed
  • 2005-11-18 - Busy creating a new internet of things and cloud computing company
  • 2005 - First X10 devices around this time