Stromzähler mit HomeMatic auswerten

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

geri167
Beiträge: 10
Registriert: 06.01.2018, 12:51

Re: Stromzähler mit HomeMatic auswerten

Beitrag von geri167 » 08.01.2018, 00:42

Hallo! ich habe irgendwo einen Fehler eingebaut oder ich stehe auf der Leitung kann mir jemand helfen.

Wenn ich unter
2 Strom Referenz.JPG
meinen Wert der aktuell am Ferraris Zähler ist minus dem Wert vom Energie_Couter in kwH eingebe stimmt
der Strom Zählerstand zwar aber die Werte Tag Woche Monat Jahr passen dann nicht mehr.
mediola_Strom Referenz.JPG
1Strom Referenz.JPG
Wenn ich den Wert im Strom Referenz Zaehlerstand wieder auf 0 setze und es mir so anschaue sollte der Rest anscheinend doch sehr gut laufen,
was mich für den ersten Versuch doch ziemlich wunder, aber nach der Anleitung von JPS auch nicht mehr sonderlich schwer :D

Rücksetzcode:

Code: Alles auswählen

! noch zu löschen z.B. var oTg = dom.GetObject("Waermepumpe Verbrauch heute"); Verbrauch wird über Strom berechnet bzw. alles was mit Waermepumpe Verbrauch zu tun hat
!Tageszaehler
var vTz = dom.GetObject("Strom Referenz Verbrauch heute");
var vTg = dom.GetObject("Strom Verbrauch heute");
var oTz = dom.GetObject("Waermepumpe Betriebsstunden heute");
var oTg = dom.GetObject("Waermepumpe Verbrauch heute");
var vGg = dom.GetObject("Strom Verbrauch gestern");
! Zwischenwerte heute nach gestern in Variable speichern Strom Verbrauch gestern 
vGg.State(vTg.State());
vTz.State(vTg.State() + vTz.State());
!
vTz.State(vTg.State() + vTz.State());
vTg.State(0.00);
oTz.State(0.00);
oTg.State(0.00);
!Wochenzaehler
if (system.Date("%u") == 7) {
    var vWz = dom.GetObject("Strom Referenz Verbrauch laufende Woche");
    var vWg = dom.GetObject("Strom Verbrauch laufende Woche");
    var oWz = dom.GetObject("Waermepumpe Betriebsstunden laufende Woche");
    var oWg = dom.GetObject("Waermepumpe Verbrauch laufende Woche");
	var vWw = dom.GetObject("Strom Verbrauch letzte Woche");
! Zwischenwerte laufende Woche nach letzte Woche in Variable speichern Strom Verbrauch letzte Woche 
vWw.State(vWg.State());
vWz.State(vWg.State() + vWz.State());
!
    vWz.State(vWg.State() + vWz.State());
    vWg.State(0.00);
    oWz.State(0.00);
    oWg.State(0.00);
}
!Monatszaehler
time morgen = (system.Date("%F %X").ToTime().ToInteger() + 120).ToTime();
if (morgen.Day() == 1) {
    var vMz = dom.GetObject("Strom Referenz Verbrauch laufender Monat");
    var vMg = dom.GetObject("Strom Verbrauch laufender Monat");
    var oMz = dom.GetObject("Waermepumpe Betriebsstunden laufender Monat");
    var oMg = dom.GetObject("Waermepumpe Verbrauch laufender Monat");
	var vMw = dom.GetObject("Strom Verbrauch letzter Monat");
! Zwischenwerte laufende Woche nach letzte Woche in Variable speichern Strom Verbrauch letzte Woche 
vMw.State(vMg.State());
vMz.State(vMg.State() + vMz.State());
!
    vMz.State(vMg.State() + vMz.State());
    vMg.State(0.00);
    oMz.State(0.00);
    oMg.State(0.00);    
}
!Jahreszaehler:
if ((system.Date("%m") == 12) && (system.Date("%d") == 31)) {
    var vJz = dom.GetObject("Strom Referenz Verbrauch laufendes Kalenderjahr");
    var vJg = dom.GetObject("Strom Verbrauch laufendes Kalenderjahr");
    var oJz = dom.GetObject("Waermepumpe Betriebsstunden laufendes Kalenderjahr");
    var oJg = dom.GetObject("Waermepumpe Verbrauch laufendes Kalenderjahr");
	var vJw = dom.GetObject("Strom Verbrauch letztes Jahr");
! Zwischenwerte laufende Woche nach letzte Woche in Variable speichern Strom Verbrauch letzte Woche 
vJw.State(vJg.State());
vJz.State(vJg.State() + vJz.State());
!
    vJz.State(vJg.State() + vJz.State());
    vJg.State(0.00);
    oJz.State(0.00);
    oJg.State(0.00);
}

