from inverter_base import InverterBase from quart import render_template from quart_babel import format_datetime, _ from mqtt import Mqtt from . import web from .log_handler import LogHandler def _get_row(inv: InverterBase): '''build one row for the connection table''' entity_prfx = inv.entity_prfx inv_serial = inv.local.stream.inv_serial node_id = inv.local.stream.node_id sug_area = inv.local.stream.sug_area row = [] row.append(inv_serial) row.append(entity_prfx+node_id) row.append(sug_area) return row def get_table_data(): '''build the connection table''' table = { "headline": _('MQTT devices'), "col_classes": [ "", "", "", ], "thead": [[ _("Serial-No"), _('Node-ID'), _('HA-Area'), ]], "tbody": [] } for inverter in InverterBase: table['tbody'].append(_get_row(inverter)) return table @web.route('/mqtt-fetch') async def mqtt_fetch(): mqtt = Mqtt(None) cdatetime = format_datetime(dt=mqtt.ctime, format='d.MM. HH:mm') data = { "update-time": format_datetime(format="medium"), "mqtt-ctime": f"""