Running to set heatmeter M-BUS ID


I’ve just installed a Kamstrup Multical 403 Heat Meter with a MBus module, this will interface with my emonpi via the USB to MBus converter.

My problem is that I’m getting no data back from the meter, and EmonHub is logging:
Decoded MBUS data: None
Invalid MBUS data received 0 bytes 2003.0 ms

The last three digits of my serial number are 868, so I tried 068 as the MBus address but to no avail.

I would like to run the script as shown in another thread >

Sharky 775 heat meter questions - #34 by glyn.hudson?

My problem is my lack of knowledge on how and where to install and run the script without breaking anything :frowning:

Can some kind sole guide me through the readdressing processes of the 403.



Assuming your running a recent emonPi emonSD image then the setaddress script should already be on there, you can run it with

python3 /opt/emoncms/modules/usefulscripts/mbus/

If you only have one USB adaptor plugged in it will be on /dev/ttyUSB0

Make sure emonhub is stopped before running it

sudo service emonhub stop

Strictly this should be sudo systemctl stop emonhub - the service command is deprecated I believe.

Thanks Glyn,

My next problem is trying to SSH into the Pi using Putty to enter the script, however, I’ve just found out the details I’m entering are giving me a denied message, but I’m sure I used emonsd for both user and p/w and didn’t change them.

Oh well, off to figure how to get in!

Do you know what version of emonsd you’re running? It should say this on the local Emoncms admin page or the emonPi LCD.

You need to enable SSH via the emonPi LCD, long press the front button on the enable SSH screen.

The default ssh user is pi and the default password is emonsd. However, if you have an old emonSD image the password could be emonpi2016.

The default credentials for all the emonSD versions can be found here:

Correct, but it still works and it’s easier to type!

I’m in :slight_smile:

Thanks for the link as I’m very new to pi so every day is a school day for me. pi and emonsd got me in.


low-write 11.4.5



Nice work

That’s your emoncms version, the emonSD version is different e.g

Apologies, this is the correct screen:

So, I stopped emonhub and ran the mbus script:

But Emoncms can’t see the MBus data, this is my configuration:

    Type = EmonHubMBUSInterfacer
        device = /dev/ttyUSB0
        baud = 2400
        pubchannels = ToEmonCMS,
        read_interval = 10
        validate_checksum = False
        nodename = MBUS
                address = 1
                type = kamstrup403

And I’ve attached the Download log, (please ignore the multitude of entries where I’m guessing the MBus address to save bothering the forum)
emonhub Log trying to connect to MBus.txt (548.1 KB)

Any pointers are appreciated as is the help so far.


Excellent, the ACK response is the meter successfully responding and setting the ID to 1. This is good news.

Have you started emonhub again?

sudo service emonhub start

Your config looks correct. It should work now.

If you’re running an older version of emonhub you may not have the kamstrup403 entry, try type=standard instead.

Hi Glyn,

No, still not receiving data, tried type = standard and restarted, but no change, maybe I have a duff MBus module but I’m not sure how to even check that.


Try updating emonhub to the latest version on the master branch:

cd /opt/openenergymonitor/emonhub
git checkout master 
git pull
sudo service emonhub restart 

Ok, followed instruction and restarted but still the same message with either kamstrup403 or standard as the type:

Invalid MBUS data received 0 bytes 2004.4 ms
MBUS Decoded MBUS data: None

Its odd as the Pi must have written to the MBus module for the ACK to be returned proving comms and data path, I have got a something wrong in Input View?


Mmm I think I’ll need to take a look what’s going on, I’ll DM you a remote access link

Correct, that’s why it’s quite add it’s not reading anything

Emoncms has nothing to do with reading the data from MBUS

Ok, it’s working now :slight_smile:

The issue was there was another emonhub interfacer using the /dev/ttyUSB0 port i.e

        Type = EmonHubOEMInterfacer
            com_port = /dev/ttyUSB0
            com_baud = 115200
            pubchannels = ToEmonCMS,
            subchannels = ToRFM12,
            nodename = emonTx4

I removed this and new MBUS is working. You should see the readings on the Emoncms Inputs page. You just need to log them to Feeds.

1 Like

I can’t thank you enough, you have been brilliant.

This is a huge learning curve for me and I’m enjoying the journey even with the bumps :slight_smile:

No doubt I’ll be begging on the forum again, but in the meantime have a great evening.

1 Like

Indeed it is. Several others are as well.