NEWS
Datenexport CSV Verlaufsdaten (aus MYSQL) *gelöst*
- 
					
					
					
					
Hallo zusammen,
ich würde gerne von einem Datenpunkt die Werte eines Jahres als CSV exportieren, aber leider kommen nur die letzten 24 Stunden in der CSV Datei an. Mache ich etwas falsch?

SQL Adapter: Version 2.2.0
Gruß surfer

 - 
					
					
					
					
Moin,
nein, Du machst nichts falsch.Da ist wohl ein Fehler im
Adminder das exportieren von mehr Daten verhindert. Such mal hier im Forum, nach CSV und/Oder Export, da solltest Du etwas dazu finden.VG
Bernd - 
					
					
					
					
@dp20eic Okay schade. Dann warten wir mal auf ein Update

 - 
					
					
					
					
@dp20eic sagte in Datenexport Verlaufsdaten:
Da ist wohl ein Fehler im Admin d
naja, works as designed: 500 Einträge
mehr weden im Admin auch nicht angezeigt. - 
					
					
					
					
 - 
					
					
					
					
@dp20eic Hey Bernd, da hängt mySQL dahinter. Ich kenne mich aber nicht so wirklich mit den Abfragen aus. Wäre natürlich cool, wenn das klappen würde. Bräuchte von einem Datenpunkt einen Export.
Alles was hinter diesem Datenpunkt liegt:

 - 
					
					
					
					
