Files
E-Manager/client/engine.py

73 lines
1.8 KiB
Python

import serverrequests as serverrequests
import JsonHandling
import energymeter
import energyproducer
import energyuser
import time
import datetime
import json
import main
import serverrequests
# Gehe in eine Dauerschlaufe
ID = "BasToken"
producer_values = []
producers =[]
meter_values = []
meter = []
user_values = []
users = []
Collector = JsonHandling.DataCollector()
data = {}
def calcSomeStuff():
return
while True:
# Neue Konfig holen
try:
config = json.dumps(serverrequests.get_config(ID))
# Versuche, das JSON zu laden
except:
# Falls ein Fehler auftritt oder kein JSON zurückkommt, lade config.json
with open('config.json', 'r') as file:
config = json.dumps(json.load(file))
if JsonHandling.JsonHandling.check_config_has_changed(config):
producers = energyproducer.EnergyProducer.create_producerlist_from_json(config)
meter = energymeter.EnergyMeter.create_meterlist_from_json(config)
users = energyuser.EnergyUser.create_userlist_from_json(config)
producer_values = energyproducer.EnergyProducer.get_all_current_values(producers)
meter_values = energymeter.EnergyMeter.get_all_current_values(meter)
calcSomeStuff()
for user in users:
user.calc_used_power()
main.EnergyUserFactory.distribute_energy(users, 1*(meter_values["Meter_Sum"]["PowerReal_P_Sum"]))
user_values = energyuser.EnergyUser.get_all_current_values(users)
try:
a = json.loads(config)['last_timestamp']
except:
a = "1970-01-01 00:00"
Collector.collect_and_store_data(producer_values, meter_values, user_values, a)
data = Collector.data
try:
if next(iter(data)) != a:
serverrequests.set_data(ID, data)
except:
pass
time.sleep(5)