änderung von filellog zu logdb

Begonnen von the ratman, 18 April 2016, 10:19:27

Vorheriges Thema - Nächstes Thema

the ratman

sicher ne dumme frage, aber ich hab das problem, dass ich  my $last1hours = myDiff("3600", "FileLog_OC3", "10:::");;\
  my $last3hours = myDiff("10800", "FileLog_OC3", "10:::");;\
  my $last24hours = myDiff("86400", "FileLog_OC3", "10:::");;\
in meine logdb (mysql) bekommen müsste und keinen schimmer habe, was ich da eintragen muß.
"FileLog_OC3" wird wohl "logdb" werden, aber was ist "10:::" und was muß ich da draus machen, damit mysql richtig gefüllt wird?

und bevor ichs vergesse - für obige funktion steht in der 99_MyUtils.pm:# myDiff
# berechnet die Differenz aus der ersten Zeile eines LogFiles und der letzten Zeile eines LogFiles über einen Zeitraum zwischen einem Zeitpunkt in der Vergangenheit und dem Zeitpunkt des Aufrufs
sub
myDiff($$$)
{
my ($offset,$logfile,$cspec) = @_;
my $period_s = strftime "%Y-%m-%d\x5f%H:%M:%S", localtime(time-$offset);
my $period_e = strftime "%Y-%m-%d\x5f%H:%M:%S", localtime;
my $oll = $attr{global}{verbose};
$attr{global}{verbose} = 0;
my @logdata = split("\n", fhem("get $logfile - - $period_s $period_e $cspec"));
$attr{global}{verbose} = $oll;
my ($cnt, $first, $last, $diff) = (0)x4;
foreach (@logdata){
  my @line = split(" ", $_);
  if(defined $line[1] && "$line[1]" ne ""){
   $cnt += 1;
    if ($cnt == 1) {
     $first = $line[1];
    }
   $last = $line[1];
  }
}
$diff = $last - $first;
Log 4, ("myDiff: File: $logfile, Field: $cspec, Period: $period_s bis $period_e, First: $first, Last: $last, Diff: $diff");
return $diff;
}
muß ich da eventuell auch was ändern?
→do↑p!dnʇs↓shit←

dev0

#1
Das Einfachste ist ein Event mit trigger zu erzeugen oder hiermit.

the ratman

hilft mir leider nicht viel - das ganze konstrukt ist für meine wetterstation und ALLES davon ist ne abschreibübung (ahnung von perl: 0%) von hier http://www.fhemwiki.de/wiki/HM-WDS100-C6-O_Funk-Kombi-Sensor_OC3 (abschnitt Anwendungsbeispiele).

sprich: ich muß obigen teil umgeschrieben haben, oder ne genaue info mit anleitung für ahnungslose kriegen, was ich mit deinen sachen anstellen soll.
→do↑p!dnʇs↓shit←

dev0

trigger ist in der command ref beschrieben. Über die fhem() Funktion kannst Du Fhem Befehle auch in Perl Code nutzen:

fhem("trigger device reading: $last1hours");


Zitat von: the ratman am 18 April 2016, 10:38:54
(ahnung von perl: 0%)
Schlecht, wenn man ein perl framework, wie Fhem, benutzt.
Tipp zum Einstieg: Perl – SELFHTML-Wiki