Kamstrup 403 custom component for Home Assistant.
To use this custom component, you'll need an optical eye and connect your machine running Home Assistant directly with the optical eye to the Kamstrup meter.
The optical eye looks like this:
There is not a lot of tolerance for placing the optical eye on the meter, it can be very tedious to get this right. The best way is to fix the optical eye to the meter. I suggest this 3D-printed holder from Thingiverse.
This component is created to only support the Kamstrup 403 meter. This is a conscious decision because I do own this device and I can only offer support for that. There are some similar devices that work with the same communication protocol. If it does work for a meter that isn't listed below, please create a feature request so I can update the table.
Meter | Supported | Description |
---|---|---|
Kamstrup 403 | Yes | |
Kamstrup 402 | Yes | Confirmed in #14 |
Kamstrup 601 | Yes | Confirmed in #14 |
Kamstrup 602 | Yes | Confirmed in #10 |
Kamstrup 603 | Yes | Confirmed in #18 |
Kamstrup MC66C | No | Supported in my old component |
This component can easily be installed in your Home Assistant using HACS.
- Using the tool of choice open the directory (folder) for your HA configuration (where you find
configuration.yaml
). - If you do not have a
custom_components
directory (folder) there, you need to create it. - In the
custom_components
directory (folder) create a new folder calledkamstrup_403
. - Download all the files from the
custom_components/kamstrup_403/
directory (folder) in this repository. - Place the files you downloaded in the new directory (folder) you created.
- Restart Home Assistant
- In the HA UI go to "Configuration" -> "Integrations" click "+" and search for "Kamstrup 403"
Using your HA configuration directory (folder) as a starting point you should now also have these files:
custom_components/kamstrup_403/pykamstrup/__init__.py
custom_components/kamstrup_403/pykamstrup/const.py
custom_components/kamstrup_403/pykamstrup/kamstrup.py
custom_components/kamstrup_403/translations/en.json
custom_components/kamstrup_403/translations/nl.json
custom_components/kamstrup_403/__init__.py
custom_components/kamstrup_403/config_flow.py
custom_components/kamstrup_403/const.py
custom_components/kamstrup_403/coordinator.py
custom_components/kamstrup_403/diagnostics.py
custom_components/kamstrup_403/manifest.json
custom_components/kamstrup_403/sensor.py
Configuration is done in the UI. It's recommended to use devices as /dev/serial/by-id
and not /dev/ttyUSB1
as the port. This is because the first example is a stable identifier, while the second can change when USB devices are added or removed, or even when you perform a system reboot.
The port should look like this: /dev/serial/by-id/usb-FTDI_FT230X_Basic_UART_D307PBVY-if00-port0
. If the port is a remote port (e.g. by using ser2net) it's possible to use a socket connection too, by using something similar to socket://192.168.1.101:20019
.
Some meters contain a battery, and communicating with the meter does impact battery life. By default, this component updates every 3600
seconds (1 hour). This is configurable. Also, since version 2.0.1
you can also configure the serial timeout. The default value is 1.0
seconds, if you get the error Finished update, No readings from the meter. Please check the IR connection
you can try to increase this value. Fractional numbers are allowed (eg. 0.5
).
You can do this by pressing configure
on the Integrations page:
This component comes with many sensors, and most of the sensors are disabled by default. This is to preserve the battery life of the meter, reading data uses an internal battery, so it's advisable to not read too much data too often. If you like, you can enable as many sensors as you want, it's good to keep a good balance between the number of sensors you enable and the configured Scan interval
.
Next to that, the component will read up to 8 sensors in one interaction with the meter.
This component does support integration into the Home Assitant's energy dashboard.
This sensor, with unit GJ
, can since Home Assistant release 2022.11 directly be added to the energy dashboard. It's important to understand that you need to add this in the individual devices section. So not in the electricity or gas section. The devices here will be added on the bottom of your energy dashboard in a horizontal bar graph showing all your devices in kWh
. This is by design and can't be changed by this component.
From version 2.0.0
of this component, there is Heat Energy to Gas
sensor, this is disabled by default and needs to be manually enabled. It's also required to have the Heat Energy (E1)
sensor enabled for this to work.
This sensor acts as a gas
sensor with the m³
unit and has the same value as Heat Energy (E1)
. This sensor can be added to the energy dashboard in the gas section. The added value for this is, that you get a better visual representation in the energy dashboard, eg hourly graphs.
When you want to report an issue, please add logs from this component. You can enable logging for this component by configuring the logger in Home Assistant as follows:
logger:
default: warn
logs:
custom_components.kamstrup_403: debug
More info can be found on the Home Assistant logger integration page
If you want to contribute to this please read the Contribution guidelines