Auto SV Stromzaehler Waermepumpe Auswertung:

Code: Alles auswählen

object oP = dom.GetObject("BidCos-RF.NEQ0864278:1.POWER");
object oE = dom.GetObject("BidCos-RF.NEQ0864278:1.ENERGY_COUNTER");
var aC = dom.GetObject("Strom ENERGY_COUNTER");
var zR = dom.GetObject("Strom Referenz Zaehlerstand");
var zA = dom.GetObject("Strom Zaehlerstand");
var aA = dom.GetObject("Strom Leistungsaufnahme aktuell");
var vLz = dom.GetObject("Strom Referenz Verbrauch seit letzter Ablesung");
var vLg = dom.GetObject("Strom Verbrauch seit letzter Ablesung");
var vTz = dom.GetObject("Strom Referenz Verbrauch heute");
var vTg = dom.GetObject("Strom Verbrauch heute");
var vWz = dom.GetObject("Strom Referenz Verbrauch laufende Woche");
var vWg = dom.GetObject("Strom Verbrauch laufende Woche");
var vMz = dom.GetObject("Strom Referenz Verbrauch laufender Monat");
var vMg = dom.GetObject("Strom Verbrauch laufender Monat");
var vJz = dom.GetObject("Strom Referenz Verbrauch laufendes Kalenderjahr");
var vJg = dom.GetObject("Strom Verbrauch laufendes Kalenderjahr");
var vJk = dom.GetObject("Strom Kosten laufendes Kalenderjahr");
var vMk = dom.GetObject("Strom Kosten laufender Monat");
var vWk = dom.GetObject("Strom Kosten laufende Woche");
var vTk = dom.GetObject("Strom Kosten heute");
var vPk = dom.GetObject("Strompreis");
    if ((oE.State() + 0.001) < aC.State()) {
    zR.State(zR.State() + 838.8607);
    }
aC.State(oE.State());
zA.State((zR.State() + (oE.State()/1000)).Round(2));
aA.State(oP.State());
vLg.State((zA.State() - vLz.State()).Round(2));
vTg.State((zA.State() - vTz.State()).Round(2));
vWg.State((zA.State() - vWz.State()).Round(2));
vMg.State((zA.State() - vMz.State()).Round(2));
vJg.State((zA.State() - vJz.State()).Round(2));
vJk.State((vJg.State() * vPk.State()).Round(2));
vMk.State((vMg.State() * vPk.State()).Round(2));
vWk.State((vWg.State() * vPk.State()).Round(2));
vTk.State((vTg.State() * vPk.State()).Round(2));

Wenn ich den Wert Strom Referenz Zaehlerstand dann wieder auf 0 setze bekomme ich sogar - Werte raus?????
3 Strom Referenz.JPG

Bitte um Hilfe

Benutzeravatar
JPS
Beiträge: 1019
Registriert: 07.08.2010, 22:51
Kontaktdaten:

Re: Stromzähler mit HomeMatic auswerten

Beitrag von JPS » 08.01.2018, 06:33

geri167 hat geschrieben:Bitte um Hilfe
Auf die Schnelle, ohne mir das heute Morgen bereits detailliert angesehen zu haben:

Hast du die Logik beachtet, nach der die Referenz-Systemvariablen zu befüllen sind?
Tutorial, Abschnitt 4 Korrektur
SMART WOHNEN by sTeRn AV | Meine Lösungen, um das Leben zuhause "smarter" zu machen.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

geri167
Beiträge: 10
Registriert: 06.01.2018, 12:51

Re: Stromzähler mit HomeMatic auswerten

Beitrag von geri167 » 08.01.2018, 10:32

