1 #define POWER_PATH "/home/kaapeli/rrdd/power/"
2 #define POWER_RRD_PATH POWER_PATH "power.rrd"
3 #define POWER_IMAGES_PATH POWER_PATH "images/"
5 const char *powertext[] = {
6 "DEF:vesiv=" POWER_RRD_PATH ":vesivoima:AVERAGE",
7 "DEF:ydinv=" POWER_RRD_PATH ":ydinvoima:AVERAGE",
8 "DEF:lauhd=" POWER_RRD_PATH ":lauhdevoima:AVERAGE",
9 "DEF:kauko=" POWER_RRD_PATH ":kaukolampo:AVERAGE",
10 "DEF:teoll=" POWER_RRD_PATH ":teollisuus:AVERAGE",
11 "DEF:muutu=" POWER_RRD_PATH ":muu:AVERAGE",
12 "DEF:huipp=" POWER_RRD_PATH ":huippuvoima:AVERAGE",
13 "DEF:tuont=" POWER_RRD_PATH ":tuonti:AVERAGE",
17 "MIN MAX AVG Last\\n",
19 "AREA:ydinv#ffff00:Ydinvoima ",
20 "GPRINT:ydinv:MIN:" numfmt,
21 "GPRINT:ydinv:MAX:" numfmt,
22 "GPRINT:ydinv:AVERAGE:" numfmt,
23 "GPRINT:ydinv:LAST:" numfmt "\\n",
26 "STACK:teoll#ff00ff:Teollisuus ",
27 "GPRINT:teoll:MIN:" numfmt,
28 "GPRINT:teoll:MAX:" numfmt,
29 "GPRINT:teoll:AVERAGE:" numfmt,
30 "GPRINT:teoll:LAST:" numfmt "\\n",
33 "STACK:kauko#00ff00:Kaukolämpö ",
34 "GPRINT:kauko:MIN:" numfmt,
35 "GPRINT:kauko:MAX:" numfmt,
36 "GPRINT:kauko:AVERAGE:" numfmt,
37 "GPRINT:kauko:LAST:" numfmt "\\n",
40 "STACK:muutu#808080:Muu ",
41 "GPRINT:muutu:MIN:" numfmt,
42 "GPRINT:muutu:MAX:" numfmt,
43 "GPRINT:muutu:AVERAGE:" numfmt,
44 "GPRINT:muutu:LAST:" numfmt "\\n",
47 "STACK:lauhd#ff0000:Lauhdevoima ",
48 "GPRINT:lauhd:MIN:" numfmt,
49 "GPRINT:lauhd:MAX:" numfmt,
50 "GPRINT:lauhd:AVERAGE:" numfmt,
51 "GPRINT:lauhd:LAST:" numfmt "\\n",
54 "STACK:vesiv#0000ff:Vesivoima ",
55 "GPRINT:vesiv:MIN:" numfmt,
56 "GPRINT:vesiv:MAX:" numfmt,
57 "GPRINT:vesiv:AVERAGE:" numfmt,
58 "GPRINT:vesiv:LAST:" numfmt "\\n",
61 "STACK:tuont#000000:Tuonti ",
62 "GPRINT:tuont:MIN:" numfmt,
63 "GPRINT:tuont:MAX:" numfmt,
64 "GPRINT:tuont:AVERAGE:" numfmt,
65 "GPRINT:tuont:LAST:" numfmt "\\n",
68 "STACK:huipp#ff0000:Huippuvoima ",
69 "GPRINT:huipp:MIN:" numfmt,
70 "GPRINT:huipp:MAX:" numfmt,
71 "GPRINT:huipp:AVERAGE:" numfmt,
72 "GPRINT:huipp:LAST:" numfmt "\\n",
77 const char *freqtext[] = {
78 "DEF:freq=" POWER_RRD_PATH ":taajuus:AVERAGE",
82 "MIN MAX AVG Last\\n",
84 "LINE1:freq#0000ff:Taajuus ",
85 "GPRINT:freq:MIN:" numfmt,
86 "GPRINT:freq:MAX:" numfmt,
87 "GPRINT:freq:AVERAGE:" numfmt,
88 "GPRINT:freq:LAST:" numfmt "\\n",
92 const char *deviationtext[] = {
93 "DEF:devi=" POWER_RRD_PATH ":aikapoikkeama:AVERAGE",
97 "MIN MAX AVG Last\\n",
99 "LINE1:devi#0000ff:Aikapoikkeama ",
100 "GPRINT:devi:MIN:" numfmt,
101 "GPRINT:devi:MAX:" numfmt,
102 "GPRINT:devi:AVERAGE:" numfmt,
103 "GPRINT:devi:LAST:" numfmt "\\n",
107 const char *pricetext[] = {
108 "DEF:hinta=" POWER_RRD_PATH ":hinta:AVERAGE",
112 "MIN MAX AVG Last\\n",
114 "LINE1:hinta#0000ff:Hinta ",
115 "GPRINT:hinta:MIN:" numfmt,
116 "GPRINT:hinta:MAX:" numfmt,
117 "GPRINT:hinta:AVERAGE:" numfmt,
118 "GPRINT:hinta:LAST:" numfmt "\\n",
122 const char *consumptiontext[] = {
123 "DEF:kulut=" POWER_RRD_PATH ":kulutus:AVERAGE",
124 "DEF:tuota=" POWER_RRD_PATH ":tuotanto:AVERAGE",
128 "MIN MAX AVG Last\\n",
130 "LINE1:kulut#0000ff:Kulutus ",
131 "GPRINT:kulut:MIN:" numfmt,
132 "GPRINT:kulut:MAX:" numfmt,
133 "GPRINT:kulut:AVERAGE:" numfmt,
134 "GPRINT:kulut:LAST:" numfmt "\\n",
136 "LINE1:tuota#00ff00:Tuotanto ",
137 "GPRINT:tuota:MIN:" numfmt,
138 "GPRINT:tuota:MAX:" numfmt,
139 "GPRINT:tuota:AVERAGE:" numfmt,
140 "GPRINT:tuota:LAST:" numfmt "\\n",
144 const char *importtext[] = {
145 "DEF:tuont=" POWER_RRD_PATH ":tuonti:AVERAGE",
149 "MIN MAX AVG Last\\n",
151 "LINE1:tuont#ff0000:Tuonti ",
152 "GPRINT:tuont:MIN:" numfmt,
153 "GPRINT:tuont:MAX:" numfmt,
154 "GPRINT:tuont:AVERAGE:" numfmt,
155 "GPRINT:tuont:LAST:" numfmt "\\n",
159 const char *freqoptions[] = {
161 "--vertical-label", "Taajuus Hz",
162 "--units-exponent", "-3",
166 const char *deviationoptions[] = {
168 "--vertical-label", "Aikapoikkeama s",
172 const char *priceoptions[] = {
174 "--vertical-label", "Hinta €/MWh",
178 const char *consumptionoptions[] = {
180 "--vertical-label", "Teho MW",
181 "--units-exponent", "0",
185 const char *importoptions[] = {
187 "--vertical-label", "Teho MW",
188 "--units-exponent", "0",
192 const char *poweroptions[] = {
193 "--alt-autoscale-max",
194 "--lower-limit", "0",
197 "--units-exponent", "0",
201 DEFINE_IMAGE(power, "/home/kaapeli/rrdd/power/images/power", 960, 480, 2);
202 DEFINE_IMAGE(freq, "/home/kaapeli/rrdd/power/images/freq", 960, 240, 2);
203 DEFINE_IMAGE(deviation, "/home/kaapeli/rrdd/power/images/deviation",
205 DEFINE_IMAGE(price, "/home/kaapeli/rrdd/power/images/price", 960, 240, 2);
206 DEFINE_IMAGE(consumption,"/home/kaapeli/rrdd/power/images/consumption",
208 DEFINE_IMAGE(import, "/home/kaapeli/rrdd/power/images/import", 960, 240, 2);
210 static struct rrd_image *power_images[] = {
238 struct rrd_data_source power_sources[] = {
239 SOURCE_ENTRY("kulutus", "GAUGE", 360, 0, 20000)
240 SOURCE_ENTRY("tuotanto", "GAUGE", 360, 0, 20000)
241 SOURCE_ENTRY("vesivoima", "GAUGE", 360, 0, 3000)
242 SOURCE_ENTRY("ydinvoima", "GAUGE", 360, 0, 3000)
243 SOURCE_ENTRY("lauhdevoima", "GAUGE", 360, 0, 3000)
244 SOURCE_ENTRY("kaukolampo", "GAUGE", 360, 0, 3000)
245 SOURCE_ENTRY("teollisuus", "GAUGE", 360, 0, 3000)
246 SOURCE_ENTRY("muu", "GAUGE", 360, 0, 3000)
247 SOURCE_ENTRY("huippuvoima", "GAUGE", 360, 0, 3000)
248 SOURCE_ENTRY("tuonti", "GAUGE", 360, -3000, 3000)
249 SOURCE_ENTRY("hinta", "GAUGE", 360, 0, 3000)
250 SOURCE_ENTRY("ylijaama", "GAUGE", 360, -3000, 3000)
251 SOURCE_ENTRY("ylijaamakumul", "GAUGE", 360, -3000, 3000)
252 SOURCE_ENTRY("taajuus", "GAUGE", 360, 0, 3000)
253 SOURCE_ENTRY("aikapoikkeama", "GAUGE", 360, -30, 30)
257 struct rrd_archive power_archives[] = {
258 ARCHIVE_ENTRY("AVERAGE", 0.5, 1, 960)
259 ARCHIVE_ENTRY("AVERAGE", 0.5, 7, 960)
260 ARCHIVE_ENTRY("AVERAGE", 0.5, 31, 960)
261 ARCHIVE_ENTRY("AVERAGE", 0.5, 365, 960)
262 ARCHIVE_ENTRY("MIN", 0.5, 1, 960)
263 ARCHIVE_ENTRY("MIN", 0.5, 7, 960)
264 ARCHIVE_ENTRY("MIN", 0.5, 31, 960)
265 ARCHIVE_ENTRY("MIN", 0.5, 365, 960)
266 ARCHIVE_ENTRY("MAX", 0.5, 1, 960)
267 ARCHIVE_ENTRY("MAX", 0.5, 7, 960)
268 ARCHIVE_ENTRY("MAX", 0.5, 31, 960)
269 ARCHIVE_ENTRY("MAX", 0.5, 365, 960)
273 char *power_parse_cmdline[] = {
279 static struct rrd_database power_rrd = {
281 .filename = POWER_RRD_PATH,
283 .sources = power_sources,
284 .archives = power_archives,
285 .parse = script_parser,
286 .parser_data = power_parse_cmdline,
287 .images = power_images,