controller implemented and tested

This commit is contained in:
Nils Reiners
2025-09-25 21:16:51 +02:00
parent 0bcf8a2d8c
commit b066658eb0
12 changed files with 95 additions and 1536 deletions

14
main.py
View File

@@ -5,12 +5,16 @@ from heat_pump import HeatPump
from pv_inverter import PvInverter
from solaredge_meter import SolaredgeMeter
from shelly_pro_3m import ShellyPro3m
from energysystem import EnergySystem
from sg_ready_controller import SgReadyController
# For dev-System run in terminal: ssh -N -L 127.0.0.1:8111:10.0.0.10:502 pi@192.168.1.146
# For productive-System change IP-adress in heatpump to '10.0.0.10' and port to 502
interval_seconds = 10
es = EnergySystem()
db = DataBaseInflux(
url="http://192.168.1.146:8086",
token="Cw_naEZyvJ3isiAh1P4Eq3TsjcHmzzDFS7SlbKDsS6ZWL04fMEYixWqtNxGThDdG27S9aW5g7FP9eiq5z1rsGA==",
@@ -23,16 +27,14 @@ shelly = ShellyPro3m(device_name='wohnung_2_6', ip_address='192.168.1.121')
wr = PvInverter(device_name='solaredge_master', ip_address='192.168.1.112')
meter = SolaredgeMeter(device_name='solaredge_meter', ip_address='192.168.1.112')
#controller = SgReadyController(hp, wr)
es.add_components(hp, shelly, wr, meter)
controller = SgReadyController(es)
while True:
now = datetime.now()
if now.second % interval_seconds == 0 and now.microsecond < 100_000:
db.store_data(hp.device_name, hp.get_state())
db.store_data(shelly.device_name, shelly.get_state())
db.store_data(wr.device_name, wr.get_state())
db.store_data(meter.device_name, meter.get_state())
#controller.perform_action()
state = es.get_state_and_store_to_database(db)
controller.perform_action(heat_pump_name='hp_master', meter_name='solaredge_meter', state=state)
time.sleep(0.1)