mirror of
https://github.com/ipnet-mesh/meshcore-hub.git
synced 2026-07-06 09:52:00 +02:00
More fixes
This commit is contained in:
@@ -7,6 +7,7 @@ services:
|
||||
image: eclipse-mosquitto:2
|
||||
container_name: meshcore-mqtt
|
||||
profiles:
|
||||
- all
|
||||
- mqtt
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
@@ -33,6 +34,7 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: meshcore-interface-receiver
|
||||
profiles:
|
||||
- all
|
||||
- receiver
|
||||
restart: unless-stopped
|
||||
devices:
|
||||
@@ -66,6 +68,7 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: meshcore-interface-sender
|
||||
profiles:
|
||||
- all
|
||||
- sender
|
||||
restart: unless-stopped
|
||||
devices:
|
||||
@@ -99,6 +102,7 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: meshcore-interface-mock-receiver
|
||||
profiles:
|
||||
- all
|
||||
- mock
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
@@ -128,6 +132,7 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: meshcore-collector
|
||||
profiles:
|
||||
- all
|
||||
- core
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
@@ -174,6 +179,7 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: meshcore-api
|
||||
profiles:
|
||||
- all
|
||||
- core
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
@@ -216,6 +222,7 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: meshcore-web
|
||||
profiles:
|
||||
- all
|
||||
- core
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
@@ -255,6 +262,7 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: meshcore-db-migrate
|
||||
profiles:
|
||||
- all
|
||||
- migrate
|
||||
volumes:
|
||||
# Mount data directory (uses collector/meshcore.db)
|
||||
@@ -275,6 +283,7 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: meshcore-seed
|
||||
profiles:
|
||||
- all
|
||||
- seed
|
||||
volumes:
|
||||
# Mount data directory for database (read-write)
|
||||
|
||||
@@ -197,17 +197,19 @@ class Receiver:
|
||||
logger.error(f"Failed to connect to MQTT broker: {e}")
|
||||
raise
|
||||
|
||||
# Connect to device
|
||||
if not self.device.connect():
|
||||
self._device_connected = False
|
||||
logger.error("Failed to connect to MeshCore device")
|
||||
self.mqtt.stop()
|
||||
self.mqtt.disconnect()
|
||||
self._mqtt_connected = False
|
||||
raise RuntimeError("Failed to connect to MeshCore device")
|
||||
# Device should already be connected (from create_receiver)
|
||||
# but handle case where start() is called directly
|
||||
if not self.device.is_connected:
|
||||
if not self.device.connect():
|
||||
self._device_connected = False
|
||||
logger.error("Failed to connect to MeshCore device")
|
||||
self.mqtt.stop()
|
||||
self.mqtt.disconnect()
|
||||
self._mqtt_connected = False
|
||||
raise RuntimeError("Failed to connect to MeshCore device")
|
||||
logger.info(f"Connected to MeshCore device: {self.device.public_key}")
|
||||
|
||||
self._device_connected = True
|
||||
logger.info(f"Connected to MeshCore device: {self.device.public_key}")
|
||||
|
||||
# Initialize device: set time and send local advertisement
|
||||
self._initialize_device()
|
||||
@@ -291,17 +293,22 @@ def create_receiver(
|
||||
Returns:
|
||||
Configured Receiver instance
|
||||
"""
|
||||
# Create device
|
||||
# Create and connect device first to get public key
|
||||
device = create_device(port=port, baud=baud, mock=mock, node_address=node_address)
|
||||
|
||||
# Create MQTT client
|
||||
if not device.connect():
|
||||
raise RuntimeError("Failed to connect to MeshCore device")
|
||||
|
||||
logger.info(f"Connected to MeshCore device: {device.public_key}")
|
||||
|
||||
# Create MQTT client with device's public key for unique client ID
|
||||
mqtt_config = MQTTConfig(
|
||||
host=mqtt_host,
|
||||
port=mqtt_port,
|
||||
username=mqtt_username,
|
||||
password=mqtt_password,
|
||||
prefix=mqtt_prefix,
|
||||
client_id=f"meshcore-receiver-{device.public_key[:8] if device.public_key else 'unknown'}",
|
||||
client_id=f"meshcore-receiver-{device.public_key[:12] if device.public_key else 'unknown'}",
|
||||
)
|
||||
mqtt_client = MQTTClient(mqtt_config)
|
||||
|
||||
|
||||
@@ -200,14 +200,16 @@ class Sender:
|
||||
"""Start the sender."""
|
||||
logger.info("Starting SENDER mode")
|
||||
|
||||
# Connect to device first
|
||||
if not self.device.connect():
|
||||
self._device_connected = False
|
||||
logger.error("Failed to connect to MeshCore device")
|
||||
raise RuntimeError("Failed to connect to MeshCore device")
|
||||
# Device should already be connected (from create_sender)
|
||||
# but handle case where start() is called directly
|
||||
if not self.device.is_connected:
|
||||
if not self.device.connect():
|
||||
self._device_connected = False
|
||||
logger.error("Failed to connect to MeshCore device")
|
||||
raise RuntimeError("Failed to connect to MeshCore device")
|
||||
logger.info(f"Connected to MeshCore device: {self.device.public_key}")
|
||||
|
||||
self._device_connected = True
|
||||
logger.info(f"Connected to MeshCore device: {self.device.public_key}")
|
||||
|
||||
# Connect to MQTT broker
|
||||
try:
|
||||
@@ -307,17 +309,22 @@ def create_sender(
|
||||
Returns:
|
||||
Configured Sender instance
|
||||
"""
|
||||
# Create device
|
||||
# Create and connect device first to get public key
|
||||
device = create_device(port=port, baud=baud, mock=mock, node_address=node_address)
|
||||
|
||||
# Create MQTT client
|
||||
if not device.connect():
|
||||
raise RuntimeError("Failed to connect to MeshCore device")
|
||||
|
||||
logger.info(f"Connected to MeshCore device: {device.public_key}")
|
||||
|
||||
# Create MQTT client with device's public key for unique client ID
|
||||
mqtt_config = MQTTConfig(
|
||||
host=mqtt_host,
|
||||
port=mqtt_port,
|
||||
username=mqtt_username,
|
||||
password=mqtt_password,
|
||||
prefix=mqtt_prefix,
|
||||
client_id=f"meshcore-sender-{device.public_key[:8] if device.public_key else 'unknown'}",
|
||||
client_id=f"meshcore-sender-{device.public_key[:12] if device.public_key else 'unknown'}",
|
||||
)
|
||||
mqtt_client = MQTTClient(mqtt_config)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user