{% 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" } });