Reading NES Meters (ANSI C12.18)¶
Meters from NES/Echelon — installed among others as the NES 83334 and Echelon 83332 — behave differently from the vast majority of German smart meters. They only release their data after a login, and the key required for it comes from your metering point operator. This page explains why that is, how to request the key, and where to enter it.
WattWächter Plus only, from firmware 1.2.1
This meter type is currently supported by the WattWächter Plus exclusively. For the WattWächter Wi-Fi/USB and TTL there is the openHAB route — see Alternative without a WattWächter Plus at the end of this page.
Readonly key, meter password — the same thing¶
The key goes by several names. Grid and metering point operators usually call it the readonly key, because it only grants read access: nothing on the meter can be changed with it — no tariff switching, no meter reading, nothing. In the WattWächter's web interface the same field is called Meter password, and in the protocol itself it is the security password of the C12.18 session.
Wherever this page says readonly key, it always means that same value.
What makes this meter type special¶
Most meters in Germany speak SML or OBIS: they send their values on their own every second over the optical interface, and a reading head merely has to listen. Detailed values are unlocked there with a PIN that you enter yourself on the optical button (Preparing the Meter).
An NES meter sends nothing by itself. It answers only when asked, and before the first request comes a complete session:
Ident → Negotiate → Logon → Security (readonly key) → read tables
Three consequences follow that play no role with SML and OBIS meters:
- There is no PIN entry on the meter. The optical button has no unlocking function here.
- Without the readonly key all measurements stay empty. That is not a defect, it is the intended state until the key is entered.
- The meter type is still detected automatically. Detection only needs the Ident step, and that works without a key. So the WattWächter knows it is facing a C12.18 meter and asks for the key specifically — it can only name the make after the login, though, because the manufacturer identifier also sits in a protected table.
Requirements¶
- WattWächter Plus with firmware 1.2.1 or newer (Software Updates)
- Readonly key for the installed meter, from the metering point operator
- Device set up and on your Wi-Fi — see Getting Started
Requesting the readonly key¶
The key is issued by your metering point operator — which is not necessarily your electricity supplier. Who it is appears on your electricity bill or directly on the meter.
Useful for the request:
- the meter number (printed on the meter)
- a note that you need the readonly key for the optical interface (ANSI C12.18)
- a note that this is a read-only evaluation of your own consumption data
Ask for the user ID as well
Besides the key, the login involves a user ID. As a rule this is 2 — which is the WattWächter's factory setting. Should your metering point operator explicitly name a different ID, you enter it in the same settings section.
Step by step: entering the readonly key¶
Currently via the web interface only
The meter password can currently be entered only in the device's web interface. The smartphone app and the cloud portal do not support this meter type yet — they will follow. Everything else, from Wi-Fi setup to displaying the readings, works in the app as usual.
1. Attach and set up the device
Place the WattWächter Plus on the meter's optical interface using the magnetic holder, connect power and join it to your Wi-Fi — the usual route via the app is described under Getting Started.
2. Wait for detection
After a few minutes the WattWächter has detected the meter type. You can see this in two places:
- The status LED pulses yellow — the device is waiting for input from you (see LED Status).
- The dashboard of the web interface shows a yellow notice 🔑 Meter password required, linking straight to the matching setting.
3. Open the web interface
http://wattwaechter-XXXXXXXXXXXX.local
The twelve X stand for the device ID (the last 12 characters of the MAC address). You will find it in the app and in the cloud portal. If the name does not resolve in your browser, the IP address works as well — how to find it is described in the FAQ.
4. Open Settings → Meter
The 🔑 Meter section appears only when a C12.18 meter has been detected. With SML and OBIS meters it stays hidden, because it would have no function there. If you do not see it, detection has not completed yet — see The "Meter" section is missing.
5. Enter the key
| Field | Entry |
|---|---|
| Meter password | The readonly key, exactly as received — 20 characters maximum. For security reasons the field is always empty; an entry replaces the stored key, an empty field leaves it unchanged. Above the field you can see whether one is already stored. |
| User ID | Leave at 2 unless your metering point operator states otherwise. Permitted values are 0 to 65535. |
Capitalisation, spaces
The key is taken exactly as you type it. Copying it from an email easily drags a space to the beginning or the end — the meter then rejects the login without the field looking any different. When in doubt, type it by hand.
6. Save
Save at the bottom of the page commits the key, and the device logs on to the meter immediately. A few seconds later the dashboard tiles fill up.
The key is stored encrypted in the device memory and is never returned by the API — all that can be queried is whether one is stored.
Did it work?¶
| Sign | Meaning |
|---|---|
| Status LED green | Normal operation, session established |
| Yellow dashboard notice gone | Login accepted |
| Current power shows a value | Table 28 is being read — the real proof |
From here on the meter is indistinguishable from an SML meter for the rest of the device: app, cloud portal, MQTT, REST API, Modbus TCP and the Home Assistant integration carry on unchanged.
Which values the meter provides¶
From table 28 (instantaneous values) and table 23 (energy registers) the WattWächter maps these values:
| Value | OBIS code | Note |
|---|---|---|
| Current power | 1-0:16.7.0 |
Import minus export — positive means import, negative export, same as with SML |
| Total import | 1-0:1.8.0 |
|
| Total export | 1-0:2.8.0 |
|
| Current L1 / L2 / L3 | 1-0:31.7.0, 51.7.0, 71.7.0 |
|
| Voltage L1 / L2 / L3 | 1-0:32.7.0, 52.7.0, 72.7.0 |
Reactive power not included yet
Table 28 also carries reactive power fields. They are deliberately not evaluated yet, as long as the values have not been cross-checked against a real meter. Better no value than a wrong one.
Consideration for the meter's own communication¶
An NES meter talks to the grid operator's data concentrator over radio. A permanently open optical session can interfere with that. The WattWächter therefore proceeds deliberately cautiously:
- Regular clean logoff. The session is torn down at a fixed interval (8 minutes by default) and rebuilt immediately.
- Daily idle window. Once a day polling rests completely — by default at 02:10 for 8 minutes. No new readings arrive during that time. This is not an error. (The window requires a synchronised clock; without time synchronisation there is no idle period, so that it does not fall at a random time of day.)
- Pause after failed attempts. After a rejected login the device waits 30 seconds before trying again — some meters lock after several consecutive failures.
- Throttled detection. If the meter stops answering for a longer stretch, the device increases the interval between detection attempts instead of occupying the optical link with constant traffic.
If it does not work¶
⚠️ "Meter password rejected"¶
The meter has refused the login with the stored key. Check in order:
- Spaces at the beginning or end — the most common case when copying from an email or password manager.
- Capitalisation and easily confused characters (
0/O,1/l/I). - User ID — is it set to
2, and did your metering point operator really not name a different one? - Right meter — does the key apply to the meter number installed at your place? After a meter exchange you need a new one.
There is a 30-second wait between attempts. Do not try different variants in quick succession; instead clarify the key with your metering point operator if in doubt.
What form does the key come in?
The WattWächter expects the readonly key as a string of up to 20 characters. If you receive it in a different representation — a 40-digit hexadecimal number, say — do not convert it on a hunch, but contact support.
The "Meter" section is missing¶
The section only appears once detection has succeeded. If it does not show up:
- Check the firmware — 1.2.1 or newer is required (Software Updates).
- Check the reading head — is it centred on the optical interface, does the magnet hold? On most meters the USB cable points upwards.
- Give it some time — detection works its way forward in stages and does not start with the framed Ident request right after power-up.
Values stay empty, LED is green¶
Check the clock: if the moment falls into the daily idle window (02:10 for 8 minutes by default), this is the intended state.
Dropouts during operation¶
Individual lost telegrams are normal on an optical half-duplex link; the device then rebuilds the session by itself. Only when the meter repeatedly fails to answer does the LED turn red.
If it happens more often, the behaviour can be readjusted via the REST API — a longer polling interval or a different logoff interval, for instance (see below). If that does not help, please send us an excerpt of the device log (GET /api/v1/logs/ram) to support.
For advanced users: fine-tuning via the REST API¶
The web interface offers only the key and the user ID. The remaining parameters are deliberately reserved for the REST API — they affect the interplay with the grid operator and do not belong in everyday operation.
POST /api/v1/settings (WRITE token), all fields under the c1218 object:
| Field | Values | Default | Meaning |
|---|---|---|---|
password |
max. 20 characters | — | Readonly key. Leave empty = unchanged |
userId |
0–65535 |
2 |
User ID for the logon |
pollSeconds |
1–300 |
2 |
Interval between two polls |
logoffMinutes |
0–1440 |
8 |
Interval of the clean logoff/logon, 0 = keep the session open |
idleStart |
HH:MM |
02:10 |
Start of the daily idle window |
idleSeconds |
0–3600 |
480 |
Duration of the idle window, 0 = no idle window |
{
"c1218": {
"pollSeconds": 5,
"logoffMinutes": 15
}
}
GET /api/v1/settings returns the same fields, plus detected (meter detected) and passwordSet (key stored) — never the key itself.
The current state of the connection is in the c1218 field of GET /api/v1/history/latest. It is absent as long as no C12.18 meter has been detected:
| Value | Meaning |
|---|---|
password_required |
Meter detected, no key stored |
password_rejected |
Meter rejects the stored key |
connected |
Session established, values are being read |
idle |
Daily idle window |
comm_error |
Meter stopped answering |
Alternative without a WattWächter Plus¶
NES meters can still be read with openHAB and the SmartMeterOSGP add-on through an optical reading head compliant with DIN EN 62056-21 — for example with the WattWächter Wi-Fi/USB in USB mode. That route does require a permanently running computer (PC, Raspberry Pi or similar) with openHAB; the readonly key is stored in the add-on there.
Stuck? SmartCircuits support will help with the setup. Please tell us your meter model and the firmware version of your WattWächter.