Plausibilisierung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 102: | Zeile 102: | ||
else | else | ||
Log('[Q08] Ablesestand unterschreitet leicht untere Grenze' + MoreInfo); | Log('[Q08] Ablesestand unterschreitet leicht untere Grenze' + MoreInfo); | ||
break; | break; | ||
end; | end; | ||
Version vom 13. Juni 2023, 16:34 Uhr
Motivation
- Verhinderung von Fehleingaben (Zahlendreher, Stellen vergessen, Komma falsch gesetzt)
Funktionsweise
- Intern speichert OrgaMon für jeden Auftrag nur 3 Felder für ein einziges Zählwerk
VERBRAUCH_DATUM VERBRAUCH_ZAEHLER_STAND VERBRAUCH_PRO_JAHR
- damit ist eine Prognose für den Ablesewert für den heutigen Ablesetag möglich
- Die Genauigkeit der Prognose wird verbessert, in dem verschiedene Lastkurven für Gas/Strom/Wasser verwendet werden
Import
Dazu braucht man im Import die 3 Werte
Verbrauch_Datum()Datum einer AblesungVerbrauch_Zähler_Stand()der Ablesewert an dem DatumVerbrauch_Pro_Jahr()der Jahresverbrauch
alternativ aber auch 4 Werte
- OrgaMon berechnet den Jahresverbrauch dann selbst
- ACHTUNG: Die Import-Reihenfolge muss genau wie angegeben eingehalten werden
Verbrauch_Datum()Datum einer AblesungVerbrauch_Zähler_Stand()der Ablesewert an dem DatumVerbrauch_0_Datum()2. Datum einer AblesungVerbrauch_0_Zähler_Stand()der Ablesewert an dem 2. Datum
- in diesem Fall wird der Jahresverbrauch selbst durch OrgaMon berechnet:
VERBRAUCH_PRO_JAHR = ((Verbrauch_Zähler_Stand - Verbrauch_0_Zähler_Stand) / TageZwischen(Verbrauch_0_Datum, Verbrauch_Datum)) * 365
Transaktionen
siehe Transaktionen#HA7
Qualitätssicherung
in der OrgaMon-App
- der Transport erfolgt über Zähler-Infos (bitte testen!)
vor der Ergebnismeldung
v := sZaehlerInfo.values['v1']
b := sZaehlerInfo.values['b1']
a := sZaehlerInfo.values['a1']
s := Zählerstand( / 'ET' / HT)
E2
v := sZaehlerInfo.values['v2']
b := sZaehlerInfo.values['b2']
a := sZaehlerInfo.values['a2']
s := Zählerstand('E2')
if (V < 0) then
begin
Log('[Q16] keine "Untere Grenze" definiert' + MoreInfo);
end;
if (b < 0) then
begin
Log('[Q17] keine "Obere Grenze" definiert' + MoreInfo);
end;
if (a < 0) then
begin
Log('[Q18] kein "Letzter Stand" definiert' + MoreInfo);
end;
//
if (ZWS < 0) then
begin
Log('[Q01] Ablesestand fehlt' + MoreInfo);
break;
end;
if (a > 0) and (ZWS < a) then
begin
if (ZWS + 10 >= a) then
Log('[Q13] Ablesestand unterschreitet leicht letzten Stand' + MoreInfo)
else
Log('[Q19] Ablesestand kleiner als letzter Stand' + MoreInfo);
break;
end;
if (b - V < 0) then
begin
Log('[Q06] Zählwerk-Überlauf erwartet' + MoreInfo);
end;
BandErweiterung := max((b - V) * 3, 1000);
if (ZWS < V) then
begin
if (ZWS < V - BandErweiterung) then
Log('[Q07] Ablesestand unterschreitet massiv untere Grenze' + MoreInfo)
else
Log('[Q08] Ablesestand unterschreitet leicht untere Grenze' + MoreInfo);
break;
end;
if (ZWS > b) then
begin
if (ZWS > b + BandErweiterung) then
Log('[Q09] Ablesestand überschreitet massiv obere Grenze' + MoreInfo)
else
Log('[Q10] Ablesestand überschreitet leicht obere Grenze' + MoreInfo);
break;
end;