Compare commits
4 Commits
sg_ready_c
...
98302b9af5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
98302b9af5 | ||
|
|
f3de1f9280 | ||
|
|
ecd0180483 | ||
|
|
1784b7c283 |
14
main.py
14
main.py
@@ -22,19 +22,25 @@ db = DataBaseInflux(
|
|||||||
bucket="allmende_db"
|
bucket="allmende_db"
|
||||||
)
|
)
|
||||||
|
|
||||||
hp = HeatPump(device_name='hp_master', ip_address='10.0.0.10', port=502)
|
hp_master = HeatPump(device_name='hp_master', ip_address='10.0.0.10', port=502)
|
||||||
|
hp_slave = HeatPump(device_name='hp_slave', ip_address='10.0.0.11', port=502)
|
||||||
shelly = ShellyPro3m(device_name='wohnung_2_6', ip_address='192.168.1.121')
|
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')
|
wr = PvInverter(device_name='solaredge_master', ip_address='192.168.1.112')
|
||||||
meter = SolaredgeMeter(device_name='solaredge_meter', ip_address='192.168.1.112')
|
meter = SolaredgeMeter(device_name='solaredge_meter', ip_address='192.168.1.112')
|
||||||
|
|
||||||
es.add_components(hp, shelly, wr, meter)
|
es.add_components(hp_master, hp_slave, shelly, wr, meter)
|
||||||
controller = SgReadyController(es)
|
controller = SgReadyController(es)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
if now.second % interval_seconds == 0 and now.microsecond < 100_000:
|
if now.second % interval_seconds == 0 and now.microsecond < 100_000:
|
||||||
state = es.get_state_and_store_to_database(db)
|
state = es.get_state_and_store_to_database(db)
|
||||||
controller.perform_action(heat_pump_name='hp_master', meter_name='solaredge_meter', state=state)
|
mode = controller.perform_action(heat_pump_name='hp_master', meter_name='solaredge_meter', state=state)
|
||||||
|
|
||||||
|
if mode == 'mode1':
|
||||||
|
mode_as_binary = 0
|
||||||
|
else:
|
||||||
|
mode_as_binary = 1
|
||||||
|
db.store_data('sg_ready', {'mode': mode_as_binary})
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
,nils,nils-ThinkPad-P52,25.09.2025 17:32,file:///home/nils/.config/libreoffice/4;
|
|
||||||
@@ -9,11 +9,15 @@ class SgReadyController():
|
|||||||
meter_values = state[meter_name]
|
meter_values = state[meter_name]
|
||||||
|
|
||||||
power_to_grid = meter_values['40206 - M_AC_Power'] * 10 ** meter_values['40210 - M_AC_Power_SF']
|
power_to_grid = meter_values['40206 - M_AC_Power'] * 10 ** meter_values['40210 - M_AC_Power_SF']
|
||||||
|
mode = None
|
||||||
if power_to_grid > 10000:
|
if power_to_grid > 10000:
|
||||||
self.switch_sg_ready_mode(hp.ip, hp.port, 'mode2')
|
mode = 'mode2'
|
||||||
|
self.switch_sg_ready_mode(hp.ip, hp.port, mode)
|
||||||
elif power_to_grid < 0:
|
elif power_to_grid < 0:
|
||||||
self.switch_sg_ready_mode(hp.ip, hp.port, 'mode1')
|
mode = 'mode1'
|
||||||
|
self.switch_sg_ready_mode(hp.ip, hp.port, mode)
|
||||||
|
|
||||||
|
return mode
|
||||||
|
|
||||||
def switch_sg_ready_mode(self, ip, port, mode):
|
def switch_sg_ready_mode(self, ip, port, mode):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user