Sontex Supercal 5 - MBUS Missing Entries?

Hi,

I’m trying to fault find a Sontex Supercal 5 heat meter using MBUS. I have a connection to the MBUS interface and it seems to be roughly working.

root@pi-modbus:/home/pi/libmbus/bin# ./mbus-serial-request-data -b 2400 /dev/ttyAMA0 0
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>

    <SlaveInformation>
        <Id>30929068</Id>
        <Manufacturer>SON</Manufacturer>
        <Version>72</Version>
        <ProductName></ProductName>
        <Medium>Heat / Cooling load meter</Medium>
        <AccessNumber>16</AccessNumber>
        <Status>00</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <StorageNumber>7000</StorageNumber>
        <Tariff>0</Tariff>
        <Device>0</Device>
        <Unit>Manufacturer specific</Unit>
        <Value> ! </Value>
        <Timestamp>2023-11-13T16:36:52Z</Timestamp>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <StorageNumber>7000</StorageNumber>
        <Tariff>0</Tariff>
        <Device>0</Device>
        <Unit>Time Point (time &amp; date)</Unit>
        <Value>*▒ %*▒ %*▒ $</Value>
        <Timestamp>2023-11-13T16:36:52Z</Timestamp>
    </DataRecord>

    <DataRecord id="2">
        <Function>Manufacturer specific</Function>
        <Value></Value>
        <Timestamp>2023-11-13T16:36:52Z</Timestamp>
    </DataRecord>

</MBusData>

Sadly there doesn’t seem to be any more data displayed than this. No flowrates, temperatures or power, even though they are displayed quite nicely on the Supercal 5 screen.

Before I got further with integration I just want to see whether I was missing something? There is some weird utf8 type characters not being displayed correctly, but I don’t know whether this is par of the problem.

Thanks in advance,

Chris

Hello @ecylcje. It is possible to get the Supercal 5 to return a lot more data than this.
We found we needed to switch the page/view by sending alternating read data commands with a slightly different value 5b/7b as documented here: emonHub Interfacers — OpenEnergyMonitor 0.0.1 documentation. Once it’s in the right mode, it’s usually fine.

Interesting workaround!

You can also configure these meters NOT to use multi-telegram and instead to report everything useful on the first telegram.

If bought from Chris @ DMS Metering he should know how to configure that ex works. Probably not geared up for a minimum order quantity of 1 though so you’d have to break bulk.

Disabling multi-telegram would definitely be a brilliant idea, but sadly there doesn’t seem to be anything in the documentation to show how it is done. I have put a request into Sontex for some help but I’m not sure it will come to anything.

Thanks,

chris

Hi,

Thanks so much for this workaround. I’m obviously being really stupid because when I run the steps suggested on the CLI I can get the data out:

pi@emonpi:~/usefulscripts/mbus $ python3 mbus_request_data_7b.py
No config.ini file found
Please enter serial port (default: /dev/ttyAMA0):
Please enter baud rate (default: 2400):
Please enter address to check (default: 0):
Trying to connect on port:/dev/ttyAMA0 baud:2400 address:0
{'DateTime': [737085751, ''], 'Energy': [1216, 'kWh'], 'Volume': [316.617, 'm3'], 'Energy2': [1, 'kWh'], 'Volume2': [0.293, 'm3'], 'Record6': [7, ''], 'Record7': [1, ''], 'Volume3': [0.0, 'm3'], 'Record9': [7, ''], 'Record10': [2, ''], 'Volume4': [0.0, 'm3'], 'FlowT': [29.560000000000002, 'C'], 'ReturnT': [27.69, 'C'], 'Record14': [0, ''], 'Power': [0, 'W'], 'Record16': [0, ''], 'Record17': [0, ''], 'FabNo': [30929068, ''], 'Record19': [10005, ''], 'Ontime Hours': [3688, 'h']}
pi@emonpi:~/usefulscripts/mbus $

But when I come to running on the emonhub the data is always as follows:

