• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

wview - externe mySQL Datenbank

Begonnen von noxx, 17.09.2012, 13:44:33

⏪ vorheriges - nächstes ⏩

schattenklinge

#20
Hi zusammen,

Hab da mal ein Paar Ideen zu, evtl kann da ja einer was mit anfangen ;)

Vorrausetzungen:
ich gehe davon aus das schonmal ein Shell-Script(http://www.selflinux.de/selflinux/html/shellprogrammierung.html) geschrieben wurde und das Dienste unter Linux gestartet und ausgeführt werden können, sowie grundkenntnisse für SQL(http://www.sql-und-xml.de/sql-tutorial/, http://www.1keydata.com/, eine sehr geile Seite  :top:) bestehen.
Als allererstes benötigt man eine Blechkiste zu Hause auf der ein ähnliches System läuft wie auf dem Server, denn auf diesem wird entwickelt und getestet, was dauern kann.

Vorgehensweise Pi:
Wview dazu bringen CSV Dateien zu generieren, ansonnsten die *.txt in *.csv umbenennen, evtl kann man hier nach die CSV-Datei noch zurechttrimmen:
z.b. aus der Datei von noxx, Das dort alles überflüssige draus verschwindet

20120913 00:00   12.3   12.3   12.3   81   9.1   0   0   -100000   0.0   1008.2   -100000   -100000.000   0.0
20120913 00:05   12.4   12.4   12.4   81   9.2   0   0   -100000   0.0   1008.2   -100000   -100000.000   0.0
20120913 00:10   12.4   12.4   12.4   81   9.2   0   0   -100000   0.0   1008.2   -100000   -100000.000   0.0
20120913 00:15   12.4   12.4   12.4   81   9.3   0   0   -100000   0.0   1008.2   -100000   -100000.000   0.0
20120913 00:20   12.5   12.5   12.5   81   9.3   0   0   -100000   0.0   1008.1   -100000   -100000.000   0.0

Danach sollte man auf dem Pi erstmal den Cronjob für den Ftp einrichten und das alles dazu bringen das eine Datei(CSV) vom Pi auf den Testrechner geschoben wird, was mit der Sourcen CSV auf dem Pi geschieht ist Geschmackssache, ich würde die Datei nach erfolgreichem Senden in einen Ordner, Names gesendet verschieben(sicher ist sicher), wer sich traut kann die Datei auch löschen.
Alle Scripte zum ausführen im Cronjob würde ich als Shell-Script anlegen und in diesem ein SQL-Script ausführen.


Vorgehensweise Blechkiste:

Ich würde mir auf dem Webserver nur die Monats und Jahres Datensätze ablegen.
ich glaube wenn die Tagessätze mit reinlaufen, donnert man die DB ziehmlich schnell dicht, wenn aber Platz keine Rolle spielt Attacke  :D
Die Tagessätze würde ich nur für einen Monat halten und jeden Tag mit einem Create Table beginnen(Tabellenname = Date today) und Danach ein Insert select Statment auf die Tabelle starten was die Datei ausliest und in die Tabelle überträgt.
Am Ende des Monats, würde ich den Inhalt der Tages Tables Zippen und diese Files in eine Extra Tabelle speichern(Tablename=Jahr, Reihe=Monat, Spalten=Tag 1-31, null erlauben) und danach die Tages Tabellen alle Droppen.
Bei den einzelnen Spaltennamen, bei den 3 Tabellen, würde ich die aus den txt Dateien von Wview übernehmen.
Beispiel erstellen einer Tag Tabelle: "create Table = Date Today(timestamp date, temperatur INTEGER(4), Windchill INTEGER(4),HIndex INTEGER(4), Luftfeuchte INTEGER(4), Taupunkt INTEGER(4), Wind INTEGER(4), HiWind INTEGER(4), Windrichtung float(10), Regen INTEGER(4), Barometer INTEGER(6), Solar float(10), ET float(20), UV INTEGER(4));"
Das müsste man mit den anderen Tabellen, Monat Jahr wiederholen, nur nicht täglich :)
Beispiel fürs befüllen der Tagestabelle, hab ich auf die schnelle nicht zusammengebastelt, hier steht aber eine Anleitung http://dev.mysql.com/doc/refman/5.1/de/load-data.html

Vorteile:

  • die Datenmenge läuft nicht so schnell aus dem Ruder,
  • für den Monat lassen sich noch schnelle Stundengenaue Tagesauswertungen fahren,
  • schnelle Monats- und Jahresauswertungen immer verfügbar
Nachteil:

  • wenn man mehr wie einen Monat Stundengenau auswerten will, dauert es ein wenig bis die Daten unzippt sind und zur verfügung stehen
  • falls auf dem Pi nicht direkt aus Wview ein brauchbares csv erstellt werden kann, muss per Script die txt in csv umbenannt und festgelegt werden, ab welcher Reihe aus der csv gelesen wird und dann heisst es, beten das die immer gleich bleibt(da gibt es noch andere optionen)
  • es müssen mehrere Cronjobs erstellt werden, die die einzelnen Scripte steuern, da liegt viel Fehlerpotenzial


Wenn ich die Pi habe und nicht nur theoretisches Wissen verbreite, schreib ich mal eine genauere Anleitung.

Grüsse
Dirk

Ich hab mal ein wenig in dem Wview Manual geschmökert und das hier gefunden:
http://www.wviewweather.com/release-notes/wview-User-Manual.html#Advanced-sqlite

Darin steht:
Zitat
sqlite> .dump archive
(This dumps every row of the archive table in SQL format - very handy for moving your table from one platform to another)
Damit hast du schon alles, was benötigt wird um die DB zu übetragen, da steht noch so einiges mehr, man muss sich nur aufmachen den Interessanten kram rauszulesen, bzw, wie man zu unix zeiten schon sagte: "RTFM" :D

noxx

Habe mich etwas mit PHP befasst, bin nun zumindest soweit, das aus den Archiv Files saubere CSV generiert werden, die ich zumindest per Hand in die mySQL einlesen kann.

Bin noch nicht sicher, ob ich die Daten zusammenfasse auf Min/Max und Mittel pro Tag oder besser pro Stunde.

Automatisch per PHP will er noch nicht, habs aber auch nur ne Stunde ohne Erfolg probiert, wird schon werden.

noxx

Habs nun erstmal. Ob die ideale Lösung ist weiss ich noch nicht. Zumindest wird auf
meinem Webserver um 4.00 Uhr jeden morgen die ARC-****.txt per Cronjob ausgelesen,
Min, Max und Mittelwert (Tageswerte) ermittelt und in eine mySQL DB geschrieben.



Habe somit erstmal für jeden Tag einen Wert.

Ne andere Idee war es, eine *.htx zu machen, der mir alle Werte auf den Server
schiebt die ich haben wil und brauche.

Werde mich aber nochmal mit mySQL auf dem lokalen Server beschäftigen, evtl gehts ja.


noxx

#23
ich habe mal das script gestartet, bekomme aber einen Fehler. Weiß einer was
das bedeutet?

pi@raspberrypi /usr/bin $ wview-mysql-create root password1 root password2 wviewdb

ERROR 1007 (HY000) at line 1: Can't create database 'wviewdb'; database exists

Datenbank wird aber angelegt, aber keine Tabelle.

Gruss


Beiträge zusammengeführt, weil der Autor sich selbst geantwortet hat statt seinen letzten Beitrag zu ändern: 01.11.2012, 07:10:19

falsche fehlermeldung gepostet.

wview-mysql-create root password wview-user password wview

ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear '-user@"localhost" identified by 'password'' at line 1