{% set measure_name = '' %}
chart_gauge[{{chart_number}}] = new Highcharts.chart({
chart: {
renderTo: 'container-gauge-{{each_dashboard.id}}',
type: 'gauge',
plotBackgroundColor: null,
plotBackgroundImage: null,
plotBorderWidth: 0,
plotShadow: false,
events: {
load: function () {
{% for each_input in input -%}
{%- for device_and_measurement_ids in graph_input_ids if each_input.unique_id == device_and_measurement_ids.split(',')[0] %}
{%- set measurement_id = device_and_measurement_ids.split(',')[1] -%}
getLastData({{chart_number}}, 'gauge', '{{each_input.unique_id}}', 'input', '{{measurement_id}}', {{each_dashboard.max_measure_age}});
repeatLastData({{chart_number}}, 'gauge', '{{each_input.unique_id}}', 'input', '{{measurement_id}}', {{each_dashboard.refresh_duration}}, {{each_dashboard.max_measure_age}});
{%- endfor -%}
{%- endfor -%}
{% for each_math in math -%}
{%- for device_and_measurement_ids in graph_input_ids if each_math.unique_id == device_and_measurement_ids.split(',')[0] %}
{%- set measurement_id = device_and_measurement_ids.split(',')[1] -%}
getLastData({{chart_number}}, 'gauge', '{{each_math.unique_id}}', 'math', '{{measurement_id}}', {{each_dashboard.max_measure_age}});
repeatLastData({{chart_number}}, 'gauge', '{{each_math.unique_id}}', 'math', '{{measurement_id}}', {{each_dashboard.refresh_duration}}, {{each_dashboard.max_measure_age}});
{%- endfor -%}
{%- endfor -%}
{%- for each_pid in pid -%}
{%- for each_id_and_measure in graph_input_ids if each_pid.unique_id == each_id_and_measure.split(',')[0] %}
getLastData({{chart_number}}, '{{each_id_and_measure.split(',')[0]}}', '{{each_id_and_measure.split(',')[1]}}', 'gauge', {{each_dashboard.max_measure_age}});
repeatLastData({{chart_number}}, '{{each_id_and_measure.split(',')[0]}}', '{{each_id_and_measure.split(',')[1]}}', 'gauge', {{each_dashboard.refresh_duration}}, {{each_dashboard.max_measure_age}});
{%- endfor -%}
{%- endfor -%}
}
},
spacingTop: 0,
spacingLeft: 0,
spacingRight: 0,
spacingBottom: 0
},
title: null,
exporting: {
enabled: false
},
pane: {
startAngle: -150,
endAngle: 150,
background: [{
backgroundColor: '#c1c1c1',
borderWidth: 0,
outerRadius: '105%',
innerRadius: '103%'
}]
},
// the value axis
yAxis: {
min: {{each_dashboard.y_axis_min}},
max: {{each_dashboard.y_axis_max}},
title: {
text: '{{measure_name}} ({{measure_unit}})',
y: 20
},
minColor: "#3e3f46",
maxColor: "#3e3f46",
minorTickInterval: 'auto',
minorTickWidth: 1,
minorTickLength: 10,
minorTickPosition: 'inside',
minorTickColor: '#666',
tickPixelInterval: 30,
tickWidth: 2,
tickPosition: 'inside',
tickLength: 10,
tickColor: '#666',
labels: {
step: 2,
rotation: 'auto'
},
plotBands: [
{% for n in range(colors_gauge_angular[each_dashboard.unique_id]|length) %}
{% set index = '{0:0>2}'.format(n) %}
{
from: {{colors_gauge_angular[each_dashboard.unique_id][n]['low']}},
to: {{colors_gauge_angular[each_dashboard.unique_id][n]['high']}},
color: '{{colors_gauge_angular[each_dashboard.unique_id][n]['hex']}}'
},
{% endfor %}
]
},
series: [{
name: '
{%- for each_input in input -%}
{%- for device_and_measurement_ids in graph_input_ids if each_input.unique_id == device_and_measurement_ids.split(',')[0] -%}
{%- set measurement_id = device_and_measurement_ids.split(',')[1] -%}
{%- if measurement_id in device_measurements_dict -%}
{{each_input.name}} (
{%- if not device_measurements_dict[measurement_id].single_channel -%}
{{'CH' + (device_measurements_dict[measurement_id].channel|int + 1)|string + ', '}}
{%- endif -%}
{{dict_measurements[device_measurements_dict[measurement_id].measurement]['name']}}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{%- for each_math in math -%}
{%- for each_id_and_measure in graph_input_ids if each_math.unique_id == each_id_and_measure.split(',')[0] -%}
{{each_math.measure|safe}}
{%- endfor -%}
{%- endfor -%}
{%- for each_pid in pid -%}
{%- for each_id_and_measure in graph_input_ids if each_pid.unique_id == each_id_and_measure.split(',')[0] -%}
{{dict_measurements[each_id_and_measure.split(',')[1]]['name']|safe}}
{%- endfor -%}
{%- endfor -%})',
data: [null],
dataLabels: {
style: {"fontSize": "14px"},
format: '{point.y:,.1f}'
},
yAxis: 0,
dial: {
backgroundColor: '{% if current_user.theme in dark_themes %}#e3e4f4{% else %}#3e3f46{% endif %}',
baseWidth: 5
},
tooltip: {
{%- for each_input in input -%}
{%- for device_and_measurement_ids in graph_input_ids if each_input.unique_id == device_and_measurement_ids.split(',')[0] %}
{%- set measurement_id = device_and_measurement_ids.split(',')[1] -%}
pointFormatter: function () {
return '\u25CF ' + this.series.name + ': ' + Highcharts.numberFormat(this.y, 2) + ' {{dict_units[device_measurements_dict[measurement_id].unit]['unit']}}
';
},
{%- endfor -%}
{%- endfor -%}
valueSuffix: '
{%- for each_input in input -%}
{%- for device_and_measurement_ids in graph_input_ids if each_input.unique_id == device_and_measurement_ids.split(',')[0] -%}
{%- set measurement_id = device_and_measurement_ids.split(',')[1] -%}
{{' ' + dict_units[device_measurements_dict[measurement_id].unit]['unit']}}
{%- endfor -%}
{%- endfor -%}
{%- for each_math in math -%}
{%- for each_id_and_measure in graph_input_ids if each_math.unique_id == each_id_and_measure.split(',')[0] -%}
{{' ' + each_math.measure_units|safe}}
{%- endfor -%}
{%- endfor -%}
{%- for each_pid in pid -%}
{%- for each_id_and_measure in graph_input_ids if each_pid.unique_id == each_id_and_measure.split(',')[0] -%}
{{' ' + dict_measurements[each_id_and_measure.split(',')[1]]['unit']|safe}}
{%- endfor -%}
{%- endfor -%}'
}
}],
credits: {
enabled: false,
href: "https://github.com/kizniche/Mycodo",
text: "Mycodo"
}
});