In dem von dir gezeigten Screenshot werden auch keine Werte ausgegeben. Da wird nur geprüft, ob das Skript Fehler aufweist. Du musst es dazu schon unter "Programme & Zentralenverknüpfung" durch Klick auf den Button "Skript" ausführen.
Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
Moderator: Co-Administratoren
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 16
- Registriert: 12.01.2022, 13:15
- System: CCU
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 1 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
Michael du hast recht ich verstehe nur Bahnhof
Stromzaeler_Bezug - Strom aktuell: 20168.313782
Stromzaeler_Bezug - Strom bisher: 20168.313599
Meitest du das so?
Das Programm habe ich manuell gestartet...
Stromzaeler_Bezug - Strom aktuell: 20168.313782
Stromzaeler_Bezug - Strom bisher: 20168.313599
Meitest du das so?
Das Programm habe ich manuell gestartet...
-
- Beiträge: 16
- Registriert: 12.01.2022, 13:15
- System: CCU
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 1 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
Hallo Michael
du hast recht ich verstehe nur Bahnhof, das Programm habe ich manuell gestartet.
Wenn ich das Skript teste kommt:
Stromzaeler_Bezug - Strom aktuell: 20168.330475
Stromzaeler_Bezug - Strom bisher: 20168.319672
Ich versuche nochmal meinen Plan zu erklären...
Mein IEC Energie-Zähler sendet alle 3 minuten Zählerstand: Einspeiung in kw/h, Bezug in kw/h und Leistung aktuell in Watt
Ich möche wenn sich der Zählerstand verändet eine Systemvariable umschalten auf bezug oder einspeisung.
Allso zählerstand einspeiung verandert, zählerstand bezug nicht dann Systemvariable auf Einspeisen. Das gleiche natürlich auch umgekehrt.
du hast recht ich verstehe nur Bahnhof, das Programm habe ich manuell gestartet.
Wenn ich das Skript teste kommt:
Stromzaeler_Bezug - Strom aktuell: 20168.330475
Stromzaeler_Bezug - Strom bisher: 20168.319672
Ich versuche nochmal meinen Plan zu erklären...
Mein IEC Energie-Zähler sendet alle 3 minuten Zählerstand: Einspeiung in kw/h, Bezug in kw/h und Leistung aktuell in Watt
Ich möche wenn sich der Zählerstand verändet eine Systemvariable umschalten auf bezug oder einspeisung.
Allso zählerstand einspeiung verandert, zählerstand bezug nicht dann Systemvariable auf Einspeisen. Das gleiche natürlich auch umgekehrt.
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
OK, wir nähern uns in kleinen Schritten an. Aber Du musst etwas mehr mitarbeiten.
Wenn ich sage "Debugging Tips durchlesen" meine ich damit: Link aufrufen, gucken wo das was zu Code Tags erklärt ist und dann anwenden.
Aber gut, ich sehe erstmal was ich wissen wollte. Die Datenpunkte liefern sinnvolle Ergebnisse. Also zumindest soweit ich das beurteilen kann.
Was ich aber immer noch nicht in meinen kleinen Kopf reinkriege - du schreibst:
Gibt es sowas auch für Einspeisung?
Wenn ich sage "Debugging Tips durchlesen" meine ich damit: Link aufrufen, gucken wo das was zu Code Tags erklärt ist und dann anwenden.
Aber gut, ich sehe erstmal was ich wissen wollte. Die Datenpunkte liefern sinnvolle Ergebnisse. Also zumindest soweit ich das beurteilen kann.
Was ich aber immer noch nicht in meinen kleinen Kopf reinkriege - du schreibst:
Ich schrieb:
Ich sehe in deinem Screenshot nur die Ergebnisse für einen Zählerstand. Anscheinend Bezug, wenn ich vom dem Namen ausgehe.Du hast einen HM-ES-TX-WM und der liefert 2 Zählerstände, einmal Einspeisung und einmal Bezug? Dann führ das obige Skript einmal für den einen Kanal, einmal für den andern aus.
Gibt es sowas auch für Einspeisung?
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 16
- Registriert: 12.01.2022, 13:15
- System: CCU
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 1 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
Ja es gibt den selben noch für den Einspeisezählerstand.
Die beiden werte aktuell sind auch die jetztigen ist werte des Zählers.
Jetzt scheint die Sonne stark das ich von einer einspeisung ausgehen kann was auch zu den zählerständen passt
Die beiden werte aktuell sind auch die jetztigen ist werte des Zählers.
Jetzt scheint die Sonne stark das ich von einer einspeisung ausgehen kann was auch zu den zählerständen passt
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
OK, dann mal die Ohren spitzen:
Du legst eine Systemvariable vom Typ Werteliste an. Diese muss folgende Werte bekommen:
Da mir immer noch nicht klar war, ob es auch die Konstellation geben kann, das eingespeist wird, aber die Einspeisung geringer als der aktuelle Netzbezug ist, habe ich 3 Stati erzeugt.
Wenn die SV existiert, passt Du im Skript die ersten 3 Zeilen an. Name der Zähler (wie bisher) und Name der SV eintragen (zwischen die "")
Dann mal in "Skript testen" laufen lassen und schauen ob es sinnvolle Ausgaben gibt.
Wenn ja, dann Programm anlegen, das auf Aktualisierung der Zähler reagiert (ver-ODER-t) und im DANN das Skript einfügen.
Zukünftig kannst Du dann auf den entsprechenden Status der SV in einem anderen Programm reagieren.
Du legst eine Systemvariable vom Typ Werteliste an. Diese muss folgende Werte bekommen:
Code: Alles auswählen
nur Bezug;Bezug größer Einspeisung;Einspeisung
Wenn die SV existiert, passt Du im Skript die ersten 3 Zeilen an. Name der Zähler (wie bisher) und Name der SV eintragen (zwischen die "")
Dann mal in "Skript testen" laufen lassen und schauen ob es sinnvolle Ausgaben gibt.
Wenn ja, dann Programm anlegen, das auf Aktualisierung der Zähler reagiert (ver-ODER-t) und im DANN das Skript einfügen.
Zukünftig kannst Du dann auf den entsprechenden Status der SV in einem anderen Programm reagieren.
Code: Alles auswählen
string ZaehlerBezug = "Zaehlername:1";
string ZaehlerEinspeisung = "Zaehlername:1";
string NameStatusSV = "Status Zaehler"; ! 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());
}
Zuletzt geändert von MichaelN am 23.06.2022, 18:48, insgesamt 1-mal geändert.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 16
- Registriert: 12.01.2022, 13:15
- System: CCU
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 1 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
Danke schonmal soweit, mit den 3 Werten ist eine gute idee, es kann ja vorkommne das beide zähler stände sich verändern in der übgangszeit zwischen einspeisung und bezug.
Ich hoffe du siehst was ich falsch gemacht habe,
Auf ausführen kommt nichts, bei der fehlerprüfung kommt folgendes...
Ich hoffe du siehst was ich falsch gemacht habe,
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());
}
Code: Alles auswählen
Error 1 at row 21 col 54 near ^"};
}
Zuletzt geändert von alchy am 23.06.2022, 21:09, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Grund: Code in Codetags posten
- Baxxy
- Beiträge: 10832
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 608 Mal
- Danksagung erhalten: 2227 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
Alles gut, du machst nichts falsch.
Micha hat bestimmt wieder am Handy gescripted und bei der Hitze kann man schon mal die falschen Klammern erwischen.
Hotfix-Version:
Achja, wurde zwar schon geschrieben... bitte Code in Codetags (</>) posten.
Micha hat bestimmt wieder am Handy gescripted und bei der Hitze kann man schon mal die falschen Klammern erwischen.
Hotfix-Version:
Code: Alles auswählen
string ZaehlerBezug = "Zaehlername:1";
string ZaehlerEinspeisung = "Zaehlername:1";
string NameStatusSV = "Status Zaehler"; ! 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());
}
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
Ne, tatsächlich habe ich sogar den SDV benutzt, aber offline. Wo habe ich denn den Bug eingebaut?
Das wird wohl nichts mehr.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- Baxxy
- Beiträge: 10832
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 608 Mal
- Danksagung erhalten: 2227 Mal
Re: Benötige Hilfe! Skript für Umstellung Bezug/Einspeisung Stromzähler
Geschweifte Klammer an den WriteLines am Ende.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen