Differenz von 2 Stromzählern bilden

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
jamesbond0
Beiträge: 12
Registriert: 28.12.2011, 21:39

Differenz von 2 Stromzählern bilden

Beitrag von jamesbond0 » 02.12.2018, 18:40

Hallo alle miteinander,

ich würde gerne die Differenz oder Summe von dem momentanen Energieverbrauch von 2 Stromzählern (HM-ES-TX-WM) bilden, am besten natürlich gleich die interne Systemvariable dabei nutzen.
Diese Differenz will ich dann in eine neue Systemvariable schreiben um dann darauf reagieren zu können.

Hintergrund der ganzen Geschichte: wenn der Solarstrom mehr als der Stromverbrauch des Hauses ist will ich div. Sachen schalten können.

Habt ihr vlt. ein kurzen Lösungsweg, ich habe schon viel probiert, komme aber einfach nicht weiter.

lg
Stephan

Bratmaxe
Beiträge: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

Re: Differenz von 2 Stromzählern bilden

Beitrag von Bratmaxe » 04.12.2018, 15:32

Hallo,

probier es mal hiermit (kann ich leider gerade nicht testen, habe keinen dieser Sensoren):

Code: Alles auswählen

string DifferenzVariableName = "DifferenzStrom"; ! Name der Variable, in die der Differenzwert eingetragen werden soll
string NameAktorOut = "HIERdenAktor1Nameneintragen"; ! Stromverbrauch
string NameAktorIn = "HIERdenAktor2Nameneintragen"; ! Stromerzeugung

! Ab hier nichts mehr Ändern..........................................

var PowerOut = dom.GetObject(ID_CHANNELS).Get(NameAktorOut # ":1").DPByHssDP("POWER").Value();
var PowerIn = dom.GetObject(ID_CHANNELS).Get(NameAktorIn # ":1").DPByHssDP("POWER").Value();

!Wenn noch keine Systemvarible vorhanden, diese anlegen
object svObject = dom.GetObject(DifferenzVariableName);
object svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
if (!svObject)
{   
    svObjectlist = dom.GetObject(ID_SYSTEM_VARIABLES);
    svObject = dom.CreateObject(OT_VARDP);
    svObjectlist.Add(svObject.ID());
    svObject.Name(DifferenzVariableName);   
    svObject.ValueType(ivtFloat);
    svObject.ValueSubType(istGeneric);
	svObject.ValueMin(-16000);
    svObject.ValueMax(16000);
    svObject.DPInfo("Differenz Eingehend zu Ausgehender Leistung");
    svObject.ValueUnit("W");
    svObject.Internal(false);
    svObject.Visible(true);
    dom.RTUpdate(0);
}

var AktDiffValue = PowerIn - PowerOut;
if (svObject.Value() != AktDiffValue)
{
	! nur Aktualisieren, wenn eine Änderung stattgefunden hat
	svObject.State(AktDiffValue);
}
Gruß Carsten

Benutzeravatar
funkleuchtturm
Beiträge: 2365
Registriert: 13.06.2011, 16:42
Hat sich bedankt: 23 Mal
Danksagung erhalten: 357 Mal
Kontaktdaten:

Re: Differenz von 2 Stromzählern bilden

Beitrag von funkleuchtturm » 04.12.2018, 21:00

Danke für den Hinweis mit den Differenzwerten. Habe gerade in meinen PULSECOUNTER einen zuätzlichen "virtuellen" Differenzwertzähler eingebaut.

Der Differenzzähler misst die Differenzwerte von Energie (KWh) und Leistung (KW) der Zähler 1 und 2 und wird im nächsten Update vorhanden sein.
Natürlich sind dann auch die entsprechenden Systemvariablen mit den Differenzwerten ohne zusätzliche Berechnung per Skript auf der CCU vorhanden.
Das sieht dann auf der Webseite des PULSECOUNTERS so aus:
pulsecounter_differenz.jpg
Für das hauseigene Energiemanagement mit Solarkollektoren kann aber insbesondere die aktuelle Leistungsdifferenz von besonderem Interesse sein:
>> ob ich gerade Strom einspeise oder verbrauche.
Viele Gruesse
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker

jamesbond0
Beiträge: 12
Registriert: 28.12.2011, 21:39

Re: Differenz von 2 Stromzählern bilden

Beitrag von jamesbond0 » 07.12.2018, 07:47

Moin Moin,

ja, super. funktioniert.
Vielen vielen Dank!!!!!!

Bei der Systemvariablen musste ich den Wertebereich noch auf -10000.00 bis 10000.00 setzen.
Damit habe ich jetzt einen negativen Wert wenn Strom vom Versorger bezogen wird und einen positiven Wert wenn die PV - Anlage mehr Strom produziert als verbraucht wird.
Bei der Auswertung der Systemvariablen hapert es leider noch, negative Werte scheint die CCU nicht zu mögen.
Negative Werte, auf die ich im Programm mit " größer als" oder " kleiner als" versuche, Aktionen auszulösen, funktionieren nicht. Ist die Systemvariable im positiven Bereich funktioniert es.

Gruß
Stephan

Xel66
Beiträge: 14149
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: Differenz von 2 Stromzählern bilden

Beitrag von Xel66 » 07.12.2018, 12:16

Eigentlich kann die CCU-Firmwarevauch in der GUI damit umgehen. Nur beim Scripting muss man einige Eigenheiten beachten. Es wird z.B von rechts nach links gerechnet. Und -99 ist auch bei der CCU kleiner als -50.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic allgemein“