-- 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;