I think for now I'm not going to go ott and buy a load of equipment.
Already running ethernet cable in my house so I'll just run some to where I may want Poe devices in the future.
Whatever I do I want it to be modular so I can swap parts out as things improve and hopefully become more integrated. I'm also comfortable enough setting things up myself but I also don't want something that requires constant tinkering and ends up being a time drain.
I went fully DIYOW (Do it your own way). I am however a software engineer who has always had a dream of an automated home. For me, using an existing, commercial proprietary system is a no go. I don't want my automation to require the Internet or be bound to any external services or subscriptions. I want the ability to do the software myself.
This has led me to go down to the metal so to speak. While it sounds scary when you consider flashing micro-controllers with your own firmware and writing your own "hub" controller in Python, there is such a vibrant and active "Maker" community online and such great technologies available very cheaply that you can get some pretty cool stuff working with a few hours work.
I started with a Raspberry Pi and a few weather station sensors. However I then discovered the ESP8266 which is at the heart of so many commercial smart home devices. It's a chip about the size of your thumb nail which has about 10 times the power of an Arduino and a fully functional TCP/IP and Wifi stack. Literally code for a basic webserver comes "in the box" and all you need to do is change your Wifi SID and PSK and off you go. Put a sensor or two on it and drop it down the back of the sofa or clip it to the underside of a table/bench/shelf and you have a smart home probe.
Recently the ESP32 has become easily available, it has even more power than the 8266 but also has BLE 4 (Bluetooth low energy). This little device opens up so many options for "presence awareness" in a smart system. Consider a temperature probe clipped descretely to the back of your sofa which is sending it's termperature data over Wifi every 5 seconds, but in addition it provides a bluetooth service which you can pair your phone to. Of course having the room temp pinged to your phone every 5 seconds is not all that interesting, except that the little temp probe knows you are in the room (or in range of the bluetooth at least). It can now notice the control system with a probability of you being in that room. The stronger the signal the more likely.
You don't even need to "Frankenstein" up the hardware, if you look at
https://www.itead.cc/ for example and do a bit of research you will find that a lot of their smart products actually run on ESP8266 or ESP8285 chips. They are also "hackable" to flash custom firmware or your own code. Most are just a relay controllers, but some have sensors. The do however keep one of the difficulties neat and tidy as they contain their own power supply. With ESPs dev boards you need a 5V USB power supply. So that's a mains powered, wifi enabled, relay controller with a temperature sensor. Perfect for switching your heating or lights/appliances on and off.
I choose to write my "hub" in python on the RPI. So far it's a datalogger with all the devices able to send data, updates or brand new data to it and it collates the data, timestamps it and makes it available to any other device that wants it. (Security is not a concern unless someone hacks my Wifi and they are welcome to know what temperature it is in my garage!). Other modules fetch this data and write it into datalogging archives for graphing, or displaying it on a LCD screen.
So far I have the following features:
* Bedroom temperature.
* Living room temperature.
* Garage temperature.
* Outdoor temperature, humidity, pressure.
* Solar panel volts, amps, power, battery volts, load demand.
I am just about to add a SOnOff Wifi switch to the heating and have code already written for running schedules based on the above data and time of day, day of week stuff.
I suppose one thing you will miss going this way is pretty UIs. Unless you make them yourself or manage to integrate your DIY stuff into a commercial system's UI, you are going to be stuck with ugly boring HTML pages. You also become responsible for the security when you want to access it remotely.
EDIT: Although, these seem almost too good to be true:
https://www.itead.cc/7-0-nextion-in...-capacitive-touch-display-with-enclosure.html