There is currently a process that allows for power_to_kwhd(). Would it be possible to write a function that does power_to_kwh_per30min?
What would need to be changed in the following code for that?
public function power_to_kwh($feedid, $time_now, $value)
{
$new_kwh = 0;
// Get last value
$last = $this->feed->get_timevalue($feedid);
if (!isset($last['value'])) $last['value'] = 0;
$last_kwh = $last['value']*1;
$last_time = $last['time']*1;
// only update if last datapoint was less than 2 hour old
// this is to reduce the effect of monitor down time on creating
// often large kwh readings.
$time_elapsed = ($time_now - $last_time);
if ($time_elapsed>0 && $time_elapsed<7200) { // 2hrs
// kWh calculation
$kwh_inc = ($time_elapsed * $value) / 3600000.0;
$new_kwh = $last_kwh + $kwh_inc;
$this->log->info("power_to_kwh() feedid=$feedid last_kwh=$last_kwh kwh_inc=$kwh_inc new_kwh=$new_kwh last_time=$last_time time_now=$time_now");
} else {
// in the event that redis is flushed the last time will
// likely be > 7200s ago and so kwh inc is not calculated
// rather than enter 0 we enter the last value
$new_kwh = $last_kwh;
}
$padding_mode = "join";
$this->feed->insert_data($feedid, $time_now, $time_now, $new_kwh, $padding_mode);
return $value;
}