====== 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: [[https://raw.githubusercontent.com/mschlenstedt/Loxberry/master/webfrontend/html/XL/examples/gruenland.php|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. [[konfiguration:loxberry_xl_extended_logic:zugriff_auf_den_miniserver|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 [[konfiguration:loxberry_xl_extended_logic:loxberry_xl_scripts_regelmassig_ausfuhren|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 [[konfiguration:loxberry_xl_extended_logic:loxberry_xl_scripts_regelmassig_ausfuhren|LoxBerry XL Scripts regelmäßig ausführen]]) * Es wird bei jedem Lauf in PHP-Log ausgegeben, welche Routine läuft (''%%daily_average called%%'' und/oder ''%%calculate_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. \\