Seite 3 von 3

Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler

Verfasst: 23.06.2022, 18:48
von MichaelN
Ich brauch ne neue Brille. Und dann kommt noch Copy&Paste dazu...
Dann bin ich mal gespannt, ob es denn funktioniert.
btw: in meinem Original-Beitrag auch korrigiert.

Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler

Verfasst: 23.06.2022, 19:25
von NickHM
Kurze Zwischenfrage an die Profis ....

Diese WriteLines sind jetzt zum Testen, damit man den WErt der einzelnen Variablen sieht.
Im eigentlichen Programm kann man die Zeilen auskommentieren.

Was passiert, wenn man (aus Versehen) die WriteLines nicht auskommentiert? Stört das die Script Abarbeitung oder gibt das Fehler im Log?

Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler

Verfasst: 23.06.2022, 19:31
von MichaelN
Ja, die WriteLines sind nur zum Debugging und nein, die stören nicht.
Also einfach so lassen wie es ist.

Aber die Ausgabe würde mich schon interessieren. Will wenigstens mal sehen, ob es funktioniert wie ich mir das gedacht habe.

Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler

Verfasst: 23.06.2022, 19:35
von Tobisco
Als allererstes schon vielen vielen danke an alle die mir hier mit geholfen haben ich weiß das ich keinen Plan habe in leider eine lange leitung habe Sorry dafür.

Zum eigentlichen thema.

Es scheint zu funktieren.
Bildschirmfoto 2022-06-23 um 18.42.57.png
Da die Sonne nicht mehr scheint kann ich nicht sagen ob die umstellung funktioniert, die Systemvariable steht wie sie es auch soll auf "nur bezug".

Ich gebe morgen eine Weitere Rückmeldung.

Nochmal Danke

Code: Alles auswählen

string ZaehlerBezug = "Stromzaeler_Bezug";
string ZaehlerEinspeisung = "Stromzaeler_Einspeisung";
string NameStatusSV = "Strom_ueberschuss"; ! Werteliste 0=nur Bezug 1=Bezug größer Einspeisung 2=Einspeisung

object SV = dom.GetObject(ID_SYSTEM_VARIABLES).Get(NameStatusSV);
object Bezug = dom.GetObject(ZaehlerBezug).DPByHssDP("IEC_ENERGY_COUNTER");
object Einspeisung = dom.GetObject(ZaehlerEinspeisung).DPByHssDP("IEC_ENERGY_COUNTER");
real altBez = 0; real neuBez = 0;
real altEin = 0; real neuEin = 0;
neuBez = Bezug.Value();
altBez = Bezug.LastValue();
WriteLine(ZaehlerBezug # " - aktuell: "# neuBez);
WriteLine(ZaehlerBezug # " - bisher: "# altBez);
neuEin = Einspeisung.Value();
altEin = Einspeisung.LastValue();
WriteLine(ZaehlerEinspeisung # " - aktuell: "# neuEin);
WriteLine(ZaehlerEinspeisung # " - bisher: "# altEin);
if ( (neuEin > altEin) && (neuBez == altBez) ) {
	! es wird eingespeist
    if (SV) {if (SV.State() != 2 ) {SV.State(2);}}
    WriteLine("es wird eingespeist");
}

if ( (neuEin > altEin) && (neuBez > altBez) ) {
	! Bezug größer Einspeisung
    if (SV) {if (SV.State() != 1 ) {SV.State(1);}}
    WriteLine("Bezug größer Einspeisung");
}

if ( (neuEin == altEin) && (neuBez > altBez) ) {
	! Bezug größer Einspeisung
    if (SV) {if (SV.State() != 0 ) {SV.State(0);}}
    WriteLine("Bezug");
}

if (SV) {
	WriteLine("Status: "#SV.State());
}

Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler

Verfasst: 25.06.2022, 21:41
von Tobisco
Hallo zusammen,

abschließende Rückmeldung. Das Skript macht was es soll funktioniert tadellos.

Nachmal danke an alle die geholfen haben.