Smart home vs an automated home

Smart v automated home

Introduction

In this article I'll touch on the Internet Of Things (IOT) and what it is.  I will talk about, and show similarities and differences between a smart home versus an automated home.  I will talk about different home automation software packages and different ways to gear your IOT devices towards making your home more of a smart home.

Internet Of Things

You may have heard the terms IOT or IOE before and said, what the heck is that.  IOT stands for the Internet Of Things.  Similarily, IOE stands for the Internet Of Everything.  IOT and IOE,  in it's broadest sense is the process of making the things that we use every day, in some way shape or form, connected to the internet.  These things have various sensors and control functions.  Being connected to the internet allows outside access to to the data and control that those sensors and controls provide.  IOT is a way of simplifying the world around you.  IDC, a market intelligence research firm, says that there are around 13 billion connected devices in use worldwide already.  Business Insider (BI) Intelligence projects 34 billion devices will be connected by 2020.

Home automation projects

X10 LogoOne aspect of IOT that is becoming more common is home automation.  Home automation is nothing new though.  My start into home automation began many years ago with X10.  I found it nice to be able to control devices remotely.  With their software called ActiveHome, I could also automate things with motion sensors and timers using a computer.  After using it for a bit, I found that there were things that I wanted to do that my X10 hardware could not.  Since then I have tried a number of different software packages, most of which fit in the realm of home automation platforms.Automation controllers  Some of these have included MisterHouse, Domoticz and most recently my VeraPlus controller.  I have another blog post talking about my home automation setup.  https://dan.bemowski.info/2017/06/11/my-home-automation-setup/

OSA smart homeOne project I was a part of that geared itself toward being more of a smart home system than an automated home system.  That project was called Open Source Automation, or OSA.  The features that drew me toward the system were it's ability to integrate a number of different types of hardware into one system.  Another thing that drew me toward it was it's focus towards being a smart home controller. When I was on the project, the smart home features were in their infancy, but moving forward.

Smart home vs automated home

So what is the difference between an automated house and a smart house.  The ability for you to turn devices on and off from your phone, and scheduling lights and other devices to turn on and off on different schedules, simply means that you have an automated home.  You may ask then, how is that different from a smart home.  A smart home adds other layers on to the automated home system giving it a new level of functionality.

The broadest aspect of a smart home is gathering lots of data.  Smart homes are made of many data gathering tools and sensors.  Gather more data and you can  make more intelligent decisions based on that data.  Another thing we'll throw into the mix is objects.  These objects have many properties.  The properties of these objects, combined with data that your system has collected can now make smart decisions.  Now your system is gearing up to be a smart house.

One of the biggest pieces of data in all of this, and the most difficult to manage, is occupancy sensing.  A basic level of occupancy sensing is to put motion sensors in a room that will turn lights on and off.  However, the use of a motion sensor will only tell your system that one or more people occupy an area.  Now what if you could tell how many people were in that area.  To take that a step further, what if you could tell exactly who was in a particular area.  Now you can make smart decisions based on that added data.  

People objects

People iconPreviously we mentioned objects and their corresponding properties.  So lets say we defined a person as one of those objects.  We'll define two "person" objects using myself (Dan) and my wife (Karen) as examples.  So let's say Dan likes the temperature in a room to be 70° and he likes a lot of light in a room.  Two properties for Dan would then be "temp = 70°" and "lightLevel = 100%".  Now Karen likes the temperature in a room to be 67° and have the lights a little dimmer, so her two properties would be "temp = 67°" and "lightLevel = 70%".  Let's combine this with motion sensing with person recognition.  You can now define your rule on your main controller to say:

If ( motion_sensed ) {
    if (furnace_mode == off ) {
        set furnace = on; //Turn the furnace on if someone is in the area
    }  
    set furnace_temp = temp; //Set the temperature to the users desired temp
    set lights = lightLevel ; //Set the lights to the users desired light level
    }
}

So with that, if I walk into the room and the furnace is off, it will set the temperature to 70° and turn the lights on to 100%.  If my wife walks in under the same scenario, The furnace will set itself to 67° and the lights will dim to 70%.

As you can see, the more data you can gather, the smarter, more informed decisions your automation controller can make based on that data.  Using this approach can save energy and improve the quality of life for the occupants.  You should now be able to tell the difference between a smart house and an automated house.

Conclusion

So to sum it up, an automated house gives you control of devices from an external source such as a smart phone and limited action from other sensors such as motion sensors.  A smart house makes it's decisions using multiple factors and sensors.  Check out the ongoing discussion on this topic on the MySensors website https://forum.mysensors.org/topic/7814/a-smart-home-vs-an-automated-home/ .

Related Images:

Adding HVAC overlays to MisterHouse

Introduction

DISCLAIMER: This is an old topic that I migrated from my old website due to the traffic it used to get.  I no longer use MisterHouse for my automation, so I will not be able to answer any questions regarding this topic.  Some of this information may be out of date, but may still work.

indoor temperatures graph

For some time now I have been using the MisterHouse automation software with my Raspberry Pi as my main automation software.  One of the features that I use is the weather data from the internet_weather.pl common code module.  I also have an RCS-TR40 RS485 thermostat and 7 one-wire temperature sensors throughout the house that I use with this setup also.  The weather module has a graphing feature that allows me to graph the indoor temperatures from my one-wire sensors.  A sample of this is shown to the right.  Though this was a nice feature, there was somehting missing.  I wanted a visual representation of my HVAC operation overlayed on the graph.  I saw a perfect example of what I was looking for on Marc Merlin's blog site marc.merlins.org/perso/homeha/2009-12.html.  About 1/4 of the way down the page you will see the 2 graphs.  Marc uses cacti with RRD to get his results, but I was using a module in MisterHouse that did not have this functionality.  This post shows the steps I took to modify the code in the weather module to be able to do this.

