Emoncms v12 release, testing feedback welcome! now on emoncms.org

Im pleased to say v12 of Emoncms is now released! Available via the standard emoncms Admin > Update > Full update mechanism (available in both stable and master branches).


There is no rush to update to this version today - update only if your keen to test and have a bit of time to explore the new changes. If you’d prefer not to be an early tester, feel free to hold off updating for now. Emoncms.org will be updated in a few days time.


It’s important that core and all modules are updated with this update, visual bugs and errors are very likely if the update is incomplete. Watch out for modules or core that have local changes that might block the update of that component.

Please check Admin > Components after the update to note any modules that have show either local changes or have non-clean describe versions. In my example here most are clean, Demandshaper and Usefulscripts are not but that’s fine for this update. I have local changes in usefulscripts but that one isn’t involved in this update.

The big change in this update is the upgrade of the old 2013 bootstrap v2 to the latest version of bootstrap 5.3.8, it then customises this more modern version of the framework using css variables and refactored and tidied up custom css.

A more detailed release note can be read here: https://github.com/emoncms/emoncms/pull/2008.

As part of this update we now have a refined MyElectricFlow app look:

and a refreshed MyHeatpump app (both share a lot of the same layout and css now, MyElectricFlow is just the dark themed version and MyHeatpump is the light themed version of the same css):

There are also new ui for the Admin pages, User account, Sync and Post processing. The app config process is also updated and refined.

The emoncms documentation is also updated here: Getting started: emonPi and emonBase — OpenEnergyMonitor 0.0.1 documentation - the docs is a first pass update that I want to spend more time refining.

I’m really pleased with this update, it’s really nice to finally update bootstrap v2 to v5 and refresh the css throughout emoncms in general. This work completes the update of a number of key dependencies updated in previous releases: Flot v0.8 → v5.1, jQuery is now on v4, Vue v3.5.. A lot of legacy dependencies are also removed. This is quite a milestone as we had been stuck on quite a few of these for a long time. For anyone interested in the detail here the state of development and contributing page may also be of interest.

Feedback welcome!

Emoncms.org is now running 12.1.4

The latest version of the MyHeatpump app now live on emoncms.org as well - includes a reworked version of @Andre_K’s integrated heat demand tool. Thank you @Andre_K for your implementation and inspiration for this, there’s a lot of similarity in that it still implements your multi-linear regression idea, the main change is to use the pre-existing Flot 5 charting library rather than adding Plotly, math.js and jStat. Full details on implementation here Multilinear regression by TrystanLea · Pull Request #206 · emoncms/app · GitHub

Demo available here on @glyn.hudson’s MyHeatpump dashboard:
https://emoncms.org/app/view?name=MyHeatpump&readkey=82a1cb1cf5b17b6e9dd419edc6a17970

Thanks for sharing this - appreciate the hard work that goes into it! I saw the update come through on emoncms.org and have an old 4 inch Android phone running the Solar Battery App just as a visual indicator - unfortunately the Watt readings are now so small they can barely be seen - before I could see them from the other side of the room and at a glance was fine :frowning: Zooming in also has some weirdness where the graph view jumps around - so can’t say this is working well for me. For this app whilst it works well in landscape on a larger screen, I find that in portrait the bare minimum I want to see is the instantaneous power/SoC etc and the larger font worked well before - any chance of increasing the font size (bigger than the headings).

Also, were you able to re-integrate the time module please :folded_hands:

Thanks @Umski Yes, I had been wondering about this, I couldn’t quite decide whether it was better smaller or not. Can you take a picture of what it looks like on your tablet just so that I can see exactly what your seeing? Certainly very open to changing this aspect.

If you can also share any more detail on the graph jumpiness that would be great. A short video of what you mean via our WhatsApp support number would be great if it’s easier (+44(0)1286800870 )

Yes sorry I will do that, thanks for the reminder!

Thanks, I think the way the screen scaled before seemed to work pretty well - the headline values were the focus and if I needed to dive deeper I could hone in on the graph - if the values could be made much bigger than the titles I think that might solve the “screen estate” dilemma. Here’s a couple of screenshots - one from an iPhone mini which sits nicely from side to side and then the bottom is truncated - it’s always been like this but same very small values. The other is from the Android which while sits nicely within the screen but I can’t read the values at the top without getting really close (getting old :wink:)

