#!/usr/bin/perl -w # License: GPL v3 # Author: Marc MERLIN 2010/03/01 # $Id: parse_power_summary 356 2011-09-24 23:25:47Z svnuser $ use strict; use Date::Manip; my $OUT = ""; while (<>) { /^dump.(\d\d\d\d\d\d\d\d).html:Solar panels produced\s+(\S+)Kwh during\s+(\S+)h, between (\d+):(\d+):\d+ and (\d+):(\d+):\d+/ or die "Can't parse $_\n"; my ($date, $kwh, $duration, $start, $start_min, $stop, $stop_min) = ($1, $2, $3, $4, $5, $6, $7); $start_min /= 60; $stop_min /= 60; $start += $start_min; $stop += $stop_min; $date = epoch("$date 23:59:59"); $_ = "$date:$start:$stop:$duration:$kwh\n"; #print "$_"; $OUT .= $_; } open(OUT, "| xargs /usr/bin/rrdtool update /var/lib/cacti/rra/housedaystats_24.rrd --template ProdStartHour:ProdEndHour:ProdHours:ProdKwh"); print OUT $OUT; close(OUT); sub epoch { return UnixDate($_[0], "%s"); } #vim:sts=4:sw=4