Skip to end of metadata
Go to start of metadata

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 DatenBeispielBeschreibung
gts_dailyavg6.45Der aktuelle Temperatur-Tagesdurchschnitt
gts_dailyavgCount2Anzahl der Messungen/Berechnungen des Tages
gts_dailyavgtimestamp_dateHR14.11.

Letzte Berechnung Datum (Human Readable)

gts_dailyavgtimestamp_dayofyear319Letzte Berechnung Tag des Jahres
gts_dailyavgtimestamp_epoch1605308429Letzte Berechnung Unix-Epoch
gts_dailyavgtimestamp_month11Letzte Berechnung Monat
gts_dailyavgtimestamp_timeHR00:00Letzte Berechnung Uhrzeit (Human Readable)
gts_dailyavgtimestamp_year2020Letzte Berechnung Jahr
gts_gts_dateHR14.11.GTS Datum letzte Berechnung
gts_gts_timeHR00:00GTS Zeit letzte Berechnung
gts_gts_gts6.4Endgültige GTS (die Summe bis zum Vortag) - wird nur einmal täglich aktualisiert
gts_gts_gtsest12.85Voraussichtliche 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/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.


  • No labels