NEWS
Aus History Adapter Mittelwert erhalten
-
Hallo!
Ich glaube ich verstehe die API vom History Adapter nicht... Ich lasse ihn die Außentemperatur loggen. Ich dachte, dass ich über die API in Javascript so den Minimalwert für einen bestimmten Zeitraum erhalte. Also hier die Minimaltemperatur.
Ich habe also etwas loggen lassen und es dann mit dem Beispiel aus der Adapter-Beschreibung (Werte der letzten Stunde) versucht. Aggregate habe ich auf min gesetzt.
var end = Date.now(); sendTo('history.0', 'getHistory', { id: 'Temp_Luftfeuchte_Sensor_Aussen.1.ACTUAL_TEMPERATURE', options: { start: end - 3600000, end: end, aggregate: 'min' } }, function (result) { for (var i = 0; i < result.result.length; i++) { console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString()); } });
Da kommen ein Haufen Werte zurück, aber nichts was auf einen Minimalwert schließen lässt. Kann es sein, dass ich den Adapter was das angeht falsch verstehe? Ich habe bisher überraschend wenig zum Thema History-Adapter und Minimal-/Maximal-/Durchschnittswert gefunden. Ich hätte gedacht, das wird häufiger benötigt
Wäre total nett, wenn mir jemand auf die Sprünge helfen könnte.
-
@andre-wippich
Versuche es mal mitaggregate: 'min', count: 1
Auf jeden Fall funktioniert es mit
aggregate: 'none'
und Ermittlung des Minimums in der Schleife.
Kannst ja mal beide Versionen vergleichen. -
ich stand vor einen ähnlichen Problem und habe das so gelöst:
let start = new Date(2022, 7, 15, 21, 45, 15, 352); let end = Date.now(); let idPegel = 'pegelalarm.0.stations.wendelstein.height'; let datumNiedrig; let pegelNiedrig = 1000; sendTo('history.0', 'getHistory', { id: 'pegelalarm.0.stations.wendelstein.height', options: { start: start, end: end, aggregate: 'min', count: 0 } }, function (result) { for (var i = 0; i < result.result.length; i++) { let pegel = parseFloat(result.result[i].val); if (pegel < pegelNiedrig) { datumNiedrig = formatDate(result.result[i].ts,'TT.MM.JJJJ - hh:mm') + ' Uhr'; pegelNiedrig = pegel; } } mySetState(`${idDatenpunktPrefix}.${idDatenPunktStrukturPrefix}.DatumNiedrig`, datumNiedrig, 'string', `Datum niedrigster Pegelstand`); mySetState(`${idDatenpunktPrefix}.${idDatenPunktStrukturPrefix}.PegelNiedrig`, pegelNiedrig, 'number', `Niedrigster Pegelstand`); });
-
Danke Euch!