Verhersage Plot mit Timestampdaten

Begonnen von stenny, 08 März 2025, 15:51:41

Vorheriges Thema - Nächstes Thema

stenny

Hallo,

ich bin dabei mir ein Baloknkraftwerk aufzubauen.
Dieses will ich mit openDTU steuern/auslesen.

Um jetzt nicht alles doppelt zu komfigurieren habe ich dort die Forecast mit eingegeben.
Wie kann ich aus den Daten einen Plot erstellen da die Zeitgleich für 72 Stunden ins log geschrieben werden.
2025-03-08_15:36:31 MQTT2_75175 timeseries_1_timestamp: 1741388400
2025-03-08_15:36:31 MQTT2_75175 timeseries_1_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_2_timestamp: 1741392000
2025-03-08_15:36:31 MQTT2_75175 timeseries_2_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_3_timestamp: 1741395600
2025-03-08_15:36:31 MQTT2_75175 timeseries_3_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_4_timestamp: 1741399200
2025-03-08_15:36:31 MQTT2_75175 timeseries_4_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_5_timestamp: 1741402800
2025-03-08_15:36:31 MQTT2_75175 timeseries_5_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_6_timestamp: 1741406400
2025-03-08_15:36:31 MQTT2_75175 timeseries_6_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_7_timestamp: 1741410000
2025-03-08_15:36:31 MQTT2_75175 timeseries_7_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_8_timestamp: 1741413600
2025-03-08_15:36:31 MQTT2_75175 timeseries_8_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_9_timestamp: 1741417200
2025-03-08_15:36:31 MQTT2_75175 timeseries_9_value: 149.06
2025-03-08_15:36:31 MQTT2_75175 timeseries_10_timestamp: 1741420800
2025-03-08_15:36:31 MQTT2_75175 timeseries_10_value: 617.87
2025-03-08_15:36:31 MQTT2_75175 timeseries_11_timestamp: 1741424400
2025-03-08_15:36:31 MQTT2_75175 timeseries_11_value: 1053.1
2025-03-08_15:36:31 MQTT2_75175 timeseries_12_timestamp: 1741428000
2025-03-08_15:36:31 MQTT2_75175 timeseries_12_value: 1448.2
2025-03-08_15:36:31 MQTT2_75175 timeseries_13_timestamp: 1741431600
2025-03-08_15:36:31 MQTT2_75175 timeseries_13_value: 1663.5
2025-03-08_15:36:31 MQTT2_75175 timeseries_14_timestamp: 1741435200
2025-03-08_15:36:31 MQTT2_75175 timeseries_14_value: 1718.8
2025-03-08_15:36:31 MQTT2_75175 timeseries_15_timestamp: 1741438800
2025-03-08_15:36:31 MQTT2_75175 timeseries_15_value: 1610.5
2025-03-08_15:36:31 MQTT2_75175 timeseries_16_timestamp: 1741442400
2025-03-08_15:36:31 MQTT2_75175 timeseries_16_value: 1407.1
2025-03-08_15:36:31 MQTT2_75175 timeseries_17_timestamp: 1741446000
2025-03-08_15:36:31 MQTT2_75175 timeseries_17_value: 1049.2
2025-03-08_15:36:31 MQTT2_75175 timeseries_18_timestamp: 1741449600
2025-03-08_15:36:31 MQTT2_75175 timeseries_18_value: 609.35
2025-03-08_15:36:31 MQTT2_75175 timeseries_19_timestamp: 1741453200
2025-03-08_15:36:31 MQTT2_75175 timeseries_19_value: 186.39
2025-03-08_15:36:31 MQTT2_75175 timeseries_20_timestamp: 1741456800
2025-03-08_15:36:31 MQTT2_75175 timeseries_20_value: 3.5659
2025-03-08_15:36:31 MQTT2_75175 timeseries_21_timestamp: 1741460400
2025-03-08_15:36:31 MQTT2_75175 timeseries_21_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_22_timestamp: 1741464000
2025-03-08_15:36:31 MQTT2_75175 timeseries_22_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_23_timestamp: 1741467600
2025-03-08_15:36:31 MQTT2_75175 timeseries_23_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_24_timestamp: 1741471200
2025-03-08_15:36:31 MQTT2_75175 timeseries_24_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_25_timestamp: 1741474800
2025-03-08_15:36:31 MQTT2_75175 timeseries_25_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_26_timestamp: 1741478400
2025-03-08_15:36:31 MQTT2_75175 timeseries_26_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_27_timestamp: 1741482000
2025-03-08_15:36:31 MQTT2_75175 timeseries_27_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_28_timestamp: 1741485600
2025-03-08_15:36:31 MQTT2_75175 timeseries_28_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_29_timestamp: 1741489200
2025-03-08_15:36:31 MQTT2_75175 timeseries_29_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_30_timestamp: 1741492800
2025-03-08_15:36:31 MQTT2_75175 timeseries_30_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_31_timestamp: 1741496400
2025-03-08_15:36:31 MQTT2_75175 timeseries_31_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_32_timestamp: 1741500000
2025-03-08_15:36:31 MQTT2_75175 timeseries_32_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_33_timestamp: 1741503600
2025-03-08_15:36:31 MQTT2_75175 timeseries_33_value: 159.56
2025-03-08_15:36:31 MQTT2_75175 timeseries_34_timestamp: 1741507200
2025-03-08_15:36:31 MQTT2_75175 timeseries_34_value: 623.23
2025-03-08_15:36:31 MQTT2_75175 timeseries_35_timestamp: 1741510800
2025-03-08_15:36:31 MQTT2_75175 timeseries_35_value: 1066.4
2025-03-08_15:36:31 MQTT2_75175 timeseries_36_timestamp: 1741514400
2025-03-08_15:36:31 MQTT2_75175 timeseries_36_value: 1401.3
2025-03-08_15:36:31 MQTT2_75175 timeseries_37_timestamp: 1741518000
2025-03-08_15:36:31 MQTT2_75175 timeseries_37_value: 1628.4
2025-03-08_15:36:31 MQTT2_75175 timeseries_38_timestamp: 1741521600
2025-03-08_15:36:31 MQTT2_75175 timeseries_38_value: 1705
2025-03-08_15:36:31 MQTT2_75175 timeseries_39_timestamp: 1741525200
2025-03-08_15:36:31 MQTT2_75175 timeseries_39_value: 1610.4
2025-03-08_15:36:31 MQTT2_75175 timeseries_40_timestamp: 1741528800
2025-03-08_15:36:31 MQTT2_75175 timeseries_40_value: 1374.1
2025-03-08_15:36:31 MQTT2_75175 timeseries_41_timestamp: 1741532400
2025-03-08_15:36:31 MQTT2_75175 timeseries_41_value: 1022.9
2025-03-08_15:36:31 MQTT2_75175 timeseries_42_timestamp: 1741536000
2025-03-08_15:36:31 MQTT2_75175 timeseries_42_value: 597.87
2025-03-08_15:36:31 MQTT2_75175 timeseries_43_timestamp: 1741539600
2025-03-08_15:36:31 MQTT2_75175 timeseries_43_value: 186.82
2025-03-08_15:36:31 MQTT2_75175 timeseries_44_timestamp: 1741543200
2025-03-08_15:36:31 MQTT2_75175 timeseries_44_value: 4.5998
2025-03-08_15:36:31 MQTT2_75175 timeseries_45_timestamp: 1741546800
2025-03-08_15:36:31 MQTT2_75175 timeseries_45_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_46_timestamp: 1741550400
2025-03-08_15:36:31 MQTT2_75175 timeseries_46_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_47_timestamp: 1741554000
2025-03-08_15:36:31 MQTT2_75175 timeseries_47_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_48_timestamp: 1741557600
2025-03-08_15:36:31 MQTT2_75175 timeseries_48_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_49_timestamp: 1741561200
2025-03-08_15:36:31 MQTT2_75175 timeseries_49_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_50_timestamp: 1741564800
2025-03-08_15:36:31 MQTT2_75175 timeseries_50_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_51_timestamp: 1741568400
2025-03-08_15:36:31 MQTT2_75175 timeseries_51_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_52_timestamp: 1741572000
2025-03-08_15:36:31 MQTT2_75175 timeseries_52_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_53_timestamp: 1741575600
2025-03-08_15:36:31 MQTT2_75175 timeseries_53_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_54_timestamp: 1741579200
2025-03-08_15:36:31 MQTT2_75175 timeseries_54_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_55_timestamp: 1741582800
2025-03-08_15:36:31 MQTT2_75175 timeseries_55_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_56_timestamp: 1741586400
2025-03-08_15:36:31 MQTT2_75175 timeseries_56_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_57_timestamp: 1741590000
2025-03-08_15:36:31 MQTT2_75175 timeseries_57_value: 62.262
2025-03-08_15:36:31 MQTT2_75175 timeseries_58_timestamp: 1741593600
2025-03-08_15:36:31 MQTT2_75175 timeseries_58_value: 214.04
2025-03-08_15:36:31 MQTT2_75175 timeseries_59_timestamp: 1741597200
2025-03-08_15:36:31 MQTT2_75175 timeseries_59_value: 250.06
2025-03-08_15:36:31 MQTT2_75175 timeseries_60_timestamp: 1741600800
2025-03-08_15:36:31 MQTT2_75175 timeseries_60_value: 213.32
2025-03-08_15:36:31 MQTT2_75175 timeseries_61_timestamp: 1741604400
2025-03-08_15:36:31 MQTT2_75175 timeseries_61_value: 186.14
2025-03-08_15:36:31 MQTT2_75175 timeseries_62_timestamp: 1741608000
2025-03-08_15:36:31 MQTT2_75175 timeseries_62_value: 250.39
2025-03-08_15:36:31 MQTT2_75175 timeseries_63_timestamp: 1741611600
2025-03-08_15:36:31 MQTT2_75175 timeseries_63_value: 184.44
2025-03-08_15:36:31 MQTT2_75175 timeseries_64_timestamp: 1741615200
2025-03-08_15:36:31 MQTT2_75175 timeseries_64_value: 171.41
2025-03-08_15:36:31 MQTT2_75175 timeseries_65_timestamp: 1741618800
2025-03-08_15:36:31 MQTT2_75175 timeseries_65_value: 244.39
2025-03-08_15:36:31 MQTT2_75175 timeseries_66_timestamp: 1741622400
2025-03-08_15:36:31 MQTT2_75175 timeseries_66_value: 228.99
2025-03-08_15:36:31 MQTT2_75175 timeseries_67_timestamp: 1741626000
2025-03-08_15:36:31 MQTT2_75175 timeseries_67_value: 105.07
2025-03-08_15:36:31 MQTT2_75175 timeseries_68_timestamp: 1741629600
2025-03-08_15:36:31 MQTT2_75175 timeseries_68_value: 4.0447
2025-03-08_15:36:31 MQTT2_75175 timeseries_69_timestamp: 1741633200
2025-03-08_15:36:31 MQTT2_75175 timeseries_69_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_70_timestamp: 1741636800
2025-03-08_15:36:31 MQTT2_75175 timeseries_70_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_71_timestamp: 1741640400
2025-03-08_15:36:31 MQTT2_75175 timeseries_71_value: 0
2025-03-08_15:36:31 MQTT2_75175 timeseries_72_timestamp: 1741644000
2025-03-08_15:36:31 MQTT2_75175 timeseries_72_value: 0

