Ich betreibe eine PV-Anlage und diese stellt mir minütlich die Leistungswerte per JSON-Format zu Verfügung.
Bisher habe ich auf meinem NAS QNAP per Crontab nen Skript minütlich laufen lassen welche die Daten in eine SQL-Datenbank schreibt.
Soweit so gut.
Dabei wurde die JSON Datei minütlich vom Wechselrichter neugeschrieben.
Ich würde aber gerne die kleine Last vom NAS nehmen und die Daten nur stündlich schreiben lassen.
Die Dateien würden vom Wechselrichter weiterhin geschrieben werden, ändern würde sich der Dateiname mit dem Format {DATE}_{TIME}.json.
So hätte ich in einem Ordner viele Dateien welche regelmäßig eingelesen werden müssten und anschließen verschoben bzw. gelöscht werden.
So nun die große Frage kann Python einen Ordner mit JSON-Files einlesen oder bin ich auf dem kleinem Holzweg. Oder oder oder .... gibt es eine eleganteren Lösungsansatz.
Ziel des ganzen ist es die Daten später auf einer Homepage graphisch darzustellen, dies ist aber noch im Aufbau.
Hier der CODE welchen ich bisher verwendet habe und auch gut lief:
Code: Alles auswählen
#python3
from __future__ import print_function
from datetime import date, datetime, timedelta
from time import gmtime, strftime
import time
import datetime
import mysql.connector
import json
from pprint import pprint
json_file='/share/solarlog/3.json'
cube='1'
json_data=open(json_file)
data = json.load(json_data)
PV_jetzt=data["Body"]["PAC"]["Values"]["1"]
PV_Unit_tag=data["Body"]["PAC"]["Unit"]
cnx = mysql.connector.connect(user='root', password='admin', database='PV')
cursor = cnx.cursor()
add_data = ("INSERT INTO sensorwerte "
"(sensorid, datumzeit, sensorwert) "
"VALUES ( %s, %s, %s)")
data_PV = ("1", strftime ("%Y-%m-%d %H:%M:%S") , PV_jetzt)
cursor.execute(add_data, data_PV)
cnx.commit()
cursor.close()
cnx.close()