The RI-D35-100-MB is the M-Bus variant of Rayleigh Instruments‘ 100A direct-connect single phase energy meter. (The alternative variant interfaces via Modbus rather than M-Bus. Both variants offer two S0 ‘pulse’ outputs.) It is a two-module wide meter with power terminals sized to accept cables up to 35mm2.
This meter sends M-Bus telegrams which declare the manufacturer to be RAY
(which is one of the manufacturer codes allocated to Rayleigh Instruments) – although another apparently identical example declares HGR
(Hager?) but otherwise behaves in exactly the same way. These meters are shipped with the Primary M-Bus address set to 0
but they respond as expected to the various configuration tools which allow a new Primary address to be specified.
These meters respond with the following M-Bus data points – although note that these exceed the size limit for single M-Bus telegram so the meter’s response is split across two telegrams:
- Total Active Energy (i.e. Import + Export), in kWh
- Import Active Energy, in kWh
- Export Active Energy, in kWh
- Total Reactive Energy, in kVArh
- Import Reactive Energy, in kVArh
- Export Reactive Energy, in kVArh
- Apparent Energy, in kVAh
- Active Power, in kW
- Reactive Power, in KVAr
- Apparent Power, in kVA
- <others tbc>
- Voltage, in Volts
- Current, in Amperes
- Power Factor
- Frequency, in Hz
- Maximum Demand Active Power, in kW
- Maximum Demand Reactive Power, in kVAr
- Maximum Demand Apparent Power, in kVA
- <others tbc>
- Serial Number
- Hardware Version
- Software Version
- Password
- <others tbc>
While some other M-Bus meters send Integer values with somewhat curious units (such as 0.01 Volts) these meters take a different approach and send readings in ‘sensible’ units (such as Volts) but that requires them to send Floating-Point numbers instead of Integers.
Some of the units fall outside the standard M-Bus specification so are flagged as “Manufacturer Specific” but because no scaling factors are involved this is less problematic than it otherwise would be.
Using the wmbusmeters
utility, two consecutive example M-Bus telegrams received from one of these meters get ‘analyzed’ as shown below. (This analysis deliberately used a driver which made no attempt to interpret the data field values, to avoid spurious interpretations of the readings.) Note that this was for a brand new meter that had not yet registered any energy consumption, which explains why many of the readings (correctly) show zero.
6896966808427266042505F2206602010000000586FF03000000000586FF01000000000586FF02000000008500FF06000000008500FF04000000008500FF05000000008540FF0700000000052E000000008500FF08000000008540FF090000000005FF0A000000008500FF0B000000008540FF0C0000000005FD49A4306E4305FD5C0000000005FF0D0000803F05FF0E14AE47421F00000000004816
000 : 68 start
001 : 96 length (150 bytes)
002 : 96 length again (150 bytes)
003 : 68 start
004 : 08 dll-c (RSP_UD2)
005 : 42 dll-a primary (66)
006 : 72 tpl-ci (long header)
007 : 66042505 tpl-id (05250466)
011 : f220 tpl-mfct (HGR)
013 : 66 tpl-version
014 : 02 tpl-type (Electricity meter)
015 : 01 tpl-acc-field
016 : 00 tpl-sts-field (OK)
017 : 0000 tpl-cfg 0000 ( )
019 : 05 dif (32 Bit Real Instantaneous value)
020 : 86 vif (Energy kWh)
021 : FF combinable vif (MfctSpecific)
022 : 03 combinable extension vife (Mfct03)
023 C?: 00000000
027 : 05 dif (32 Bit Real Instantaneous value)
028 : 86 vif (Energy kWh)
029 : FF combinable vif (MfctSpecific)
030 : 01 combinable extension vife (Mfct01)
031 C?: 00000000
035 : 05 dif (32 Bit Real Instantaneous value)
036 : 86 vif (Energy kWh)
037 : FF combinable vif (MfctSpecific)
038 : 02 combinable extension vife (Mfct02)
039 C?: 00000000
043 : 85 dif (32 Bit Real Instantaneous value)
044 : 00 dife (subunit=0 tariff=0 storagenr=0)
045 : FF vif (Manufacturer specific)
046 : 06 vife (?)
047 C?: 00000000
051 : 85 dif (32 Bit Real Instantaneous value)
052 : 00 dife (subunit=0 tariff=0 storagenr=0)
053 : FF vif (Manufacturer specific)
054 : 04 vife (?)
055 C?: 00000000
059 : 85 dif (32 Bit Real Instantaneous value)
060 : 00 dife (subunit=0 tariff=0 storagenr=0)
061 : FF vif (Manufacturer specific)
062 : 05 vife (?)
063 C?: 00000000
067 : 85 dif (32 Bit Real Instantaneous value)
068 : 40 dife (subunit=1 tariff=0 storagenr=0)
069 : FF vif (Manufacturer specific)
070 : 07 vife (?)
071 C?: 00000000
075 : 05 dif (32 Bit Real Instantaneous value)
076 : 2E vif (Power kW)
077 C?: 00000000
081 : 85 dif (32 Bit Real Instantaneous value)
082 : 00 dife (subunit=0 tariff=0 storagenr=0)
083 : FF vif (Manufacturer specific)
084 : 08 vife (?)
085 C?: 00000000
089 : 85 dif (32 Bit Real Instantaneous value)
090 : 40 dife (subunit=1 tariff=0 storagenr=0)
091 : FF vif (Manufacturer specific)
092 : 09 vife (?)
093 C?: 00000000
097 : 05 dif (32 Bit Real Instantaneous value)
098 : FF vif (Manufacturer specific)
099 : 0A vife (?)
100 C?: 00000000
104 : 85 dif (32 Bit Real Instantaneous value)
105 : 00 dife (subunit=0 tariff=0 storagenr=0)
106 : FF vif (Manufacturer specific)
107 : 0B vife (?)
108 C?: 00000000
112 : 85 dif (32 Bit Real Instantaneous value)
113 : 40 dife (subunit=1 tariff=0 storagenr=0)
114 : FF vif (Manufacturer specific)
115 : 0C vife (?)
116 C?: 00000000
120 : 05 dif (32 Bit Real Instantaneous value)
121 : FD vif (Second extension FD of VIF-codes)
122 : 49 vife (10^0 Volts)
123 C?: A4306E43
127 : 05 dif (32 Bit Real Instantaneous value)
128 : FD vif (Second extension FD of VIF-codes)
129 : 5C vife (10^0 Ampere)
130 C?: 00000000
134 : 05 dif (32 Bit Real Instantaneous value)
135 : FF vif (Manufacturer specific)
136 : 0D vife (?)
137 C?: 0000803F
141 : 05 dif (32 Bit Real Instantaneous value)
142 : FF vif (Manufacturer specific)
143 : 0E vife (?)
144 C?: 14AE4742
148 C!: 1F more data in next telegram 0000000000
154 : 48 crc
155 : 16 end
{
"_":"telegram",
"media":"electricity",
"meter":"rayd35",
"name":"",
"id":"05250466",
"timestamp":"2025-08-04T19:17:33Z"
}
6878786808427266042505F22066020200000002FF0F000002FF10000002FF1100008200FF1200008200FF1300008200FF1400008240FF15000006FF16A89DE2C0000004FF17A21D500002FD0D640002FD0F660002FD16E80301FF300001FF310101FF320F01FF330101FF340301FF350102FF3600000F00000000002A16
000 : 68 start
001 : 78 length (120 bytes)
002 : 78 length again (120 bytes)
003 : 68 start
004 : 08 dll-c (RSP_UD2)
005 : 42 dll-a primary (66)
006 : 72 tpl-ci (long header)
007 : 66042505 tpl-id (05250466)
011 : f220 tpl-mfct (HGR)
013 : 66 tpl-version
014 : 02 tpl-type (Electricity meter)
015 : 02 tpl-acc-field
016 : 00 tpl-sts-field (OK)
017 : 0000 tpl-cfg 0000 ( )
019 : 02 dif (16 Bit Integer/Binary Instantaneous value)
020 : FF vif (Manufacturer specific)
021 : 0F vife (?)
022 C?: 0000
024 : 02 dif (16 Bit Integer/Binary Instantaneous value)
025 : FF vif (Manufacturer specific)
026 : 10 vife (?)
027 C?: 0000
029 : 02 dif (16 Bit Integer/Binary Instantaneous value)
030 : FF vif (Manufacturer specific)
031 : 11 vife (?)
032 C?: 0000
034 : 82 dif (16 Bit Integer/Binary Instantaneous value)
035 : 00 dife (subunit=0 tariff=0 storagenr=0)
036 : FF vif (Manufacturer specific)
037 : 12 vife (?)
038 C?: 0000
040 : 82 dif (16 Bit Integer/Binary Instantaneous value)
041 : 00 dife (subunit=0 tariff=0 storagenr=0)
042 : FF vif (Manufacturer specific)
043 : 13 vife (?)
044 C?: 0000
046 : 82 dif (16 Bit Integer/Binary Instantaneous value)
047 : 00 dife (subunit=0 tariff=0 storagenr=0)
048 : FF vif (Manufacturer specific)
049 : 14 vife (?)
050 C?: 0000
052 : 82 dif (16 Bit Integer/Binary Instantaneous value)
053 : 40 dife (subunit=1 tariff=0 storagenr=0)
054 : FF vif (Manufacturer specific)
055 : 15 vife (?)
056 C?: 0000
058 : 06 dif (48 Bit Integer/Binary Instantaneous value)
059 : FF vif (Manufacturer specific)
060 : 16 vife (?)
061 C?: A89DE2C00000
067 : 04 dif (32 Bit Integer/Binary Instantaneous value)
068 : FF vif (Manufacturer specific)
069 : 17 vife (?)
070 C?: A21D5000
074 : 02 dif (16 Bit Integer/Binary Instantaneous value)
075 : FD vif (Second extension FD of VIF-codes)
076 : 0D vife (Hardware version #)
077 C?: 6400
079 : 02 dif (16 Bit Integer/Binary Instantaneous value)
080 : FD vif (Second extension FD of VIF-codes)
081 : 0F vife (Software version #)
082 C?: 6600
084 : 02 dif (16 Bit Integer/Binary Instantaneous value)
085 : FD vif (Second extension FD of VIF-codes)
086 : 16 vife (Password)
087 C?: E803
089 : 01 dif (8 Bit Integer/Binary Instantaneous value)
090 : FF vif (Manufacturer specific)
091 : 30 vife (?)
092 C?: 00
093 : 01 dif (8 Bit Integer/Binary Instantaneous value)
094 : FF vif (Manufacturer specific)
095 : 31 vife (?)
096 C?: 01
097 : 01 dif (8 Bit Integer/Binary Instantaneous value)
098 : FF vif (Manufacturer specific)
099 : 32 vife (?)
100 C?: 0F
101 : 01 dif (8 Bit Integer/Binary Instantaneous value)
102 : FF vif (Manufacturer specific)
103 : 33 vife (?)
104 C?: 01
105 : 01 dif (8 Bit Integer/Binary Instantaneous value)
106 : FF vif (Manufacturer specific)
107 : 34 vife (?)
108 C?: 03
109 : 01 dif (8 Bit Integer/Binary Instantaneous value)
110 : FF vif (Manufacturer specific)
111 : 35 vife (?)
112 C?: 01
113 : 02 dif (16 Bit Integer/Binary Instantaneous value)
114 : FF vif (Manufacturer specific)
115 : 36 vife (?)
116 C?: 0000
118 C?: 0F manufacturer specific data 0000000000
124 : 2A crc
125 : 16 end
{
"_":"telegram",
"media":"electricity",
"meter":"rayd35",
"name":"",
"id":"05250466",
"timestamp":"2025-08-04T19:20:13Z"
}
Rayleigh Instruments RI-D35-100-MB Meter by Marsh Flatts Farm Self Build Diary is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.