{%- set device_id = widget_options['measurement'].split(",")[0] -%} {%- set measurement_id = widget_options['measurement'].split(",")[1] -%} chart[{{chart_number}}] = new Highcharts.chart({ chart: { renderTo: 'container-gauge-{{each_widget.unique_id}}', type: 'solidgauge', events: { load: function () { {% for each_input in input if each_input.unique_id == device_id %} getLastDataGaugeSolid({{chart_number}}, '{{device_id}}', 'input', '{{measurement_id}}', {{widget_options['max_measure_age']}}); repeatLastDataGaugeSolid({{chart_number}}, '{{device_id}}', 'input', '{{measurement_id}}', {{widget_options['refresh_seconds']}}, {{widget_options['max_measure_age']}}); {%- endfor -%} {% for each_math in math if each_math.unique_id == device_id %} getLastDataGaugeSolid({{chart_number}}, '{{device_id}}', 'math', '{{measurement_id}}', {{widget_options['max_measure_age']}}); repeatLastDataGaugeSolid({{chart_number}}, '{{device_id}}', 'math', '{{measurement_id}}', {{widget_options['refresh_seconds']}}, {{widget_options['max_measure_age']}}); {%- endfor -%} {% for each_function in function if each_function.unique_id == device_id %} getLastDataGaugeSolid({{chart_number}}, '{{device_id}}', 'function', '{{measurement_id}}', {{widget_options['max_measure_age']}}); repeatLastDataGaugeSolid({{chart_number}}, '{{device_id}}', 'function', '{{measurement_id}}', {{widget_options['refresh_seconds']}}, {{widget_options['max_measure_age']}}); {%- endfor -%} {%- for each_pid in pid if each_pid.unique_id == device_id %} getLastDataGaugeSolid({{chart_number}}, '{{device_id}}', 'pid', '{{measurement_id}}', {{widget_options['max_measure_age']}}); repeatLastDataGaugeSolid({{chart_number}}, '{{device_id}}', 'pid', '{{measurement_id}}', {{widget_options['refresh_seconds']}}, {{widget_options['max_measure_age']}}); {%- 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: {{widget_options['min']}}, max: {{widget_options['max']}}, stops: [ {% for n in range(widget_variables['colors_gauge_solid']|length) %} {% set index = '{0:0>2}'.format(n) %} [{{widget_variables['colors_gauge_solid'][n]['stop']}}, '{{widget_variables['colors_gauge_solid'][n]['hex']}}'], {% endfor %} ], lineWidth: 0, minorTickInterval: null, tickAmount: 2, title: { {%- if dict_measure_units[measurement_id] in dict_units and dict_units[dict_measure_units[measurement_id]]['unit'] -%} text: '{{dict_units[dict_measure_units[measurement_id]]['unit']}}', {% else %} text: '', {%- endif -%} y: -80 }, labels: { y: 16 } }, plotOptions: { solidgauge: { dataLabels: { y: 5, borderWidth: 0, useHTML: true } } }, series: [{ name: ' {%- for each_input in input if each_input.unique_id == device_id and 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)|string}} {%- endif -%} {%- if device_measurements_dict[measurement_id].measurement -%} {{', ' + dict_measurements[device_measurements_dict[measurement_id].measurement]['name']}} {%- endif -%} {%- endfor -%} {%- for each_math in math if each_math.unique_id == device_id and 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)|string}} {%- endif -%} {%- if device_measurements_dict[measurement_id].measurement -%} {{', ' + dict_measurements[device_measurements_dict[measurement_id].measurement]['name']}} {%- endif -%} {%- endfor -%} {%- for each_function in function if each_function.unique_id == device_id and measurement_id in device_measurements_dict -%} {{each_function.name}} ( {%- if not device_measurements_dict[measurement_id].single_channel -%} {{'CH' + (device_measurements_dict[measurement_id].channel|int)|string}} {%- endif -%} {%- if device_measurements_dict[measurement_id].measurement -%} {{', ' + dict_measurements[device_measurements_dict[measurement_id].measurement]['name']}} {%- endif -%} {%- endfor -%} {%- for each_pid in pid if each_pid.unique_id == device_id and measurement_id in device_measurements_dict -%} {{each_pid.name}} ( {%- if not device_measurements_dict[measurement_id].single_channel -%} {{'CH' + (device_measurements_dict[measurement_id].channel|int)|string}} {%- endif -%} {%- if device_measurements_dict[measurement_id].measurement -%} {{', ' + dict_measurements[device_measurements_dict[measurement_id].measurement]['name']}} {%- endif -%} {%- endfor -%})', data: [null], dataLabels: { format: '
{point.y:,.{{widget_options['decimal_places']}}f}
' + '{{measure_unit}}
' }, tooltip: { {%- for each_input in input if each_input.unique_id == device_id %} pointFormatter: function () { return this.series.name + ': ' + Highcharts.numberFormat(this.y, 2) + ' {{dict_units[device_measurements_dict[measurement_id].unit]['unit']}}
'; }, {%- endfor -%} {%- for each_math in math if each_math.unique_id == device_id %} pointFormatter: function () { return this.series.name + ': ' + Highcharts.numberFormat(this.y, 2) + ' {{dict_units[device_measurements_dict[measurement_id].unit]['unit']}}
'; }, {%- endfor -%} {%- for each_function in function if each_function.unique_id == device_id %} pointFormatter: function () { return this.series.name + ': ' + Highcharts.numberFormat(this.y, 2) + ' {{dict_units[device_measurements_dict[measurement_id].unit]['unit']}}
'; }, {%- endfor -%} valueSuffix: ' {%- for each_input in input if each_input.unique_id == device_id -%} {{' ' + dict_units[device_measurements_dict[measurement_id].unit]['unit']}} {%- endfor -%} {%- for each_math in math if each_math.unique_id == device_id -%} {{' ' + dict_units[device_measurements_dict[measurement_id].unit]['unit']}} {%- endfor -%} {%- for each_function in function if each_function.unique_id == device_id -%} {{' ' + dict_units[device_measurements_dict[measurement_id].unit]['unit']}} {%- endfor -%} {%- for each_pid in pid if each_pid.unique_id == device_id -%} {{' ' + dict_units[device_measurements_dict[measurement_id].unit]['unit']}} {%- endfor -%}' } }], credits: { enabled: false, href: "https://github.com/kizniche/Mycodo", text: "Mycodo" } });