73 lines
1.8 KiB
Python
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) |