Hallo JPS
Hallo Jens

Ja das hatte ich gestern auch, habe die Werte in den Korrekturrechner eingetragen, und es kam bei Tag Monat Jahr immer solch Werte wie -0,002548 heraus.

Heute noch mal alles eingetragen, :D siehe da es funktioniert auf Anhieb. :D

Es ist auch möglich das ich gestern Mitternacht schon etwas müde war :wink:

Wieder mal vielen Dank für deine Hilfe, was wären wir nur ohne dich!

Jetzt habe ich nur noch ein Projekt, das da wäre die Betriebsstunden von gestern, letzte Woche, letzten Monat und Jahr ausgeben zu lassen,

habe dazu noch nichts im Forum gefunden, das werde ich aber wieder in der Richtigen Kategorie: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

machen.

Vielen Dank

Benutzeravatar
JPS
Beiträge: 1019
Registriert: 07.08.2010, 22:51
Kontaktdaten:

Re: Stromzähler mit HomeMatic auswerten

Beitrag von JPS » 08.01.2018, 20:40

Schön, dass es jetzt klappt.
geri167 hat geschrieben: Jetzt habe ich nur noch ein Projekt, das da wäre die Betriebsstunden von gestern, letzte Woche, letzten Monat und Jahr ausgeben zu lassen,
Da findest du im Stromzählertutorial auch einen Ansatz (steht unter "5. Weiterentwicklungsideen" | "Zusätzlich den Stromverbrauch von gestern abspeichern")

Da du aber ja in Zukunft den CCU-Historian einsetzen willst, kannst du diese Angaben auch aus dessen Auszeichnung ziehen.
SMART WOHNEN by sTeRn AV | Meine Lösungen, um das Leben zuhause "smarter" zu machen.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

geri167
Beiträge: 10
Registriert: 06.01.2018, 12:51

Re: Stromzähler mit HomeMatic auswerten

Beitrag von geri167 » 09.01.2018, 00:57

Hallo!

Ja den Punkt 5 für Strom habe ich gestern schon umgesetzt für gestern, letzte Woche letzter Monat und letztes Jahr.


Habe aber seit der Rücksetzung um 23:59 wieder falsche werte, nachdem es Tagsüber einwandfrei gelaufen ist.

der Strom verbrauch heute zeigt seit der Rücksetzung Minus Werte an.
4 Strom Referenz.JPG
Eine Grundsätzliche Frage hierzu:
Habe heute ja nochmal Punkt 4 Korrektur durchgeführt:
Die Batterien aber nicht entnommen, aber ob ich nun:
* die Batterien entnehme und damit den Counter auf 0 setze, und ich direkt den aktuellen Zählerstand in die Var. Strom Referenz Zaehlerstand schreibe
oder
*ich den Anfang von deinem Korrekturrechner dafür hernehme und den aktuellen Counterwert sowie den aktuellen Zählerstand eintrage und danach den berechneten Wert in die Var. Strom Referenz Zaehlerstand schreibe
5 Strom Referenz.JPG
ist doch egal oder??

Noch eine grundsätzliche Frage:
Beim Korrigieren der Zeitraumzähler verwende ich auch den Korrekturrechner, die erhaltenen Werte trage ich dann in die jeweiligen Referenz-Systemvariablen der Zeitraumzähler ein.
Diese bleiben dann bis zur einer möglichen nächsten Korrektur so stehen.
6 Strom Referenz.JPG

LG
Geri

Benutzeravatar
JPS
Beiträge: 1019
Registriert: 07.08.2010, 22:51
Kontaktdaten:

Re: Stromzähler mit HomeMatic auswerten

Beitrag von JPS » 09.01.2018, 14:21

geri167 hat geschrieben:Habe aber seit der Rücksetzung um 23:59 wieder falsche werte, nachdem es Tagsüber einwandfrei gelaufen ist.
Dann stimmt etwas mit deiner Rücksetzung nicht. Ich empfehle, es so zu machen, wie hier beschrieben.
geri167 hat geschrieben:(..)ist doch egal oder??
Genau, entweder Batterien raus und den Stand am Ferrariszähler in die Referenz eintragen oder ohne Batterieentnahme den Rechner nutzen.
geri167 hat geschrieben:Noch eine grundsätzliche Frage:(..)
Die Referenz Systemvariablen der Zeitraumzähler sind immer so zu berechnen.:

