https://github.com/wernerfred/docker-nilan-cts700
https://github.com/wernerfred/docker-nilan-cts700
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/wernerfred/docker-nilan-cts700
- Owner: wernerfred
- License: gpl-3.0
- Created: 2021-07-29T20:32:51.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-06T20:07:48.000Z (over 3 years ago)
- Last Synced: 2023-03-06T15:34:10.037Z (over 3 years ago)
- Language: Python
- Size: 58.6 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README







# docker-nilan-cts700
This project uses `pymodbus` to read the Modbus RTU data from a [nilan system with a CTS700 controller](https://www.nilan.at/de-at/startseite/losungen/wohnungslosungen/kompaktlosung/compact-p-cts700). The `prometheus_client` library is used to expose the data via a Prometheus server. All of this is packed in a [Docker](https://hub.docker.com/r/wernerfred/docker-nilan-cts700) container.
## Metrics
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` |
## Installation
### Build from source
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 .
```
### Pull from Docker Hub
You can directly pull the latest release from the [Docker Hub repository](https://hub.docker.com/r/wernerfred/docker-nilan-cts700/):
```
docker pull wernerfred/docker-nilan-cts700
```
## Usage
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
```
### Configuration
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
```
### Prometheus
The metrics are exposed via a Prometheus server. To access the metrics you can use the following URL:
`http://:/metrics`
To add this URL to your Prometheus configuration you can use the following snippet:
```
static_configs: [
{"labels": {"job": "nilan_cts700"}, "targets": [":"]}
]
```