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 an RSS feed as an 800px x 600px image. A Windows service downloaded news headlines every so often and updated the display. 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 locally - 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, processing 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.

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 operating without using a cloud service. Over the years X10 devices have been failing, now replaced with Wi-Fi units the apartment is fully up and running again.

The Crest AU122 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.

* They started dying after 12 months. Second set had same lifespan.

Future

No specific plans but I'm hoping to add other technologies to the system - off-the-shelf sensors and other modules. I need to find LoRa, Zigbee and Z-Wave hubs with which I can interface.

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

  • 2024-07-05 - Second last of the Tupa switches died, picked up Tapo switches and new library required a backend change from .NET Framework 4.7.2 to .NET 8
  • 2023-06-08 - Webcam worked great for 2 weeks then started having corrupted pics, going lower level with better control
  • 2023-05-23 - First EKO Smart Wi-Fi Plug KSP1EM_V2 power socket installed, let's see how long it lasts. [edit 2024-07-07 all but one dead]
  • 2023-05-16 - Finally added webcam support to the system to take a snapshot of Melbourne every hour - I've been wanting to do that for years
  • 2023-05-01 - Two Crest Smart Home Single Power Adaptor AU122 Wi-Fi power sockets have failed over the last days
  • 2023-03-05 - Two Crest Smart Home Single Power Adaptor AU122 Wi-Fi power sockets have failed in the last 3 days just on one year since purchase
  • 2022-12-27 - Add ability for modules to automatically turn off after so many minutes - the fan now automatically switches off after 120 minutes
  • 2022-12-22 - The amplifier was scheduled to switch off before 'curfew', the TV now reduces it volume at the same time, later 'curfew' on Friday & Saturday
  • 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 Genio I002943 light and Crest AU122 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