Kamstrup multical 403/MBus no teperature readings?

I’ve been trying to get my Kampstrup Multical 403 hooked up to my emonPi. I have some success, but I’m not getting all of the data out of it I need.

Physically I have two temperature probes attached to the Kamstrup 403. On the unit itself I can see sensible looking flow and return temps (well, they are labeled “t1” and “t2”, so interpretation depends on which way round they have been connected up).

After some battles, I now have some data coming out into emonCMS (I needed to update the software on the emonPi for it to work).

In the log, I can see messages such as:

2022-12-22 11:30:21,037 DEBUG    MBUS       Invalid MBUS data received 204 bytes 1026.1 ms
2022-12-22 11:30:21,047 DEBUG    MBUS       Decoded MBUS data: {"Energy": [29, "kWh"], "Volume": [348.82, "m3"], "Power": [0, "W"], "Power_Max": [-12100, "W"], "FlowRate": [0.0, "m3/h"], "FlowRate_Max": [2.121, "m3/h"], "Record20": [0, ""]}
2022-12-22 11:30:21,049 DEBUG    MBUS       24 NEW FRAME : 
2022-12-22 11:30:21,049 DEBUG    MBUS       24 Timestamp : 1671708620.010800
2022-12-22 11:30:21,050 DEBUG    MBUS       24 From Node : MBUS
2022-12-22 11:30:21,051 DEBUG    MBUS       24    Values : [29, 348.82, 0, -12100, 0, 2.121, 0]
2022-12-22 11:30:21,051 DEBUG    MBUS       24 Sent to channel(start)' : ToEmonCMS
2022-12-22 11:30:21,052 DEBUG    MBUS       24 Sent to channel(end)' : ToEmonCMS

It’s receiving some data, but not receiving any flow temperature data.

I’ve been trying to understand the EmonHubMBUSInterfacer.py source code to try and understand why not.

If I change the “type” in the configuration to “standard” rather than “kamstrup403” I seem to get more plausible information:

2022-12-22 11:59:11,038 DEBUG    MBUS       Invalid MBUS data received 204 bytes 1026.7 ms
2022-12-22 11:59:11,041 DEBUG    MBUS       Decoded MBUS data: {"Energy": [29, "kWh"], "Record2": [12328, ""], "Record3": [13274, ""], "Volume": [348.82, "m3"], "Volume2": [0.0, "m3"], "Volume3": [0.0, "m3"], "Ontime Hours": [289, "h"], "Ontime Hours_error": [201, "h"], "FlowT": [22.09, "C"], "ReturnT": [23.34, "C"], "DeltaT": [-1.25, "C"], "Power": [0, "W"], "Power_Max": [-12100, "W"], "FlowRate": [0.0, "m3/h"], "FlowRate_Max": [2.121, "m3/h"], "Record16": [0, ""], "DateTime": [752233506, ""], "Energy2": [0, "kWh"], "Record19": [0, ""], "Record20": [0, ""], "Volume4": [0.0, "m3"], "Volume5": [0.0, "m3"], "Volume6": [0.0, "m3"], "Power_Max2": [0, "W"], "FlowRate_Max2": [0.0, "m3/h"], "Record26": [10948, ""], "Record27": [6657, ""], "FabNo": [71271245, ""], "Record29": [2100101, ""], "Record30": [11851201, ""], "heat_calc": [-0.0, "W"]}
2022-12-22 11:59:11,041 DEBUG    MBUS       44 NEW FRAME : 
2022-12-22 11:59:11,041 DEBUG    MBUS       44 Timestamp : 1671710350.011856
2022-12-22 11:59:11,042 DEBUG    MBUS       44 From Node : MBUS
2022-12-22 11:59:11,042 DEBUG    MBUS       44    Values : [29, 12328, 13274, 348.82, 0, 0, 289, 201, 22.09, 23.34, -1.25, 0, -12100, 0, 2.121, 0, 752233506, 0, 0, 0, 0, 0, 0, 0, 0, 10948, 6657, 71271245, 2100101, 11851201, 0]
2022-12-22 11:59:11,042 DEBUG    MBUS       44 Sent to channel(start)' : ToEmonCMS
2022-12-22 11:59:11,043 DEBUG    MBUS       44 Sent to channel(end)' : ToEmonCMS

FlowT and ReturnT there look plausible (albeit the wrong way round).

I’m going to run it like this and see whether the values look plausible. Heat pump is not currently on, so flow rate would be expected to be zero. No ideal whether flow rate max is plausible. The PowerMax is negative presumably because the temperature sensors are the wrong way round, so I’ll probably require those the other way round to make the numbers better.

So I suppose my question is why there is a special setting for kamstrup multical 403 which appears to remove some of the data fields, and is using “standard” a sensible thing to do?

Hello Tom, sounds like you are almost there!

Yes the kamstrup403 type only returns a subset of all the values - though it seems that some 403’s have different content to others and so it may be that it’s best to revert to the standard type. This is something @glyn.hudson found yesterday I think when setting up a couple of systems for a customer.

Like you say, yes it would be a good idea to swap those temperature sensors around, you will get some more sensible results that way. 2.1 m3/hr ot 35 L/min is definetly feasible. What’s the max kW heat output of your heat pump? A deltaT of 5K at 35 L/min is about 12kW

I believe it’s a 12KW unit.
I seem to be getting sensible output at the moment:

I’ve tried and failed to make sense of the kampstrup mbus datagram documentation. The mbus comms module is described as configurable, but so far I’ve been unable to work out how you configure it. I wondered whether I needed to configure the comms module at all before I used it, whether emonCMS made assumptions about the way in which it was configured. I was trying to correlate what I could see in the kamstrup documentation with the python source code, but the numbers don’t match, so I suspect I’m comparing apples with oranges. The data that’s coming out seems plausible though, including for the flow and return temps (and the delta temp). They seem to match what the unit itself reports for the temperatures.

So I think I’ve got this connected up and reading correctly now. The main stumbling block I had to begin with was that my emonPi software was something like July 2021. On my laptop screen the “admin” menu item in the emonCms software is completely hidden as it’s off the bottom of the menu. Once I worked that out and zoomed the browser out a bit I managed to update the software and it all started working.

2 Likes