Hallo,
ich möchte gerne die Archivwerte von einer Float-Variablen zu einer Integer Variablen transferieren.
Hat da vielleicht schon jemand ein Skript zu?
Burkhard
Hallo,
ich möchte gerne die Archivwerte von einer Float-Variablen zu einer Integer Variablen transferieren.
Hat da vielleicht schon jemand ein Skript zu?
Burkhard
Ok, dann habe ich mich mal selber hingesetzt
Folgendes ist dabei herausgekommen:
<?php
const VARIABLE_ID_FROM = 42406;
const VARIABLE_ID_TO = 38173;
const MAX = 1000;
$archiveID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];
AC_SetLoggingStatus($archiveID, VARIABLE_ID_TO, true);
AC_SetAggregationType($archiveID, VARIABLE_ID_TO, AC_GetAggregationType($archiveID, VARIABLE_ID_FROM));
$endtime = 0;
$count = 0;
do {
$items = AC_GetLoggedValues($archiveID, VARIABLE_ID_FROM, 0, $endtime, MAX);
$values = [];
foreach ($items as $item) {
$endtime = $item['TimeStamp'] - 1;
// hier erfolgt die Konvertierung nach Integer
$values[] = ['TimeStamp' => $item['TimeStamp'], 'Value' => (int) $item['Value']];
}
$count += count($values);
AC_AddLoggedValues($archiveID, VARIABLE_ID_TO, $values);
} while (count($items) === MAX);
AC_ReAggregateVariable($archiveID, VARIABLE_ID_TO);
echo sprintf('Es wurden %s Datensätze übertragen.', $count);
Vielleicht kann es mal jemand gebrauchen.
Burkhard
Vielen Dank,
konnte ich grade gut gebrauchen !
Sollte eigentlich Standard sein bei den Archivfunktionen