Compare commits

..

No commits in common. "main" and "1.0.0" have entirely different histories.
main ... 1.0.0

2 changed files with 42 additions and 50 deletions

View File

@ -20,9 +20,6 @@ class ReadRegister:
rn.PV_02_VOLTAGE, rn.PV_02_VOLTAGE,
rn.PV_01_CURRENT, rn.PV_01_CURRENT,
rn.PV_02_CURRENT, rn.PV_02_CURRENT,
rn.PHASE_A_CURRENT,
rn.PHASE_B_CURRENT,
rn.PHASE_C_CURRENT,
rn.INPUT_POWER, rn.INPUT_POWER,
rn.ACTIVE_POWER, rn.ACTIVE_POWER,
rn.GRID_CURRENT, rn.GRID_CURRENT,

View File

@ -4,7 +4,7 @@ import logging
import os import os
import paho.mqtt.client import paho.mqtt.client
from huawei_solar import AsyncHuaweiSolar, ReadException from huawei_solar import AsyncHuaweiSolar
from huawei_solar import register_values as rv from huawei_solar import register_values as rv
from src.data import InverterData, ReadRegister from src.data import InverterData, ReadRegister
@ -22,7 +22,7 @@ port = os.getenv("INVERTER_PORT", 502)
host = os.getenv("INVERTER_HOST", "192.168.200.100") host = os.getenv("INVERTER_HOST", "192.168.200.100")
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
REQUEST_INTERVAL = 10 REQUEST_INTERVAL = 60
async def get_inverter_client() -> AsyncHuaweiSolar: async def get_inverter_client() -> AsyncHuaweiSolar:
@ -37,7 +37,6 @@ async def main():
inverter_client = await get_inverter_client() inverter_client = await get_inverter_client()
count = 0 count = 0
while True: while True:
try:
status = await inverter_client.get( status = await inverter_client.get(
ReadRegister.inverter_reg_status, slave_id ReadRegister.inverter_reg_status, slave_id
) )
@ -56,7 +55,7 @@ async def main():
format_data_to_serialized_json(result), format_data_to_serialized_json(result),
f"measure/{result.name}", f"measure/{result.name}",
) )
if count == 6: # Every 1 min
LOGGER.info("-- INVERTER -- Send calculated values") LOGGER.info("-- INVERTER -- Send calculated values")
for register in ReadRegister.reg_to_read_calculated: for register in ReadRegister.reg_to_read_calculated:
result = await get_inverter_data(inverter_client, register) result = await get_inverter_data(inverter_client, register)
@ -66,7 +65,7 @@ async def main():
f"calculated/{result.name}", f"calculated/{result.name}",
) )
if count == 30: # Every 5 min if count == 5:
LOGGER.info("-- INVERTER -- Send status/alarm") LOGGER.info("-- INVERTER -- Send status/alarm")
for register in ReadRegister.reg_to_read_status: for register in ReadRegister.reg_to_read_status:
result = await get_inverter_data(inverter_client, register) result = await get_inverter_data(inverter_client, register)
@ -83,10 +82,6 @@ async def main():
LOGGER.info(f"Sleeping {REQUEST_INTERVAL}") LOGGER.info(f"Sleeping {REQUEST_INTERVAL}")
await asyncio.sleep(REQUEST_INTERVAL) await asyncio.sleep(REQUEST_INTERVAL)
except ReadException as error:
LOGGER.error(f"Can't read register, {ReadRegister.inverter_reg_status}. "
f"Error code: {error}. Sleep for 10 min")
await asyncio.sleep(60) # Sleep 1 min
def send_data( def send_data(