renamed: src.dev/CHANGELOG.md -> srcdev/CHANGELOG.md
renamed: src.dev/README.md -> srcdev/README.md renamed: src.dev/api.py -> srcdev/api.py renamed: src.dev/config.yaml -> srcdev/config.yaml renamed: src.dev/cron.py -> srcdev/cron.py renamed: src.dev/icon.png -> srcdev/icon.png renamed: src.dev/img/addon.png -> srcdev/img/addon.png renamed: src.dev/img/grafana_01.png -> srcdev/img/grafana_01.png renamed: src.dev/img/grafana_02.png -> srcdev/img/grafana_02.png renamed: src.dev/img/grafana_03.png -> srcdev/img/grafana_03.png renamed: src.dev/img/grafana_04.png -> srcdev/img/grafana_04.png renamed: src.dev/img/grafana_05.png -> srcdev/img/grafana_05.png renamed: src.dev/img/grafana_06.png -> srcdev/img/grafana_06.png renamed: src.dev/img/grafana_07.png -> srcdev/img/grafana_07.png renamed: src.dev/log_config.py -> srcdev/log_config.py renamed: src.dev/logo.png -> srcdev/logo.png renamed: src.dev/moj_licznik.py -> srcdev/moj_licznik.py renamed: src.dev/requirements.txt -> srcdev/requirements.txt renamed: src.dev/run.py -> srcdev/run.py renamed: src.dev/run.sh -> srcdev/run.sh renamed: src.dev/rund.sh -> srcdev/rund.sh
This commit is contained in:
96
srcdev/run.py
Normal file
96
srcdev/run.py
Normal file
@@ -0,0 +1,96 @@
|
||||
import threading
|
||||
import time, os, datetime
|
||||
from api import app
|
||||
from waitress import serve
|
||||
import logging, configparser
|
||||
from pathlib import Path
|
||||
from moj_licznik import MojLicznik
|
||||
from log_config import configure_logging
|
||||
|
||||
startup_task_completed = threading.Event()
|
||||
|
||||
def http_server():
|
||||
serve(app, host="0.0.0.0", port=8000, threads=8)
|
||||
|
||||
# Jednorazowe zadanie przy starcie
|
||||
def startup_task():
|
||||
mojLicznik = MojLicznik()
|
||||
logger.info("Rozpoczynam logowanie do Mój licznik.")
|
||||
logger.debug(f"Logowanie użytkownika {username}.")
|
||||
mojLicznik.login(username, password)
|
||||
if mojLicznik.loginStatus:
|
||||
logger.info(f"Aktualizacja liczników...")
|
||||
mojLicznik.update_countners()
|
||||
logger.info(f"Wyszukiwanie najstarszych danych...")
|
||||
mojLicznik.update_first_date()
|
||||
logger.info(f"Pobieranie danych...")
|
||||
mojLicznik.download_charts(full_mode=True)
|
||||
mojLicznik.update_last_days()
|
||||
#mojLicznik.set_daily_zones()
|
||||
logger.debug(f"Wylogowanie użytkownika.")
|
||||
mojLicznik.logout()
|
||||
startup_task_completed.set()
|
||||
|
||||
# Moduł 3: Cykliczne zadanie
|
||||
def periodic_task():
|
||||
startup_task_completed.wait()
|
||||
while True:
|
||||
try:
|
||||
waiting_seconds = 600
|
||||
logger.info(f"Oczekianie...")
|
||||
logger.debug(f"Czekam {waiting_seconds} sekund.")
|
||||
time.sleep(waiting_seconds)
|
||||
mojLicznik = MojLicznik()
|
||||
logger.info(f"Update...{datetime.datetime.now()}")
|
||||
logger.info(f"Logowanie...")
|
||||
mojLicznik.login(username, password)
|
||||
if mojLicznik.loginStatus:
|
||||
logger.info(f"Aktualizacja danych bieżących...")
|
||||
mojLicznik.update_countners()
|
||||
mojLicznik.update_last_days()
|
||||
mojLicznik.download_charts(full_mode=False)
|
||||
# mojLicznik.set_daily_zones()
|
||||
mojLicznik.logout()
|
||||
except:
|
||||
logger.error("PT001: Błąd aktualizacji danych...")
|
||||
|
||||
|
||||
# Uruchomienie wątków dla każdego modułu
|
||||
if __name__ == "__main__":
|
||||
|
||||
plik = Path('config.ini')
|
||||
username = None
|
||||
password = None
|
||||
log_level = None
|
||||
|
||||
if plik.is_file():
|
||||
config = configparser.ConfigParser()
|
||||
config.read("config.ini")
|
||||
username = config.get("Credentials", "username")
|
||||
password = config.get("Credentials", "password")
|
||||
log_level = config.get("Logger", "log_level")
|
||||
else:
|
||||
username = os.getenv("USERNAME")
|
||||
password = os.getenv("PASSWORD")
|
||||
log_level = os.getenv("LOGLEVEL")
|
||||
|
||||
logger_name = "energaMeter"
|
||||
|
||||
configure_logging(log_level, logger_name)
|
||||
logger = logging.getLogger(logger_name)
|
||||
|
||||
peewee_logger = logging.getLogger('peewee')
|
||||
peewee_logger.setLevel(logging.ERROR) # Ustaw poziom na ERROR lub inny poziom, który jest wyższy niż ustawiony w configure_logging
|
||||
|
||||
logger.info("Inicjalizacja OK.")
|
||||
http_server_thread = threading.Thread(target=http_server)
|
||||
startup_task_thread = threading.Thread(target=startup_task)
|
||||
periodic_task_thread = threading.Thread(target=periodic_task)
|
||||
|
||||
http_server_thread.start()
|
||||
startup_task_thread.start()
|
||||
periodic_task_thread.start()
|
||||
|
||||
http_server_thread.join()
|
||||
startup_task_thread.join()
|
||||
periodic_task_thread.join()
|
||||
Reference in New Issue
Block a user