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