From a778180bb1cf38754b0a06a0a688d354641a436b Mon Sep 17 00:00:00 2001 From: c1328 <112856305+c1328@users.noreply.github.com> Date: Thu, 5 Feb 2026 17:30:55 +0100 Subject: [PATCH] Remove Python script example from README Removed Python script example and related configuration details from README. --- README.md | 87 ------------------------------------------------------- 1 file changed, 87 deletions(-) diff --git a/README.md b/README.md index 2a18e81..4cdd09d 100644 --- a/README.md +++ b/README.md @@ -156,93 +156,6 @@ pip install meshtastic-mqtt-json - Die restlichen restlichen Telemetriedaten sind nicht so zeitkritisch und können zyklisch über den meshtastic-cli geholt werden. - Je Kanal der gelesen werden soll wird eine entsprechend konfigurierte Datei gebraucht. Beispiel: [mqtt-json-parse.py](https://github.com/c1328/meshtastic-cli-iobroker-mqtt/blob/main/mqtt-json-parse.py) -```python -import json -import time -import paho.mqtt.client as mqtt -from meshtastic_mqtt_json import MeshtasticMQTT - -# --- KONFIGURATION --- -LOCAL_BROKER = " -CHANNEL_KEY = "" -REGION = "EU_868" -ENCRYPTED_ROOT = f"msh/{REGION}/2/e/" - -# --- SETUP LOKALER PUBLISHER --- -publisher = mqtt.Client() -publisher.username_pw_set(LOCAL_USER, LOCAL_PASS) -publisher.connect(LOCAL_BROKER, LOCAL_PORT) -publisher.loop_start() - -def send_to_iobroker(sender_id_dec, msg_type, payload_data): - """Baut das Meshtastic-JSON-Format nach und sendet es lokal.""" - sender_id_hex = hex(sender_id_dec)[2:].lower().zfill(8) - # Ziel-Topic für den ioBroker JavaScript-Trigger - topic = f"msh/{REGION}/2/json/{CHANNEL_NAME}/!{sender_id_hex}" - - full_payload = { - "from": sender_id_dec, - "channel": CHANNEL_INDEX, - "type": msg_type, - "payload": payload_data, - "timestamp": int(time.time()) - } - publisher.publish(topic, json.dumps(full_payload), qos=1) - -# --- CALLBACKS --- - -def on_text_message(json_data): - """Verarbeitet reine Textnachrichten.""" - # json_data["decoded"]["payload"] enthält bei Textnachrichten den String - send_to_iobroker(json_data["from"], "text", {"text": json_data["decoded"]["payload"]}) - print(f'Relayed Text: {json_data["decoded"]["payload"]}') - -def on_position(json_data): - """Verarbeitet GPS-Positionen.""" - # json_data["decoded"]["payload"] enthält hier das Positions-Objekt - p = json_data["decoded"]["payload"] - - # Payload-Struktur für dein ioBroker-Skript aufbauen - # Meshtastic nutzt oft latitude_i (Integer) statt Float für Präzision - pos_payload = { - "latitude_i": p.get("latitude_i"), - "longitude_i": p.get("longitude_i"), - "altitude": p.get("altitude") - } - - send_to_iobroker(json_data["from"], "position", pos_payload) - print(f'Relayed Position Update from {json_data["from"]}') - -# --- SETUP DECRYPTOR --- -decryptor = MeshtasticMQTT() - -# Registrierung der gewünschten Callbacks -decryptor.register_callback('TEXT_MESSAGE_APP', on_text_message) -decryptor.register_callback('POSITION_APP', on_position) - -# Authentifizierung am internen Client setzen -if hasattr(decryptor, '_client'): - decryptor._client.username_pw_set(LOCAL_USER, LOCAL_PASS) - -# Verbindung zum lokalen Broker herstellen -decryptor.connect( - LOCAL_BROKER, - LOCAL_PORT, - ENCRYPTED_ROOT, - CHANNEL_NAME, - LOCAL_USER, - LOCAL_PASS, - CHANNEL_KEY -) -``` - Das Script kann für den Test mit Screen im Hintergrund laufen lassen: ```bash