diff --git a/bluemaestro/__init__.py b/bluemaestro/__init__.py index cc3a88e..10c8b41 100755 --- a/bluemaestro/__init__.py +++ b/bluemaestro/__init__.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 import sqlite3 # ugh, dataset stumpled over date format +from itertools import islice from datetime import datetime import logging @@ -12,12 +13,12 @@ def get_logger(): return logging.getLogger('bluemaestro') -def get_data(): +def get_temperature(): logger = get_logger() merged = {} - # TODO could get pretty big ? - for f in sorted(DIR.glob('*.db')): + # TODO how to trigger data download manually? + for f in list(sorted(DIR.glob('*.db'))): def reg(dt: datetime, value): v = merged.get(dt, None) if v is None: @@ -53,15 +54,16 @@ def get_data(): logger.info('total items: %d', len(merged)) # TODO assert frequency? - for k, v in merged.items(): - # TODO shit. quite a few of them have varying values... how is that freaking possible???? - # most of them are withing 0.5 degree though... so just ignore? - if isinstance(v, set) and len(v) > 1: - print(k, v) + # for k, v in merged.items(): + # # TODO shit. quite a few of them have varying values... how is that freaking possible???? + # # most of them are withing 0.5 degree though... so just ignore? + # if isinstance(v, set) and len(v) > 1: + # print(k, v) + return merged def main(): setup_logzero(get_logger(), level=logging.DEBUG) - get_data() + get_temperature() if __name__ == '__main__': diff --git a/bluemaestro/check.py b/bluemaestro/check.py new file mode 100644 index 0000000..92ca2bb --- /dev/null +++ b/bluemaestro/check.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 +import logging +from datetime import timedelta, datetime +from kython import setup_logzero + +from my.bluemaestro import get_temperature, get_logger + +def main(): + setup_logzero(get_logger(), level=logging.DEBUG) + + temps = get_temperature() + latest = sorted(temps.items())[:-2] + + prev, _ = latest[-2] + last, _ = latest[-1] + assert last - prev < timedelta(minutes=3), f'bad interval! {last - prev}' + single = (last - prev).seconds + + NOW = datetime.now() + assert NOW - last < timedelta(days=5), f'old backup! {last}' + + +if __name__ == '__main__': + main()