"Strom Referenz Verbrauch Zeitraum" = "Strom Zaehlerstand" - "Strom Verbrauch Zeitraum"

Für die einzelnen Referenz Systemvariablen bedeutete das:

Für den Tageszähler („Strom Referenz Verbrauch laufender Monat“) ist das der aktuelle Zählerstand minus den am Eintragetag bereits aufgelaufenen Verbrauch (ggf. geschätzt). Dies entspricht dem Zählerstand vom Vortag 23:59 Uhr.

Für den Wochenzähler „Strom Referenz Verbrauch laufende Woche“) der aktuelle Zählerstand minus den bis zum Eintragezeitpunkt bereits aufgelaufenen Wochenverbrauch (ggf. geschätzt). Dies entspricht dem Zählerstand von letztem Sonntag 23:59 Uhr.

Für des Monatszähler („Strom Referenz Verbrauch laufender Monat“) der aktuelle Zählerstand minus den bis zum Eintragezeitpunkt bereits aufgelaufenen Monatsverbrauch (ggf. geschätzt). Dies entspricht dem Zählerstand vom letzten Tag des Vormonats 23:59 Uhr.

Für den Jahreszähler („Strom Referenz Verbrauch laufendes Jahr“) der aktuelle Zählerstand minus den bis zum Eintragezeitpunkt bereits aufgelaufenen Jahresverbrauch (ggf. geschätzt). Dies entspricht dem Zählerstand vom 31.12. des Vorjahres 23:59 Uhr.

Für den Ablesezähler („Strom Referenz Verbrauch seit letzter Ablesung“) der aktuelle Zählerstand minus den bis zum Eintragezeitpunkt bereits aufgelaufenen Verbrauch seit der letzten Stromablesung (ggf. geschätzt). Am besten übernimmt man hierfür den Zählerstand von der letzten Stromrechnung.

So erklärt sich auch die Rücksetzung, die ja nichts anderes macht, als als kurz vor dem Reset des Zählers (Verbrauchs Systemvariable auf NULL) der jeweiligen Referenz Systemvariablen den seit dem letzten Reset aufgelaufen Verbrauch (also den Inhalt der jeweiligen Verbrauchs Systemvariable) drauf zu addieren.
SMART WOHNEN by sTeRn AV | Meine Lösungen, um das Leben zuhause "smarter" zu machen.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

geri167
Beiträge: 10
Registriert: 06.01.2018, 12:51

Re: Stromzähler mit HomeMatic auswerten

Beitrag von geri167 » 10.01.2018, 09:36

Danke,

vom Grund her hatte ich das eh alles richtig, hat sich nur ein fehler im Code eingeschlichen.

Code: Alles auswählen

vTz.State(vTg.State() + vTz.State());
!
vTz.State(vTg.State() + vTz.State());
hatte die Zeile 2 Mal geschrieben, warum auch immer,

jetzt scheint es zu gehen.

DANKE

geri167
Beiträge: 10
Registriert: 06.01.2018, 12:51

Re: Stromzähler mit HomeMatic auswerten

Beitrag von geri167 » 10.01.2018, 10:11

Hallo!

jetzt möchte ich nur noch dieses unschöne Problem beseitigen:

habe dazu schonmal das im Forum gefunden,
Re: Zählersensor Strom/Gas HM-ES-TX-WM - Tipps, Probleme
bigcheaf hat geschrieben:
Ich musste leider feststellen, dass die Sendeeinheit mit Ferraris Sensor bei einem Nullverbrauch nicht übermittelt.
Dann bleibt einfach die zuletzt gemessene Leistung im WebIF stehen mit Zeitstempel von vor 2 Stunden.

Das ist weniger schön. Ich habe den Sensor an einem "Zwischenzähler", der auch mal stehen kann. Ich möchte auch mit Programmen darauf reagieren, wenn er steht.
Jetzt sieht es so aus, als ob ich seit 2 Stunden 100 Watt verbrauche... Zumindest zählt der Gesamtzähler nicht weiter.
Kann man das irgendwie mit einem Script auswerten?


