NEWS
Einfach mal zeigen will….. :-) - Teil 3
-
@woupi Danke Allerdings sind das mit Sicherheit keine 5 Jahre, ich habe vor einem Jahr auch bei Null angefangen und sehr viel Hilfe von vielen Seiten bekommen. Daher freue ich mich meine Erfahrungen und Lösen von Fallstricken auch weiter zu geben und so anderen zu helfen. Letztlich ist das Meiste doch Fleißarbeit, wenn man das Prinzip erst mal verstanden hat...
Und das Wichtigste: Nicht davon abschrecken lassen, dass die umfangreichen Lösungen unerreichbar erscheinen. Nicht alles auf einmal, sondern eins nach dem anderen, dann wächst eine komplexe Hausautomation solide Stück für Stück. Und immer fragen, wenn eine unüberwindbare Hürde vor einem steht! -
@frederik-buss sagte in Einfach mal zeigen will….. - Teil 3:
@woupi Danke Allerdings sind das mit Sicherheit keine 5 Jahre, ich habe vor einem Jahr auch bei Null angefangen und sehr viel Hilfe von vielen Seiten bekommen.
Wow, ich bin schon 3 Jahre dran und habe mit VIS nicht mal angefangen. Gut, jetzt muss man das eventuell auch ein bisschen revidieren, Ich saniere seit dem auch mein Haus und das "ich" muss man wörtlich nehmen. Bis auf ein paar Ausnahmen, habe ich bis jetzt alles selber und alleine gemacht.
Daher freue ich mich meine Erfahrungen und Lösen von Fallstricken auch weiter zu geben und so anderen zu helfen. Letztlich ist das Meiste doch Fleißarbeit, wenn man das Prinzip erst mal verstanden hat...
Das freut mich sehr und werde bestimmt in den nächsten Tagen mal darauf zurück kommen, danke schonmal dafür.
Und das Wichtigste: Nicht davon abschrecken lassen, dass die umfangreichen Lösungen unerreichbar erscheinen. Nicht alles auf einmal, sondern eins nach dem anderen, dann wächst eine komplexe Hausautomation solide Stück für Stück. Und immer fragen, wenn eine unüberwindbare Hürde vor einem steht!
So mache ich es auch.
VG
-
@spampunk Vielen Dank! Ich werde mich mal daran machen! Das SVG kann ich aus dem HTML Widget rausportieren und mit dem weiterarbeiten?
-
@ro75 sagte in Einfach mal zeigen will….. - Teil 3:
Hi,
Wie hast du den den Verbrauch tagesbasiert erstellt - ganz rechts unter der Uhr? Also die Balkendiagramm?
Ich habe ein 3EM und den Source Analztics Adapter aber der macht nur Wochenweise. Deines geht ja von (Heute) und zeigt rückwärts die letzen Tahe an?
-
@dos1973 Ich habe den Tagesverbrauch auf 2 Arten ermittelt: Einmal über einen Bereich in Grafana:
SELECT non_negative_difference(last(cumulative_sum)) * 365 FROM ( SELECT cumulative_sum(non_negative_difference(last("value"))) FROM "0_userdata.0.Stromzaehler.Verbrauch" WHERE $timeFilter GROUP BY time(1d) ) WHERE $timeFilter GROUP BY time(1d) tz('Europe/Berlin')
und einmal täglich kurz nach Mitternacht (Blockly: Aktueller Zählerstand - ZählerstandBeiLetzterAblesung). Dann wird der tägliche Stromverbrauch weggeschrieben, was ich für die Jahreshochrechnung nutze, bzw. als Tageswert in Grafana ausgeben kann.
-
@frederik-buss
Danke dir.
Die Balken kommen dann aus Grafana? -
@dos1973 Das Diagramm ist Material Design. Ich summiere alle Aktoren (Fritz Dect Steckdosen) und speichere den Wert in einem DP um 23:59:50 Sekunden ab. Danach summiere ich erneut. Dann wird wieder der Wert um die genannte Zeit in den DP gespeichert. Der DP wird mit SQL.0 historisiert.
Der DP wird dann über die letzten 7 Tage aus der Datenbank mit einem Skript abgefragt, ein JSON erstellt, gespeichert und dann mit dem Diagramm drgestellt.
-
Ok, danke dir.
Ich hab mir mit Blockly etwas gebaut…
Nicht ganz so elegant wie Du mit jsonMal schauen ob die Werte um 23:59 eine Tag „zurückspringen“
-
@dos1973 ja genau. Ich logge einmal am Tag den Zählerstand von Strom und Gas in einen separaten Datenpunkt für die Tageshochnung, den Rest, sprich einzelne Balken für gesamt Verbrauch sowie die einzelnen Verbraucher macht Grafana.
-
@dos1973 Hier nochmal ein paar Beispiele aus meiner Vis zu Grafana:
Übersicht auf Tagesbasis mit Strom/Gasverbrauch sowie . Die einzelnen Verbraucher addiert Grafana automatisch, wie man sieht fehlen mir ca. 20-30% um auf den Gesamtverbrauch zu kommen (weisse Linie). Hintergrund: Die Kinderzimmer und Server/FritzBox werden (noch) nicht separat erfasst. Auf der rechten Seite die Zimmertemperaturen der letzten 24 Stunden sowie Heizung mit Gasverbrauch der letzten beiden Tage:
Hier der Wochenverbrauch der größten Verbraucher, aufs Jahr hochgerechnet:
Da Du nach Berechnungen gefragt hast, hier beispielsweise die Datenbasis für die Balkendiagramme "Kühlschrank". Wie Du siehst werden einfach stupide die aktuellen Verbrauchswerte gespeichert, den Rest macht Grafana:
Hier noch ein Beispiel zum Zusammenhang Aussentemperatur und Energieverbrauch. Die Außentemperatur rechnet Grafana als Tagesmittel, Strom und Gasverbrauch als Tagessumme, hochgerechnet aufs Jahr:
-
@frederik-buss
Schaut gut aus. Ich hatte mal Grafana installiert aber wieder verworfen da ich nicht es nicht richtig bedienen konnte. Ich habe eine MariaDB und irgendwie haben alle eine InfluxDB die mit Grafana hantieren. -
@dos1973 sagte in Einfach mal zeigen will….. - Teil 3:
Schaut gut aus. Ich hatte mal Grafana installiert aber wieder verworfen da ich nicht es nicht richtig bedienen konnte. Ich habe eine MariaDB und irgendwie haben alle eine InfluxDB die mit Grafana hantieren.
Moin,
Grafana hat kein Problem, mit MariaDB oder einer anderen SQL Datenbank zu sprechen, dann nutzt man halt nicht QL oder FLUX als Abfragesprache, sondern SQL.
VG
Bernd -
@dp20eic
Ich konnte es nicht richtig bedienen
Die beiden vertragen sich… mal sehen, vielleicht starte ich irgendwann ein neuen Versuch -
@dos1973 sagte in Einfach mal zeigen will….. - Teil 3:
@dp20eic
Ich konnte es nicht richtig bedienen
Die beiden vertragen sich… mal sehen, vielleicht starte ich irgendwann ein neuen VersuchMoin,
nicht verzagen, das Forum fragen, da wird Dir geholfen
Ich habe auch nur
influxDB
am Laufen, wenn Du aber konkrete Fragen hast, installiere ich mir aber auch auf der Testinstanz SQL und versuche zu helfen, soweit ich das verstehe.Mit jeder gut gestellten Frage, lerne ich auch etwas, so hat es für uns beide einen Nutzen
VG
Bernd -
@dp20eic das ist mal eine sehr gute Aussage
Das ist der Grund, warum ich Ausbilder geworden bin.Vielen Dank dafür, dass es so Menschen wie dich gibt.
VG
Sascha -
@dp20eic
Danke Bernd!
Komme drauf zurück
Aktuell baue ich mein Vis (version 637…) neu… dann steht das an. -
@dos1973 Wie Bernd schon geschrieben hat... Bei Fragen, fragen Ich habe die Kombi Influx/Grafana vor allem deshalb gewählt, weil es doch sehr viele Anleitungen etc. hierfür gibt. Grafana ist Anfang etwas tricky, aber sobald man durchsteigt kann man sich alle möglichen Daten und Darstellungen da raus holen. Vor allem bei vielen Datenpunkten ist das hilfreich. Ich hatte Anfangs auch damit begonnen mir Tages und Durchschnittswerte täglich per Script zu berechnen. Wenn das mal ein paar mehr Werte werden sollen, wird das sehr schnell umfangreich und wenig flexibel.
Beispiel: Ich hatte zunächst meine ganzen Stromverbraucher als Tagesverbrauch abgefragt/angezeigt, Abfrage in Grafana:SELECT non_negative_difference(last(cumulative_sum)) FROM ( SELECT cumulative_sum(non_negative_difference(last("value"))) FROM "0_userdata.0.StatusSteckdosen.S14KuecheKuehlen_Energy" WHERE $timeFilter GROUP BY time(1d) ) WHERE $timeFilter GROUP BY time(1d) tz('Europe/Berlin')
Dann dachte ich mir, dass ich mit einer Hochrechnung des Tagesverbrauchs aufs Jahr viel mehr anfangen kann, hierzu ergänze ich lediglich den 365 Multiplikator und fertig:
SELECT non_negative_difference(last(cumulative_sum)) * 365 FROM ( SELECT cumulative_sum(non_negative_difference(last("value"))) FROM "0_userdata.0.StatusSteckdosen.S14KuecheKuehlen_Energy" WHERE $timeFilter GROUP BY time(1d) ) WHERE $timeFilter GROUP BY time(1d) tz('Europe/Berlin')
Mann muss sich an Grafana ein wenig gewöhnen, es gibt aber gute Tutorials in Youtube o.ä. und eben auch das Forum hier
-
@frederik-buss sagte in Einfach mal zeigen will….. - Teil 3:
Vor allem bei vielen Datenpunkten ist das hilfreich. Ich hatte Anfangs auch damit begonnen mir Tages und Durchschnittswerte täglich per Script zu berechnen.
So habe ich das auch angefangen, leider mit nur mäßigen Erfolg.
Meine Kenntnisse von Blockly oder gar Javascript sind einfach zu greing.@frederik-buss sagte in Einfach mal zeigen will….. - Teil 3:
Ich hatte zunächst meine ganzen Stromverbraucher als Tagesverbrauch abgefragt/angezeigt, Abfrage in Grafana:
SELECT non_negative_difference(last(cumulative_sum)) FROM ( SELECT cumulative_sum(non_negative_difference(last("value"))) FROM "0_userdata.0.StatusSteckdosen.S14KuecheKuehlen_Energy" WHERE $timeFilter GROUP BY time(1d) ) WHERE $timeFilter GROUP BY time(1d) tz('Europe/Berlin')Dann dachte ich mir, dass ich mit einer Hochrechnung des Tagesverbrauchs aufs Jahr viel mehr anfangen kann, hierzu ergänze ich lediglich den 365 Multiplikator und fertig:
Habe ich das richtig verstanden? Du hast eine "einfache" Abfrage Grafana und hast damit die gewünschten Diagramme?
Wenn dem so ist, wäre ich dir sehr zu Dank verpflichtet, wenn Du mir das mal kurz erklären könntest, oder einen Link zu einem Tutorial (Deutsch) geben könntest. Wenn ich was finde ist es immer Englisch und das ist bei mir echt eine Katastrophe. Das war bei uns in der Schule noch nicht so wichtig (bin schon was älter).
VG
-
Moin,
zu aller erst musst Du die Daten in einer Datenbank haben, z.B.
influxDB
odermariaDB/mySQL
dann musst Du diese Datenbank inGrafana
als Source einbinden, dann kannst Du, mit der jeweils passenden Abfragesprache, Dir die Werte aus der Datenbank lesen und das Ergebnis wird von Grafana, dann in einer Grafik oder Tabelle verarbeitet/Angezeigt.Abfragesprachen:
influxDB
influxDB V1.8
= influxQL ->SELECT last("value") FROM "Dürkop-e10" WHERE $timeFilter GROUP BY time(5m) fill(none)
influxDB V2.x
= influxQL oder neu FLUX ->import "timezone" import "date" option location = timezone.location(name: "Europe/Berlin") from(bucket: "iobroker_strom") |> range(start: -7d, stop: now()) |> filter(fn: (r) => r["_measurement"] == "sonoff.0.DVES_8AA766.SENSOR.SML.total_kwh") |> filter(fn: (r) => r["_field"] == "value") |> map(fn: (r) => ({r with weekday: date.weekDay(t: r._time)})) |> aggregateWindow(every: 1d, fn: last, createEmpty: false) |> difference(columns: ["_value"]) //|> drop(columns: ["_time"]) |> yield(name: "last") // |> map(fn: (r) => ({ r with weekday: date.weekDay(t: r._time)})) // |> filter(fn: (r) => r.weekday == date.Friday)
MariaDB/mySQL
= SQL ->SELECT MAX(iobroker.ts_number.val) FROM iobroker.ts_number INNER JOIN iobroker.datapoints ON iobroker.ts_number.id=iobroker.datapoints.id WHERE iobroker.datapoints.name like 'javascript.1.Fronius.Messwerte.AktuelleEnergieErzeugung';
Und hier mal ein Beispiel:
Und so sieht es dann als fertiges Dashboard bzw. Panel aus, Du kannst dann ein ganzes Dashboard oder ein einzelnes Panel in Deiner VIS anzeigen.
VG
Bernd -
@dp20eic
Auch wenn das gar nicht meine Frage war, hilft das dem ein oder anderen sicher sehr weiter.
Vielen Dank für die sehr ausführlich Antwort.Meine Frage zielte mehr auf die täglich/wöchentlich/usw berechneten werte in Grafana,
also das was frederik-buss beschrieben hat.Kommt bestimmt noch.
Nochmal, vielen Dank
VG
Sascha