SQL aus Xml automatisch befüllen

BerndS

Benutzer
Beiträge
10
Hallo
Ich möchte die Produktionsdaten(Stromerzeugung) aus meiner PV-Anlage automatisch in eine SQL Datenbank eintragen lassen.
Später sollen die Daten für die Erstellung verschiedener Diagramme genutzt werden.
- Verlauf der Tagesproduktion
- Monats / Jahres Produktion

Sollte dies alles mal funktionieren sollen die Verbrauchsdaten(Stromnutzung) auch mit eingefügt werden.

Ein QNAP NAS mit installierten MYSQL 5.1.73, PHPMYADMIN, JOOMLA stehen zu Verfügung.

Eine Datenbank hab ich erzeugt, ein paar Werte per Hand eingetragen und phpmyadmin erzeugt daraus auch ein Diagramm.
Der Zugriff von Joomla soll später kommen erstmal eins nachdem anderem

Vom Wechselrichter bekomme ich eine XML in diesem Format

Code:
<SunSpecData v="1">
    <d man="Fronius" mod="Fronius Symo 10.0-3-M" sn="123" t="2016-02-28T16:22:20+01:00">
        <m id="1">
            <p id="Mn">12345678910123456789</p>
            <p id="Md">Fronius Symo 10.0-3-M</p>
            <p id="Vr">0.2.25.1</p>
            <p id="SN">123</p>
            <p id="DA">1</p>
        </m>
        <m id="113">
            <p id="W">665.000000</p>
            <p id="Wh">5130160.000000</p>
            <p id="St">4</p>
        </m>
    </d>
</SunSpecData>

Aus diesen Daten würde ich den Zeitstempel(t="xxxxxx" , die momentane Leistung "W", Gesamtleistung des Tages "Wh" in die Tabelle eintragen lassen wollen.
Der Zeitstempel müsste aufgeschlüsselt werden. JJJJ MM TT HH:MM:SS

An diesem Format kann ich nichts ändern.
Die Daten werden alle 10Sek aktualisiert und in eine XML Datei geschrieben. Es besteht aber auch die Möglichkeit das alle 10Sek eine neue Datei geschrieben wird.

Die große Frage ist eigentlich:
Komme ich mit dem mir vorhanden Mitteln ans Ziel, oder benötige ich etwas total anderes?


Meine Erfahrungen im Programmieren sind bisher eigentlich nur mit einem Arduino.
Sprich ich bin mit SQL noch Froschgrün hinter den Ohren.

Sollte es so möglich sein wie ich es vorhabe, wie bekomme ich die Daten im 10Sek in die Datenbank geschrieben?

Grüße der Arne
 
Werbung:
Also unter Windows mit MSSQL könnte man alle 10 Sekunden einen Task ausführen der mit TSQL aus XML einen Datensatz erzeugt. Das ganze ist nicht so elegant und wenn der Task mal nicht läuft dann sind die Daten natürlich verloren da sie ja überschrieben werden. Bei mehreren Dateien hast du zunächst noch die Hürde das der Dateiname variiert, auch das habe ich mit MS mal gebastelt.

Wie das mit Tasks auf deiner NAS ist weiß ich nicht genau. MSSQL hat diverse XML Funktionen, man kann damit XML Daten direkt aus XML lesen und man kann mit MSSQL auch auf das Dateisystem des Servers zugreifen (PG erlaubt das z.B. nur in einem bestimmten Pfad). Für beides kann ich aber keine MySQL Lösung liefern, die unterscheidet sich zu sehr in der Syntax.
MySQL :: MySQL 5.7 Reference Manual :: 12.11 XML Functions
 
Hallo
Ich bin heute morgen nun erstmal etwas weiter gekommen. Auf dem qnap läuft ja Python. Mit Python soll es recht einfach sein aus xml zu lesen/interpretieren und in MySQL zu schreiben. Ich denke das mir hier keiner mit Python helfen kann
 
Werbung:
Zurück
Oben