diff --git a/CHANGELOG.md b/CHANGELOG.md
index e6a78a9..56fb290 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,16 @@
# Changelog
+## [0.6.8] - 2026-02-18
+
+### Fixed
+- **bot.py**: `pub.subscribe()` wurde nach `TCPInterface()` aufgerufen → `connection.established`
+ und `node.updated`-Events beim Start wurden verpasst; Nodes nicht geladen, Status blieb
+ "Getrennt". Subscriptions werden jetzt VOR dem Konstruktor registriert + Fallback danach.
+- **HTML**: `tabler.min.js` exportiert `bootstrap` nicht global → `new bootstrap.Modal()` schlug
+ fehl, Seiten brachen ab. Zurück zu `bootstrap.bundle.min.js` (Tabler CSS bleibt).
+- **dashboard.js**: Bootstrap-4-Klasse `badge-pill` durch `rounded-pill` (Bootstrap 5) ersetzt.
+- **style.css**: CSS-Variablen-Typo `--tblr-bg-body` → `--tblr-body-bg`.
+
## [0.6.7] - 2026-02-17
### Changed
diff --git a/config.yaml b/config.yaml
index 5425bf5..e309ed9 100644
--- a/config.yaml
+++ b/config.yaml
@@ -1,16 +1,16 @@
-version: "0.6.7"
+version: "0.6.8"
bot:
name: "MeshDD-Bot"
command_prefix: "?"
meshtastic:
- host: "192.168.11.11"
+ host: "192.168.11.4"
port: 4403
web:
host: "0.0.0.0"
- port: 8080
+ port: 8081
database:
path: "meshdd.db"
diff --git a/meshbot/bot.py b/meshbot/bot.py
index c4da5c3..6cb1331 100644
--- a/meshbot/bot.py
+++ b/meshbot/bot.py
@@ -27,11 +27,28 @@ class MeshBot:
host = config.get("meshtastic.host", "localhost")
port = config.get("meshtastic.port", 4403)
logger.info("Connecting to Meshtastic at %s:%s", host, port)
- self.interface = TCPInterface(hostname=host, portNumber=port)
+ # Subscribe BEFORE creating the interface: TCPInterface fires
+ # connection.established and node.updated from a background thread
+ # during its constructor, so late subscriptions miss those events.
pub.subscribe(self._on_receive, "meshtastic.receive")
pub.subscribe(self._on_connection, "meshtastic.connection.established")
pub.subscribe(self._on_connection_lost, "meshtastic.connection.lost")
pub.subscribe(self._on_node_updated, "meshtastic.node.updated")
+ self.interface = TCPInterface(hostname=host, portNumber=port)
+ # Fallback: if connection.established fired before our subscription
+ # was registered, set the flag and sync initial nodes manually.
+ if not self._connected:
+ logger.warning("connection.established missed – applying fallback")
+ self._connected = True
+ if self.ws_manager:
+ self.loop.call_soon_threadsafe(
+ asyncio.ensure_future, self._broadcast_bot_status()
+ )
+ if self.interface.nodes:
+ for node in self.interface.nodes.values():
+ self.loop.call_soon_threadsafe(
+ asyncio.ensure_future, self._handle_node_update(node)
+ )
logger.info("Connected to Meshtastic")
def disconnect(self):
diff --git a/static/admin.html b/static/admin.html
index 9e57d85..87302d2 100644
--- a/static/admin.html
+++ b/static/admin.html
@@ -185,7 +185,7 @@
-
+