ich habe vor langer Zeit folgende Auswertung für meinen Strom-Verbrauch/Einspeisung geschrieben.
Es funktioniert einwandfrei, doch nun muss es geändert werden
Ich hatte damals ein Hilfsprogramm, in dem die fünfstelligen (Zahlen) aufgelistet wurden.
Doch leider finde ich das Programm nicht mehr und weiss demnach auch nicht was zum Beispiel:
> domGetObject(19029).Value() < bedeutet.
Jeder Datenpunkt hatte dabei eine fortlaufende (fünfstellige?) Nummer.
Kann jemand mir einen Link zu einem Programm schicken, mit dem ich die Datenpunkte finden kann?
Anbei mein Programm, um zu zeigen, was ich meine:
Code: Alles auswählen
! Zeitdifferenz zur letzten Aktualisierung
integer diffTime = (dom.GetObject(19029).Timestamp().ToInteger()) - (dom.GetObject(22807).LastTimestamp().ToInteger());
! Bezug
dom.GetObject ("Bezug_Aktualisierung").State (system.Date("%X"));
real value = dom.GetObject(19029).Value() - dom.GetObject(19082).Value();
object a = dom.GetObject("Bezug_Heute");
a.State(value);
! Einspeisung
dom.GetObject ("Einsp_Aktualisierung").State (system.Date("%X"));
real value = dom.GetObject(19033).Value() - dom.GetObject(20201).State();
object a = dom.GetObject("Einspeisg_Heute");
a.State(value);
! Leistung
if(dom.GetObject ("ZeitDiff").State() > 0)
{
! Hier kommt der Bezug in Watt
object d = dom.GetObject ("Bezug_Aktuell");
real curValue = dom.GetObject(19029).Value();
real lastValue = dom.GetObject(19029).LastValue();
! real diffValue = ((curValue*1000) - (lastValue*1000));
real diffValue = (((curValue - lastValue)+0.000006)*100).ToInteger();
! d.State ((3600*diffValue) / dom.GetObject ("ZeitDiff").State());
d.State (300*diffValue);
!dom.GetObject(ID_SYSTEM_VARIABLES).Get("TEST_HJN").State(diffValue); ! NUR zum TEST !
! Und nun kommt die momentane Einspeisung in Watt
object e = dom.GetObject ("Einspeisg_Aktuell");
real curValue = dom.GetObject(19033).Value();
real lastValue = dom.GetObject(19033).LastValue();
! real diffValue = ((curValue*1000) - (lastValue*1000));
real diffValueE = (((curValue - lastValue)+0.000006)*100).ToInteger();
! e.State((3600*diffValueE) / dom.GetObject ("ZeitDiff").State());
e.State (300*diffValueE);
dom.GetObject(ID_SYSTEM_VARIABLES).Get("TEST_HJN").State((("Verbr. = ")+(diffValue))+((" , und Einsp. = ")+(diffValueE))); ! NUR zum TEST !
}
! letzten Zeitstempel setzen
integer LastTimestamp = dom.GetObject(19033).Timestamp().ToInteger();
dom.GetObject(22807).State(LastTimestamp);
object f = dom.GetObject ("ZeitDiff");
f.State (dom.GetObject(19029).Timestamp().ToInteger()) - (dom.GetObject(22807).LastTimestamp().ToInteger());