Smart Home Energy Modelling Project

Note:  This is an on-going project and will be extended as our smart home solar installation progresses. Like most of my smart home, I'm aiming for a zero touch user experience, where everything just works intelligently around us. I don't want to be making the complex decisions outlined below. I want my smart home to do it all for us and to make a better job of it, by having all of the required context available. This project describes the models used to implement our smart home energy management.

As soon as I started to look at doing some really intelligent smart home automation based around energy generation and consumption, I realised that my contextual smart home needed much more context than it currently does. My Home Control System can only do the really powerful things that it does to improve our quality of life by having whole home context. It is also going to be a key factor in maximising our Return On Investment (ROI).

My contextual smart home uses models (Java classes) to model different object types and all the objects that form the whole home context. There are currently 400+ objects, with 40+ object types. There are also 120+ IP networked devices in and around our home and 300+ sensors installed within our home and garden.

Constants

My contextual smart home has a file that defines some constant things it needs to know (public static final variables in Java for the coders). It is also designed to be used in many homes and I run multiple instances for debugging and testing, so it also has some installation specific constants. The relevant ones here are:

Environment & Weather

My contextual smart home knows about its local environment. As well as local weather sensors, it pulls in Internet feeds and weather forecasts and models them in such a way that it can understand the content.

It knows about the the sun, how bright it is, where it is in the sky, etc. It knows about sunrise and sunset and also knows about seasons.

My @smartest_home occasionally tweets in real time about the solar azimuth.

My @smartest_home occasionally tweets in real time about the solar zenith.

Baseline Usage

My contextual smart home models our baseline energy usage for both electricity and gas on a monthly basis.

Historical Usage

My contextual smart home will collect and store the following on a monthly basis (from installation onwards):

This will allow it to use this information in real-time, to make better decisions throughout the year.

Energy Prices

In order to make intelligent decisions in real-time, my contextual smart home needs to know the current tariff and the associated energy pricing for both import and export at any given time of day. It must also know if these are peak times, normal times or cheap times to import and export energy. I also plan to model and store historical data by the hour, for each day of the week.

The current tariff and prices are modelled as objects called:

These will be used to make intelligent decisions on when to charge our electric vehicle, pre-heat the hot water tank, etc. Octopus provide an API to get this information.

Meters

My contextual smart home models both our gas and electricity meters these are read in real-time and form part of the whole home context.

My meter readings will be accessible via the Octopus API, once our smart meters have been installed.

Electricity Generation, Usage & Storage

Part of my smart home solar energy project includes a Tesla Backup Gateway and Tesla Powerwall 2. This project is to integrate the gateway into our contextual smart home, so that it can perform intelligent energy management for us using whole home context and the Gateway's API.

My Home Control System makes for solar energy generation looking 6 days ahead. I'm still tryig to understand how far I need to look ahead, especially as the accuracy reduces. For now I have two specific objects:

Other related objects modelled already are:

There are various APIs available to get this information both locally and via cloud services.

My @smartest_home sometime tweets about Solar Power.

Tesla Backup Gateway & Powerwall

My contextual smart home models the Tesla Powerwall and intelligently controls it using its (unofficial) API. As far as my smart home is concerned the Powerwall has three modes:

  1. Normal - The battery behaves normally, charging if excess solar energy is available and discharging to avoid importing energy.
  2. Charging - The battery is forced to charge at a defined rate.
  3. Discharging - The battery is forced to discharge at a defined rate.

It models the rate of charge/discharge, so that it can dynamically control this based on whole home context.

My also has all the information needed to determine what precautions and actions should be taken to manage power outages. This means modelling something called the 'Tesla Powerwall Minimum Level' and this is updated dynamically based on time of day, time of year, the NOT DEFINED, the Solcast forecasts and several other factors.

At any one time my smart home has a view on what the 'Tesla Powerwall Target SOC' should be and will charge the Powerwall on an overnight cheap-rate tariff if this is not reached using solar energy.

Hot Water

One of the key ways I can see to save money and maximise our Return On Investment (ROI), is to use spare solar electricity to pre-heat our hot water tank, instead of using gas. This only makes financial sense if we would get paid less to export this 'spare' energy, than we pay for the gas used to heat the water. Hence, knowing the current 'Energy Export Price' is key to making this decision.

I model the following objects as part of the hot water heating:

HVAC

I currently model the following objects as part of our HVAC:

Transport

My contextual smart home already models our transport and I will be extending these models to support our electric vehicle.

Some new objects modelled are:

My @smartest_home occasionally tweets about the battery state of our Cupra Born.

Appliances

As part of our smart home solar energy project, we plan to add a hot tub in 2023.

Summary

If you are considering moving to Octopus, you can use this referral link and Octopus will give us both £50.

Further Reading

Buy Me A Coffee

If you found this page useful you can buy me a coffee. This helps me maintain this website and add more content.