Moin,
ich nutze
influxdbich könnte Dir evtl. helfen, wenn ich die Datenstruktur in der Datenbank kennen würde und wenn ich die mySQL Workbench kennen würde, Du must dir erst ein SQL bauen, welches Dir die Daten liefert, die Du suchst, also die für ein Jahr deshs100.0.192_168_1_215.power, wenn die Daten stimmen dann muss es in der Workbench ein Menüpunkt geben, mit welchem Du ein export der Daten machst.Ich habe das gerade mal bei MySQL gefunden expor-imort
Da ist der Export, wenn Du jetzt noch mal den Inhalt unter
Columnszeigst, um den `select zu bauen.

Um wie viel Daten geht es, sind das Daten auf Monats, Wochen, Tages, Stunden, Minuten, Sekunden Basis?
Was passiert wenn Du auf das Dreieck neben der ID 50 klickst?Also, hier kann Dir sicherlich jemand helfen der MySQL/mariaDB und auch die Workbench nutzt, ich müsste mir das erst was Installieren um zu schauen, es geht sicher auch auf der Kommandozeile, aber dazu fehlt mir auch die Datenstruktur.
VG
Bernd - 
					
					
					
					
@dp20eic Wenn ich auf das Dreick klicke passiert gar nichts. Mit Rechtsklick bekomme ich das hier angezeigt:

Ich bin auch noch nicht ganz durchgestiegen, wie ich an die Daten dieses Datenpunkts komme. Das müssten einige Daten sein, gestartet im Juni 2022 bis heute.
Export / Import funktioniert auch, den Button hatte ich schon gesehen.
Wahrscheinlich liegen die Daten in der ts_number, wenn ich das richtig deute.

 - 
					
					
					
					
Moin,
da mir die Briefmarken nicht helfen, werde ich mir mal den SQL Adapter und ne
mariaDBinstallieren und testweise mal Daten historisieren, dann kann ich Dir sicher ein SQL Bauen das dann auf Deine Anforderungen angepasst werden kann. Dauert aber etwas.VG
Bernd - 
					
					
					
					
@dp20eic Ich bin da absolut kein Profi, was SQL Geschichten angeht... Vorallem, wie man die Daten dort herauszieht. Für jemand, der sich auskennt mit Sicherheit ein Kinderspiel.
Aber Danke schonmal für deine Mühe!
 - 
					
					
					
					
Moin,
läuft schon, ich kenne mich auch nicht mit jedem Dialekt aus, habe früher mit DB2 zu tun gehabt.
Also aktuell baue ich mir das SQL zusammen, da ich jetzt das Datenmodell sehe.VG
BerndEdit
Ich habe in die von meiner Synology bereitgestelltemariaDBmal die Raumtemperatur meine 11 Meross Thermostate und die Stromzähler Daten Aktuell und Total in dieiobrokerDB schreiben lassen.Da die
mariaDBauf der Syno nicht ganz den Anforderungen das Applikationworkbenchentspricht, habe ich das von mir bevorzugtedbeavergenutzt um die abfrage zu erstellen, ist aber nicht wichtig, nur falls Du auf den Bildern was siehst, dass in derworkbenchanders aussieht.Daten unter
datapoints

Daten unter
sources

Daten unter
ts_number

Abfrage
SELECT ts_number.id as ts_ID, ts_number.ts as Unix_Time, datapoints.name as Name, ts_number.val as Temp from iobroker.datapoints inner join iobroker.ts_number on datapoints.id = ts_number.id where ts_number.val is NOT NULL AND datapoints.name REGEXP 'meross.0.*.room'Ergebnis
Jetzt muss man evtl. noch die Zeit eingrenzen auf die Periode, die Du gern exportieren möchtest.
Muss ich mir aber später anschauen, da ich mich langsam auf den Weg machen muss
Super BowlNight
VG
Bernd - 
					
					
					
					
@dp20eic Das ist ja schonmal gut. Jetzt gibt es zwar die Werte aus, aber dazugehörige Datum fehlt? Zumindest kann ich es in deiner Ausgabe nicht sehen...
 - 
					
					
					
					
Moin,
das ist die Spalte
Unix_Time, das kann man sich auch umrechnen lassen, bin aber wegenSuper Bowlheute noch nicht richtig wach
Wichtig ist auch, wieso möchtest Du das Exportieren, denn je nachdem was Du vor hast, muss dann auch noch aus der Tabelle
sourcesetwas geholt werden.VG
Bernd - 
					
					
					
					
@dp20eic Also ich habe gerade mal deinen Befehl auf meine DB angepasst. Allerdings läuft das Ganze auf einen Fehler, den ich nicht ganz beheben kann...


Achso zu der Frage, warum exportieren: Ich würde gerne die Daten nach Excel exportieren und diese grafisch darstellen lassen. Würde diese Daten dann gerne archivieren pro Jahr.
 - 
					
					
					
					
@surfer09 sagte in Datenexport Verlaufsdaten:
Achso zu der Frage, warum exportieren: Ich würde gerne die Daten nach Excel exportieren und diese grafisch darstellen lassen. Würde diese Daten dann gerne archivieren pro Jahr.
Moin,
zum Archivieren ist ja eigentlich die Datenbank da

Du kannst Excel auch mit einer Datenbank verbinden, ohne dass Du Daten exportieren musst

Hast Du dich schon einmal mit Grafana befasst? Das ist genau dafür gemacht um sich mit einer Datenbank oder Anderen Datenquellen zu verbinden und dann Auswertungen grafisch darzustellen, auch dafür muss man keine Daten exportieren.
Noch ein Tip hier für das Forum, wenn es sich um Text, wie die Fehlermeldung handelt, dann ist es besser diese in die sogenannten
Code Tagszu packen, Bilder sind dazu nicht wirklich gut geeignet.
Auch wenn Du dein SQL als Text in dieCode Tagspackst, dann könnte ich das einfach kopieren, ich werde das nicht aus einem Bild abtippen ;), aber beim drüber Schauen, würde ich sagen, das das-iniobroker-dbdas Problem ist,-ist eine Rechenoperationen wenn ich das auf dem anderen Bild richtig entziffern konnte sagte das auch dieWorkbenchdas Du ein Problem bei-db.datapointshast.
Ich müsste schauen wie beimysqldie Syntax zum Quoten des-ist, gerade keinen blassen Schimmer, Du kannst mal so versuchen'iobroker-db'.datapointsNatürlich bei allen Ausdrücken im SQL wo der Datenbankname benutzt wird.
Die
Code Tagsfindest Du über dem Bereich wo Du den Text verfasst</>, Du kannst dich aber auch in die sogenannteMarkdownSyntax einlesen oder beim Schreiben eines Posts einfach 3 maldann Enter, dann den Text, den Du zeigen möchtest, wieder Enter und wieder 3 mal. Sieht dann wie folgt ausich habe 3 mal ` eingegeben Enter Dann den text und wieder 3 mal `VG
Bernd - 
					
					
					
					
@dp20eic: Fehler bleibt leider gleich, ich hab's mal in die Code-Tags gepackt

19:51:46 SELECT ts_number.id as ts_ID, ts_number.ts as Unix_Time, datapoints.name as Name, ts_number.val as Watt from 'iobroker-db'.datapoints inner join 'iobroker-db'.ts_number on datapoints.id = ts_number.id where ts_number.val is NOT NULL AND datapoints.name REGEXP 'hs100.0.192_168_1_215.power' Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''iobroker-db'.datapoints inner join 'iobroker-db'.ts_number on datapoints.id = ' at line 5 0.000 secError Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''iobroker-db'.datapoints inner join 'iobroker-db'.ts_number on datapoints.id = ' at line 5Von Grafana gehört ja, aber noch nicht benutzt.
Ich muss den Datenpunkt löschen, weil ich ein neues Gerät dafür einsetzen möchte, daher auch der Export, damit mir die Daten nicht verloren gehen. Ich möchte den "toten" Datenpunkt nicht in den Objekten behalten, nur dafür das ich die Daten noch im Zugriff habe. - 
					
					
					
					
Moin,
also bei mir zeig
dbeaverfolgende Syntax anSELECT ts_number.id as ts_ID, ts_number.ts as Unix_Time, datapoints.name as Name, ts_number.val as Temp from `iobroker-db`.datapoints inner join `iobroker-db`.ts_number on datapoints.id = ts_number.id where ts_number.val is NOT NULL AND datapoints.name REGEXP 'meross.0.*.room' ;Hatte vorhin die falschen Hochkommas genommen.
VG
BerndP.S.: also, wenn Du für die Zukunft, nicht auf die gleichen Probleme stoßen möchtest, immer wenn Du ein Gerät austauschen Musst, dann solltest Du dich mal mit dem Thema
Aliasbeschäftigen. Grob gesagt, ist das z.B.:Alias Orig. Device Austausch Device Kaffeemaschine.power hs100.0.192_168_1_215.power da original ok, nicht vorhanden Kaffeemaschine.power original defekt neues-device.power Somit bleibt der Name des Datenpunkts nach außen hin gleich, auch in der Historie/Datenbank, oder für Scripts , nur der original Datenpunkt ändert sich.
 - 
					
					
					
					
@dp20eic Perfekt, mit den Hochkommas funktionierte der Export!
 Eine Schwierigkeit habe ich jetzt noch mit dem Datum / Uhrzeit. In Excel ist das Ganze noch ein Zahlendurcheinander.
Muss beim Befehl "Unix_Time" vielleicht gegen etwas anderes ausgetauscht werden? - 
					
					
					
					
Moin,
lass mich mal schauen, war heute mit anderen Dingen beschäftigt.VG
BerndEditSELECT ts_number.id as ts_ID, ts_number.ts as Unix_Time, DATE_FORMAT(FROM_UNIXTIME(ts/1000), GET_FORMAT(DATETIME,'EUR')) as formated_date, datapoints.name as Name, ts_number.val as Temp from iobroker.datapoints inner join iobroker.ts_number on datapoints.id = ts_number.id where ts_number.val is NOT NULL AND datapoints.name REGEXP 'meross.0.*.room' ;Oder in Excel umwandeln -> Google "unixtime in datum umwandeln"
VG
 - 
					
					
					
					
@dp20eic sagte in Datenexport Verlaufsdaten:
DATE_FORMAT(FROM_UNIXTIME(ts/1000), GET_FORMAT(DATETIME,'EUR')) as formated_date,
Perfekt, ich danke dir! Hat alles funktioniert!