Du kõnntest z.B. den Wert oder einen Zeitstempel per Skript zwischenspeichen und etwas auslösen, wenn dieser sich über einen bestimmten Zeitraum nicht ändert.
das Problem ist bei mir ähnlich, der Ferrariszähler ist ein Zwischenzähler unserer Wärmepumpe, wenn Wärmepumpe (4-5kW) aus, dann nur noch 53 Watt verbrauch der Heizkreispumpe,

bis sich die Ferrarisscheibe nun 2x rumdreht bei 53Watt (1kWh=80Umdrehungen) vergehen locker 20minuten, beidem statt 53Watt nun über 4 kW angezeigt und auch berechnet werden.

Beim obigen Lösungsansatz habe ich nur ????? im Kopf, gibt es ein Beispiel das ich nicht gefunden habe?

LG

Kelthizar
Beiträge: 43
Registriert: 16.12.2018, 10:12

Re: Stromzähler mit HomeMatic auswerten

Beitrag von Kelthizar » 05.01.2019, 06:47

Hallo,
Respekt für die Wahnsinns Anleitungen... :!: Echt toll gemacht da steckt ein Haufen Arbeit drin... :!:
Genau wie du beschrieben hast, möchte ich auch die Werte für den Verbrauch der letzten Stunde, der letzten 24 Stunden, der letzten 7 Tage und der letzten Monate mit aufnehmen. Ich habe allerdings einen smappee Energiemonitor und mir die Messwerte in meinen iobroker getrieben. Das sieht dann so aus: viewtopic.php?f=43&t=25266&p=482092&hil ... ee#p482092
Jetzt habe ich aber keine Ahnung, wie ich diese Werte in die Ccu3 bekomme und umrechne. Kannst du mir da vielleicht helfen?
Vielen Dank.

Monsterberti
Beiträge: 35
Registriert: 16.07.2018, 13:08

Re: Stromzähler mit HomeMatic auswerten

Beitrag von Monsterberti » 17.03.2019, 20:40

Könnte das jemand für Raspberrymatic 3.43...... anpassen ? Ich bin leider kein Coder und kenn mi da ned aus
Bei mir kommt das hier:

Code: Alles auswählen

Error 1 at row 17 col 34 near ^; aC.State()) {
    zR.State(zR.State() + 838.8607);
    }
aC.State(oE.State());
Parse following code failed:
object oP = dom.GetObject("BidCos-RF.xxxxxx:1.POWER");
object oE = dom.GetObject("BidCos-RF.xxxxxx:1.ENERGY_COUNTER");
var aC = dom.GetObject("Strom ENERGY_COUNTER");
var zR = dom.GetObject("Strom Referenz Zaehlerstand");
var zA = dom.GetObject("Strom Zaehlerstand");
var aA = dom.GetObject("Strom Leistungsaufnahme aktuell");
var vLz = dom.GetObject("Strom Referenz Verbrauch seit letzter Ablesung");
var vLg = dom.GetObject("Strom Verbrauch seit letzter Ablesung");
var vTz = dom.GetObject("Strom Referenz Verbrauch heute");
var vTg = dom.GetObject("Strom Verbrauch heute");
var vWz = dom.GetObject("Strom Referenz Verbrauch laufende Woche");
var vWg = dom.GetObject("Strom Verbrauch laufende Woche");
var vMz = dom.GetObject("Strom Referenz Verbrauch laufender Monat");
var vMg = dom.GetObject("Strom Verbrauch laufender Monat");
var vJz = dom.GetObject("Strom Referenz Verbrauch laufendes Kalenderjahr");
var vJg = dom.GetObject("Strom Verbrauch laufendes Kalenderjahr");
    if ((oE.State() + 0.001) &lt; aC.State()) {
    zR.State(zR.State() + 838.8607);
    }
aC.State(oE.State());
zA.State(zR.State() + (oE.State()/1000));
aA.State(oP.State());
vLg.State(zA.State() - vLz.State());
vTg.State(zA.State() - vTz.State());
vWg.State(zA.State() - vWz.State());
vMg.State(zA.State() - vMz.State());
vJg.State(zA.State() - vJz.State());

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“