Frage zu ha-pysmaplus
-
- Site Admin
- Beiträge: 958
- Registriert: 14.09.2018, 19:05
- Hat sich bedankt: 34 Mal
- Danksagung erhalten: 157 Mal
Re: Frage zu ha-pysmaplus
Magst du deine Änderung noch posten, damit es auch von anderen genutzt werden kann?
Re: Frage zu ha-pysmaplus
Sehr gern:
Das ist was mir ChatGPT zum Adaptieren der example.py gegeben hatte. Das hat auch funktioniert, das einzige war, dass ich eine Fehlermeldung über veraltete Methode noch unterdrückt habe.
Das ist was mir ChatGPT zum Adaptieren der example.py gegeben hatte. Das hat auch funktioniert, das einzige war, dass ich eine Fehlermeldung über veraltete Methode noch unterdrückt habe.
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()