Fludia FM432 User manual

FM432 –User Guide
LoRaWAN IoT sensors for remote monitoring
Document Ref FLD10068 version 1.1.0
Product references:
FM432e: electricity meter optical reading
Ref: FM432e_nc_1mn, FM432e_nc_10mn, FM432e_nc_15mn
FM432ir: electricity infrared meter optical reading (SML protocol)
Ref: FM432ir_nc_1mn, FM432ir_nc_15mn
FM432g: gas meter optical reading (ATEX)
Ref: FM432g_nc_10mn, FM432g_nc_15mn
FM432p-a: pulse reading (ATEX)
Ref: FM432p-a_nc_1mn, FM432p-a_nc_10mn, FM432p-a_nc_15mn
FM432p-n: pulse reading (non-ATEX)
Ref: FM432p-n_nc_1mn, FM432p-n_nc_10mn, FM432p-n_nc_15mn
FM432t: temperature measurement
Ref: FM432t_1mn, FM432t_10mn, FM432t_15mn

Overview Page 2 / 76
Firmware versions
This documentation refers specifically to products including the following firmware versions. In most cases,
data formats are the same for previous versions, but if something doesn’t seem right, do not hesitate to
contact support@fludia.com
FM432e
Optical head: FM210em_v5.4 (FM432e_nc_1mn), FM210em_v4.6 (FM432e_nc_10mn, FM432e_nc_15mn)
Radio/battery box: BPR07_V3.2.7
FM432ir
Optical head: FM210ir_v1.8 (FM432ir_nc_1mn), FM210ir_v1.6 (FM432ir_nc_15mn)
Radio/battery box: BPR07_V3.2.7
FM432g
Optical head: FM210g_v3.2
Radio/battery box: BPR07_v3.2.9
FM432p
Radio/battery box: BPR07_v3.3.1 (FM432p-a_nc_1mn, FM432p-n_nc_1mn), BPR07_v3.3.1 (FM432p-
a_nc_10mn, FM432p-a_nc_15mn, FM432p-n_nc_10mn, FM432p-n_nc_15mn)
FM432t
Radio/battery box: BPR07_v5.0.2
Revision history
Version
Notes
Date
1.0.1
New doc replacing ref FLD9492 (FM432e User Guide EN_v1.2.1), ref FLD9177 (FM432g
User Guide EN_v1.2.1), ref FLD9899 (FM432p User Guide EN_v1.2.2), and a series of
documents related to message decoding and data collect API
2022-05-16
1.0.2
Corrections related to T1 message headers; Additional code examples.
2022-05-25
1.0.3
Completion of FM432t sections
2022-05-30
1.0.4
Adding FM432ir code examples
2022-05-31
1.0.5
FM432 instead of FM232 in the illustration (overview chapter)
2022-06-01
1.0.6
Firmware version FM210ir_v1.6 replaces v1.2. Clarification (chapter 7.1): message
contains 15 or 20 values depending on the type of meter.
2022-08-24
1.0.7
A Byte was missing in the T1 description for FM432ir (chapters 7.2 and 8.2)
2022-10-11
1.0.8
Adding JavaScript code examples for FM432e, FM432ir, FM432g, FM432p and FM432t.
1.1.0
Correcting php code for FM432t. Technical messages headers. New FW versions for
BPR07
2023-06-07

