This project uses pymodbus to read the Modbus RTU data from a nilan system with a CTS700 controller. The prometheus_client library is used to expose the data via a Prometheus server. All of this is packed in a Docker container.
The following metrics are exposed:
| Metric | Register | Description | Unit | Prometheus Type |
|---|---|---|---|---|
nilan_cts700_outdoor_temp | 20282 | T1 outdoor air temperature | Celsius | Gauge |
nilan_cts700_indoor_temp | 20286 | T3 extract air, room temperature | Celsius | Gauge |
nilan_cts700_indoor_temp_wanted | 20260 | Wanted room temperature | Celsius | Gauge |
nilan_cts700_bypass_state | 21773 | Bypass damper | Gauge | |
nilan_cts700_water_temp_bottom | 20522 | T12 bottom temperature in DHW water tank | Celsius | Gauge |
nilan_cts700_water_temp_top | 20520 | T11 top temperature in DHW water tank | Celsius | Gauge |
nilan_cts700_water_temp_wanted | 20460 | Hot water set point | Celsius | Gauge |
nilan_cts700_humidity_average | 20164 | Average Humidity | Percent | Gauge |
nilan_cts700_humidity | 21776 | Actual Humidity | Percent | Gauge |
nilan_cts700_operating_mode | 20120 | Operating mode | Gauge | |
nilan_cts700_supply_air_temp | 20284 | T2 supply air temperature | Celsius | Gauge |
nilan_cts700_user_fan_speed | 4747 | User fan speed | Gauge |
To build this project from source make sure to clone this repository from github and run the following command:
docker build -t wernerfred/docker-nilan-cts700 . You can directly pull the latest release from the Docker Hub repository:
docker pull wernerfred/docker-nilan-cts700 To run the container you can use docker run. You might adjust the following command according to your needs:
docker run -d \ -p 8080:8080 \ wernerfred/docker-nilan-cts700 The following environment variables can be used to configure the container:
| Variable | Default | Description |
|---|---|---|
CTS700_HOST | 192.168.5.107 | The IP address of the nilan CTS700 controller |
CTS700_PORT | 502 | The Modbus RTU port of the nilan CTS700 controller |
PROM_EXPORTER_PORT | 8080 | The port on which the Prometheus server listens |
PROM_EXPORTER_CHECK_INTERVAL | 60 | The interval at which the Prometheus server checks for new data in seconds |
Simply add the environment variables you want to change to your docker run command:
docker run -d \ -p 8080:8080 \ -e CTS700_HOST=192.168.5.107 \ -e CTS700_PORT=502 \ -e PROM_EXPORTER_PORT=8080 \ -e PROM_EXPORTER_CHECK_INTERVAL=60 \ wernerfred/docker-nilan-cts700 The metrics are exposed via a Prometheus server. To access the metrics you can use the following URL:
http://<docker-host>:<prom-exporter-port>/metrics
To add this URL to your Prometheus configuration you can use the following snippet:
static_configs: [ {"labels": {"job": "nilan_cts700"}, "targets": ["<docker-host>:<prom-exporter-port>"]} ]