#15 Send-Queue: Meshtastic-konformer Nachrichtenpuffer mit dynamischem Intervall #15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Alle ausgehenden Nachrichten laufen durch eine zentrale
asyncio.Queue. Ein einziger Worker-Task sendet sequenziell und passt den Sendeabstand dynamisch an die gemessene Airtime (airUtilTx) des Geräts an.Probleme im aktuellen Code (
_send_text, bot.py:452)sendText()– Nachricht steht als gesendet da, auch wenn sie nie übertragen wurdeArchitektur
Entscheidungen
airUtilTxberechnetDynamisches Intervall
Referenzwert: 2,5 % airUtilTx (gemessene lokale Netzauslastung).
Der zuletzt empfangene
airUtilTx-Wert wird bereits aus dem Telemetrie-Stream gelesen (TELEMETRY_APP, bot.py:277) – er muss nur alsself._air_util_tx: floatim Bot gespeichert werden.Konfiguration (config.yaml)
Aufgaben
self._send_queue,self._last_sent_at,self._air_util_txin__init__ergänzen_send_worker()-Task implementieren (sequenzieller Loop, Queue-Drain)_drain_item(): dynamisches Intervall berechnen,sendText()aufrufen, dann DB/Broadcastget_nowait+put_nowait)airUtilTxaus Telemetrie-Handler inself._air_util_txschreibensend_message()aufput_nowait-Logik umstellen (keinawaitmehr nötig)main.pystarten und bei Shutdown sauber cancelnconfig/config.example.yamlumbot.send_interval_*-Felder ergänzenAkzeptanzkriterium