Merge branch 'renovate/ghcr.io-hassio-addons-base-18.x' of https://github.com/s-allius/tsun-gen3-proxy into renovate/ghcr.io-hassio-addons-base-18.x
This commit is contained in:
@@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [unreleased]
|
||||
|
||||
- save task references, to avoid a task disappearing mid-execution
|
||||
- catch socket.gaierror exception and log this with info level
|
||||
- Update dependency coverage to v7.9.2
|
||||
- add-on: bump base-image to version 18.0.3
|
||||
|
||||
@@ -43,6 +43,7 @@ class ModbusTcp():
|
||||
|
||||
def __init__(self, loop, tim_restart=10) -> None:
|
||||
self.tim_restart = tim_restart
|
||||
self.background_tasks = set()
|
||||
|
||||
inverters = Config.get('inverters')
|
||||
batteries = Config.get('batteries')
|
||||
@@ -54,10 +55,13 @@ class ModbusTcp():
|
||||
and 'client_mode' in inv):
|
||||
client = inv['client_mode']
|
||||
logger.info(f"'client_mode' for Monitoring-SN: {inv['monitor_sn']} host: {client['host']}:{client['port']}, forward: {client['forward']}") # noqa: E501
|
||||
loop.create_task(self.modbus_loop(client['host'],
|
||||
client['port'],
|
||||
inv['monitor_sn'],
|
||||
client['forward']))
|
||||
task = loop.create_task(
|
||||
self.modbus_loop(client['host'],
|
||||
client['port'],
|
||||
inv['monitor_sn'],
|
||||
client['forward']))
|
||||
self.background_tasks.add(task)
|
||||
task.add_done_callback(self.background_tasks.discard)
|
||||
|
||||
async def modbus_loop(self, host, port,
|
||||
snr: int, forward: bool) -> None:
|
||||
|
||||
@@ -218,6 +218,7 @@ app = Quart(__name__,
|
||||
static_folder='web/static')
|
||||
app.secret_key = 'JKLdks.dajlKKKdladkflKwolafallsdfl'
|
||||
app.jinja_env.globals.update(url_for=url_for)
|
||||
app.background_tasks = set()
|
||||
server = Server(app, __name__ == "__main__")
|
||||
Web(app, server.trans_path, server.rel_urls)
|
||||
|
||||
@@ -268,9 +269,13 @@ async def startup_app(): # pragma: no cover
|
||||
|
||||
for inv_class, port in [(InverterG3, 5005), (InverterG3P, 10000)]:
|
||||
logging.info(f'listen on port: {port} for inverters')
|
||||
loop.create_task(asyncio.start_server(lambda r, w, i=inv_class:
|
||||
handle_client(r, w, i),
|
||||
'0.0.0.0', port))
|
||||
task = loop.create_task(
|
||||
asyncio.start_server(lambda r, w, i=inv_class:
|
||||
handle_client(r, w, i),
|
||||
'0.0.0.0', port))
|
||||
app.background_tasks.add(task)
|
||||
task.add_done_callback(app.background_tasks.discard)
|
||||
|
||||
ProxyState.set_up(True)
|
||||
|
||||
|
||||
@@ -294,6 +299,7 @@ async def handle_shutdown(): # pragma: no cover
|
||||
await inverter.disc(True)
|
||||
|
||||
logging.info('Proxy disconnecting done')
|
||||
app.background_tasks.clear()
|
||||
|
||||
await Proxy.class_close(loop)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user