Overview Page 3 / 76
Table of Contents
1. Overview.........................................................................................................................................5
2. Installing the sensors and joining the LoRaWAN Network ............................................................6
2.1 Installing the FM432e (optical reading of electricity meters) ........................................................... 6
2.2 Installing the FM432ir (optical reading of electricity meters in Germany) ....................................... 8
2.3 Installing the FM432g (optical reading of gas meters) .................................................................... 10
2.4 Installing the FM432p (detecting meter pulse outputs: gas, water, elec, heat…)........................... 11
2.5 Installing the FM432t (measuring temperature)............................................................................. 12
3. Replacing batteries in a sensor ....................................................................................................13
4. Removing the batteries to make a sensor forget its join.............................................................13
5. Decoding FM432e_nc_1mn messages.........................................................................................14
5.1 Types of messages........................................................................................................................... 14
5.2 Data message (T1) structure............................................................................................................ 14
5.3 Service message (T2) structure........................................................................................................ 16
5.4 Code examples................................................................................................................................. 17
6. Decoding FM432e_nc_10mn and FM432e_nc_15mn messages ................................................19
6.1 Types of messages........................................................................................................................... 19
6.2 Data message (T1) structure............................................................................................................ 19
6.3 Service message (T2) structure........................................................................................................ 21
6.4 Technical message #1 (TT1) structure ............................................................................................. 21
6.5 Technical message #2 (TT2) structure ............................................................................................. 22
6.6 Code examples................................................................................................................................. 22
7. Decoding FM432ir_nc_1mn messages ........................................................................................25
7.1 Types of messages........................................................................................................................... 25
7.2 Data message (T1) structure in the case of an infrared meter (mME)............................................ 25
7.3 Data message (T1) structure in the case of an electromechanical meter....................................... 27
7.4 Service message (T2) structure in the case of an infrared meter (mME)........................................ 28
7.5 Service message (T2) structure in the case of an electromechanical meter................................... 30
7.6 Code examples................................................................................................................................. 31
8. Decoding FM432ir_nc_15mn.......................................................................................................35
8.1 Types of messages........................................................................................................................... 35
8.2 Data message (T1) structure in the case of an infrared meter (mME)............................................ 35
8.3 Data message (T1) structure in the case of an electromechanical meter....................................... 37
8.4 Service message (T2) structure in the case of an infrared meter (mME)........................................ 38
8.5 Service message (T2) structure in the case of an electromechanical meter................................... 40
8.6 Code examples................................................................................................................................. 41
9. Decoding FM432g_nc_10mn et FM432g_nc_15mn....................................................................45

Overview Page 4 / 76
9.1 Types of messages........................................................................................................................... 45
9.2 Data message (T1) structure............................................................................................................ 45
9.3 Service message (T2) structure........................................................................................................ 46
9.4 Technical message (TT1) structure .................................................................................................. 47
9.5 Code examples................................................................................................................................. 48
10. Decoding FM432p-(a n)_nc_1mn...............................................................................................51
10.1 Types of messages........................................................................................................................... 51
10.2 Data message (T1) structure............................................................................................................ 51
10.3 Service message (T2) structure........................................................................................................ 52
10.4 Code examples................................................................................................................................. 53
11. Decoding FM432p-(a n)_nc_10mn and FM432p-(a n)_nc_15mn ............................................56
11.1 Types of messages........................................................................................................................... 56
11.2 Data message (T1) structure............................................................................................................ 56
11.3 Service message (T2) structure........................................................................................................ 57
11.4 Code examples................................................................................................................................. 58
12. Decoding FM432t_nc_1mn..........................................................................................................61
12.1 Types of messages........................................................................................................................... 61
12.2 Data message (T1) structure............................................................................................................ 61
12.3 Service message (T2) structure........................................................................................................ 62
12.4 Code examples................................................................................................................................. 63
13. Decoding FM432t_nc_10mn and FM432t_nc_15mn ..................................................................65
13.1 Types of messages........................................................................................................................... 65
13.2 Data message (T1) structure............................................................................................................ 65
13.3 Service message (T2) structure........................................................................................................ 66
13.4 Code examples................................................................................................................................. 68
14. Accessing the dashboard to check communication and data......................................................70
15. Retrieving data from the server with the API ..............................................................................71
15.1 Device list request ........................................................................................................................... 72
15.2 Interval data request ....................................................................................................................... 73
15.3 Index data........................................................................................................................................ 74
15.4 Message list ..................................................................................................................................... 75
16. Contact .........................................................................................................................................75
17. Annex A: product references and what they mean .....................................................................76

Overview Page 5 / 76
1. Overview
The basic principle of this remote monitoring solution is to have IoT sensors (FM432x on the graph) using
LoRa long range radio to transfer measurement messages to a LoRaWAN Network.
The different types of sensors available are:
- FM432e: optical reading of electricity meters (detecting rotating disk, or blinking light)
- FM432ir: optical reading of electricity meters in Germany (detecting rotating disk, or infrared port
with SML protocol)
- FM432g: optical reading of gas meters (detecting digit rotation)
- FM432p: detecting pulse outputs of some meters (gas, water, electricity, heat…)
- FM432t: measuring temperature
The installation process consists of two main steps:
1. Installing the sensors: sticking the optical sensor to the existing meter, or connecting the wires, or
just positioning the box, depending on the type of sensor.
2. Joining the LoRaWAN Network: starting up the sensor so that it sends join requests to the
LoRaWAN Network (on which it must have been previously registered)
Retrieving the data can be done in one of three ways:
- Directly decoding the messages received by the LoRaWAN Network
- Connecting to the server’s API https://fm430-api.fludia.com/v1/API/ (if a callback has been set up
between the LoRaWAN Network and Fludia data server)
- Selecting data and downloading related files from the dashboard (if a callback has been set up
between the LoRaWAN Network and Fludia data server)

