Tabellen byd und byd_zellen fuer den BYD-Speicher
Verlauf aus gatherBYDData.py (SolarManager): alle 5 Minuten Kennwerte, alle 15 Minuten alle Zellspannungen und Temperaturen als JSON. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
-- Verlauf der BYD Battery-Box HVM, direkt aus der BMU.
|
||||
--
|
||||
-- EnergyFlow haelt vom Speicher nur, was der Gen24 weiss: Ladestand, Leistung,
|
||||
-- Spannung, Strom. Die Werte darunter - Zellen, Temperaturfuehler, Gesundheit,
|
||||
-- Gesamtzaehler - liest gatherBYDData.py (SolarManager) von der BMU unter
|
||||
-- 192.168.16.254:8080 und schreibt sie hier fest.
|
||||
--
|
||||
-- byd: alle 5 Minuten eine Zeile, knapp 290 am Tag. Traegt, wie sich SOH,
|
||||
-- Spreizung und Temperaturen ueber Monate und Jahre entwickeln - deshalb wird
|
||||
-- die Tabelle nicht ausgeduennt.
|
||||
--
|
||||
-- byd_zellen: alle 15 Minuten alle 128 Zellspannungen und 64 Temperaturen als
|
||||
-- JSON, rund 1 kB je Zeile, knapp 35 MB im Jahr. Einzelne Spalten je Zelle
|
||||
-- waeren 192 Spalten fuer Werte, die nie einzeln abgefragt, sondern immer als
|
||||
-- Satz gezeichnet werden.
|
||||
--
|
||||
-- Zellen sind durchgezaehlt: Modul m (1..8) hat die Zellen 16*(m-1)+1 bis
|
||||
-- 16*m und die Fuehler 8*(m-1)+1 bis 8*m.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `byd` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`datetime` datetime NOT NULL COMMENT 'Ortszeit',
|
||||
`soc` decimal(4,1) NOT NULL COMMENT '% laut BMU',
|
||||
`soh` decimal(4,1) NOT NULL COMMENT 'Gesundheit in %',
|
||||
`spannung` decimal(5,1) NOT NULL COMMENT 'V am Batterieausgang',
|
||||
`strom` decimal(5,1) NOT NULL COMMENT 'A, positiv = laden',
|
||||
`leistung` int(11) NOT NULL COMMENT 'W, positiv = laden',
|
||||
`t_min` tinyint(4) NOT NULL COMMENT 'kaeltester Fuehler, degC',
|
||||
`t_max` tinyint(4) NOT NULL COMMENT 'waermster Fuehler, degC',
|
||||
`zelle_min` smallint(5) unsigned NOT NULL COMMENT 'niedrigste Zelle, mV',
|
||||
`zelle_max` smallint(5) unsigned NOT NULL COMMENT 'hoechste Zelle, mV',
|
||||
`zelle_min_nr` tinyint(3) unsigned NOT NULL COMMENT '1..128',
|
||||
`zelle_max_nr` tinyint(3) unsigned NOT NULL COMMENT '1..128',
|
||||
`spreizung` smallint(5) unsigned NOT NULL COMMENT 'zelle_max - zelle_min, mV',
|
||||
`ausgleich` tinyint(3) unsigned NOT NULL COMMENT 'Zellen, die gerade ausgeglichen werden',
|
||||
`fehler` smallint(5) unsigned NOT NULL COMMENT 'Fehlerbits der BMU, 0 = keiner',
|
||||
`geladen_kwh` decimal(9,1) NOT NULL COMMENT 'Gesamtzaehler seit Inbetriebnahme',
|
||||
`entladen_kwh` decimal(9,1) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `datetime` (`datetime`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `byd_zellen` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`datetime` datetime NOT NULL COMMENT 'Ortszeit',
|
||||
`zellen` varchar(1200) NOT NULL COMMENT 'JSON, mV je Zelle, 16 je Modul',
|
||||
`temperaturen` varchar(400) NOT NULL COMMENT 'JSON, degC je Fuehler, 8 je Modul',
|
||||
`ausgleich` char(32) NOT NULL COMMENT 'Ausgleichsbits roh als Hex, Bitlage unbestaetigt',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `datetime` (`datetime`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
|
||||
Reference in New Issue
Block a user