The firmware source code is published under a Fair source license on our project Github page, where you can also download compiled binary code for many popular Espressif micro controllers.
While hobbyists are free to use the firmware on their own hardware, there is a use limitation of maximum 5 devices per user.
The cost of developing and maintaining the code is covered by our sale of hardware from our webshop https://amsleser.no.
We strongly encourage users to report bugs and other issues in the Issues section of the project Github.
Your ideas to improve the functionality are also welcome!
This wiki manual gives:
Please see the user manuals for each device:
The firmware is primarily designed to run on hardware developed and sold from our webshop https://amsleser.no. Our designs are currently based on the Espressif ESP32-S2 micro controller with 4 MB flash memory. Previous models were based on the Espressif ESP8266 micro controller.
The firmware can also be configured to run on user hardware by selecting a “generic” hardware profile during setup - and assigning GPIOs on the Configuration screen.
The firmware connects to the following peripherals:

Micro controller connections
When using the firmware with our devices Pow-K, Pow-U and Pow-P1, the hardware profile is predefined, so the micro controller knows how to address the peripherals.
If the firmware is run on user hardware, GPIO allocation is done by selecting a “Generic” hardware profile, which allows allocation of GPIOs on the configuration screen.
See this wiki page.
Before starting, please consult the device User Manual to get familiar with the user buttons for your device.
In both cases, reboot is confirmed by a short green/yellow/green blink sequence on the RGB LED.
Press and hold the "AP" button until the LED is steady yellow (white on Pow-U and Pow-P1). A factory new device should enter this mode directly after power-up.


An alternative to setting Static IP at initial configuration:
Parameters for configuring static IP:
Press “Save”. The Device will restart, connecting it to your router. The AMS2MQTT access point will no longer be available.
Reconnect your PC/pad/mobile phone to your router and connect to the Device using its IP address or mDNS Hostname. In most cases, this will be automatic; just wait for the browser window to reconnect.
If your device is new, you will be asked whether you accept some data collection that is needed to enable one-click firmware upgrade of your device. This can later be changed from the Status/Info page:

Select and click Save. The main screen will then open, initially without data:

If your device is a Pow-U or Pow-P1, you can now remove the external power and connect the device to your meter using the appropriate cable.
After a few payloads, the device should auto-discover the baud rate and parity used by your meter and display some data on the main screen.
You can now proceed with remaining configuration.
Access the configuration screen by clicking the gear icon in the upper right corner.
There are three buttons:

Note for old ESP8266 devices (Pow-K layout 1.4 or older, Pow-U layout 1.5 or older)
A Factory reset does not erase the board type. This is deliberate — the hardware configuration is kept, and you are not asked for it again.
That is fine on a device that has been working. But if the device has never delivered any data, or if you received it second-hand, the board type may be wrong from the start. Check it on the Status/Info page, where the device is listed as "Device:" followed by the board type. Compare it with the silkscreen text
GPIO12orUART0on your board.To correct it, click the board type on the Status/Info page, or add
/vendorto the device URL. Changing it there does not require a new Factory reset, and your Wi-Fi settings are kept.

Price modifiers example, modifiers are applied in the order they are listed. Order can be changed by using the arrows on the right-hand side.

The price configuration gives an option to configure price modifiers that modify the published spot price to fit with the contract you have with your energy supplier, regarding import (consumption) or export (production). Defined modifiers are applied in the order they are configured/listed, and can be configured with restrictions on:
Enter a suitable name in the first field, then:
"Import" is power you buy (normal consumption).
"Export" is power you deliver to the grid, from solar panels, wind turbine etc. Note that this is not your power production, but what is exported to the grid.
The above examples should be useful to understand how to use this feature. When hours or days are green, they are selected.


There are some known cases of meters that report an extra digit on some parameters, so that they display wrong values by a factor ten. Use multipliers to correct this.
Example: If the displayed current reading is 10 times too high, enter 0.1 as current multiplier.
Some larger ("industrial") installations have Current transformers installed.
To display correct values on such installations, multipliers must be applied. Consult your grid company if the readings you see in the amsleser user interface are incorrect, they will know the multiplication factor needed.
Example
If your installation has Current transformers with a factor 50, you will without setting Multipliers read only 2% of the correct values for Watt, Amp and kWh.
The correct multiplier settings will then be:

Select


This section is used if you need to change the Wi-Fi SSID.
This section is used for setting Static IP and NTP server. Default setting is DHCP (not Static), which is normally fine. Advanced users may want to make adjustments.

Setting static IP address is explained here.
This section provides instructions on enabling and configuring a connection to an MQTT broker.