Installing the sensors and joining the LoRaWAN Network Page 6 / 76
2. Installing the sensors and joining the LoRaWAN Network
2.1 Installing the FM432e (optical reading of electricity meters)
First identify the type of meter you want to measure. It could be either an electronic electricity meter (with a
blinking light) or an electromechanical electricity meter (with a rotating disk).
In case the white cable is plugged in the radio/battery box, it is recommended to unplug it (and leave only
the optical side connected) before proceeding with the installation.
If it is an electronic meter, you must position the optical head switch on B,
and if it is an electromechanical meter, you must position the switch on A:
If it is an electronic meter, stick the adhesive plastic mount on the
meter in front of the meter blinking light (aim through the hole)
Then, position the optical head on top of the
plastic mount and tight the black screw.
If it is an electromechanical meter, make sure the optical head
is properly attached to the adhesive plastic mount with the help of the black screw:
Stick the system on the meter glass panel, making sure the two arrows are perfectly aligned with the meter
disk (face the meter and keep your eyes at disc level for better result):
If the arrows are not completely lined up with the disc, loosen the screw, adjust
position, and tighten the screw

Installing the sensors and joining the LoRaWAN Network Page 7 / 76
Connect the white cable between the optical head and the FM432 battery/radio box.
In the case of an electromechanical meter, make sure the optical head is still perfectly aligned with the disk.
The FM432e starts measuring automatically.
The optical head LEDs (lights) should blink this way:
1. Calibration: red LED blinks for 20 seconds.
2. Validation: green LED blinks every time the meter light blinks (electronic meter) or every time the
disk mark (black or red) comes in front of the sensor (electromechanical meter).
3. After 3 minutes, the green light stops completely to avoid wasting battery load.
The LEDs on the radio/battery box show the progress of the join process:
- Red and Green LED blinking together (join in progress)
- Green LED blinking alone (join successful)
- Red LED blinking alone (join failed)
If the LEDs on the radio/battery side blink green twice, red once, green twice, red once
and so on, it means that the sensor has previously joined a LoRaWAN Network (but not
necessarily the one you want your sensor to join now). If you want to make sure, remove
the batteries, wait for 10 seconds, and put them back on. It resets the join sequence so
that your sensor can join from a fresh start.

Installing the sensors and joining the LoRaWAN Network Page 8 / 76
2.2 Installing the FM432ir (optical reading of electricity meters in Germany)
First identify the type of meter you want to measure. It could be either an mME electricity meter (with an
infrared port supporting SML protocol) or an electromechanical electricity meter (with a rotating disk).
In case the white cable is plugged in the radio/battery box, it is recommended to unplug it (and leave only
the optical side connected) before proceeding with the installation.
If it is an mME meter, you must position the optical head switch on B, and if
it is an electromechanical meter, you must position the switch on A:
If it is an mME meter, stick the adhesive plastic mount on the meter in front
of the meter infrared receiving LED (aim through the hole)
Then, fasten the optical head to the plastic mount.
Use the black screw to tighten the optical head to the mount.
If it is an electromechanical meter, make sure the optical head
is properly attached to the adhesive plastic mount with the help of the black screw:
Stick the system on the meter glass panel, making sure the two arrows are perfectly aligned with the meter
disk (face the meter and keep your eyes at disc level for better result):
If the arrows are not completely lined up with the disc, loosen the screw, adjust
position, and tighten the screw.

