forked from iarv/meshtastic-cli-iobroker-mqtt
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5cb66fe2f6 | ||
|
|
34020a03e2 | ||
|
|
6062c2aff7 | ||
|
|
204be1227d |
43
README.md
43
README.md
@@ -266,9 +266,48 @@ Das Skript arbeitet hybrid:
|
||||
|
||||
Dieses Setup optimiert die Erfassung von Gruppen-Kanälen und Positionsdaten. Direktnachrichten (DMs) werden aufgrund der Ende-zu-Ende-Verschlüsselung (PKC) bewusst nicht unterstützt. Für private Kommunikation im ioBroker empfiehlt sich die Nutzung eines separaten, privaten Kanals.
|
||||
|
||||
Prototypisch gibt es folgendes Script, welches verschlüsselte Direktnachrichten, die an Nodes aus der eigenen DB gerichtet sind und verschlüsselt über MQTT daherkommen über Lora weiterleitet: https://github.com/c1328/meshtastic-cli-iobroker-mqtt/blob/main/mqtt-pki-downlink.py
|
||||
Prototypisch gibt es folgendes Script, welches verschlüsselte Direktnachrichten, die an Nodes aus der eigenen DB gerichtet sind und verschlüsselt über MQTT daherkommen, über Lora weiterleitet: https://github.com/c1328/meshtastic-cli-iobroker-mqtt/blob/main/mqtt-pki-downlink.py
|
||||
|
||||
Das Script sollte als systemd eingerichtet werden, dass schreibt es seinen Status in das MQTT topic ```service/PKIdownlink/#```
|
||||
Das Script sollte als systemd eingerichtet werden, dann schreibt es seinen Status in das MQTT topic ```service/PKIdownlink/#```
|
||||
|
||||
```bash
|
||||
# Service Konfiguration anlegen
|
||||
vi /etc/systemd/system/meshtastic-decryptor@.service
|
||||
|
||||
# mit folgendem Inhalt:
|
||||
[Unit]
|
||||
Description=Meshtastic Decryptor Service for Channel %I
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
# %I (the part after @) is passed as an argument to the script
|
||||
ExecStart=/usr/bin/python3 /home/meshtastic/mqtt-json-decryptor.py %I
|
||||
WorkingDirectory=/home/meshtastic
|
||||
User=meshtastic
|
||||
Restart=always
|
||||
RestartSec=5s
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
```bash
|
||||
# Systemd neu laden
|
||||
systemctl daemon-reload
|
||||
|
||||
# Kanäle starten
|
||||
systemctl start meshtastic-decryptor@Kanal0
|
||||
systemctl start meshtastic-decryptor@Kanal1
|
||||
systemctl start meshtastic-decryptor@Kanal2
|
||||
|
||||
# Autostart aktivieren
|
||||
sudo systemctl enable meshtastic-decryptor@Kanal0
|
||||
sudo systemctl enable meshtastic-decryptor@Kanal1
|
||||
sudo systemctl enable meshtastic-decryptor@Kanal2
|
||||
|
||||
# Schauen ob alles läuft
|
||||
journalctl -u "meshtastic-decryptor@*" -f
|
||||
```
|
||||
|
||||
Hier ist gerne Rückmeldung erwünscht, ob das zuverlässig funktioniert.
|
||||
|
||||
|
||||
@@ -1,23 +1,35 @@
|
||||
import sys
|
||||
import json
|
||||
import time
|
||||
import logging
|
||||
import paho.mqtt.client as mqtt
|
||||
from meshtastic_mqtt_json import MeshtasticMQTT
|
||||
|
||||
# --- CONFIGURATION ---
|
||||
LOCAL_BROKER = "mqtt"
|
||||
LOCAL_PORT = 1883
|
||||
LOCAL_USER = "<username>"
|
||||
LOCAL_PASS = "<password>"
|
||||
# --- CHANNEL DATABASE ---
|
||||
# Add all your channels here
|
||||
CHANNELS = {
|
||||
"Puig": {"index": 0, "key": "BASE64_KEY_1"},
|
||||
"Default": {"index": 1, "key": "BASE64_KEY_2"},
|
||||
"Privat": {"index": 2, "key": "BASE64_KEY_3"}
|
||||
}
|
||||
|
||||
# Channel Details
|
||||
CHANNEL_NAME = "<channel>" # Name of the channel (e.g., "Puig")
|
||||
CHANNEL_INDEX = 0 # Channel index on the hardware (usually 0)
|
||||
CHANNEL_KEY = "<key>" # Base64 encryption key
|
||||
REGION = "EU_868"
|
||||
# Get channel name from command line argument
|
||||
if len(sys.argv) < 2 or sys.argv[1] not in CHANNELS:
|
||||
print(f"Usage: python3 decryptor.py <channel_name>")
|
||||
print(f"Available channels: {', '.join(CHANNELS.keys())}")
|
||||
sys.exit(1)
|
||||
|
||||
# Path Configuration for ioBroker Monitoring
|
||||
ENCRYPTED_ROOT = f"msh/{REGION}/2/e/"
|
||||
CHANNEL_NAME = sys.argv[1]
|
||||
CHANNEL_INDEX = CHANNELS[CHANNEL_NAME]["index"]
|
||||
CHANNEL_KEY = CHANNELS[CHANNEL_NAME]["key"]
|
||||
|
||||
# --- REST OF CONFIGURATION ---
|
||||
LOCAL_BROKER = "mqtt"
|
||||
LOCAL_PORT = 1883
|
||||
LOCAL_USER = "user"
|
||||
LOCAL_PASS = "pass"
|
||||
REGION = "EU_868"
|
||||
ENCRYPTED_ROOT = f"msh/{REGION}/2/e/"
|
||||
SERVICE_BASE_PATH = f"service/Decryptor/{CHANNEL_NAME}"
|
||||
|
||||
# --- LOGGING SETUP ---
|
||||
Reference in New Issue
Block a user