ImmerSun Solar Power Diverter and myImmerSun Monitoring – Part 1

Background

In a highly insulated house it’s common to require more energy to heat the domestic hot water than for central heating. A heat pump is a good option as the heat source since it can use renewable electricity (unlike, say, a gas boiler) but the efficiency of any heat pump is fundamentally related to the temperature of the water being produced and the temperature of the “source” (air or ground) – all heat pumps are much more efficient producing lots of warm water than a little very hot water.

Another factor is that domestic hot water is required all year round whereas the central heating is only required in the winter. That tends to favour an air-source heat pump because those will be most efficient in the summer (when the air is warmer) even though they can struggle more than a ground-source unit would in the winter.

Yet another factor is that for domestic hot water it’s perfectly practical to use solar power to deliver all the hot water requirements for up to 9 months of the year (depending on the hot water usage and the size of the solar panel installation). With a suitable solar system it won’t be necessary to use a heat pump for hot water in the summer anyway, so it can be better to opt for a ground-source heat pump which is typically better suited for central heating in the winter.

That latter option is the one I selected – a ground-source heat pump for heating and winter-time hot water along with solar power for hot water the rest of the year. The solar system could either be direct solar thermal heating of a water circuit using something like an evacuated tube device or it could be solar PV driving an immersion heater. To my mind the latter seems a lot less complicated and allows the generated electricity to be used for other purposes once the water is hot, so that’s what’s been installed. A key component of the solution is the intelligent power diverter that monitors the (varying) generation of solar electricity and uses “spare” power that would otherwise be exported to heat the hot water.

Intelligent Solar Power Diverter Technology

Heating hot water from a solar PV installation sounds simple – you just turn on the immersion heater in the tank that stores the hot water when the sun is shining and away you go, right? Actually, no. The problem is that most immersion heaters are rated at 3 kW (the same as most electric kettles) and most domestic solar PV installations might just produce enough power to cover that alongside the normal domestic consumption under ideal conditions (i.e. bright sunshine) but most of the time they’ll be producing a lot less power. While a 3 kW immersion heater will still work when the panels are generating less than 3 kW, it will be importing power in order to do that, which is expensive. Fitting a smaller immersion heater (e.g. one rated at 1 or 2 kW) will help, since that permits slightly finer-grained control, but then it will take longer to heat the water at times when more power would be available. You could fit several small immersion heaters and switch different numbers of them on a different times, depending on how much power is available, but that becomes difficult to control – and how many hot water cylinders have fittings for multiple immersion heaters?

A better solution is to connect a 3 kW immersion heater to something similar to a dimmer switch and to drive the heater at whatever power level the solar production can sustain – which is where the “intelligent” power diverters come in. These all work in broadly the same way and there’s some good documentation on the Open Energy Monitor website. In summary, these devices measure the amount of power being exported to the grid and direct most of that to the water heater (until the thermostat in the immersion heater turns it off).

Another consideration is that in the middle of winter you still want hot water so if there hasn’t been enough sun during the day to heat the water tank you need the heat pump to kick in and help out. However, you don’t want to use the heat pump when it’s likely the solar PV will heat the water within an hour or two. A good solution to that problem (assuming your heat pump supports it – my NIBE F1145 does) is to set the heat pump to “block” hot water generation during the daytime and only have it heat the water after around 16:00 – and only if it’s not already hot enough. That – coupled with the fact the heat pump only normally* heats the water to 50 degrees whereas the immersion heater thermostat cuts out at 60 degrees – means the heat pump will only heat the water when the solar PV has failed to do it.

(* The heat pump is set to raise the stored hot water temperature to 60 degrees every week in order to mitigate the risk of legionella bacteria infection. Since that’s hard to do using heat pump technology it actually uses a built-in electrical heater for the last few degrees of heating. Whilst it will still ensure the tank gets to 60 degrees when it’s been told to it’s likely to be starting with a hot water tank that’s pretty much at 60 degrees anyway.)

The main problem I encountered when choosing an intelligent power diverter is that there are quite a number to choose from. For example (not an exhaustive list):

[Update Oct 2021: If I was choosing again now. I’d pick the eddi from myenergi – the technical team that originally designed the immerSUN went on to design the eddi and its related suite of devices and this seems to be the most capable solution on the UK market.]