/command if nothing is configuredBy activating AMS reader cloud the device will send data to our web server which can show a web page that mimics the main page in the user interface. This will allow you to access your user data from any internet-connected browser. Access to the service requires user create an account and log in. Using the service is for the moment free of charge.
How to use the service:

When you Return to the configuration screen, a link Connect device to my cloud account is shown. Click it.





Energy speedometer
By activating Energy Speedometer a QR code is displayed that will enable sending data to an Energy Speedometer.
Activation of this options sends data to a third party web server that Utilitech AS / amsleser.no do not have access to, and is not responsible for. Before activating, user must consider and decide whether data safety is sufficiently preserved.
Used to activate the load balancing feature on a Zmartcharge EV charger. When activated, you'll be prompted to enter your Zmartcharge token:

Activation of this options sends data to a third party web server that Utilitech AS / amsleser.no do not have access to, and is not responsible for. Before activating, user must consider and decide whether data safety is sufficiently preserved.
There are no affiliation or links between Utilitech AS / amsleser.no and the companies selling the Energy Speedometer or the Zmartcharge EV charger. Any inquiries or questions regarding those devices must be directed to those companies.

This section is specifically for Norwegian (and some Swedish) users, to support the “Peak power” fee introduced in Norway in 2022 as part of the grid fee. This configuration section will therefore only be visible if a Norwegian or Swedish price region is selected in the “General” section.
If your consumption exceeds a certain threshold, a penalty fee will be added to your next monthly bill. If you also surpass the next threshold, the fee will increase – and so on.
In Norway, the value that is compared with the threshold levels is defined as the average of the highest hour-interval consumption on three different days of a calendar month.
The threshold levels vary between grid companies, so you need to consult the web page of your grid operator and adjust the levels if needed.
See here for an example that shows how to interpret the graph that results from activating this functionality.

This section allows you to customize which sections are displayed on the main page. This is particularly useful if you want to simplify the display for daily use.
From the pull-down menus, select Disabled, Enabled, or Auto. The Auto option means that a section will be displayed if such data is available.
Please note that there is no temperature sensor on Pow-U, Pow-K, or Pow-P1 devices. You can install temperature sensor yourself on newer versions of Pow-K and Pow-P1 that are in sale from end 2023. See the device User manuals.
Browser Dark mode is implemented, with the following options:
The firmware supports changing the user interface language.
If your language is not on the list of languages, you can make a new translation and submit it for review: https://localazy.com/p/amsleser
To change user interface language:



On newer devices the LED can be disabled.
Useful for situations where the power meter is exposed, so that the blinking is disturbing.
Activate this feature if you encounter an issue that requires in-depth investigation.
For instructions on how to use it, visit https://amsleser.no/blog/post/24-telnet-debug
Remember to turn off debugging when you are done using it.
Access the Status/Information screen by clicking the ⓘ-symbol in the upper right corner.
The header bar continuously displays:
A red error banner is displayed in the header bar in case of:

By clicking "Update consents", you can activate or revoke the permission to use one-click firmware upgrade of the device (during which some data is collected).
Pressing the “Reboot” button will reboot the device.

This section displays the brand, model, and ID number of your energy meter. Most (but not all) power meters send this information on the HAN port.


Displays the currently installed firmware version, and gives the option of selecting Firmware release channel.

User can select to receive download invite for less mature firmware releases:
| Channel name | Description |
|---|---|
| Stable | Recommended production releases (default) |
| Early | Early access builds |
| Release Candidate | Release candidates (near-final pre-release versions) |
| Snapshot | Development snapshots (Not activated) |
Download invites will be shown as an orange link in the purple header bar. Click the link to start the download/install process.
Click the blue button Select firmware file for upload to manually upload a firmware binary file.
All firmware releases including release notes, are available here: https://github.com/UtilitechAS/amsreader-firmware/releases
NOTES

Use this to make and restore backups of the current configuration to/from a text file. This can be useful before installing “experimental” firmware versions, and a safety before upgrades.
You can select which part of the configuration is downloaded or uploaded.
The “Download” button is used for downloading backup of configuration from the device to a text file.
The “Select file” button is used for restoring configuration from a text file to the device.


If a new firmware version is released, there will be a reminder in the top bar:

Users who have accepted one-click upgrade can click on the message to initiate the upgrade.
We recommend using the latest published firmware version.

This gauge displays the following information:
The graphical indicator is scaled based on the setting in Configuration/Meter/Main fuse. Additional information on the estimated accumulated value.

This gauge shows:

