Re: Frage zu ha-pysmaplus
Verfasst: 08.10.2025, 20:10
Magst du deine Änderung noch posten, damit es auch von anderen genutzt werden kann?
Code: Alles auswählen
1️⃣ MQTT vorbereiten
Am Anfang der Datei (z. B. direkt nach den Imports) fügst du hinzu:
import paho.mqtt.client as mqtt
import json
# --- MQTT-Konfiguration ---
MQTT_BROKER = "mqtt.example.com" # <--- hier deine Adresse
MQTT_PORT = 1883
MQTT_TOPIC = "sma/inverter"
2️⃣ MQTT-Verbindung innerhalb von main_loop
Am Anfang von main_loop(args: argparse.Namespace) fügst du hinzu:
# MQTT-Client erstellen
mqtt_client = mqtt.Client()
mqtt_client.connect(MQTT_BROKER, MQTT_PORT, 60)
3️⃣ Werte senden
Direkt nach dieser Zeile in main_loop, wo du die Sensoren ausliest und die Werte ausgibst:
for deviceId in devicelist.keys():
sensors[deviceId] = await VAR["sma"].get_sensors(deviceId)
for sensor in sensors[deviceId]:
sensor.enabled = True
# MQTT-Payload senden
# Suche relevante Sensoren: total, today, grid_power
sensor_dict = {sen.key or sen.name: sen.value for sen in sensors[deviceId]}
payload = {
"total_kwh": sensor_dict.get("total", 0),
"today_wh": sensor_dict.get("today", 0),
"grid_power_w": sensor_dict.get("grid_power", 0)
}
mqtt_client.publish(MQTT_TOPIC, json.dumps(payload))
print("MQTT gesendet:", payload)
4️⃣ MQTT sauber schließen
Am Ende von main_loop (vor await VAR["sma"].close_session()) fügst du hinzu:
mqtt_client.disconnect()