Compare commits
4 Commits
e8c1c1671b
...
V2.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 2ebdd23bf1 | |||
| db79d903aa | |||
| 14c0148d3a | |||
| 2e52959f53 |
@@ -130,3 +130,6 @@ dmypy.json
|
||||
|
||||
# Smartmeter Konfigurationsfile
|
||||
wetterconfig.toml
|
||||
|
||||
# WeeWx SQLDatenbank
|
||||
weewx.sdb
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ def status_auswerten(r, logger, daten):
|
||||
def sende_daten(url, table, headers, daten, logger):
|
||||
url = f"{url}{table}"
|
||||
for data in daten:
|
||||
data.ts = datetime.datetime.fromtimestamp(int(data.ts)).strftime("%Y-%m-%d %H:%M:%S")
|
||||
data.ts = data.ts.strftime("%Y-%m-%d %H:%M:%S")
|
||||
logger.debug(f"Folgende Daten werden gesendet an {table}:\n {daten}")
|
||||
r = requests.post(url, headers=headers, json=[data.to_dict() for data in daten])
|
||||
status_auswerten(r, logger, daten)
|
||||
|
||||
+12
-8
@@ -36,7 +36,7 @@ def rohdaten_laden(timestamp, stationsname):
|
||||
aufruf_wiederholen = False
|
||||
LOGGER.debug("Lese WeeWx Datenbank")
|
||||
query = db_weewx.Archive.select().where(db_weewx.Archive.date_time > timestamp)\
|
||||
.order_by(db_weewx.Archive.date_time.asc()).limit(int(SENDELIMIT * 1.5))
|
||||
.order_by(db_weewx.Archive.date_time.asc()).limit(int(SENDELIMIT + 2))
|
||||
gesamtzahl = (len(query))
|
||||
if gesamtzahl > SENDELIMIT:
|
||||
gesamtzahl = SENDELIMIT
|
||||
@@ -45,7 +45,9 @@ def rohdaten_laden(timestamp, stationsname):
|
||||
zusatzwetterdaten_liste = []
|
||||
for nr, datensatz in enumerate(query):
|
||||
LOGGER.debug(f"Datensatz {nr + 1} von {gesamtzahl}")
|
||||
rohdaten = {"ts": datensatz.date_time}
|
||||
ts = datensatz.date_time
|
||||
ts_with_tz = ts.replace(tzinfo=datetime.timezone.utc)
|
||||
rohdaten = {"ts": ts_with_tz}
|
||||
if datensatz.us_units == 1:
|
||||
rohdaten["outtemp"] = mwu.temperaturumrechner(datensatz.out_temp)
|
||||
rohdaten["inTemp"] = mwu.temperaturumrechner(datensatz.in_temp)
|
||||
@@ -120,12 +122,13 @@ def freigabe_setzen(zusatzwetterdaten_liste):
|
||||
|
||||
|
||||
def main():
|
||||
laufende_prozesse = check_process()
|
||||
if laufende_prozesse > 1:
|
||||
print("EXIT aufgrund laufender Prozesse")
|
||||
sys.exit()
|
||||
# Verzögerung aufgrund vom Cronjob, >>alle 5Minute, damit es nicht mit der Erstellung von Weewx kolidiert
|
||||
time.sleep(CONFIG["weewx"]["sleeptime"])
|
||||
if sys.platform == "linux":
|
||||
laufende_prozesse = check_process()
|
||||
if laufende_prozesse > 1:
|
||||
print("EXIT aufgrund laufender Prozesse")
|
||||
sys.exit()
|
||||
# Verzögerung aufgrund vom Cronjob, >>alle 5Minute, damit es nicht mit der Erstellung von Weewx kolidiert
|
||||
time.sleep(CONFIG["weewx"]["sleeptime"])
|
||||
|
||||
db_adapter = CONFIG["weewx"]["db"]
|
||||
db = db_weewx.init_db(CONFIG["weewx"][db_adapter]["database"], db_adapter, CONFIG["weewx"].get(db_adapter))
|
||||
@@ -141,6 +144,7 @@ def main():
|
||||
letzter_ts_server = db_postgrest.hole_letzten_ts(url,
|
||||
CONFIG["zieldb"]["postgrest"]["tablename_basiswetterdaten"],
|
||||
headers, CONFIG["grafana"]["grafana_name"])
|
||||
letzter_ts_server = letzter_ts_server.replace(tzinfo=datetime.timezone.utc)
|
||||
basiswetterdaten, zusatzwetterdaten, aufruf_wiederholen = rohdaten_laden(letzter_ts_server.timestamp(),
|
||||
CONFIG["grafana"]["grafana_name"])
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ class Archive(BaseModel):
|
||||
altimeter = FloatField(null=True)
|
||||
barometer = FloatField(null=True)
|
||||
cons_battery_voltage = FloatField(column_name='consBatteryVoltage', null=True)
|
||||
date_time = AutoField(column_name='dateTime')
|
||||
date_time = TimestampField(column_name='dateTime', primary_key=True, utc=True)
|
||||
dewpoint = FloatField(null=True)
|
||||
extra_humid1 = FloatField(column_name='extraHumid1', null=True)
|
||||
extra_humid2 = FloatField(column_name='extraHumid2', null=True)
|
||||
|
||||
Reference in New Issue
Block a user