The Code Modification for HVAC Overlays

Before performing any of the steps described here, it is always a good idea to make backups of the files that you are modifying in the event that you need to revert back.  With that said, let's proceed.

The main file that you will need to modify is the weather_rrd_update_graphs file located in the MisterHouse/bin folder of your installation.  When I made the modifications to my setup, I had to start a new RRD database file because of the way that I modified the file.  I am going to show you how to do this in a way that SHOULD NOT affect your current RRD database.

The first step is to locate the section of code that defines the default color codes for the graphs.  In my file, this started at line 44.  Depending on the number of HVAC zones and whether you want to show heating, cooling or both for these zones, this will determine the number of tempspares that you will want to sacrifice for this.  In my setup I only have single zone heating and cooling, so I would only need to hijack $tempspare9 and $tempspare10.  The default color codes used for 9 and 10 are "66FFFF" and "0000CC" respectively.  These will need to be changed.  I used "FF6F7D88" (9) for the heating color, and "6F87FF88" (10) for the cooling color.  One thing you will notice that is different with these 2 values is that they are longer than the original values with the added "88" at the end of each. This is very important as the last 2 hex values are the transparency values.  This is what allows the HVAC color bars to be overlayed over thetemperature line graphs and still have them visible.

The next part is a bit tricky.  You will need to remove the tempspare RRD DEFinitions for whatever $tempspares you are using for this.  In my setup I would remove tempspare9 and tempspare 10 DEFs.  For each tempspare, you will need to remove 6 lines of code.

1 ."\"DEF:mintempspare9=$RRD:tempspare9:MIN\","
2 .($weather_uom_temp eq 'C' ? "\"CDEF:fmintempspare9=mintempspare9,32,-,5,9,/,*\"," : "\"CDEF:fmintempspare9=mintempspare9\",")
3 ."\"DEF:maxtempspare9=$RRD:tempspare9:MAX\","
4 .($weather_uom_temp eq 'C' ? "\"CDEF:fmaxtempspare9=maxtempspare9,32,-,5,9,/,*\"," : "\"CDEF:fmaxtempspare9=maxtempspare9\",")
5 ."\"DEF:tempspare9=$RRD:tempspare9:AVERAGE\","
6 .($weather_uom_temp eq 'C' ? "\"CDEF:ftempspare9=tempspare9,32,-,5,9,/,*\"," : "\"CDEF:ftempspare9=tempspare9\",")

Now, where you deleted these lines of code, you will add 2 lines for each tempspare you are replacing.

1
."\"DEF:tempspare9=$RRD:tempspare9:AVERAGE\","
2 ."\"CDEF:ftempspare9=tempspare9,1,EQ,INF,UNKN,IF\","

Next, you will need to change the LINE2 definitions for your tempspares to AREA plots.  Find the following lines:
. ($sensor_names{tempspare9} ? "\"LINE2:... :'')

Remove the "LINE2" and "GPRINT" lines from each and replace with this:

"\"AREA:ftempspare9#${colortempspare9}:" . sprintf("%-${max}s",$sensor_names{tempspare9}) . "\","

For the last code modification, you need to edit the weather_rrd_update.pl file in "misterhouse/code/common/".  Look for this block of code:

if($config_parms{weather_uom_temp} eq 'C') {
grep { $_=convert_c2f($_) unless $_ eq 'U' } ($rrd_TempOutdoor, $rrd_TempIndoor,
$rrd_TempSpare1, $rrd_TempSpare2, $rrd_TempSpare3, $rrd_TempSpare4,
$rrd_TempSpare5, $rrd_TempSpare6, $rrd_TempSpare7, $rrd_TempSpare8,
$rrd_TempSpare9, $rrd_TempSpare10, $rrd_DewOutdoor, $rrd_DewIndoor,
$rrd_DewSpare1, $rrd_DewSpare2, $rrd_DewSpare3, $rrd_TempOutdoorApparent
);
}

You will need to remove all references to TempSpareXX that you are converting.  If not done, this could prevent the HVAC bars from showing up if you have your user configuration "weather_uom_temp" set to "C"elsius.

HVAC overlays user code additions

Now you need to define things in your user code.  This will vary for each setup as thermostats and/or ways of identifying that the furnace or AC is on are done differently in each setup.  This is basically how I have it set up in my user code:

# Define the weather hash's initial starting HVAC values
if ($Startup or $Reload) {
    $Weather{TempSpare9}  = int(0);
    $Weather{TempSpare10} = int(0);
}

#### Now, if your furnace is on tempspare 9, the code will be something like this: ####
if ($RCS_current_state eq 'heat') {
# Tell the weather hash that the furnace is on
$Weather{TempSpare9} = int(1);
} else {
# Tell the weather hash that the furnace is off
$Weather{TempSpare9} = int(0);
}

Last, you can tweak your setup in your mh.private.ini file adding your own sensor names for each tempspare that you set up.  You can also tweak the colors of your displayed bars from here the same as your other sensors.  Remember though, if you change color values in your mh.private.ini file, you NEED to add the transparency value to each color.  I found 88 to be a good transparency value for me, but your situation may differ.

Below is a sample output of my setup with the furnace overlays in place.

Related Images: