@Segway:
Hier das Javascript dazu - jemand einen Hinweis:
! // –---------------------------------------------------------------------------
! // ----- Abfragen von Werten aus der Datenbank (SQL) ---------------------------
! // -----------------------------------------------------------------------------
! // ----- Datenpunkt der ausgelesen werden soll ---------------------------------
! var id = "hm-rpc.1.KEQ0054069.1.TEMPERATURE"/Temp_Feuchte_Aussen:1.TEMPERATURE/;
! // ----- Datenpunkte in die gespeichert werden soll ----------------------------
! var maxid = 'javascript.0.Statistik_24h_Max_TempAussen';
! var minid = 'javascript.0.Statistik_24h_Min_TempAussen';
! var dt = 24; // Zeitraum in Stunden
! dt = dt36001000; // Zeitraum umrechnen in ??
! // ----- Datenpunkte anlegen ---------------------------------------------------
! createState(maxid, " ");
! createState(minid, " ");
! log('1. ) Datenpunkte angelegt ');
! SQLAbfrage(id);
! //----- SQL-Abfrage durchführen
! function SQLAbfrage () {
! log('2. ) Datenpunkt => ' + id);
! log('2a.) Abfrage => SELECT * FROM iobroker.datapoints WHERE name = '' + id + ''');
! sendTo('sql.0', 'query', 'SELECT * FROM iobroker.datapoints WHERE name = '' + id + ''', GetResults);
! }
! //---------------------------------------
! function GetResults (dpoint) {
! log('3. ) Funktion -> GetResults aufrufen');
! var end_time = new Date().getTime();
! var start_time = new Date().getTime() - dt;
! log('3a.) Startzeit : ' + start_time);
! log('3b.) Endzeit : ' + end_time);
! log(' Datenpunkt: ' + dpoint.result);
! log('3c.) result : ' + JSON.stringify(dpoint.result) + ' -//- ' + start_time);
! log(' Datenpunkt: ' + dpoint.result[0].id + ' –-//--- ' + dpoint.result[0].name);
! sendTo('sql.0', 'query', 'SELECT Round(Min(val),1) As MinVal FROM iobroker.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum);
! sendTo('sql.0', 'query', 'SELECT Round(Max(val),1) As MaxVal FROM iobroker.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum);
! }
! //–--- Werte schreiben (maximum, minimum)
! //----- minimum
! function minimum(result) {
! log('min )Funktion -> ' + JSON.stringify(result.result));
! setState(minid, result.result[0].MinVal);
! }
! //–--- maximum
! function maximum(result) {
! log('max )Funktion -> ' + JSON.stringify(result.result));
! setState(maxid, result.result[0].MaxVal);
! log('–-- fertig -----------------------------------------');
! }
! //---------------------------------------
! // ----- Funktion jede Minute aufrufen
! schedule("*/1 * * * *", function(){SQLAbfrage(id);}); `
Kurze Frage noch zu dem Script:
Schaut das Script im Prinzip IMMER AKTUELL auf die letzten 24 Stunden und macht dann entsprechend des Poll-Script-Aufrufes eine Datenpunktaktualisierung ?also von 19 bis 19 Uhr ? wenn ich um 21Uhr schaue ist es von 21 bis 21 Uhr ?
Was wäre zu tun, wenn es immer für den jeweiligen Tag dies machen soll also von 0:00 bis 23:59 ?