Motivation
Der Code-Schnippsel ist entstanden, weil ich auch in TinyMatic einen schnellen Überblick über die letzten Duty-Cycle-Werte haben wollte.
Da das Skript unversell einsetzbar ist, stelle ich es hier zur freien Verfügung.
Grund für die Veröffentlichung ist der (OSS-)Gedanke, dass andere von meiner Arbeit profitieren können, wie ich von der Arbeit Dritter profitiert habe.
Skript
Code: Alles auswählen
! Mini SV-Datalogger v2.11
!---------------------------------------------------------------------------------
! Urheber: blackhole
!---------------------------------------------------------------------------------
!Voreinstellung Datenquelle, Systemvariable (Default: "Duty-Cycle")
string datasource = "Duty-Cycle";
!Voreinstellung Datenlogger, Systemvariable (Default: "Duty-Cycle-Data")
string datalogger = "Duty-Cycle-Data";
!Voreinstellung maximale Anzahl an gesammelten Werten (Default: 144)
string maxvalues = 144;
!Voreinstellung Werte mit Zeistempel versehen (ja/nein, Default: "nein")
string logtime = "nein";
string svvalue = dom.GetObject(ID_SYSTEM_VARIABLES).Get(datasource).Value();
string svdata = dom.GetObject(ID_SYSTEM_VARIABLES).Get(datalogger).Value();
string cut1 = ","; integer find1; string index; integer counter;
if (( svdata == "???" ) || (svdata == "")) { svdata = "Start"; }
if ( logtime == "ja" ) { logtime = "@" # system.Date("%H:%M"); }
else { logtime = ""; }
foreach(index, svdata.Split(cut1)) {
counter = counter + 1;
if (counter >= maxvalues) {
find1 = svdata.Find(cut1);
svdata = svdata.Substr(find1 + 2, svdata.Length());
}
}
svdata = svdata # cut1 # " " # svvalue # logtime;
dom.GetObject(ID_SYSTEM_VARIABLES).Get(datalogger).State(svdata);
Die Voreinstellungen (siehe Skript) sind denkbar einfach und schnell erklärt:
- Angabe einer Systemvariable, aus welcher ein Wert ausgelesen soll (Datenquelle).
- Angabe einer Systemvariable, in welche die Werte gesammelt werden (Datenlogger).
- Angabe der maximalen Anzahl an Werten die gesammelt werden sollen.
- Angabe ob Werte mit Zeitstempel versehen werden sollen (ja/nein).
Mit dem ersten Befüllen, der noch jungfräulichen/leeren "Sammel"-Systemvariable, wird automatisch das Wort "Start" vorangestellt, welches nach Erreichen der maximalen Anzahl an Werten "wegrotiert" wird (vgl. u.).
Nach Erreichen der maximalen Anzahl werden die gesammelten Werte "durchrotiert". D.h., der erste und somit älteste Wert wird gelöscht, der neue Wert wird hinten angefügt, so dass die voreingestellte maximale Anzahl an Werten nicht überschritten wird.
Changelog
- v2.01: Erstes öffentliches Release von "Mini SV-Datalogger"
- v2.02: Werte können optional mit einem Zeitstempel versehen werden
- v2.10: Voreinstellungen etabliert und Verwendung der Methode Get()
- v2.11: Kleinere Anpassungen für neue ReGaHss
- v3.10 Spezialversion "Zwei Quell-Sysvars", siehe hier
- v3.66 Spezialversion "Energieverbräuche", siehe hier