Installing the sensors and joining the LoRaWAN Network Page 9 / 76
Connect the white cable between the optical head and the FM432 battery/radio box.
In the case of an electromechanical meter, make sure the optical head is still perfectly aligned with the disk.
The FM432ir starts measuring automatically.
The optical head LEDs (lights) should blink this way:
1. Calibration: red LED blinks for 20 seconds.
2. Validation: green LED each time the disk mark (black or red) comes in front of the sensor
(electromechanical meter) or each time a correct infrared signal is detected (mME meter).
3. The green light stops completely to avoid wasting battery load (after 3 minutes for electromechanical,
after 1 minute for mME).
The LEDs on the radio/battery box show the progress of the join process:
- Red and Green LED blinking together (join in progress)
- Green LED blinking alone (join successful)
- Red LED blinking alone (join failed)
If the LEDs on the radio/battery side blink green twice, red once, green twice, red once
and so on, it means that the sensor has previously joined a LoRaWAN Network (but not
necessarily the one you want your sensor to join now). If you want to make sure, remove
the batteries, wait for 10 seconds, and put them back on. It resets the join sequence so
that your sensor can join from a fresh start.

Installing the sensors and joining the LoRaWAN Network Page 10 / 76
2.3 Installing the FM432g (optical reading of gas meters)
Clean the meter window.
Paste the holder on the glass of the meter, in front of the prior-to-last digit of
the index, using the provided adhesive (already fixed on the holder).
>> Make sure the arrows of the holder are perfectly at mid-height of the
frame.
>> In some cases, the digit can be higher or lower than normal. Position the
arrows at mid-height of the frame, not at mid-height of the digit.
Clip the optical sensor to the holder.
Connect the white cable between the optical head and the FM432
battery/radio box.
The FM432g starts measuring automatically.
The optical head red LED (light) should blink for 20 seconds.
The LEDs on the radio/battery box show the progress of the join process:
- Red and Green LED blinking together (join in progress)
- Green LED blinking alone (join successful)
- Red LED blinking alone (join failed)
If the LEDs on the radio/battery side blink green twice, red once, green twice, red once
and so on, it means that the sensor has previously joined a LoRaWAN Network (but not
necessarily the one you want your sensor to join now). If you want to make sure, remove
the batteries, wait for 10 seconds, and put them back on. It resets the join sequence so
that your sensor can join from a fresh start.

Installing the sensors and joining the LoRaWAN Network Page 11 / 76
2.4 Installing the FM432p (detecting meter pulse outputs: gas, water, elec, heat…)
The FM432p comes with a cable that needs to be connected to the meter pulse interface.
By default, the end of the cable shows two wires: red wire (pulse), black wire (ground).
If the meter output shows a polarity, make sure to connect the cable accordingly.
If the cable is equipped with a “binder” connector, just connect it to the pulse output interface. The “binder”
plug can be wired either in 3-5 configuration (default) or in 4- configuration (then, there is a colored ring
around the cable).
The FM432p starts measuring automatically once it has detected a first pulse.
The LEDs on the radio/battery box show the progress of the join process:
- Red and Green LED blinking together (join in progress)
- Green LED blinking alone (join successful)
- Red LED blinking alone (join failed)
If the LEDs on the radio/battery side blink green twice, red once, green twice, red once
and so on, it means that the sensor has previously joined a LoRaWAN Network (but not
necessarily the one you want your sensor to join now). If you want to make sure, remove
the batteries, wait for 10 seconds, and put them back on. It resets the join sequence so
that your sensor can join from a fresh start.

Installing the sensors and joining the LoRaWAN Network Page 12 / 76
2.5 Installing the FM432t (measuring temperature)
Start the join process by removing the batteries, waiting for 10 seconds, and putting them back on.
The LEDs on the radio/battery box show the progress of the join process:
- Red and Green LED blinking together (join in progress)
- Green LED blinking alone (join successful)
- Red LED blinking alone (join failed)
Position the FM432t box wherever you want to measure temperature. For measuring in-house temperature,
it is recommended to position the FM432t box around 1 meter above the floor and, if possible, not too close
to a wall (especially outside walls).
Warning: the FM432t box is not “rain-proof”. So, to measure outside temperatures, it is recommended either
to position it in a place protected from the rain, or inside a “rain-proof” additional box (a full waterproof box
should be avoided because of the risk of water vapor infiltration and condensation).

Replacing batteries in a sensor Page 13 / 76
3. Replacing batteries in a sensor
Batteries used in FM432x products are special Lithium 3.6V batteries (Lithium thionyl chloride or Li-SoCl2).
You should only replace them by similar batteries, of good quality, form renown manufacturers, and make
sure that they are positioned the right way (+ side and –side are indicated both on each battery and at the
bottom of the battery compartment).
The usual format of the batteries is A, but AA works also (though the energy is lower).
It is possible to use only one battery instead of two, but the expected lifetime will be of course accordingly
reduced.
In case of an ATEX certified product such as the FM432g, when operating in an ATEX zone you should only
use certified batteries provided by Fludia, so that the product is still considered certified.
4. Removing the batteries to make a sensor forget its join
To make a sensor forget its join, you simply must cut the energy source: remove the batteries.

Decoding FM432e_nc_1mn messages Page 14 / 76
5. Decoding FM432e_nc_1mn messages
5.1 Types of messages
Time-step
Message Type
1 minute
Data message (T1)
Every 20 minutes
(20 x 1 minute)
Service message (T2)
Every 24 hours
FM432e_nc_1mn generates two kinds of messages:
•T1: contains twenty power values and the last index. It is generated every 20 minutes.
•T2: contains additional information such as the sensor type and the firmware version. It is generated
once per day.
5.2 Data message (T1) structure
5.2.1 Introduction
The T1 data message transmits 1 index value (cumulated energy value) and 20 power values.
A power value is the average power over 1 minute. The average power calculation is based on the elapsed
time between two consecutive optical detections and involves interpolation in order to create 1 minute values.
One optical detection can be one LED flash (in the case of an electronic electricity meter) or one disk rotation
(in the case of an electromechanical electricity meter). In simple cases, 1 detection represents 1Wh (Watt-
hour) and the power values are in W (Watts). In other cases, a multiplication factor x is related to the meter
and 1 detection can represent xWh (in this case the power values should be multiplied by this factor once
received).
The T1 data message behaves as follows:
1. First message is sent 30 minutes after the sensor start-up.
2. Subsequent messages are sent periodically every 20 minutes.
Every T1 data message includes data related to a period of 20 minutes.
5.2.2 Timestamping
Index value should be time stamped as follows: t=treceived - delay
Each power should be time stamped as follows: ti=treceived - delay - (20 - i)
Where:
•tiis the timestamp for one element of the data message i ϵ{0,19}.
•treceived is the timestamp when T1 data message is received.
•delay is a delay of 10 minutes due to the power computation mechanism. It means that the message
is sent 10 minutes after the time of the last 1 minute power. For example, if the message contains
power values between 9:00am and 9:20am, the message will only be sent at 9:30am. This way, even

Decoding FM432e_nc_1mn messages Page 15 / 76
if energy is low, there is time to wait for a late optical detection, necessary to compute average power,
and attribute their share to the power values before sending the message.
5.2.3 Byte structure
Byte
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
...
#40
#41
#42
#43
#44
#45
Signification
Header*
Index
P(t0)
P(t1)
P(t2)
...
P(t17)
P(t18)
P(t19)
5.2.4 Header
* Header value (Hexa)
Signification
5b
FM432e with 1-min time step
5.2.5 Index calculation
The index can be obtained this way:
Index = (Byte_2 * 2^24) + (Byte_3 * 2^16) + (Byte_4 * 2^8) + Byte_5
Make sure to first convert from hexadecimal to decimal: Byte_i <= hex2dec(Byte_i)
5.2.6 Power values calculation
Power values are labelled (t0) to (t19).
The formulas for obtaining power values are:
Power(t0) = (Byte_6 * 2^8) + Byte_7
Power(t1) = (Byte_8 * 2^8) + Byte_9
Power(t2) = (Byte_10 * 2^8) + Byte_11
…
Make sure to first convert from hexadecimal to decimal: Byte_i <= hex2dec(Byte_i)
5.2.7 Example
Given the following T1 message:
5b0afdff00068f068f0649066a067e0682057a04ad049f04bd04c204c004c604bf04ae04a504a304b0049b04ac
The decoded values should be:
Byte
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
...
#40
#41
#42
#43
#44
#45
Signification
Header*
Index
P(t0)
P(t1)
P(t2)
...
P(t17)
P(t18)
P(t19)
Hexa value
5b
0a
fd
ff
00
06
8f
06
8f
06
49
04
b0
04
9b
04
ac
Decoded value
184418048
1679
1679
1609
1200
1179
1196

