Comments (3)
In Verlängerung dazu:
Vielleicht ist es auch möglich, Daten von einer bestehenden InfluxDB zu importieren - vor allem, wenn man schon SENEC-Daten gesammelt hat.
Ich habe mir mit Grafana und einer InfluxDB ein eigenes Dashboard gebaut. Da ich SOLECTRUS nun neu entdeckt habe - und deutlich besser finde, als meine Lösung ;-) - wäre es gut, wenn ich meine historischen Daten in die SOLECTRUS-Datenbank übernehmen könnte. Nur als Idee.
from solectrus.
Grundsätzlich benötigt SOLECTRUS eine bestimmte Struktur der Messwerte in einem InfluxDB-Bucket. Wie die Daten da hineinkommen, ist egal. Der Standard-Weg dürfte der SENEC-Collector (für Live-Daten) und der SENEC-Importer (für historische Daten) sein. Entscheidend ist nur, dass BUCKET
, MEASUREMENT
und alle FIELD
s so bezeichnet sind, wie SOLECTRUS es erfordert - welche das sind, lassen sich in der Admin-Oberfläche von InfluxDB ersehen.
Um eine andere, nicht von SOLECTRUS angelegte Influx-Datenbank abzufragen, wäre es denkbar, wie von @tobintax vorgeschlagen, ein Mapping als optionale Konfiguration von SOLECTRUS zu ergänzen. Probleme gibt es aber spätestens dann, wenn es sich nicht nur um andere Bezeichnungen handelt, sondern es auch inhaltliche Unterschiede gibt. Beispiel: SOLECTRUS erwartet die Felder grid_power_plus
und grid_power_minus
(beide positiv). Das lässt sich nicht auf ein vorhandenes Feld grid_power
mappen, sondern da müsste eine Logik hinzukommen, die Berechnungen durchführen kann. Insofern denke ich nicht, dass ein simples Mapping ausreichen wird.
Besser finde ich die von @noffycws vorgeschlagene Lösung einer Migration. Das sollte mit Bordmitteln von InfluxDB machbar sein.
- Admin-Login in die bestehende InfluxDB
- Neuen Bucket anlegen mit dem Namen "SENEC" (für SOLECTRUS )
- Im Data Explorer per Query die Daten rüberschieben und dabei umstrukturieren wie nötig. Beispiel:
from(bucket: "AlterEimer")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == 'AltesMeasurement")
|> filter(fn: (r) => r["_field"] == "ErzeugterStrom")
|> map(fn: (r) => ({ r with _value: r._value, _field: "inverter_power" }))
|> to(bucket: "SENEC")
So ungefähr. In den Queries können Mappings und Berechnungen vorgenommen werden. Man muss sich nur etwas mit der Flux language auseinandersetzen :-)
from solectrus.
Für die Anbindung an Nicht-SENEC-Systeme steht mittlerweile der (noch experimentelle) MQTT-Collector bereit.
Ich denke, dieser Weg ist sinnvoller. Den oben gemachten Vorschlag, SOLECTRUS an eine bestehende Influx-Datenbank anzubinden, verfolge ich nach jetzigem Stand nicht weiter und schließe daher dieses Issue.
from solectrus.
Related Issues (20)
- Darstellung mehrerer Wallboxen
- Zoom Funktion in Diagrammen HOT 1
- Top10 Anzeige niedrigster Tageswert HOT 2
- Auswertung nach Status HOT 3
- Registrierung HOT 1
- iOS: Kleiner Darstellungsfehler nach Registrierung HOT 1
- Wochendaten für die angefangene Woche passen nicht zu den Tagesdaten HOT 1
- Registrierung: Bitte melde Dich als Administrator an HOT 2
- Postgres container startet permanent neu HOT 8
- display dashboard on old ipad in kiosk mode HOT 3
- Battery status 'FAIL' HOT 4
- Fehler 500 nach Änderung von POSTGRES_PASSWORD HOT 4
- Fehler 500 HOT 5
- Anzeige Konditionierungs-Modus HOT 10
- reset registration token HOT 1
- Anzeige Firmware Version HOT 6
- autarky circle is missing HOT 1
- FAIL + Keine Daten vorhanden! HOT 5
- zwei Grafiken übereinander anzeigen HOT 3
- 500 after trying to login HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from solectrus.