Another observation is that the market for these devices is relatively small and not very mature and devices tend to come and go as companies cease trading – e.g. I was previously looking at the Optimmersion but that’s no longer available.

In general I’m happy to tinker about with these sorts of things and I like the Open Source approach adopted by the Open Energy Monitor project, but where devices are hard-wired into the house systems and especially where mains electricity is involved I’m more concerned about how a future house purchaser might regard a “home brew” device and I wanted to stick with a commercial system.

In June 2016 I concluded that the Immersun device with the optional ImmerLink Bridge data logging add-on best met my needs and seemed the best engineered solution. It also appeared to be the market leader and is the brand most people recognise. I therefore bought those ready for installation by my electricians. About a month later, 4Eco (the manufacturers of the Immersun) declared they were going into administration. D’Oh!

I resigned myself to the fact that the main Immersun controller (the T1060) would continue doing its thing and that the ImmerLink Bridge (the T1090) would end up as an expensive paperweight since it was trying to contact a server on the Internet that was clearly no longer listening. I was also kicking myself for not going down the Open Energy Monitor route, which would have been immune to any one company going out of business.

Roll forward to April 2017 when the solar PV installation finally got commissioned and monitoring the solar PV installation became more of a priority. One thing that originally appealed to me about the Immersun system (especially with the ImmerLink Bridge) is that it has two current transformers (i.e. electricity metering points) which report on the power coming in from the solar panels as well as the power coming in from (or going out to) the electricity grid. From that it’s able to report on four key metrics:

  • The amount of electricity being generated by the solar panels
    • This information is also available from the generation meter and from the monitoring system built into the solar PV inverter
  • The amount of power being diverted to the immersion heater (if any) since that is directly controlled by the Immersun unit and doesn’t need to be separately metered
  • The amount of power being imported from (or exported to) the grid
  • The amount of power being consumed by the house (based on the difference between the other readings

Without the Immersun monitoring I would have needed other solutions for measuring at least some of those metrics.

The good news is that the Immersun technology was purchased by SISEM Ltd. and everything is working again – or can be, if you know how. Disappointingly I struggled to get any information out of SISEM but some other resources on the Internet allowed me to get the monitoring operational.

Immerlink Bridge Configuration

The problem I was having was that my T1090 ImmerLink Bridge, bought in June 2016, was happily communicating with my main Immersun controller (T1060) via its wireless data link but was failing to connect back to the server that had been hosted by 4eco, the old owner of the Immersun technology. From the logs on my Internet router I could see it was trying to contact IP address 213.123.116.232 but was never getting a reply:

07:01:32.213700 IP immerlink.data.marshflattsfarm.org.uk.87 > host213-123-116-232.in-addr.btopenworld.com.87: UDP, length 56

As a result, the left-hand LED on the front of the iLbridge was permanently showing Amber rather than Green.

What puzzled me was that nobody else seemed to be having this same problem and searching the Internet based on what I thought were sensible key words always drew a blank – which implied that other users were not having any problems. The breakthrough came when I spotted that the menus on the main Immersun unit included a setting for CLOUD IP, which was defaulted to 000.000.000.000. Searching based on that turned up a posting at https://www.facebook.com/solarpowerdiverter/ (actually a re-post from the FaceBook Immersun Users Community) which explained this menu item could be used to set a new IP address for the iLbridge to connect to, and the correct setting is the (current) IP address for live.myimmersun.com (62.30.9.158 as of 2017-05-01 and still the same in 2021).

Immersun SET CLOUD IP screen

With this setting corrected, the IP packet capture changed to:

07:24:56.193333 IP immerlink.data.marshflattsfarm.org.uk.87 > 158.9-30-62.static.virginmediabusiness.co.uk.87: UDP, length 56

Once my iLbridge had been successful in “phoning home” like this I was able to register a myImmerSUN account at http://www.myimmersun.co.uk and all the monitoring sprang into life.

Overview Section of myImmerSUN iOS App screen (diverting 1305 W to the Immersion Heater)

It’s now evident that anyone who previously had a working installation was sent an automatic update to move their iLbridge across to the new monitoring server before the old server was closed down. Presumably any new devices will be shipped with updated firmware containing the new IP address but anyone (like me) who has an old T1090 will need to set the Cloud IP address via the main Immersun unit menu to get it working.

myImmerSUN Data Access

With the data being logged to the myImmersSUN server, the next question is how to access that data – either to log it for further analysis or to display it via other systems. There are two “official” approaches to display the data:

  • Using a web browser to connect to http://www.myimmersun.co.uk which sends a fairly simple HTML-rendered web page to the browser, which refreshes every few minutes (by transmitting a complete new page)
  • Using the iOS or Android app, which provides a nice animated view plus some graphs and summary data

There is no formal, published API.

Looking at the HTML code delivered to the web browser, it soon became clear that was not an ideal source for extracting the few pieces of relevant information – the numbers are there but they’re surrounded by a lot of other HTML for drawing icons on the screen. However, looking at the network traffic generated by the app, that seemed a lot more promising. Basically, the app makes repeated calls to http://apps.myimmersun.com/cgi-json-live&SN=NNNNNN (with NNNNNN replaced by the Immersun unit’s serial number) using HTTP Digest Authentication (i.e. also sending the username and password – presumably for the user account which is associated with the specified Immersun unit) and that returns a JSON string that looks something like this:

{"status":0,"serialno":NNNNNN,"device":1,"grid":-660,"gen":211,"divert":0,"hot":0,"house":871,"self":100,"green":
24,"boost_state":0,"boost_left":0,"holiday":0,"busy":0,"heater":1,"type":"top immersion","lastheard":"Fri Apr 28
18:22:30 2017","link_status":1,"diverted_energy":29,"diverted_value":41,"total_savings":41,"last_event_text":"","
last_event_time":"","user_name":"me@domain.name"}

It not hard to write a script which makes the HTTP GET request (passing the relevant credentials), receives the JSON response, extracts the interesting fields and shares them with other systems – e.g. by publishing MQTT messages containing the data values. A simple proof-of-concept script in Perl looks like this:

#!/usr/bin/perl 
use strict;
use warnings;
use LWP::UserAgent;
use JSON;
use Data::Dumper;

my $useragent;
my $response;
my $decoded;
 
# Construct the HTTP UserAgent object
$useragent = LWP::UserAgent->new( );
$useragent->credentials( 'apps.myimmersun.com:80', 'My Immersun', 'me@domain.name', 'MySecretPassword' );

# Get the Live data summary in JSON format
$response = $useragent->get( 'http://apps.myimmersun.com/cgi-json-live&SN=NNNNNN' );
if ( $response->is_error ) { print $response->error_as_HTML }

# Dump out the JSON key:value entries
if ( $response->is_success ) {
    $decoded = decode_json( $response->content );
    print  Dumper( $decoded );
}

(The trickiest part was sorting out the Realm string (‘My Immersun’) to use for the Credentials.)

I’m currently using a rather more advanced script which polls the server every minute and publishes a subset of the values (grid, gen, divert, house) using MQTT, from where they get logged to an InfluxDB database via Telegraf. The MQTT messages also get picked up by OpenHAB for real-time display on an OpenHAB dashboard.

immerSUN Getting Stuck at Power-On

Sometimes, when the mains power has been off (e.g. when the SMETS2 meter was installed) the immerSUN gets stuck when running through its start-up procedure. The first time this happened I assumed it had been upset by the power cut and would need replacing but I found a post on Simon’s Blog which said to hold down the ‘X’ button while powering-on to by-pass some of the power-on procedure – after which it worked fine.

(Interestingly, that linked post by Simon noted he had used this page to fix the Cloud IP problem, which is exactly why it’s worth making the effort to post this info.)

Update 2020-05-25

I’ve now implemented a more advanced solution which intercepts the UDP packets as they are sent from the immerLINK Bridge to the Cloud server and extracts the readings directly. This provides near-real-time data updates (typically every 5 seconds) and avoids the need to repeatedly ‘poll’ apps.myimmersun.com. For more details of this revised approach see Part 2 of this article.

CC BY-SA 4.0 ImmerSun Solar Power Diverter and myImmerSun Monitoring – Part 1 by Marsh Flatts Farm Self Build Diary is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.