MCPcopy Create free account
hub / github.com/UtilitechAS/amsreader-firmware

github.com/UtilitechAS/amsreader-firmware @v2.5.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.5.7 ↗ · + Follow
761 symbols 1,987 edges 120 files 3 documented · 0% updated 12d agov2.5.7 · 2026-04-09★ 46132 open issues

Browse by type

Functions 658 Types & classes 103
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AMS Reader

This code is designed to decode data from electric smart meters installed in many countries in Europe these days. The data is presented in a graphical web interface and can also send the data to a MQTT broker which makes it suitable for home automation project. Originally it was only designed to work with Norwegian meters, but has since been adapter to read any IEC-62056-7-5 or IEC-62056-21 compliant meters.

Later development have added Energy usage graph for both day and month, as well as future energy price. The code can run on any ESP8266 or ESP32 hardware which you can read more about in the WiKi. If you don't have the knowledge to set up a ESP device yourself, or you would like to support our work, please have a look at our shop at amsleser.no.

Installing pre-built firmware

If you have a device already running this firmware and you for some reason need to upgrade via USB port, you can use a this web-based tool

If you are using a development board and want to flash a pre-built firmware manually, get the necessary files from the release section and visit the WiKi and have a look at the Flashing section

Building this project with PlatformIO

To build this project, you need PlatformIO installed.

It is recommended to use Visual Studio Code with the PlatformIO plugin for development.

Visual Studio Code

PlatformIO vscode plugin

For development purposes, copy the platformio-user.ini-example to platformio-user.ini and customize to your preference. The code will adapt to the platform and board set in your profile.

Licensing

Initially, this project began as a hobby, consuming countless hours of our spare time. However, the time required to support this project has expanded beyond the scope of a hobby. As a result, we established ‘Utilitech’, a company dedicated to maintaining the software and hardware for this project as part of our regular work.

To ensure the sustainability of our venture, we have opted to license our software under the [Fair Source License] (https://fair.io). This approach allows the software to remain free for personal use, while also ensuring full transparency of our code’s inner workings. It also prevents competitors from exploiting our work without contributing to the maintenance of the code or providing technical support to end users.

For more information, please refer to our LICENSE file.

If your usage falls outside the scope of this license and you require a separate license, please contact us at post@utilitech.no for further details.

Core symbols most depended-on inside this repo

Shape

Method 555
Function 103
Class 101
Enum 2

Languages

C++94%
TypeScript6%

Modules by API surface

lib/AmsConfiguration/src/AmsConfiguration.cpp85 symbols
lib/SvelteUi/src/AmsWebServer.cpp60 symbols
lib/AmsData/src/AmsData.cpp46 symbols
lib/EnergyAccounting/src/EnergyAccounting.cpp35 symbols
src/AmsToMqttBridge.cpp33 symbols
lib/HomeAssistantMqttHandler/src/HomeAssistantMqttHandler.cpp31 symbols
lib/AmsFirmwareUpdater/src/AmsFirmwareUpdater.cpp28 symbols
lib/AmsDataStorage/src/AmsDataStorage.cpp25 symbols
lib/PriceService/src/PriceService.cpp24 symbols
lib/SvelteUi/app/src/lib/Helpers.js21 symbols
lib/AmsConfiguration/include/AmsConfiguration.h20 symbols
lib/HwTools/src/HwTools.cpp19 symbols

For agents

$ claude mcp add amsreader-firmware \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page