Robert Diers

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)

--

--

Here you can find an easy example to handle database connectivity in Python (used with TimescaleDB to save metrics):

I hardcoded my table name, but I think you can get the approach :-)

#connect to database
TimescaleDb.connect(timescaledb_ip, timescaledb_username, timescaledb_password)
#write a single metric value (hardcoded table)
TimescaleDb.write('my_id', my_value)
#read value from a table (in this case without where)
TimescaleDb.read('my_single_value_table')
#increase value of the table (in this case without where)
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"])

--

--

--

--

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

--

--