Depending on the installation, the graph shows:
The colour will change from green to yellow/orange/red if voltage deviates from the nominal 230V voltage.

This gauge shows the reported current per phase. The graphical presentation is scaled according to the setting of Configuration/Meter/Main fuse.
Some power meters do not report current on L2.

This section displays continuously updated counters for:
If the installation is configured for production (solar panels, wind turbine etc.), a “Production” section will be shown.
Additional information on the estimated accumulated.

This graph shows the current status on the Norwegian “Peak power” fee. It is only visible if a Norwegian or Swedish price region is selected in the Configuration / General section.
The status shown in above illustration means:

This plots instantaneous power import / export over the last 60 minutes.
The graph goes negative if there is excess power produced from solar panels etc, meaning the displayed power is exported to the grid.

This section displays hour by hour future energy prices based on settings in Configuration/General.
The leftmost bar is always the current price ("now"). Prices for next 24-hour period is published between 13 and 14h (CET), and will then be added to the graph.
Graph data are (mostly) provided by https://transparency.entsoe.eu/

This section displays energy use [kWh] per clock hour over the last 24-hour interval. There is no bar for the ongoing hour, the rightmost bar shows the previous whole hour.
Example: The bar denoted 15 is the consumption from 15:00:00 to 15:59:59.
The graph goes negative if there is excess energy produced from solar panels etc, meaning the displayed energy is exported to the grid.
Note that historical data can be edited by clicking Edit data (to correct known errors that may occur in failure situations).

This section displays energy use per day/date (24-hour period) during last month. There is no bar for the ongoing date, the rightmost bar shows yesterday’s consumption.
The graph goes negative if there is excess energy produced from solar panels etc, meaning the displayed energy is exported to the grid.
Note that historical data can be edited by clicking Edit data (to correct known errors that may occur in failure situations).
Some power meters (in particular those configured as “HAN-NVE”) report total accumulated energy only once per hour, read at xx:00:00, sent to the HAN port at approximately xx:00:05.
The Realtime kWh-indicator shown in the Power gauge and the Real time calculation tile is an estimate intended to mimic the value shown on the LCD screen of the power meter.
It is estimated by integrating the power as follows:
Please note:
If you experience issues, please consult the Tips & tricks section of our web page before reporting issues.
A first check for any device: the LED blinks blue every time data arrives from the meter. That indicator is wired directly to the incoming data signal, so it works on all models and firmware versions, regardless of what the microcontroller is doing. No blue blinks means nothing is reaching the device — check the HAN port activation and the cabling. Blue blinks with an empty user interface means data is arriving but the firmware is not reading it.
If your device connects to Wi-Fi and the user interface works, but no meter data ever appears, and you have already confirmed that the HAN port is activated and the cabling is correct, check the board type.
A useful clue: the LED blinks blue every time data arrives from the meter, and gives a short green blink immediately afterwards when the data was recognised as valid. The blue indicator is wired directly to the incoming data signal, so it works regardless of what the microcontroller is doing.
Blue blinks with no green blink following them mean data is reaching the board, but the firmware is not reading it — which is exactly what a wrong board type causes.
This applies to the first devices we sold, which use the ESP8266 microcontroller: Pow-K layout 1.4 or older, Pow-U layout 1.5 or older. For these, the board type selects which pin the HAN data arrives on, and the dropdown list contains two entries per board — for instance "Pow-U (GPIO12)" and "Pow-U (UART0)". If the wrong one is set, the firmware listens on a pin where nothing arrives, and the device stays silent even though the meter is sending.
Open the Status/Info page and read the line starting with "Device:". It must match the silkscreen text GPIO12 or UART0 on your board. To change it, click the board type on that page, or add /vendor to the device URL. Your Wi-Fi settings are kept, and no factory reset is needed.
Devices with the ESP32-S2 microcontroller (Pow-U+, Pow-K+, Pow-P1) have one entry per board and are not affected.
The firmware includes an option to recover from a lockout (e.g., forgotten password) from an otherwise operational device by performing an Emergency Factory Reset.
After a factory reset, all settings will be lost, except the board type.
The procedure is:
Old ESP8266 devices: like the Factory reset button in the user interface, this procedure does not erase the board type. If the device has never delivered any data, or you received it second-hand, verify the board type as described under Action buttons.
An alternative description of the procedure can be found in this article.
Certain errors will be indicated on the device LED.
Error codes are indicated with one code each 5 seconds (approximately). If two error codes are active at the same time, error code 1 will be shown, then after 5 seconds error code 2, then code 1 and so on.