Decoding FM432e_nc_1mn messages Page 16 / 76
5.3 Service message (T2) structure
The T2 data message transmits technical information about the sensor (firmware, meter type, battery status
indicator) and more info about the measurements (a longer index, the time-step, and a max power value).
The T2 data message is sent on sensor start and then every 24 hours.
Byte
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
Signification
Header
(51)
Number
of starts
Time
synchronization
(see below)
Not
used
Optical
head
information
(see below)
Index
Not used
Time step
(see below)
Number of starts
Byte
Signification
#2
Number of starts since initial configuration (= number of times the sensor is unplugged from the radio module)
Time synchronization information
Byte
Bit
Signification
#3
1 - 7
Jitter (in seconds) set to zero for 1 minute data
8
Synchro querying: not available for 1 minute data
Optical head information
Byte
Bit
Signification
#5
1 - 6
Firmware version
7
Meter type:
0 = electromechanical meter
1 = electronic meter
8
Battery status:
0 = battery OK
1 = battery NOK (Battery voltage < 2.8 Volts)
Index
Bytes
Index calculation
#6, #7, #8, #9
Index = (Byte_#6 * 2^24 ) + (Byte_#7 * 2^16 ) + (Byte_#8 * 2^8 ) + Byte_#9
Time-step
Byte
Value (hexa)
Signification
#12
02
1-minute interval

Decoding FM432e_nc_1mn messages Page 17 / 76
5.4 Code examples
We present examples of codes that perform the calculation for the index and for the power values.
5.4.1 Python code example
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# return index from T1 payload
def decode_index(payload):
if len(payload)== 90:
index =int(payload[2:10],16)
return index
else:
return None
# return power list from T1 payload
def decode_power_list(payload):
if len(payload)== 90:
power_list_hex =[payload[(10 +2*i):((10 +2)+2*i)] for i in range(40)]
power_list =[int(power_list_hex[i *2]+power_list_hex[i *2+1], 16)for i in
range(len(power_list_hex)/2)]
return power_list
else:
return None
# Exemple :
payload =
"5b0afdff00068f068f0649066a067e0682057a04ad049f04bd04c204c004c604bf04ae04a504a304b0049b04ac"
index =decode_index(payload)
print "Index: " +str(index)
power_list =decode_power_list(payload)
if power_list is not None and index is not None:
print "Power list: " +str(power_list)
else:
print("the payload has the wrong size")
5.4.2 PHP Code example
<?php
// return index from T1 payload
function decode_index($payload)
{
$index =hexdec(substr($payload,2,8));
return $index;
}
function payload_to_hex($payload)
{
if(strlen($payload)== 90)
{
for ($i =0;$i <40;$i++)
{
$power_list_hex[$i]=substr($payload,10 +2*$i,2);
}
}
return $power_list_hex;
}
// return power list from T1 payload
function decode_power_list($payload)
{
if(strlen($payload)== 90)
{
$power_list_hex =payload_to_hex($payload);
$power_list =[];
for ($i =0;$i <20;$i++)
{
$power_list[] =hexdec($power_list_hex[$i *2].$power_list_hex[$i *2+1]);
}
return $power_list;
}
else
{
return null;
}

Decoding FM432e_nc_1mn messages Page 18 / 76
}
// Exemple :
$payload =
"5b0afdff00068f068f0649066a067e0682057a04ad049f04bd04c204c004c604bf04ae04a504a304b0049b04ac";
$index =decode_index($payload);
$power_list =decode_power_list($payload);
if ($power_list != null && $index != null)
{
echo "Index: ".$index."\n";
foreach ($power_list as $power)
{
echo $power."\n";
}
}
else
{
echo "the payload has the wrong size \n";
}
?>
5.4.3 JavaScript Code example
//return index from T1 payload
function decode_index(payload){
var index =null;
if (payload.length == 90){
index =payload.substring(2,8);
}
return parseInt(index,16);
}
//return hexadecimal power list from T1 payload
function payload_to_hex(payload){
var power_list_hex =[]
if (payload.length == 90){
for(i=0;i<40;i++){
power_list_hex.push(payload.substring((10+2*i),2+(10+2*i)))
}
}
return power_list_hex
}
//return power list from T1 payload
function decode_power_list(payload){
var power_list =[]
var power_list_hex =[]
if (payload.length == 90){
power_list_hex =payload_to_hex(payload)
}
if(power_list_hex.length == 40){
for(i=0;i<20;i++){
power_list.push(parseInt(power_list_hex[i*2]+power_list_hex[i*2+1], 16))
}
}
return power_list
}
//Exemple
payload =
"5b0afdff00068f068f0649066a067e0682057a04ad049f04bd04c204c004c604bf04ae04a504a304b0049b04ac"
var index =null
var power_list =[]
index =decode_index(payload)
power_list =decode_power_list(payload)
if(index && power_list.length == 20){
console.log("Index: "+index)
console.log("List of power values in W: "+power_list)
}
else{
console.log("The payload has the wrong size")
}

Decoding FM432e_nc_10mn and FM432e_nc_15mn messages Page 19 / 76
6. Decoding FM432e_nc_10mn and FM432e_nc_15mn messages
6.1 Types of messages
Sensor version
10 minutes
15 minutes
1 hour
Data message (T1)
Every 80 minutes
(8 x 10 minutes)
Every 2 hours
(8 x 15 minutes)
Every 8 hours
(8 x 1 hour)
Service message (T2)
Every 24 hours
Every 24 hours
Every 24 hours
Technical message 1 (TT1)
Every 24 hours
Every 24 hours
Every 24 hours
Technical message 2 (TT2)
Every hour for 1 day
Every hour for 1 day
Every hour for 1 day
FM432e generates four kinds of messages:
•T1: contains the consumption data and is generated several times per day with a frequency
determined by the sensor time-step.
•T2: contains useful information such as the sensor type, the firmware version, a long index. It is
generated once per day.
•TT1: contains technical information (for technical feedback purposes) and is generated once per day.
•TT2: contains technical information (for technical feedback purposes) and is generated each hour for
one day after startup.
6.2 Data message (T1) structure
6.2.1 Introduction
The T1 data message transmits 1 index value and 8 increments.
The index value is the cumulated number of optical detections since the start of the sensor. One optical
detection can be one LED flash (in the case of an electronic electricity meter) or one disk rotation (in the
case of an electromechanical electricity meter). In simple cases, 1 detection represents 1Wh. In other cases,
a multiplication factor is related to the meter and 1 detection can represent xWh.
An increment is the index difference between a time -step and the next time-step.
T1 data messages are sent:
•every 80 minutes for 10-minutes time-step sensors
•every 2 hours for 15-minutes time-step sensors
•every 8 hours for 1-hour time-step sensors

Decoding FM432e_nc_10mn and FM432e_nc_15mn messages Page 20 / 76
6.2.2 Timestamping
Index value should be time stamped as follows: t=treceived
Each increment should be time stamped as follows: ti=treceived - ((8 - i)*Time_step)
Where:
•tiis the timestamp for one element of the data message i ϵ{0,7}.
•treceived is the timestamp when T1 data message is received.
•Time_step is the time-step, i.e the interval between two measurements.
6.2.3 Byte structure
Byte
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
#15
#16
#17
#18
#19
#20
Signification
Header*
Index
Incr. (t0)
Incr. (t1)
Incr. (t2)
Incr. (t3)
Incr. (t4)
Incr. (t5)
Incr. (t6)
Incr. (t7)
6.2.4 Header
* Header values (Hexa)
Signification
20
10-min time step
21
15-min time step
22
1-hour time step
6.2.5 Index calculation
The index can be obtained this way:
Index = (Byte_2 * 2^16 ) + (Byte_3 * 2^8 ) + Byte_4
Make sure to first convert from hexadecimal to decimal: Byte_i <= hex2dec(Byte_i)
6.2.6 Increment calculation
Increment values are labelled (t0) to (t7) and represent successive increments.
The formulas for obtaining increment values are:
Increment(t0) = (Byte_5 * 2^8) + Byte_6
Increment(t1) = (Byte_7 * 2^8) + Byte_8
Increment(t2) = (Byte_9 * 2^8) + Byte_10
…
Make sure to first convert from hexadecimal to decimal: Byte_i <= hex2dec(Byte_i)
6.2.7 Example
Given the following T1 message: 21006f920178017b0181018c01980196019c019f
The decoded values should be:
Byte
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
#15
#16
#17
#18
#19
#20
Signification
Header*
Index
Incr. (t0)
Incr. (t1)
Incr. (t2)
Incr. (t3)
Incr. (t4)
Incr. (t5)
Incr. (t6)
Incr. (t7)
Hexa value
21
00
6F
92
01
78
01
7B
01
81
01
8C
01
98
01
96
01
9C
01
9F
Decoded value
28562
376
379
385
396
408
406
412
415
This manual suits for next models
6
Table of contents
Other Fludia Accessories manuals