Habe bisher keinen Ansatz gefunden wie ich das Darstellen kann

Gruß
Carsten

rudolfkoenig

Da ich die original Nachricht nicht kenne, habe ich angenommen, dass sie so aufgebaut ist:
{ "timeseries":[ { "timestamp":1741388400,"value":0}, { "timestamp":1741392000,"value":0}, ... ] }
Ich habe eine Funktion in 99_myUtils.pm angelegt:
sub
timeseries2log($$)
{   
  my ($fname, $json) = @_;
  my $kv = json2nameValue($json);
  my $fh;
  if(!open($fh, ">$fname")) {
    Log 1, "timeseries2log: $fname: $!";
    return;
  }
  for(my $idx = 1;; $idx++) {
    last if(!$kv->{"timeseries_${idx}_timestamp"});
    my $tm = FmtDateTime($kv->{"timeseries_${idx}_timestamp"}-2*86400);
    $tm =~ s/ /_/;
    print $fh "$tm time series ".$kv->{"timeseries_${idx}_value"}."\n";
  }
  close($fh);
  return;
}
und diese im readingList aufgerufen:
<TOPIC>:.* { timeseries2log("log/forecast.log", $EVENT) }
(<TOPIC> ist passend zu ersetzen).

Da FileLog nicht (ohne Weiteres) in die Zukunft schauen kann, habe ich den Zeitraum nach hinten veschoben.
Danach ein FileLog angelegt mit
define ts_fl FileLog log/forecast.log UNUSED
attr ts_fl fixedrange 3days

