Metainformationen zur Seite
Grünlandtemperatursumme (GTS)
Siehe https://de.wikipedia.org/wiki/Gr%C3%BCnlandtemperatursumme
Das Script ermittelt die Tagesdurchschnittstemperatur und berechnet täglich die GTS. Die Daten werden per MQTT übertragen.
Jedes Jahr wird die GTS automatisch zurückgesetzt und die Berechnung neu gestartet.
Beispiel-Script: Download
Script ins Verzeichnis \\loxberry\XL\user\ bzw. /opt/loxberry/webfrontend/html/XL/user Verzeichnis kopieren.
Einrichtung des Scripts
Ganz oben sind vier Variablen, die die eigentliche Konfiguration sind:
$outtemp = $ms1->Außentemperatursensor; $topic = "gts"; $cachefile = "/opt/loxberry/webfrontend/html/XL/user/gruenland.cache"; $historyfile = "/opt/loxberry/webfrontend/html/XL/user/gruenland.history";
Die erste Zeile holt vom Miniserver 1 den Wert "Außentemperatursensor". Hier die Bezeichnung deines Außentemperaturfühlers angeben. Beachte die Konventionen!
In der zweiten Zeile wird das MQTT-Topic angegeben. Alle Daten werden hier an gts gesendet, deswegen die Subscription gts
oder gts/#
angeben.
Das $cachefile
speichert die aktuellen Temperaturdurchschnittswerte und den letzten GTS. Der Pfad kann so bleiben. Keinesfalls sollte die Datei auf einer RAM-Disk liegen.
Das $historyfile
speichert von jedem Tag die Durchschnittswerte und die ermittelte GTS. Sollte irgendwas schief gehen, kann man damit ggf. wieder etwas rekonstruieren.
Einrichtung eines Cron-Jobs
Die Tagesdurchschnittstemperatur ist per Definition der Mittelwert der Temperatur zu jeder vollen Stunde eines Tages. Das Script muss deswegen zumindest stündlich laufen.
Deswegen verwende dafür das vorhandene cron.hourly auf dem LoxBerry (siehe LoxBerry XL Scripts regelmäßig ausführen).
Du kannst das Script beliebig oft ausführen, der Tagesmittelwert wird dann genauer. Es muss aber gleichmäßig über den Tag laufen!
Daten lesen
Im MQTT Gateway Plugin die Subscription gts
erstellen.
Die aktuellen Durchschnittszahlen des heutigen Tages werden bei jedem Intervall gesendet.
Die aktuelle GTS wird erstmals am nächsten Tag übermittelt.
In der Incoming Overview des MQTT Gateway Plugins siehst du dann auch die Datenstruktur.
Eingehende Daten | Beispiel | Beschreibung |
gts_dailyavg | 6.45 | Der aktuelle Temperatur-Tagesdurchschnitt |
gts_dailyavgCount | 2 | Anzahl der Messungen/Berechnungen des Tages |
gts_dailyavgtimestamp_dateHR | 14.11. | Letzte Berechnung Datum (Human Readable) |
gts_dailyavgtimestamp_dayofyear | 319 | Letzte Berechnung Tag des Jahres |
gts_dailyavgtimestamp_epoch | 1605308429 | Letzte Berechnung Unix-Epoch |
gts_dailyavgtimestamp_month | 11 | Letzte Berechnung Monat |
gts_dailyavgtimestamp_timeHR | 00:00 | Letzte Berechnung Uhrzeit (Human Readable) |
gts_dailyavgtimestamp_year | 2020 | Letzte Berechnung Jahr |
gts_gts_dateHR | 14.11. | GTS Datum letzte Berechnung |
gts_gts_timeHR | 00:00 | GTS Zeit letzte Berechnung |
gts_gts_gts | 6.4 | Endgültige GTS (die Summe bis zum Vortag) - wird nur einmal täglich aktualisiert |
gts_gts_gtsest | 12.85 | Voraussichtliche GTS ("estimated"): Das ist die voraussichtliche GTS mit der bis jetzt berechneten Tagesdurchschnittstemperatur - wird bei jeder Berechnung ausgegeben |
Fehlersuche
- Das Script an der Shell ausführen - Es werden die aktuellen Daten ausgegeben, und potentielle Fehler.
- Wenn das Script an der Shell läuft, aber nicht via Cron: Es stimmen möglicherweise die Permissions nicht:
chmod 755
auf Cronjob und Script (siehe LoxBerry XL Scripts regelmäßig ausführen) - Es wird bei jedem Lauf in PHP-Log ausgegeben, welche Routine läuft (
daily_average called
und/odercalculate_gts called
). Das muss auch via Cron sichtbar sein. - Wenn die Außentemperatur vom Miniserver nicht lesbar ist, wird das auch beim Shell-Aufruf und im PHP-Log ausgegeben.
- Im
gruenland.cache
File stehen die aktuellen Daten. - Im
gruenland.history
File kann man sich tageweise anschauen, was für jeden einzelnen Tag berechnet wurde. - dos2unix gruenland.php ausführen wenn das Script manuell nicht gestartet werden kann.