2023-11-15 10:38:10,644 DEBUG    MBUS       Decoded MBUS data: {"Record1": [257, ""], "Energy": [0, "kWh"], "Volume": [0.0, "m3"], "Energy2": [0, "kWh"], "Volume2": [0.0, "m3"], "Volume3": [0.0, "m3"], "Volume4": [0.0, "m3"], "Record8": [1793, ""], "Energy3": [0, "kWh"], "Volume5": [0.0, "m3"], "Energy4": [0, "kWh"], "Volume6": [0.0, "m3"], "Volume7": [0.0, "m3"], "Volume8": [0.0, "m3"]}
2023-11-15 10:38:10,645 DEBUG    MBUS       251 NEW FRAME : 
2023-11-15 10:38:10,645 DEBUG    MBUS       251 Timestamp : 1700044690.017646
2023-11-15 10:38:10,646 DEBUG    MBUS       251 From Node : MBUS
2023-11-15 10:38:10,647 DEBUG    MBUS       251    Values : [257, 0, 0, 0, 0, 0, 0, 1793, 0, 0, 0, 0, 0, 0]
2023-11-15 10:38:10,647 DEBUG    MBUS       251 Sent to channel(start)' : ToEmonCMS
2023-11-15 10:38:10,648 DEBUG    MBUS       251 Sent to channel(end)' : ToEmonCMS
2023-11-15 10:38:10,826 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Record1 257
2023-11-15 10:38:10,827 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Energy 0
2023-11-15 10:38:10,829 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Volume 0
2023-11-15 10:38:10,830 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Energy2 0
2023-11-15 10:38:10,831 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Volume2 0
2023-11-15 10:38:10,832 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Volume3 0
2023-11-15 10:38:10,833 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Volume4 0
2023-11-15 10:38:10,835 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Record8 1793
2023-11-15 10:38:10,836 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Energy3 0
2023-11-15 10:38:10,837 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Volume5 0
2023-11-15 10:38:10,838 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Energy4 0
2023-11-15 10:38:10,840 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Volume6 0
2023-11-15 10:38:10,841 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Volume7 0
2023-11-15 10:38:10,842 DEBUG    MQTT       Publishing: emon/MBUS/heatmeter_Volume8 0

No matter whether I run 5b, then 7b and then 5b or any combination of them, emonhub always reverts back to this page of empty stuff and not the interesting

My emonhub config is:

[[MBUS]]
    Type = EmonHubMBUSInterfacer
    [[[init_settings]]]
        device = /dev/ttyAMA0
        baud = 2400
    [[[runtimesettings]]]
        pubchannels = ToEmonCMS,
        read_interval = 10
        validate_checksum = False
        nodename = MBUS
        [[[[meters]]]]
            [[[[[heatmeter]]]]]
                address = 0
                type = standard

Should I be adding something extra in there to run the 5b and 7b?

Thanks and apologies,

Chris

Hi,

As an update to all this I have finally managed to get the Sontex Supercal 5 to work with emonhub. I needed to make a few changes:

Firstly I only ran the following from the usefulscripts section:

  1. Stop emonhub

sudo systemctl stop emonhub

  1. Try to read a data from from the Sontex using the usefulscripts/mbus/mbus_request_data_5b.py script:
python3 /opt/emoncms/modules/usefulscripts/mbus/mbus_app_reset.py
python3 /opt/emoncms/modules/usefulscripts/mbus/mbus_request_data_5b.py

I didn’t run any of the next steps, because no matter what I tried they just reverted things to a failure mode.

I then changed the following line in the file:

ie 0x5b to 0x7b in line 402

/opt/openenergymonitor/emonhub/src/interfacers/EmonHubMBUSInterfacer.py

    def request_data(self, address, records):
        for i in range(0,2):
            self.mbus_short_frame(address, 0x7b)
            # time.sleep(1.0)
            result = self.read_data_frame(records)
            if result!=None:
                return result
            else:
                time.sleep(0.2)

Once I did all this then the results started working.

As a note I did received back from Sontex the Supercal MBUS interface specifications: M-Bus Frames SC5 - 2023-08-21 - 1.0.5.pdf

Thanks all,

Chris

1 Like

@TrystanLea @glyn.hudson - looks like this could usefully be a configurable item.

Did you meant to attach a file?

Sorry didn’t know whether I was allowed.

Chris

M-Bus Frames SC5 - 2023-08-21 - 1.0.5.pdf (728 KB)

1 Like