chart_gauge[{{chart_number}}] = new Highcharts.chart({ chart: { renderTo: 'container-gauge-{{each_dashboard.id}}', type: 'solidgauge', 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 device_and_measurement_ids in graph_input_ids if each_pid.unique_id == device_and_measurement_ids.split(',')[0] %} {%- set measurement_id = device_and_measurement_ids.split(',')[1] -%} getLastData({{chart_number}}, 'gauge', '{{each_pid.unique_id}}', 'pid', '{{measurement_id}}', {{each_dashboard.max_measure_age}}); repeatLastData({{chart_number}}, 'gauge', '{{each_pid.unique_id}}', 'pid', '{{measurement_id}}', {{each_dashboard.refresh_duration}}, {{each_dashboard.max_measure_age}}); {%- endfor -%} {%- endfor -%} } }, spacingTop: 0, spacingLeft: 0, spacingRight: 0, spacingBottom: 0 }, title: null, pane: { center: ['50%', '85%'], size: '140%', startAngle: -90, endAngle: 90, background: { backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '#EEE', innerRadius: '60%', outerRadius: '100%', shape: 'arc' } }, exporting: { enabled: false }, rangeSelector: { enabled: false }, // the value axis yAxis: { min: {{each_dashboard.y_axis_min}}, max: {{each_dashboard.y_axis_max}}, stops: [ {% for n in range(colors_gauge_solid[each_dashboard.unique_id]|length) %} {% set index = '{0:0>2}'.format(n) %} [{{colors_gauge_solid[each_dashboard.unique_id][n]['stop']}}, '{{colors_gauge_solid[each_dashboard.unique_id][n]['hex']}}'], {% endfor %} ], lineWidth: 0, minorTickInterval: null, tickAmount: 2, title: { text: '', y: -80 }, labels: { y: 16 } }, plotOptions: { solidgauge: { dataLabels: { y: 5, borderWidth: 0, useHTML: true } } }, 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 device_and_measurement_ids in graph_math_ids if each_math.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_math.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_pid in pid -%} {%- for each_id_and_measure in graph_input_ids if each_pid.unique_id == each_id_and_measure.split(',')[0] -%} {{each_id_and_measure.split(',')[1]|safe}} {%- endfor -%} {%- endfor -%})', data: [null], dataLabels: { format: '
{point.y:,.1f}
' + '{{measure_unit}}
' }, 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 -%} {%- for each_math in math -%} {%- for device_and_measurement_ids in graph_math_ids if each_math.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 device_and_measurement_ids in graph_math_ids if each_math.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_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" } });