Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
112 lines (106 loc) · 3.92 KB
/
Copy pathdocker-compose.yml
File metadata and controls
112 lines (106 loc) · 3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
services:
influxdb:
image: influxdb:2.7
restart: unless-stopped
ports:
- "8086:8086"
environment:
DOCKER_INFLUXDB_INIT_MODE: setup
DOCKER_INFLUXDB_INIT_USERNAME: ${INFLUXDB_ADMIN_USER}
DOCKER_INFLUXDB_INIT_PASSWORD: ${INFLUXDB_ADMIN_PASSWORD}
DOCKER_INFLUXDB_INIT_ORG: ${INFLUXDB_ORG}
DOCKER_INFLUXDB_INIT_BUCKET: ${INFLUXDB_BUCKET}
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: ${INFLUXDB_TOKEN}
volumes:
- influxdb-data:/var/lib/influxdb2
sigenstor-collector:
build: ./sigenstor-collector
restart: unless-stopped
depends_on:
- influxdb
environment:
MODBUS_HOST: ${MODBUS_HOST}
MODBUS_PORT: ${MODBUS_PORT}
PLANT_SLAVE_ID: ${PLANT_SLAVE_ID}
INVERTER_SLAVE_ID: ${INVERTER_SLAVE_ID}
FAST_POLL_SECONDS: ${FAST_POLL_SECONDS}
MEDIUM_POLL_SECONDS: ${MEDIUM_POLL_SECONDS}
SLOW_POLL_SECONDS: ${SLOW_POLL_SECONDS}
INFLUXDB_URL: http://influxdb:8086
INFLUXDB_TOKEN: ${INFLUXDB_TOKEN}
INFLUXDB_ORG: ${INFLUXDB_ORG}
INFLUXDB_BUCKET: ${INFLUXDB_BUCKET}
weather-collector:
build: ./weather-collector
restart: unless-stopped
depends_on:
- influxdb
environment:
WEATHER_LATITUDE: ${WEATHER_LATITUDE}
WEATHER_LONGITUDE: ${WEATHER_LONGITUDE}
WEATHER_PAST_DAYS: ${WEATHER_PAST_DAYS}
WEATHER_FORECAST_DAYS: ${WEATHER_FORECAST_DAYS}
WEATHER_POLL_SECONDS: ${WEATHER_POLL_SECONDS}
INFLUXDB_URL: http://influxdb:8086
INFLUXDB_TOKEN: ${INFLUXDB_TOKEN}
INFLUXDB_ORG: ${INFLUXDB_ORG}
INFLUXDB_BUCKET: ${INFLUXDB_BUCKET}
variheat-collector:
build: ./variheat-collector
restart: unless-stopped
depends_on:
- influxdb
environment:
VARIHEAT_MODBUS_HOST: ${VARIHEAT_MODBUS_HOST}
VARIHEAT_MODBUS_PORT: ${VARIHEAT_MODBUS_PORT}
VARIHEAT_FAST_POLL_SECONDS: ${VARIHEAT_FAST_POLL_SECONDS}
VARIHEAT_MEDIUM_POLL_SECONDS: ${VARIHEAT_MEDIUM_POLL_SECONDS}
# Optional - republishes a subset of readings to the variheat/* MQTT
# topics node-red.json's dashboard/logic already consume, so BACnet's
# own polling loop can be retired. Leave unset to disable.
MQTT_HOST: ${MQTT_HOST}
MQTT_PORT: ${MQTT_PORT}
INFLUXDB_URL: http://influxdb:8086
INFLUXDB_TOKEN: ${INFLUXDB_TOKEN}
INFLUXDB_ORG: ${INFLUXDB_ORG}
INFLUXDB_BUCKET: ${INFLUXDB_BUCKET}
# Not started by a plain `docker compose up` - see README. Bring it up
# explicitly with `docker compose --profile control up -d --build variheat-control`
# once VARIHEAT_OCCUPIED_VALUE/VARIHEAT_UNOCCUPIED_VALUE are confirmed
# against the live unit; until then it's safe to enable in dry-run mode too.
variheat-control:
build: ./variheat-control
restart: unless-stopped
profiles:
- control
environment:
MQTT_HOST: ${MQTT_HOST}
MQTT_PORT: ${MQTT_PORT}
VARIHEAT_OCCUPIED_TOPICS: ${VARIHEAT_OCCUPIED_TOPICS}
VARIHEAT_MODBUS_HOST: ${VARIHEAT_MODBUS_HOST}
VARIHEAT_MODBUS_PORT: ${VARIHEAT_MODBUS_PORT}
VARIHEAT_CONTROL_DRY_RUN: ${VARIHEAT_CONTROL_DRY_RUN}
VARIHEAT_OCCUPIED_VALUE: ${VARIHEAT_OCCUPIED_VALUE}
VARIHEAT_UNOCCUPIED_VALUE: ${VARIHEAT_UNOCCUPIED_VALUE}
VARIHEAT_OPERATION_SWITCH_TOPIC: ${VARIHEAT_OPERATION_SWITCH_TOPIC}
VARIHEAT_OPERATION_SWITCH_DRY_RUN: ${VARIHEAT_OPERATION_SWITCH_DRY_RUN}
grafana:
image: grafana/grafana:11.4.0
restart: unless-stopped
ports:
- "3000:3000"
depends_on:
- influxdb
environment:
GF_SECURITY_ADMIN_USER: ${GRAFANA_ADMIN_USER}
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASSWORD}
INFLUXDB_TOKEN: ${INFLUXDB_TOKEN}
INFLUXDB_ORG: ${INFLUXDB_ORG}
INFLUXDB_BUCKET: ${INFLUXDB_BUCKET}
volumes:
- grafana-data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
- ./grafana/dashboards:/var/lib/grafana/dashboards
volumes:
influxdb-data:
grafana-data: