NEWS
InfluxDB mit Tages PV Vorhersage füllen
-
Hallo
Ich lese die PV-Forecast Stunden Daten von https://api.forecast.solar aus.
Ich habe die Daten in den Objekten abgelegt.
Siehe hier:
Nun möchte ich diese Stunden Daten in eine InfluxDB schreiben.
Dazu muss Value und Zeit in die DB geschrieben werden.
Dargestellt werden soll das mit Grafana.
Wie kann ich die Daten in die DB schreiben?
Gruß NetFritz -
hast Du denn bereits InfluxDB und Grafana installiert sowie die InfluxDB erfolgreich per Adapter im ioBroker integriert?
Ein Datenpunkt schreibt in die Datenbank, indem Du beim Datenpunkt ganz rechts aussen auf den Schraubenschlüssel klickst und die Aufzeichnung "aktiverst".
Du solltes zudem unbedingt bei "speichern als" eine genaue Zuweisung des Formats angeben (z.B. "Numerisch") -
Hallo
InfluxDB und Grafana ist installiert und die Datenpunkte werden auch in die DB geschrieben.
Das nützt mir aber nichts,
Es soll alle Datenpunkte aus meinen Bild in einen anderen Datenpunkt geschrieben werden, mit Wert und DatumUhrzeit, nach 00:00 Uhr.
So das Grafana nach 00:00 Uhr eine Kurve anzeigt.
Ich habe das bis jetzt mit einem Perl-Script in einer Schleife so gemacht.system("curl -i -XPOST 'http://192.168.2.74:8086/write?db=pv_db' --data-binary 'test pv_voraussage=$pv_voraussage $r_time'");
Gruß NetFritz
-
@NetFritz warum legst Du nicht einfach einen weiteren Datenpunkt an und läßt um 00:00h per Script die Summe der zu addierenden Datnpunkte dort reinschreiben?
Diesen eneun Datenpunkt schreibst Du dann in die InfluxDB -
Hallo
Das geht nicht.
Ich will nicht die Summe der einzelnen Werte in die die DB schreiben,
sondern für jede Uhrzeit den Wert.
Das ergiebt dann in Grafana eine Kurve wie ein Berg.
Gruß NetFritz -
@NetFritz dann haben wir hier ein "Sender/Empfänger" Problem zwischen uns beiden.
Im ersten Post fragst Du "Wie kann ich die Daten in die DB schreiben?", meine Antwort hierauf war falsch ..... als nächstes heisst es bei dir "alle Datenpunkte aus meinen Bild in einen anderen Datenpunkt", aber eine Summe soll es nicht sein ... ich gebe zu, ich verstehe dich nicht!! -
Hallo
Vielleicht kennst Du dich mit der InfluxDB bei dieser Anwendung nicht aus.
Ist nicht böse gemeint.
Man schreibt im allgemeinen in die DB nur den Wert, die Uhrzeit wird dann
automatisch von InfluxDB dazu geschrieben.
Man kann aber auch den Wert und eine Uhrzeit in die DB schreiben.
So schreibt man in einem Rutsch zB
06:00 den Wert 0 rein
07:00 den Wert 100
08:00 den Wert 200
09:00 300
10:00 400
11:00 500
12:00 600
13:00 500
14:00 400
15:00 300
16:00 200
17:00 100
18:00 0
Das ergiebt dann eine Kurve wie ein Berg.
Mit dem Adapter wird das wohl nicht gehen.
Das wird warscheinlich nur mit einem Script gehen.
Gesucht wird ein Script das in die InfluxDB schreiben kann.
Gruß NetFritz -
@NetFritz sagte in InfluxDB mit Tages PV Vorhersage füllen:
Vielleicht kennst Du dich mit der InfluxDB bei dieser Anwendung nicht aus.
da wirst Du recht haben
-
Hallo
Ich bin immer noch dran um die InfuxDB mit values und Time zu füllen.
Habe mir jetzt mal unter ioBroker.influxdb
angesehen.
Da gibt es die Möglichkeit write.Point###writePoint Writes a point to a series - requires database user privileges var point = { attr : value, time : new Date()}; writePoint(seriesName, point, options, callback) { }
Kann man mit time ein belibiges Datum-Zeit oder Timstring eintragen?
Kann man nach der conf vom iobroker-influx dann writePoint aufrufen?
Gruß NetFritz -
Hallo
Habe mal ein Script auf Basis von node-influx erstellt.var influx = require('influx') var client = influx({ // single-host configuration host : '192.168.2.107', port : 8086, // optional, default 8086 protocol : 'http', // optional, default 'http' database : 'iobroker' }) var value = 1111122331; var seriesName = "forecast"; var point = { attr : value, time : new Date('2019-04-22 17:00:00')}; client.writePoint(seriesName, point);
Das Script läuft und trägt die Daten in der InfluxDB ein.
Auch der Zeitspempel wird so eingetragen.
Gehe ich aber bei und ändere ich das Datum auf ein Tag in die Zukunft
dann wird nichts mehr eingetragen.
Muss man irgendwo was einstellen, das es auch für die Zukunft (nächster Tag) geht?
Gruß NetFritz -
Hallo
Zur Info.
Die Daten werden nun in die InfluxDB eingetragen.
Die verflixte DB Abfrage mit Port:8083 hat mich durcheinander gebracht.
Frage ich mit "SELECT * FROM forecast" die DB ab, dann wird in der Abfrage
immer nur bis zur aktuellen Uhrzeit angezeigt.
Als ich die Abfrage in Grafa eingetragen habe ist unter Today der ganze Tag
zu sehen.
Stelle ich unter Time range Das Datum von Heute bis Morgen ein,
Dann sind auch Heute und Morgen in Grafana zu sehen.
Gruß NetFritz -
@NetFritz hallo, ich würde gerne die PV Produktion für den nächsten Tag berechnen - bin aber KEIN Techniker. Wie bekommst du diese werte aus dem API von forecast.solar - kannst du das script / blockly sharen ?
-
Ich bin auch gerade dabei die Forecasts von Ertragsberechnungen in die Hausautomatisierung zu integrieren.
Ich schreibe die forecast.solar Daten mit Telegraf direkt in die InfluxDB ohne über IOBroker zu gehen.
Hier meine Config für die Telegraf Input:[[inputs.http]] urls = [ "https://api.forecast.solar/estimate/watts/<lat>/<lon>/<degree>/<az>/<kwp>?time=utc" ] headers = {"accept" = "text/csv", "X-Delimiter" = "|", "X-Separator" = ";"} data_format = "csv" name_override = "pvForecastWatts" interval = "3600s" csv_header_row_count = 0 csv_column_names = ["time","value"] csv_delimiter = ";" csv_timestamp_column = "time" csv_timestamp_format = "2006-01-02T15:04:05-07:00" [[inputs.http]] urls = [ "https://api.forecast.solar/estimate/watthours/<lat>/<lon>/<degree>/<az>/<kwp>?time=utc" ] headers = {"accept" = "text/csv", "X-Delimiter" = "|", "X-Separator" = ";"} data_format = "csv" name_override = "pvForecastWattHours" interval = "3600s" csv_header_row_count = 0 csv_column_names = ["time","value"] csv_delimiter = ";" csv_timestamp_column = "time" csv_timestamp_format = "2006-01-02T15:04:05-07:00" [[inputs.http]] urls = [ "https://api.forecast.solar/estimate/watthours/day/<lat>/<lon>/<degree>/<az>/<kwp>?time=utc" ] headers = {"accept" = "text/csv", "X-Delimiter" = "|", "X-Separator" = ";"} data_format = "csv" name_override = "pvForecastWattHoursDay" interval = "3600s" csv_header_row_count = 0 csv_column_names = ["time","value"] csv_column_types = [] csv_delimiter = ";" csv_timestamp_column = "time" csv_timestamp_format = "2006-01-02T15:04:05-07:00"
-
@hacki11
leider bekomme ich Telegraf nicht zum laufen... gibt es ein passende Quelle, wo man sich schlau machen könnte?
Ich versuchs schon eine Weile, leider ohne Erfolg...danke
-
@geka79
Falls es jemand von euch braucht, ich schreibe mit Java Value und Time in die Datenbank.Hier ein Beispiel:
sendTo('influxdb.0', 'storeState', {id: 'Temperaturen.Außen.Tagesdurchschnitt2', state: {ts: (new Date().getTime()) - 86400000, val: getState("javascript.0.Aussentemperaturen.Tagesdurchschnitt.Durchschnitt").val, ack: true, from: "javascript.0", q: 0}});
Gruß
-
Hallo Leute, ich versuche seit Tagen die Werte aus dem pv.forecast Adapter in grafana darzustellen und schaffe es nicht. Wie bekomm ich die Werte aus dem Adapter in grafana? Gibt es da ein Schritt für Schritt Anleitung?