Einstellungsseite, Skoda-Seite und Karte
Sammelstand der offenen Arbeit im Dashboard. Einstellungen: eine Eingabemaske fuer die Energiepreise unter restricted/settings.php, dazu costs.php als Modell und ajax/settings.php als Endpunkt. Die Preise stehen jetzt in gridCosts, gasCosts und fuelCosts statt fest im Quelltext von getStats.php; die Jahresstatistik rechnet ueber LEAD() den jeweils gueltigen Zeitraum aus und schlaegt den anteiligen Grundpreis auf. Eingegeben wird in gewohnten Einheiten - l/100 km, kWh/100 km, Euro je Liter -, umgerechnet wird beim Speichern. solarLog_costs.sql beschreibt die Umstellung der Tabellen. Skoda: eigene Seite mit Live-Werten ueber MQTT und Historie ueber ajax/skoda.php, Kommandos ueber ajax/skodaCmd.php. Karte: Leaflet mit einem eigenen Kachel-Zwischenspeicher (ajax/tile.php), dessen Ablage unter tiles/ nicht ins Repository gehoert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
-- Preistabellen der Statistik: feste Zahlen rein, Redundanz raus.
|
||||
--
|
||||
-- 1) gasCosts und fuelCosts lagen unbenutzt herum; ajax/getStats.php rechnete
|
||||
-- stattdessen mit drei fest eingetragenen Zahlen:
|
||||
--
|
||||
-- 140 Grundpreis Strom pro Jahr -> gridCosts.base
|
||||
-- 0.063 Gaspreis je kWh -> gasCosts.cost / gasCosts.kwhPerLitre
|
||||
-- 24.5 12 * kWh je Liter Benzin -> fuelCosts.lPer100km / kwhPer100km
|
||||
--
|
||||
-- Beim Gas stand der Energieinhalt bisher nur als Kommentar an der Spalte
|
||||
-- ("6.58kWh/l"), beim Benzin steckte er unsichtbar im Teiler 24.5. Beides
|
||||
-- ist keine Physik, die sich nie aendert, sondern haengt am Brennstoff und
|
||||
-- am Ersatzfahrzeug - und gehoert deshalb neben den Preis.
|
||||
--
|
||||
-- Beim Auto nicht als "kWh je Liter": diese Zahl steht auf keinem Datenblatt
|
||||
-- und niemand hat sie im Kopf. Eingetragen werden die beiden Verbraeuche,
|
||||
-- die man kennt - Liter je 100 km beim Verbrenner, kWh je 100 km beim
|
||||
-- Stromer. Wieviele Liter eine geladene kWh ersetzt, rechnet die Abfrage
|
||||
-- daraus aus.
|
||||
--
|
||||
-- 2) end_date faellt weg. Die Spalte war reine Redundanz: sie sagte nie etwas
|
||||
-- anderes als "Tag vor dem naechsten Stichtag" - konnte aber, weil sie
|
||||
-- eigenstaendig gepflegt wurde, etwas anderes sagen. Genau das war
|
||||
-- passiert: gridCosts liess zwei Zeilen ueber das erste Quartal 2023
|
||||
-- laufen, der JOIN in getStats.php fand fuer jeden Messwert zwei Preise,
|
||||
-- und der Stromverbrauch 2023 stand mit 2527 statt 1674 kWh in der
|
||||
-- Statistik - 51 % zu hoch.
|
||||
--
|
||||
-- Ohne die Spalte laesst sich eine Ueberlappung nicht mehr hinschreiben,
|
||||
-- und eine Luecke auch nicht. Das Ende einer Zeile holt sich die Abfrage
|
||||
-- mit LEAD(active_date) beim naechsten Stichtag; die juengste Zeile hat
|
||||
-- kein Ende und gilt weiter, bis ein neuer Preis eingetragen wird. So
|
||||
-- verhaelt sich ein Tarif ja auch.
|
||||
--
|
||||
-- Nebenbei ist die Statistik dadurch rund viermal so schnell (2,9 s -> 0,7 s
|
||||
-- je Jahr): der Optimierer schlaegt die drei kleinen Preistabellen einmal
|
||||
-- auf, statt fuer jeden der 100.000 Messwerte einen Bereich zu durchsuchen.
|
||||
--
|
||||
-- Anwenden: mysql -h <host> -P 3310 -u solarLog -p solarLog < solarLog_costs.sql
|
||||
|
||||
ALTER TABLE `gridCosts`
|
||||
ADD COLUMN `base` float NOT NULL DEFAULT 0
|
||||
COMMENT 'Grundpreis pro Jahr in Euro' AFTER `gain`,
|
||||
DROP KEY `end_date`,
|
||||
DROP COLUMN `end_date`;
|
||||
|
||||
-- Bis hierher stand die 140 fest im SQL - fuer alle Jahre gleich.
|
||||
UPDATE `gridCosts` SET `base` = 140;
|
||||
|
||||
-- Die Zeile ab 2022-12-13 lief bis 2023-03-31 und ueberlappte damit die
|
||||
-- naechste. Ohne end_date endet sie automatisch am 31.12.2022.
|
||||
|
||||
ALTER TABLE `gasCosts`
|
||||
ADD COLUMN `kwhPerLitre` float NOT NULL DEFAULT 6.58
|
||||
COMMENT 'Energieinhalt: kWh je Liter';
|
||||
|
||||
ALTER TABLE `fuelCosts`
|
||||
ADD COLUMN `lPer100km` float NOT NULL DEFAULT 9.8
|
||||
COMMENT 'Verbrauch des Verbrenners in Liter je 100 km',
|
||||
ADD COLUMN `kwhPer100km` float NOT NULL DEFAULT 20
|
||||
COMMENT 'Verbrauch des Elektroautos in kWh je 100 km',
|
||||
DROP KEY `end_date`,
|
||||
DROP COLUMN `end_date`;
|
||||
Reference in New Issue
Block a user