Die Wetterdatenbank 

Nachdem ja die "alte" WS1080-Wetterstation keine Daten mehr an MySql, später SQLite liefert, habe ich mich für eine "neue" Datenbank entschlossen. Sie soll (und muß ja nun) unabhängig von Programmen wie "WEEWX" die Daten der Wetterstation so einfach wie möglich speichern und für Auswertungen und die Darstellung im Web zur Verfügung stellen.

Also erzeugen wir  zuerst eine Tabelle für die Wetterdaten (einige Spalten habe ich nur für Testzwecke angelegt, diese können bei Bedarf geändert werden).

CREATE TABLE `WETTERDATEN` (
  `OID` bigint(20) NOT NULL,
  `DATUM` date NOT NULL,
  `UHRZEIT` time NOT NULL,
  `DatumUhrzeit` datetime NOT NULL,
  `TempBME280` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `TempDHT22` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `TempDS18B20Luft` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `TempDS18B20Boden` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `FeuchteBME280` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `FeuchteDHT22` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `LuftdruckBME280` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `LichtwertLDR1` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `LichtwertLDR2` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `Regenmenge` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `Windrichtung` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `Windstärke` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `P1` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `P2` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `P3` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `P4` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL,
  `Zeitstempel` timestamp NULL DEFAULT current_timestamp(),
  `P6` varchar(5) COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='Wetterdatenbank';

Nun können die Daten der Sensoren in die Tabelle eingefügt werden.  Hier nur ein Beispiel:

INSERT INTO `WETTERDATEN` (`OID`, `DATUM`, `UHRZEIT`, `DatumUhrzeit`, `TempBME280`, `TempDHT22`, `TempDS18B20Luft`, `TempDS18B20Boden`, `FeuchteBME280`, `FeuchteDHT22`, `LuftdruckBME280`, `LichtwertLDR1`, `LichtwertLDR2`, `Regenmenge`, `Windrichtung`, `Windstärke`, `P1`, `P2`, `P3`, `P4`, `Zeitstempel`, `P6`) VALUES (NULL, '2021-06-15', '11:22:43', '2021-06-15 11:22:43', '20,5', '20.3', '20,6', '19,5', '45', '46', '80', '12', '13', '0', '12', '6', NULL, NULL, NULL, NULL, '2021-06-16 11:22:43.000000', NULL);

Eine Datenbankabfrage könnte so aussehen: 

SELECT * FROM `WETTERDATEN` WHERE `DATUM` = '2021-06-15' AND `TempBME280` LIKE '%2%';

Mehrfachselektionen sind natürlich auch möglich:

SELECT * FROM `WETTERDATEN` WHERE `DATUM` = '2021-06-15' AND `TempBME280` LIKE '%2%' OR  `DATUM` = '2021-06-13' AND `TempDS18B20Luft` LIKE '%2%';

Diese Beispiele machen natürlich wenig Sinn, sollen aber einfach die Möglichkeiten aufzeigen.




Commentum
Der Einfall, die Lüge, die Erdichtung
E-Mail
Infos