3 Commits

Author SHA1 Message Date
Hauke Petersen
a22b344028 verbump to 0.0.6 2022-09-21 11:21:21 +02:00
Hauke Petersen
cb3e651983 verbump to 0.0.5 2022-09-15 09:40:22 +02:00
Hauke Petersen
3005dbe7e7 verbump to 0.0.4 2022-09-02 11:16:41 +02:00
2 changed files with 12 additions and 14 deletions

View File

@@ -21,7 +21,7 @@
import setuptools import setuptools
name = "steckie" name = "steckie"
ver = "0.0.3" ver = "0.0.6"
desc = 'Read state from Tasmota smart plugs' desc = 'Read state from Tasmota smart plugs'
setuptools.setup( setuptools.setup(

View File

@@ -20,14 +20,13 @@ import sys
import json import json
import pytz import pytz
import logging import logging
import urllib.request import dateutil
import urllib
from datetime import datetime from datetime import datetime
from deichapp import Deichapp from deichapp import Deichapp
from deichflux import Deichflux from deichflux import Deichflux
from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.schedulers.blocking import BlockingScheduler
import dateutil
CONFIG_DEFAULT = { CONFIG_DEFAULT = {
"interval": 5.0, "interval": 5.0,
} }
@@ -57,9 +56,7 @@ class Steckie(Deichapp):
f'ORDER BY DESC LIMIT 1' f'ORDER BY DESC LIMIT 1'
res = self.db.query(query, None) res = self.db.query(query, None)
for p in res.get_points(): for p in res.get_points():
print(p) self.counters[name]["last"] = dateutil.parser.isoparse(p["time"])
last = pytz.UTC.localize(datetime.utcfromtimestamp(p["time"] / 1e9))
self.counters[name]["last"] = last
total = p["e_total_kwh"] total = p["e_total_kwh"]
self.counters[name]["year"] = total - p["e_year_kwh"] self.counters[name]["year"] = total - p["e_year_kwh"]
self.counters[name]["month"] = total - p["e_month_kwh"] self.counters[name]["month"] = total - p["e_month_kwh"]
@@ -79,7 +76,8 @@ class Steckie(Deichapp):
now = pytz.UTC.localize(datetime.utcnow()) now = pytz.UTC.localize(datetime.utcnow())
try: try:
with urllib.request.urlopen(f'{url}/cm?cmnd=Status%208') as raw: with urllib.request.urlopen(f'{url}/cm?cmnd=Status%208',
timeout=self.cfg["timeout"]) as raw:
resp = json.loads(raw.read().decode("utf-8")) resp = json.loads(raw.read().decode("utf-8"))
except Exception as e: except Exception as e:
logging.warning(f'{name} - no response: {e}') logging.warning(f'{name} - no response: {e}')
@@ -97,14 +95,14 @@ class Steckie(Deichapp):
now_local = now.astimezone(pytz.timezone("Europe/Berlin")) now_local = now.astimezone(pytz.timezone("Europe/Berlin"))
last_local = cnt["last"].astimezone(pytz.timezone("Europe/Berlin")) last_local = cnt["last"].astimezone(pytz.timezone("Europe/Berlin"))
if now_local.date().year != last_local.date().year: if now_local.date().year != last_local.date().year:
self.cnt["year"] = total cnt["year"] = total
self.cnt["month"] = total cnt["month"] = total
self.cnt["day"] = total cnt["day"] = total
elif now_local.date().month != last_local.date().month: elif now_local.date().month != last_local.date().month:
self.cnt["month"] = total cnt["month"] = total
self.cnt["day"] = total cnt["day"] = total
elif now_local.date().day != last_local.date().day: elif now_local.date().day != last_local.date().day:
self.cnt["day"] = total cnt["day"] = total
cnt["last"] = now cnt["last"] = now
# write data to DB # write data to DB