Das Ergebnis ist im Anhang.

stenny

#2
Hallo

danke für deine Mühe am Wochenende.
habe die Änderungen eingefügt, aber das neue LOG hat keine Daten.

..Nachträlich eigefügt Auszug aus dem List (wenn komplett eine Fehlermeldung im Forum)
75175:evcc/site/forecast/solar/timeseries/1/timestamp:.* {timeseries2log("log/forecast.log", $EVENT)}
75175:evcc/site/forecast/solar/timeseries/1/value:.* {timeseries2log("log/forecast.log", $EVENT)}
75175:evcc/site/forecast/solar/timeseries/2/timestamp:.* {timeseries2log("log/forecast.log", $EVENT)}
75175:evcc/site/forecast/solar/timeseries/2/value:.* {timeseries2log("log/forecast.log", $EVENT)}
75175:evcc/site/forecast/solar/timeseries/3/timestamp:.* timeseries_3_timestamp

Bei
define ts_fl FileLog log/forecast.log UNUSED
attr ts_fl fixedrange 3days
ist noch ein kleiner Fehler - fixedrange gehört wohl eher zum SVG

Vielleicht noch eine Idee?

Gruß
Carsten

p.s. Solbalt ich Codes einhänge bekomme ich Datenbankfehler im Forum

betateilchen

Zitat von: stenny am 09 März 2025, 13:11:13habe die Änderungen eingefügt, aber das neue LOG hat keine Daten.
...
Vielleicht noch eine Idee?

ja...

Zitat von: rudolfkoenig am 08 März 2025, 21:18:21Da ich die original Nachricht nicht kenne, habe ich angenommen, dass sie so aufgebaut ist:

poste doch mal die originale Nachricht, die per mqtt ankommt. Rudi musste ja eine Annahme treffen, um seinen Vorschlag aufzubauen. Sollte die Annahme nicht stimmen und die Nachricht anders aussehen, ist es durchaus denkbar, dass der Vorschlag nicht funktioniert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!