powerValue
listValue
debugLevel
listValueTimestamp
listLength
wamaDuration
wamaState
parMaxListEntries
parInitialThresholdValue
parThresholdValue
Dauerintervall1
Werteintervall1
Leistungsprüfung1
iSumValue
iCounter
i
iPosTrennzeichen
listValueAverage
iValue
iTime
HINWEIS: verwendete Funktion(en) unterhalb!
Hier wird der Status der WaMa geprüft:
Es muss dabei etwas getrickst werden,
da die WaMa Ruhestrom verbraucht, der variiert.
Debugging Schalter: 0 = kein Debugging,
2 = Variableninhalte
debugLevel
2
Arbeitsvariable initialisieren.
wamaDuration
0
wamaState
FALSE
Arbeitsparameter initialisieren.
Max. Anzahl Einträge in der Liste
parMaxListEntries
20
Startwert für Erkennung WaMa läuft. 250 mA
parInitialThresholdValue
250
Durchschnittswert für Erkennung WaMa läuft. 100 mA
(Summe Stromwerte in Liste geteilt durch Anzahl Werte)
parThresholdValue
100
Zyklusse deaktivieren.
Dauerintervall1
Werteintervall1
Leistungsprüfung1
Liste mit den Werten der Stromaufnahme erzeugen,
so dass damit die Werte verglichen werden können.
listValueTimestamp
Einen Initialwert einfügen, so dass die Schleifen
beim ersten Lauf nicht in einen Fehler laufen.
Funktionsaufruf: Listenwert erzeugen.
val
knx.0.Wohnhaus.Schalter.WR--WaMa_Stromaufnahme
Wertänderung: für Änderungen durch die WaMa,
wenn diese etwas tut und somit Strom verbraucht.
Wertänderung:
ne
default
knx.0.Wohnhaus.Schalter.WR--WaMa_Stromaufnahme
Erkennen, ob die WaMa läuft:
Stromwert > "parInitialThresholdValue"
(der ist höher als die späteren Durchschnittswerte)
AND
GT
state.val
parInitialThresholdValue
EQ
wamaState
FALSE
Schalter auf "True" setzen
wamaState
TRUE
log
test
Die Waschmaschine läuft nun - wamaState =
wamaState
Waschdauer mitlaufen lassen
Dauerintervall1
1
min
wamaDuration
1
1
Funktionsaufruf: Listenwert erzeugen.
val
knx.0.Wohnhaus.Schalter.WR--WaMa_Stromaufnahme
Wenn die WaMa läuft, soll es regelmäßig Werte zum
Vergleichen geben, daher die Ausführung jede Minute.
Werteintervall1
2
min
Funktionsaufruf: Listenwert erzeugen.
val
knx.0.Wohnhaus.Schalter.WR--WaMa_Stromaufnahme
Script für Bestimmung, ob WaMa noch läuft.
Berechnung anhand Stromverbrauch und Intervallen
zwischen Änderung der Verbrauchswerte.
Leistungsprüfung1
5
min
listValueTimestamp
Summe und Zähler initialisieren.
iSumValue
0
iCounter
0
Stromwert und Zeit als ein Eintrag, durch Komma getrennt
i
listValueTimestamp
Position Trennzeichen "-" bestimmen.
iPosTrennzeichen
FIRST
i
-
-
Erst eins abziehen, sonst mit Trennzeichen.
iPosTrennzeichen
-1
-1
Den Stromwert extrahieren.
iValue
FIRST
FROM_START
i
iPosTrennzeichen
dann zwei addieren, sonst auch mit Trennzeichen.
iPosTrennzeichen
-1
2
Den Minutenwert extrahieren
iTime
FROM_START
LAST
i
iPosTrennzeichen
Stromwert aufsummieren.
iSumValue
ADD
1
iSumValue
1
iValue
Zähler erhöhen.
iCounter
1
1
Hier beginnt nun die eigentliche Arbeit:
anhand der "parMaxListEntries" Werte prüfen, ob diese
regelmäßig über "parThresholdValue" mA waren.
Berechnung mittels der Durchschnittswerte.
listValueAverage
ROUND
3.1
DIVIDE
1
iSumValue
1
iCounter
EQ
debugLevel
2
log
test
Durchschnittswert Liste:
listValueAverage
Erkennen, ob die WaMa noch läuft:
Stromwert > "parThresholdValue"
GTE
listValueAverage
parThresholdValue
WaMa läuft noch, Waschdauer anzeigen
(diesen Ast kann man sich eigentlich sparen)
Debug-Meldungen - Level 2
EQ
debugLevel
2
log
test
Waschmaschine läuft - Waschdauer:
wamaDuration
Minuten.
LT
listValueAverage
parThresholdValue
WaMa läuft nicht mehr
Berechnung der Waschdauer stoppen
Dauerintervall1
Regelmäßiges Fortschreiben der Werte stoppen
Werteintervall1
Status setzen. WaMa läuft nicht
wamaState
FALSE
log
test
Waschmaschine ist fertig - Waschdauer:
wamaDuration
Minuten.
Debug-Meldungen - Level 2
EQ
debugLevel
2
log
test
Listeninhalte:
listValueTimestamp
Regelmäßige Leistungsprüfung stoppen
Leistungsprüfung1
0
text
Die Waschmaschine ist fertig -
custom
\n
Waschdauer:
wamaDuration
Minuten.
Status der Waschmaschine
Variable Waschdauer zurücksetzen - wamaDuration =
wamaDuration
0
Debug-Meldungen - Level 2
EQ
debugLevel
2
log
test
Waschdauer - wamaDuration =
wamaDuration
Es hat sich ein neuer Stromwert ergeben, diesen in
die Liste eintragen.
Funktionsaufruf: Listenwert erzeugen.
val
knx.0.Wohnhaus.Schalter.WR--WaMa_Stromaufnahme
createListEntry
Beschreibe diese Funktion …
Kombinierten Listenwert zusammensetzen:
Wert, Minuten nach Mitternacht.
listValue
powerValue
-
mid
Stromwert und Zeitstempel in Liste einfügen.
INSERT
FIRST
listValueTimestamp
listValue
Nur die letzten x Werte behalten.
listLength
listValueTimestamp
GT
listLength
parMaxListEntries
listValueTimestamp
FROM_START
FROM_START
listValueTimestamp
1
parMaxListEntries
Debug-Meldungen - Level 2
EQ
debugLevel
2
log
test
Listeninhalte:
listValueTimestamp