// Retrieve the latest/last measurement for indicator widget function getLastDataIndicator(chart_number, unique_id, measure_type, measurement_id, max_measure_age_sec, decimal_places, invert) { if (decimal_places === null) { decimal_places = 1; } // Get output state for indicator and output widgets if (measure_type === "output") { const url = '/outputstate_unique_id/' + unique_id + '/' + measurement_id; $.ajax(url, { success: function (data, responseText, jqXHR) { if (jqXHR.status !== 204) { if (data !== null) { if (data !== 'off') { document.getElementById('value-' + chart_number).title = "{{_('On')}}"; } else { document.getElementById('value-' + chart_number).title = "{{_('Off')}}"; } if ((data !== 'off' && !invert) || (data === 'off' && invert)) { document.getElementById('value-' + chart_number).src = '/static/img/button-green.png'; } else { document.getElementById('value-' + chart_number).src = '/static/img/button-red.png'; } } } else { document.getElementById('value-' + chart_number).src = '/static/img/button-yellow.png'; } }, error: function (jqXHR, textStatus, errorThrown) { document.getElementById('value-' + chart_number).src = ''; document.getElementById('value-' + chart_number).innerHTML = 'NO DATA'; } }); } // Get last measurement else { const url = '/last/' + unique_id + '/' + measure_type + '/' + measurement_id + '/' + max_measure_age_sec.toString(); $.ajax(url, { success: function(data, responseText, jqXHR) { if (jqXHR.status === 204) { document.getElementById('value-' + chart_number).innerHTML = 'NO DATA'; } else { const formattedTime = epoch_to_timestamp(data[0]); const measurement = data[1]; if ((measurement && !invert) || (!measurement && invert)) { document.getElementById('value-' + chart_number).src = '/static/img/button-green.png'; } else { document.getElementById('value-' + chart_number).src = '/static/img/button-red.png'; } document.getElementById('value-' + chart_number).title = "{{_('Value')}}: " + measurement.toFixed(decimal_places); } }, error: function(jqXHR, textStatus, errorThrown) { document.getElementById('value-' + chart_number).title = 'NO DATA'; } }); } } // Repeat function for getLastDataIndicator() function repeatLastDataIndicator(chart_number, dev_id, measure_type, measurement_id, period_sec, max_measure_age_sec, decimal_places, invert) { setInterval(function () { getLastDataIndicator(chart_number, dev_id, measure_type, measurement_id, max_measure_age_sec, decimal_places, invert) }, period_sec * 1000); }