I think I’ve figured out the graph jumpiness - it’s when you touch the graph area - I don’t recall multi-touch or single touch doing this before, only showing a “spot value” - it’s behaving more like when using a mouse on desktop now with respect to selection, I think - so it could well be me accidentally touching the graph area causing the strange zooming effect of a window within the window as it were - I’ll keep an eye on that.

Contrast on the scales is much more readable now :+1:


I couldn’t help but have a play in Firefox and using the Dev tools fiddled with the font size - I think this is the relevant tweak but there may be other places that I’m not aware of:

.app-live-value {
font-size: 48px;
font-weight: bold;
line-height: 42px;
white-space: nowrap;

Just upping the font to 48px and the line height to 42px seems to work well on the desktop in landscape and if I use the “responsive design mode” to toggle to a smaller phone view also seems to present okay when I change the following:

/* Small phones: header tabs without icons, smaller live values */
@container app (max-width: 399.98px) {
.app-card-head .nav-underline:has(> .nav-link + .nav-link:not(.d-none)) .nav-link { font-size: 14px; }
.app-card-head .nav-underline:has(> .nav-link + .nav-link:not(.d-none)) .nav-link > [class^=“svg-icon-”] { display: none; }
.app-card-tools { gap: 8px; }
.app-live > * { padding: 0 6px; }
.app-live-value { font-size: 48px; }
.app-live-value :is(.power-unit, .power-unit-static) { margin-left: 2px; font-size: 12px; }

and height here:

@container app (max-width: 767.98px) {
.app-live { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 8px; }
.app-live > :nth-child(3n+1) { border-left: none; }
.app-live > * { padding: 0 8px; }
.app-live-value { font-size: 22px; line-height: 42px; }

Would that break anything else (I know the time left might get squished for longer periods!)

Great work. Did the upgrade and the ‘Components’ page is shown ( hope it looks ok ). Also the Apps page looks nice and clean.

@TrystanLea would it be possible to re-add a default weekly view to the zoom chart widget?

Now reinstated in v12.1.7. Will get on to reviewing the app module title font changes soon. I might make it configurable so that you can select small, medium, large text size options from the config depending on how you use the app e.g wall mounted display vs using it on your phone where you might prefer more chart real-estate..

Noted :+1:

Thanks :folded_hands: I’ve not seen a time update come through yet so assuming it’s not been pushed to the live site yet.

Regarding font sizes, yes it would be good to have options for font size as an alternative and have some choice - I use the small display to indicate Watts and see the graph at a glance (usually portrait) but when I want to analyse data I use it on a full desktop in landscape so that I can see the graph better in which case I’m looking at historical rather than instantaneous power so not so concerned. For an always on display I just want to see the Watt values from a distance otherwise I’d need to revert to a GLCD to do the same job the old Android is doing.

Another tweak I noted - I see the time intervals are now in a drop down which I guess is good for keeping things compact but it then needs two clicks to change the value - before I could just click to 1hr which is my usual preference - now it seems to default to 6 hours which again on a small screen gets everything squished in portrait - another config option that might be good to make an option?

Thanks @Umski!

I’ve added an option to set the live value size in the MyElectricFlow app (small or large):

On mobile when there is two rows the live values text also centres which I think looks better.

Yes agreed, also wondering about this one. I thought I’d try this new layout with the drop down so that it matches the graph module layout which is also used for the graph widget in the custom dashboards. To try and have a more consistent approach across emoncms but definitely open to re-considering that.

Thanks, I’m not using the MyElectricFlow app - I did take a look at this but realised I don’t have a single Battery Charge/Discharge feed as was using the MySolarBattery app which at the time required separate charge and discharge feeds (I’m on the paid service :/) so already have this set up and working but if I try to use those feeds in MyElectricFlow now it gets in a pickle though the “large” font size does seem a lot more readable - I see now that MySolarBattery is an archived app - hence the system-wide style changes are maybe having some unseen (as yet) side-effects? Is there any way to apply the font size option to all apps please? :folded_hands: