Kamstrup Meter Protocol [KMP]


Kamstrup MULTICAL 403

The Kamstrup Meter Protocol (KMP) is used by certain Kamstrup utility meters and can be used to read measurements from the meter.

For example, the Kamstrup MULTICAL 403 is a meter used by some energy companies in The Netherlands to measure delivered heat by a district heating network (in Dutch: stadsverwarming).

Heat is transported using warm water to the consumer. The meter measures the temperature of the water delivered and returned as well as the water flow. This is used to calculate the consumed energy, typically in giga joule (GJ).

The Kamstrup Multical has an optical interface just above the display that uses the Kamstrup Meter Protocol for communication. This component can be used to request measurements from the meter using the optical interface.

A UART bus is required to communicate with the meter. The baudrate


# Example configuration entry
  - platform: kamstrup_kmp
      name: Heat Energy
      name: Heat Power
      name: Heat Temperature Difference
      name: Heat Flow
      - name: Custom Heat Energy
        command: 0x003C
      - name: Custom Heat Power
        command: 0x0050

Configuration variables:

  • heat_energy (Optional): Heat energy delivered. All options from Sensor.

  • power (Optional): Current power delivered. All options from Sensor.

  • temp1 (Optional): Temperatue of sensor 1. All options from Sensor.

  • temp2 (Optional): Temperatue of sensor 2. All options from Sensor.

  • temp_diff (Optional): Temperature difference between the 2 sensors. All options from Sensor.

  • flow (Optional): Water flow. All options from Sensor.

  • volume (Optional): Volume. All options from Sensor.

  • custom (Optional): List of custom sensors.

    • command (Required, 2-byte hex): The KMP command code (e.g. 0x003C).

    • All other options from Sensor.

  • update_interval (Optional): The polling interval. Defaults to 60s.


  • The uart baudrate has to be set to 1200 baud and the stop bits to 2. It is recommended to use pins associated with a hardware UART. For more information regarding uart configuration, refer to UART.

  • Only the provided sensors will appear as sensor, and only those are read from the meter.

  • Custom sensors can be used to receive measurements from the Kampstrup meter, other than the ones provided natively with this component. To request extra measurements, add one or multiple sensors to the custom setting and provide the KMP command. This command is a 2 byte integer value. For example 0x003C is the command code for heat energy. In the example above, two custom sensors were added. These request the Heat Energy and Heat Power respectively. This will be the same as the native heat_energy and power sensors.

  • Keep in mind that the meter is battery operated. The more sensors read and the lower the update interval, the faster the battery will drain.


The Kamstrup meter uses an optical interface, just above the display. The required optical transceiver can be made using the schematic below. Connect the RX and TX lines to the pins configured under the uart section in the config file. In the configuration example above, this would be GPIO pin 13 and 15 respectively.


Optical reader schematic

To safe energy, the optical interface of the Kamstrup meter is not active by default. To activate the interface, press a button on the device. The interface will now be available for a few minutes. To keep the interface alive, magnets must be placed around the LED / photo diode. The image below shows the arrangement. The green circles are the LED and photo diode, which must be placed exactly on top of the optical interface window of the meter. The red circles indicate 6mm neodymium magnets.


Magnet arrangement

See Also