Messwert aus CCU 2 auslesen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

mawi4de
Beiträge: 147
Registriert: 11.06.2016, 21:53
Danksagung erhalten: 5 Mal

Messwert aus CCU 2 auslesen

Beitrag von mawi4de » 15.04.2021, 07:07

Hallo,

ich möchte einen Messwert aus der Zentrale auslesen mit einem Skript und diesen in eine Variable schreiben. Der Messwert kommt von einem Hutschienen Mess-Schaltaktor HM-ES-PWSw1-DR. Leider wird der Messwert im Aktor gelöscht wenn der Aktor vom Stromnetzt getrennt wird oder derStrom ausfällt. Nur in der Zentrale bleibt der Messwert erhalten gespeichert. Zum Hintergrund: Ich verwende den Messaktor an einem kleinem Solarpanel und möchte die kontinuierliche Leistungserzeugung messen und mit Mediola auf meinem Wandtablet anzeigen lassen. Leider kann Mediola nicht den Messwert direkt aus der CCU auslesen sondern nur aus dem Messaktor. Deshalb möchte ich mir den Messwert aus der Zentrale in eine Variable schreiben lassen, die Variablewerte kann ich mir mit Mediola dann anzeigen lassen.

Weiß jemand von euch wie ich an den Messwert in der Zentrale komme mit einem Skript und wie das Skrip dann auszusehen hat? Ich bin, was das Datenpunkte und Skriptschreiben angeht leider nicht so fit.

Vielen Dank für euche Hilfe

Mathias
Dateianhänge
Unbenannt.JPG

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von MichaelN » 15.04.2021, 08:50

Den Messwert gibt es schon in einer unsichtbaren, systeminterne Variablen.
Gehe auf Programme / Zentralen Verknüpfungen, klick auf den Button "systeminterne Programme einblenden"
Du findest unten in der Liste für jedes PSM ein Programm. Öffne das zur gewünschten Steckdose, bearbeite das darin befinde Skript und füge ganz unten ein

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("sysvarname").State(oSysVarEnergyCounter.State());
Sysvarname musst Du natürlich gegen den Namen Deiner Systemvariable austauschen, die den Messwert enthalten soll.
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 +++

mawi4de
Beiträge: 147
Registriert: 11.06.2016, 21:53
Danksagung erhalten: 5 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von mawi4de » 15.04.2021, 10:06

Hallo Michael,

Danke für die Erklärung, werde ich heute Abend wenn ich wieder zu Hause bin einmal testen.

mawi4de
Beiträge: 147
Registriert: 11.06.2016, 21:53
Danksagung erhalten: 5 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von mawi4de » 15.04.2021, 14:39

So, hab es mal schnell in der Mittagspause probiert und funktioniert wie Beschrieben, danke für die Hilfe.

mawi4de
Beiträge: 147
Registriert: 11.06.2016, 21:53
Danksagung erhalten: 5 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von mawi4de » 16.04.2021, 10:04

Hallo,

ich habe noch eine eitere Frage zum Auslesen von Werten aus der CCU. Nachdem ich mit Hilfe von Michael den Leistungswert meiner Solaranlage aus der CCU auslesen kann, habe ich jetzt das "Problem" das der aus der CCU ausgelesene Wert in Wh in die Systemvariable geschrieben wird. In der WebUi ist der Leistungs Wert aus der CCU in KWh angegeben.

Ein Beispiel: CCU: 13,500KWh
Systemvariable: 13500Wh

Gibt es eine Möglichkeit das ich den Wert in der Varible auch in KWh bekomme?

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von MichaelN » 16.04.2021, 10:14

Klar, durch 1000 teilen:

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("sysvarname").State((oSysVarEnergyCounter.State()/1000));
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 +++

mawi4de
Beiträge: 147
Registriert: 11.06.2016, 21:53
Danksagung erhalten: 5 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von mawi4de » 16.04.2021, 10:24

Na klar :D

Dachte nicht das es so einfach geht, wenn man keine Ahnung von Programmierung hat :lol:

Danke

mawi4de
Beiträge: 147
Registriert: 11.06.2016, 21:53
Danksagung erhalten: 5 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von mawi4de » 16.04.2021, 10:30

Hab das Skrip nach deinen Angaben geändert und bekomme nun eine Fehlermeldung bei der Skriptprüfung

Code: Alles auswählen

Error 1 at row 33 col 144 near ^;

Parse following code failed:
object chn = dom.GetObject('43555');
object oBoot = chn.DPByControl('POWERMETER.BOOT');
object oEnergyCounter = chn.DPByControl('POWERMETER.ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounter_43555_REQ0777508:2');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterOldVal_43555');
boolean bootFlag = oBoot.Value();
real devVal = oEnergyCounter.Value();
real devValMax = oEnergyCounter.ValueMax();
real oldDevVal = oSysVarEnergyCounterOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarEnergyCounter.Value();
integer tmp_devVal = (devVal.ToString().ToFloat() * 100000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 100000).ToInteger();
if (oldDevVal <= 0) {
oSysVarEnergyCounterOldVal.State(devVal);
oSysVarEnergyCounter.State(devVal);
} else {
if ( ( bootFlag == true ) && ( tmp_devVal < tmp_oldDevVal ) ) {
diffVal = devVal;
} else {
if (tmp_devVal >= tmp_oldDevVal) {
diffVal = devVal - oldDevVal;
}
if ((tmp_devVal > 0) && (tmp_devVal < tmp_oldDevVal)) {
diffVal = (devVal + devValMax) - oldDevVal;
}
}
if (devVal > 0) {
oSysVarEnergyCounterOldVal.State(devVal);
}
oSysVarEnergyCounter.State(sysVarVal + diffVal);
}
dom.GetObject(ID_SYSTEM_VARIABLES).Get("Solar").State(oSysVarEnergyCounter.State()/1000));

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von MichaelN » 16.04.2021, 10:39

mawi4de hat geschrieben:
16.04.2021, 10:30
Hab das Skrip nach deinen Angaben geändert
Nein, hast Du nciht. Achte bitte auf die ()
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 +++

mawi4de
Beiträge: 147
Registriert: 11.06.2016, 21:53
Danksagung erhalten: 5 Mal

Re: Messwert aus CCU 2 auslesen

Beitrag von mawi4de » 16.04.2021, 10:50

Bin mir sicher das ich das richtig von dir übernommen hat:

Mein Skript: dom.GetObject(ID_SYSTEM_VARIABLES).Get("Solar").State(oSysVarEnergyCounter.State()/1000));
Dein Skript: dom.GetObject(ID_SYSTEM_VARIABLES).Get("sysvarname").State((oSysVarEnergyCounter.State()/1000));

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“