Hier ein Beispiel wie Werte in die Datenbank geschrieben und gelesen werden können (Verwendung TimescaleDB um Metriken zu speichern):

Der Tabellenname ist fest codiert, aber der Ansatz sollte verständlich sein :-)

#Verbindungsaufbau
TimescaleDb.connect(timescaledb_ip, timescaledb_username, timescaledb_password)
#Metrik speichern (Tabellenname fest vergeben)
TimescaleDb.write('my_id', my_value)
#Wert aus einer Tabelle lesen (hier ohne Where Bedingung)
TimescaleDb.read('my_single_value_table')
#Wert in einer Tabelle erhöhen (hier ohne Where Bedingung)
TimescaleDb.increase('my_single_value_table', addition, max_value)

--

--

Features:

  • Tasmota ein- und ausschalten
  • Status Werte von Tasmota abfragen
#Verbindung zum MQTT broker
Tasmota.connect(mqtt_broker, mqtt_port, mqtt_user, mqtt_password)
#Einschalten (bitte im Tasmota konfigurierten Topic Name verwenden)
Tasmota.on(topic_name)
#Ausschalten (bitte im Tasmota konfigurierten Topic Name verwenden)
Tasmota.off(topic_name)
#Status Information lesen (JSON in flache Struktur umgewandelt)
Tasmota.get(topic_name, "8", ["StatusSNS_SI7021_Temperature"])
Tasmota.get(topic_name, "8", ["StatusSNS_ENERGY_Power", "StatusSNS_ENERGY_Today"])

--

--

You can use this Python module to

  • switch Tasmota device on/off
  • read status values from Tasmota device
#connect to MQTT broker
Tasmota.connect(mqtt_broker, mqtt_port, mqtt_user, mqtt_password)
#switch on (please use the topic name configured in Tasmota)
Tasmota.on(topic_name)
#switch off (please use the topic name configured in Tasmota)
Tasmota.off(topic_name)
#read status information (flattened json result)
Tasmota.get(topic_name, "8", ["StatusSNS_SI7021_Temperature"])
Tasmota.get(topic_name, "8", ["StatusSNS_ENERGY_Power", "StatusSNS_ENERGY_Today"])

--

--

Ich habe ein kleines Python Program geschrieben, das meinen Solarüberschuss an meine iDM AERO SLM 6–17 Wärmepumme schickt. Die Pumpe füllt damit automatisch den Wärmespeicher und reguliert die Räume auf Wohlfühltemperatur — die kostenlose Energie wird sinnvoll genutzt.

In der iDM muss das PV-Eingangssignal für Photovoltaik auf “Gebäudeleittechnik / Smartfox” gesetzt werden.

Hier der Code:

Man muss nur die IP und den Port (typischerweise 502) wissen um die Info zu senden.

IdmPump.writeandread(deine_ip, 502, dein_wert)

--

--

Hier findet ihr den Code um den BYD Speicher über den TCP Socket auszulesen:

Man muss nur die IP und den Port (typischerweise 8080) übergeben:

BYD.read(your_ip, 8080)

Diese Felder stehen zur Verfügung:

"soc": aktueller Ladezustand (%)
"maxvolt": maximale Zellspannung (V)
"minvolt": minimale Zellspannung (V)
"soh": aktueller Gesundheitszustand der Batterie (%)
"ampere": Aktuelle Stromstärke (A)
"battvolt": Aktuelle Spannung der Batterie (V)
"maxtemp": maximale Zelltemperatur
"mintemp": minimale Zelltemperatur
"battemp": aktuelle Batterietemperatur
"error": wechselt von 0 auf 1 wenn ein Fehler besteht
"outvolt": aktuelle Ausgangsspannung (V)
"power": aktuelle Leistung (W)
"diffvolt": Spannungsdifferenz min und max (V)

Danke für die Codevorlage ;-) https://github.com/christianh17/ioBroker.bydhvs

--

--