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]
|
## [unreleased]
|
||||||
|
|
||||||
|
- save task references, to avoid a task disappearing mid-execution
|
||||||
- catch socket.gaierror exception and log this with info level
|
- catch socket.gaierror exception and log this with info level
|
||||||
- Update dependency coverage to v7.9.2
|
- Update dependency coverage to v7.9.2
|
||||||
- add-on: bump base-image to version 18.0.3
|
- add-on: bump base-image to version 18.0.3
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ class ModbusTcp():
|
|||||||
|
|
||||||
def __init__(self, loop, tim_restart=10) -> None:
|
def __init__(self, loop, tim_restart=10) -> None:
|
||||||
self.tim_restart = tim_restart
|
self.tim_restart = tim_restart
|
||||||
|
self.background_tasks = set()
|
||||||
|
|
||||||
inverters = Config.get('inverters')
|
inverters = Config.get('inverters')
|
||||||
batteries = Config.get('batteries')
|
batteries = Config.get('batteries')
|
||||||
@@ -54,10 +55,13 @@ class ModbusTcp():
|
|||||||
and 'client_mode' in inv):
|
and 'client_mode' in inv):
|
||||||
client = inv['client_mode']
|
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
|
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'],
|
task = loop.create_task(
|
||||||
client['port'],
|
self.modbus_loop(client['host'],
|
||||||
inv['monitor_sn'],
|
client['port'],
|
||||||
client['forward']))
|
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,
|
async def modbus_loop(self, host, port,
|
||||||
snr: int, forward: bool) -> None:
|
snr: int, forward: bool) -> None:
|
||||||
|
|||||||
@@ -218,6 +218,7 @@ app = Quart(__name__,
|
|||||||
static_folder='web/static')
|
static_folder='web/static')
|
||||||
app.secret_key = 'JKLdks.dajlKKKdladkflKwolafallsdfl'
|
app.secret_key = 'JKLdks.dajlKKKdladkflKwolafallsdfl'
|
||||||
app.jinja_env.globals.update(url_for=url_for)
|
app.jinja_env.globals.update(url_for=url_for)
|
||||||
|
app.background_tasks = set()
|
||||||
server = Server(app, __name__ == "__main__")
|
server = Server(app, __name__ == "__main__")
|
||||||
Web(app, server.trans_path, server.rel_urls)
|
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)]:
|
for inv_class, port in [(InverterG3, 5005), (InverterG3P, 10000)]:
|
||||||
logging.info(f'listen on port: {port} for inverters')
|
logging.info(f'listen on port: {port} for inverters')
|
||||||
loop.create_task(asyncio.start_server(lambda r, w, i=inv_class:
|
task = loop.create_task(
|
||||||
handle_client(r, w, i),
|
asyncio.start_server(lambda r, w, i=inv_class:
|
||||||
'0.0.0.0', port))
|
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)
|
ProxyState.set_up(True)
|
||||||
|
|
||||||
|
|
||||||
@@ -294,6 +299,7 @@ async def handle_shutdown(): # pragma: no cover
|
|||||||
await inverter.disc(True)
|
await inverter.disc(True)
|
||||||
|
|
||||||
logging.info('Proxy disconnecting done')
|
logging.info('Proxy disconnecting done')
|
||||||
|
app.background_tasks.clear()
|
||||||
|
|
||||||
await Proxy.class_close(loop)
|
await Proxy.class_close(loop)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user