[APP][DEV][PRO] Octopus Energy Integration

Seems like a good idea to split the heavy / light transactions to reduce the load. :ok_hand:t2:

IOG Users - Problem with Version 1.2.5

@Daneroyd has identified a problem with Version 1.2.5 and which I have confirmed in the code of the app. If you have upgraded (or been upgraded) to Version 1.2.5, then I suggest you back-track to Version 1.2.4 and turn off automatic upgrades for now.

The problem involves changes to smart device status not being recognised by the Kraken app. For some devices (at least) it seems that Kraken schedules dispatches even though the device is not ready to receive them. Following previous discussions with @Daneroyd this problem had been resolved, but has now resurfaced because of the substantial changes to the App architecture and a failure on my part :sad_but_relieved_face: . Testing changes of device status is one of the things that is very hard as a non-IOG user because my test data is essentially static.

Apologies if any other IOG users have experienced problems. For non-IOG users, I am NOT aware of any problems with Version 1.2.5 so you will be safe to continue with the test release.

I was going to let you know that my automations failed last night and my devices not recognised. I re added the device but it didn’t work.

How do we get back to 1.2.4?

Going back to 1.2.4

This link will take you to the 1.2.4 version, if you click install I think it will simply zap the test version. There is a high degree of compatibility in the devices, so it should just work.

The problem experienced by IOG users is associated with the need to do some caching of data from the ā€œheavyā€ transaction so the data remains available during the following (29) ā€œlightā€ transactions. The caching is fine, but there is one gap in the functionality that looks at the cache - need to close that gap.

In 1.2.4 all queries occur at the same frequency so the ā€œoldā€ mechanism of updating the device status from the main Device data every single minute works.

Resolution Plan

I have a fix in place that has been tested.

There is one other small issue that I am aware of that needs to be resolved - I have a fix I just need to implement and test it (later today). Again, this other issue is masked by the differences in 1.2.4.

I hope to have 1.2.6 ready to go by tomorrow morning (better do some more testing :flushed_face:).

The problem has forced me to up the game with my test data, so I now have randomly generated device statuses. I will probably have to have a second set of test data where the device status is constant so I can test the evolution of dispatch data over time.

A Fig-leaf of Better News

The (slightly) better news is that in between 1.2.5 and 1.2.6 I will also have fully implemented the variable polling frequency feature. A side effect of that change is that some ā€œroundingā€ errors in Power calculations have been removed too - the app made an implicit assumption that every event was a minute apart.

To accommodate variable frequency polling all time-based calculations have changed to take the time-base into account. This works by calculating the gap between each successive event - it doesn’t matter what value you set the event frequency to the gap between always tells you how much time has passed. It also helps recovery - if the app stops for some reason when you restart it it knows how much time has elapsed since the last event and adjusts power calculations accordingly.

Bedding In and Moving On

Based on experience with 1.2.5 I shall let 1.2.6 bed in for a few days. Once that’s done it will be on to Gas Tariffs and Energy Saving periods.

Publishing Version 1.2.6

Here’s the plan. I have tested as best I can given the limitations of the test data I have available. When device status changes, the planned dispatches appear or disappear as appropriate.

I am aware of one additional ā€œaccountingā€ defect in Kraken - this will cause the App to overcount dispatch minutes against the 360 minute dispatch limit in some circumstances. That would trigger events associated with the breaching of the dispatch limit too early. This accounting problem is also present in 1.2.4 - so I am not going to wait to fix it before releasing 1.2.6. Resolving the big problem is priority #1 - lower priority concerns can wait for a couple of days (testing did uncover this one :upside_down_face:).

Additional Change

To make the app a bit easier to use for IOG users, I have changed a couple of the Device Status legends as follows:

Old Legend New Legend Kraken Definition
Device Capable Nothing Planned Smart Control Capable - live and ready for smart control (e.g. at home and plugged in) but none is scheduled.
Device Available Being Controlled Smart Control in Progress - smart control (e.g. smart charging) is scheduled or is currently occurring.

Legends not listed remain the same.

Note that ā€œbeing controlledā€ means dispatches are planned, but energy may not be being dispatched right now - there is no separate status that means ā€œenergy is being dispatchedā€.

Plan B

If it proves that my testing efforts have failed to meet the need, the fallback is to (a) let me know at once - please - and (b) revert to 1.2.4 again.

Version 1.2.6 Published To Test

IOG users please do test this and let me know what happens.

Installed.

It sure if it’s just me David but I updated to the new version but there was no data coming from Kraken. Ive removed and added the devices, restarted the app, but nothing.

Hi Stu. No idea why that should be. The changes aren’t that fundamental from the version 1.2.6 (just some internal logic, nothing about data access). Data is coming through fine for me. Suggest you cut back to 1.2.4 let it run for a while to ensure it’s ok, then try migrating again. Gotta love technology…

There is the possibility of a logic error that is making stuff break mid-event. That would manifest as no data coming through. It didn’t show up in my testing though (else I would have mended it). Definitely go back to 1.2.4, run for a while, try again. Fall back to 1.2.4 is your friend.

I’m back on 1.2.4 now and all is good.

Can I make a feature request? Could we have a different status indicator icon for in dispatch? Maybe volts flash or something?

Let’s fix the 1.2.6 thing first, then we can discuss. I have PM’d you. About to update that too.

1.2.6 now installed and so far so good. Hopefully just a glitch on my side.

That’s good news. Any other IOG users on 1.2.6 yet?

Definitely a problem with 1.2.6 on my side David.

it’s not registering the PQ changing to 0.

I’ve reverted back to 1.2.4 and PQ is now 0 during my dispatch.

Can you monitor the situation and see if you get a PQ notification in an hour’s time? I have a sneaking suspicion that the algorithm that detects timing changes (newDay, newTariffSlot…) has failed to account for the change from GMT to BST. Time management in JS is always hard because the built-in Date class doesn’t have any awareness of timeZone. Your Homey operates in Zulu time (always GMT+0); we of course have recently changed from GMT to BST.

Because it is related to a dispatch the signal may never occur. If the dispatch is less than an hour long then by the time signal is due to arrive, the dispatch will be over - it will no longer be in the list of dispatches and Homey will never bother.

Glad that 1.2.4 is a safe-haven at least while I get all these glitches sorted. The good news is that I am already on the case - have realised the glitch and have changes in place to fix it I think. There’s a stack of testing to be done before it can be released. It’s unfortunate that these big changes have more-or-less coincided with the DST change - otherwise I would have spotted the problems earlier in testing.

Removed the first bit because I see (rereading your post that you have reverted). That’s fine I will test the changes here. 1.2.4 continues to be the safe-haven for now. Sigh. :face_exhaling:

Grateful thanks @stu_f for keeping me abreast of the problems.

Has any non-IOG user noticed Price Quartile change events being notified late (or missed)? Please do let me know.

Thanks!

None of us would be here with this app if it wasn’t for your efforts so don’t give yourself a hard time over it, these things are sent to try us.

The good thing is we have a working solution so the world will keep on turning.

I’m a bit compromised today because I didn’t fill the battery last night otherwise I’d be able to get you some logs.

Installed

Hi Patrick. I trust you have installed 1.2.4 - though 1.2.6 seems to work for non-IOG users. Welcome to the app.

I was on 1.2.4 but installed 1.2.6 to see how it goes. So far everything looking fine. I am on IOG and also have gas. It is also pulling through my Ohme charger as a smart device. So been watching closely your updates :slight_smile: