NEWS
[Vorlage] Stromverbrauch protokollieren - (etwas optimiert)
-
****Hallo,
danke erst einmal dass Du Deine Arbeit teilst und hilfst.
Meine Datenpunkte bekomme ich aus einem Loxone Mini Server und KNX Datenpunkten. Ich habe ein Stromzählerstand in Dein Script eingesetzt, aber offensichtlich habe ich die notwendigen Einstellungen nicht verstanden. Würdest Du es mir bitte noch mal erläutern hier meine Ansatz:****
// debug logging
var logging = true;
// Aktivieren der History Instanz
var enable_history = true;
// history Instanz
var instance_history = 'history.0';
// Geräte können unterschiedliche Preise haben
var enable_unterschiedlichePreise = true;
// Speichern der Werte in zusätzlichen Objekten.
// Wenn 0, dann deaktiviert
var Tag_Anzahl_Werte_in_der_Vergangenheit = 7;
var Woche_Anzahl_Werte_in_der_Vergangenheit = 4;
var Monat_Anzahl_Werte_in_der_Vergangenheit = 12;
var Quartal_Anzahl_Werte_in_der_Vergangenheit = 4;
var Jahr_Anzahl_Werte_in_der_Vergangenheit = 2;
var instance = '0';
var instanz = 'javascript.' + instance + '.';
// Pfad innerhalb der Instanz
var pfad = 'Strom.';
// Diese Teile werden aus den Gerätenamen entfernt
var blacklist = [':1', ':2', ':3', ':4', ':5', ':6', ':7', ':8'];
var AnzahlKommastellenKosten = 2;
var AnzahlKommastellenVerbrauch = 3;
var AnzahlKommastellenZaehlerstand = 3;
var eigeneDatenpunkte = [
// Beispiel:
// ['Datenpunkt', 'Aliasname'],
[ 'loxone.0.114bea65-0309-2a96-ffff403fb0c34b9e.value', 'Allgemeinstrom' ],
// [ 'javascript.1.MeinePower', 'MeinSonoff' ],
// [ 'javascript.1.MeinePower2', 'Sonoff.MeinZweiterSonoff' ],
];
B: Kann ich auch einen Gasverbrauch damit loggen?
Mit besten Grüßen
-
Sieht soweit alles gut aus, könnte sein, dass er mit dem "-" nicht klar kommt.
Wie hast du den Datenpunkt eingetragen? Über den Kopierbutton unter Objekte bei ID? Vielleicht ist auch ein Fehler im Namen.
Für Gasverbrauch wäre das auch was, jedoch ist die Angabe in kWh.
Was ich mir wünschen würde, wäre für jeden Datenpunkt eine Einheit die man selbst bestimmt. Zusätzlich wäre noch ein Teiler erforderlich, da einige Sensoren nicht nur Wh ausgeben sonder auch kWh.
Dann wäre das Script perfekt für alle Energietypen.
Was bei mir noch auffällt. Gestern Abend habe ich das Script aktiviert, danach wurde um 12 nicht genullt, sondern weitergezählt.
Muss da noch was eingestellt werden??
Großen Dank für deine Bemühungen !!!
-
@Mac:****Hallo,
danke erst einmal dass Du Deine Arbeit teilst und hilfst.
Meine Datenpunkte bekomme ich aus einem Loxone Mini Server und KNX Datenpunkten. Ich habe ein Stromzählerstand in Dein Script eingesetzt, aber offensichtlich habe ich die notwendigen Einstellungen nicht verstanden. Würdest Du es mir bitte noch mal erläutern hier meine Ansatz:****
// debug logging
var logging = true;
// Aktivieren der History Instanz
var enable_history = true;
// history Instanz
var instance_history = 'history.0';
// Geräte können unterschiedliche Preise haben
var enable_unterschiedlichePreise = true;
// Speichern der Werte in zusätzlichen Objekten.
// Wenn 0, dann deaktiviert
var Tag_Anzahl_Werte_in_der_Vergangenheit = 7;
var Woche_Anzahl_Werte_in_der_Vergangenheit = 4;
var Monat_Anzahl_Werte_in_der_Vergangenheit = 12;
var Quartal_Anzahl_Werte_in_der_Vergangenheit = 4;
var Jahr_Anzahl_Werte_in_der_Vergangenheit = 2;
var instance = '0';
var instanz = 'javascript.' + instance + '.';
// Pfad innerhalb der Instanz
var pfad = 'Strom.';
// Diese Teile werden aus den Gerätenamen entfernt
var blacklist = [':1', ':2', ':3', ':4', ':5', ':6', ':7', ':8'];
var AnzahlKommastellenKosten = 2;
var AnzahlKommastellenVerbrauch = 3;
var AnzahlKommastellenZaehlerstand = 3;
var eigeneDatenpunkte = [
// Beispiel:
// ['Datenpunkt', 'Aliasname'],
[ 'loxone.0.114bea65-0309-2a96-ffff403fb0c34b9e.value', 'Allgemeinstrom' ],
// [ 'javascript.1.MeinePower', 'MeinSonoff' ],
// [ 'javascript.1.MeinePower2', 'Sonoff.MeinZweiterSonoff' ],
];
B: Kann ich auch einen Gasverbrauch damit loggen?
Mit besten Grüßen `
hi Mac,
ich habe mal den Datenpunkt "loxone.0.114bea65-0309-2a96-ffff403fb0c34b9e.value" in meinem Testskript eingebaut. Er meckert mal nicht.
Logging ist aktiviert -> gut.
Was sagt den die Ausgabe? Irgendeine Ausgabe müsste ja kommen.
Da du den Alias "Allgemeinstrom" angegeben hast, sollte in deiner javascript Instanz in .Strom das Verzeichnis .Allgemeinstrom erstellt werden. Kannst du das bestätigen?
Zum Gasverbrauch schreib ich nochmal.
-
@ple:Für Gasverbrauch wäre das auch was, jedoch ist die Angabe in kWh.
Was ich mir wünschen würde, wäre für jeden Datenpunkt eine Einheit die man selbst bestimmt. Zusätzlich wäre noch ein Teiler erforderlich, da einige Sensoren nicht nur Wh ausgeben sonder auch kWh.
Dann wäre das Script perfekt für alle Energietypen. `
für die eigenenDatenpunkte ergänze ich noch um ein Feld für Gasverbrauch.
@ple:Was bei mir noch auffällt. Gestern Abend habe ich das Script aktiviert, danach wurde um 12 nicht genullt, sondern weitergezählt.
Muss da noch was eingestellt werden?? `
Existieren bei den Objekten beim jeweiligen Stromzähler ein Ordner config? und dort Tag, Woche, Monat…usw?
-
Das ist ja toll, eine so schnelle Antwort, danke.
Ja es sind Ordner und Datensätze erzeugt worden, ich kann dort aber keine Werte eintragen:
-
@Mac:Das ist ja toll, eine so schnelle Antwort, danke.
Ja es sind Ordner und Datensätze erzeugt worden, ich kann dort aber keine Werte eintragen:
Bildschirmfoto 2018-03-13 um 21.50.57.png `
Das Skript sollte eigentlich melden, dass der Arbeitspreis auf 0 steht und somit keine Berechnungen durchgeführt werden können und somit auch abbricht.
Siehst du diese Meldung?
Kannst du den Arbeitspreis nicht editieren? Rechts auf die 0 klicken und dann deinen aktuellen Arbeitspreis eingeben, z.B. 0.26
-
Hallo, es war meine Dusseligkeit ein Komma statt des Punktes zu verwenden, jetzt klappt das Einsetzen der beiden Preise.
Zu Deiner Frage, nein, es ist keine Meldung erschienen, wo hätte ich die denn sehen müssen?
Wenn es verschiedene Punkte sind wie erkenne ich den deren Zuordnung? Ich habe jetzt zwei Punkte zusätzlich gesetzt, es erscheint aber noch kein weiterer Ordner?
Erscheinen die Speicherwerte erst wenn ein Verbrauch stattfand?
Wird auch der eigentliche Verbrauch in kWh gespeichert?
Kann ich mehr als drei Punkte einsetzen?
Wird man die Preise von der Vis aus editieren können?
Danke Dir noch mal für die Hilfe.
-
Eben sehe ich noch eine Menge Fehlermeldungen in Gelb.
-
@Mac:Eben sehe ich noch eine Menge Fehlermeldungen in Gelb.
Bildschirmfoto 2018-03-14 um 08.05.24.png `
Mit den Meldungen kann ich im Moment nicht viel Anfang.
Bitte mal das Script stoppen und wieder starten.
-
Hallo Dering im Script Zeile 765 bis 771 ist ein Fehler
if(typeof geraet === "undefined") {
// Default Arbeitspreis ändern
_Datum = instanz + pfad + '.Preis.neu.Datum';
_PreisaenderungDurchgefuehrt = instanz + pfad + '.Preis.neu.PreisaenderungDurchgefuehrt';
_Arbeitspreis = instanz + pfad + '.Preis.aktuell.Arbeitspreis';
_Grundpreis = instanz + pfad + '.Preis.aktuell.Grundpreis';
_ArbeitspreisNeu = instanz + pfad + '.Preis.neu.Arbeitspreis';
_GrundpreisNeu = instanz + pfad + '.Preis.neu.Grundpreis';
Die Punkte vor Preis müssen weg da bei instanz + pfad schon ein Punkt am Ende Ist
Gruß Stephan
-
Das Script habe ich neu gestartet, es kommt jetzt keine Fehlermeldung mehr, aber der mittlere Wert > Gesamtstrom EK wurde nicht als Ordner angelegt.
Werden die Werte erst bei dem Tageswechsel erzeugt? Gilt der eingegebene Preis dann für alle Meßpunkte?
So sieht es ausgeklappt aus:
-
Hallo Dering im Script Zeile 765 bis 771 ist ein Fehler
if(typeof geraet === "undefined") {
// Default Arbeitspreis ändern
_Datum = instanz + pfad + '.Preis.neu.Datum';
_PreisaenderungDurchgefuehrt = instanz + pfad + '.Preis.neu.PreisaenderungDurchgefuehrt';
_Arbeitspreis = instanz + pfad + '.Preis.aktuell.Arbeitspreis';
_Grundpreis = instanz + pfad + '.Preis.aktuell.Grundpreis';
_ArbeitspreisNeu = instanz + pfad + '.Preis.neu.Arbeitspreis';
_GrundpreisNeu = instanz + pfad + '.Preis.neu.Grundpreis';
Die Punkte vor Preis müssen weg da bei instanz + pfad schon ein Punkt am Ende Ist
Gruß Stephan `
Hi Stephan,
vielen Dank für den Hinweis. Hab ich schon gemerkt und gefixt. Ist in der nächsten Version drin.
-
@Mac:Zu Deiner Frage, nein, es ist keine Meldung erschienen, wo hätte ich die denn sehen müssen? `
Wenn kein Arbeitspreis angegeben wird, erhält man in der Log einen Fehler oder im Bereich javascript wenn man das Skript selektiert hat.
@Mac:Wenn es verschiedene Punkte sind wie erkenne ich den deren Zuordnung? Ich habe jetzt zwei Punkte zusätzlich gesetzt, es erscheint aber noch kein weiterer Ordner? `
Anhand dem Aliasnamen den du vergibst. Die Ordner werden erst erzeugt, wenn der erste Wert reinkommt.
@Mac:Erscheinen die Speicherwerte erst wenn ein Verbrauch stattfand?
Wird auch der eigentliche Verbrauch in kWh gespeichert?
Kann ich mehr als drei Punkte einsetzen?
Wird man die Preise von der Vis aus editieren können? `
Richtig, die Verzeichnisstruktur wird erstellt erstellt, wenn sich der Wert beim Verbrauch ändert.
Der eigentliche Verbrauch wird z.B. bei Homematic Geräten in Wh angegeben (kumulierte Wert). Die anderen Werte speichere ich dann in kWh ab. So ist es auch einfacher zu lesen.
Du meinst mit Punkte Datenpunkte? Ja, soviele du willst bzw. soviele dein ioBroker verträgt :).
Und der Vollständigkeit halber soviele Punket in den Aliasnamen wie du willst.
Wenn du Punkte eingibst, werden Unterordner erstellt. Schon aufgefallen?
Du kannst die Preise via VIS editieren. du musst im VIS nur das Objekt entsprechend angeben.
-
@Mac:Das Script habe ich neu gestartet, es kommt jetzt keine Fehlermeldung mehr, aber der mittlere Wert > Gesamtstrom EK wurde nicht als Ordner angelegt.
Werden die Werte erst bei dem Tageswechsel erzeugt? `
Die Verzeichnisse mit Objekten werden erzeugt, sobald ein neuer Wert gemeldet wird. Außer irgendwo ist ein Fehler und das Skript bricht ab…dann müsste man im Log schauen, ob man dazu etwas sieht.
@Mac:Gilt der eingegebene Preis dann für alle Meßpunkte? `
der eingegebene Preis hier:
Strom.Preis.aktuell.Arbeitspreis
gilt für alle Geräte (Standardwert).
In jedem Ordner eines Gerätes existiert aber auch noch ein "eigenerPreis" Ordner (wenn die Variable enable_unterschiedlichePreise = true ist). Sobald du dort einen anderen Preis nimmst, wird dieser zur Berechnung von Verbrauch und Kosten genommen.
-
n jedem Ordner eines Gerätes existiert aber auch noch ein "eigenerPreis" Ordner (wenn die Variable enable_unterschiedlichePreise = true ist). Sobald du dort einen anderen Preis nimmst, wird dieser zur Berechnung von Verbrauch und Kosten genommen. `
Was genau Passiert denn mit dem Grundpreis? wird der bei jedem Gerät drauf gerechnet? Die Doku verstehe ich zu diesem Punkt nicht.
Gruß Christian
-
n jedem Ordner eines Gerätes existiert aber auch noch ein "eigenerPreis" Ordner (wenn die Variable enable_unterschiedlichePreise = true ist). Sobald du dort einen anderen Preis nimmst, wird dieser zur Berechnung von Verbrauch und Kosten genommen. `
Was genau Passiert denn mit dem Grundpreis? wird der bei jedem Gerät drauf gerechnet? Die Doku verstehe ich zu diesem Punkt nicht.
Gruß Christian `
Den kannst du angeben, aber es wird noch nichts damit gemacht. Steht aber auf der TODO Liste :).
Ich weiß aber noch nicht so recht, wie man den einreichen soll. Soll er in der Jahres, Monats, Ansicht mit dabei sein?
Wenn er im Jahres-, Quartals-, Monatsverbrauch dabei sein sollen, da müsste man ja fürs
Jahr = Grundpreis * 12 + Verbrauch bis dato
Quartal = Grundpreis * die Quartale die schon vorbei sind + Verbrauch bis dato
Monat = Grundpreis * die Monate die schon vorbei sind + Verbrauch bis dato
Wenn du Ideen hast, dann her damit.
-
Version 1.1.1 ist nun online:
https://github.com/hdering/homematic_st … okollieren
1.1.1 (2018-03-14)
(hdering) Fehler beim Prüfen einer Preisänderung
-
Ich bräuchte mal Screenshots von Gasverbrauchsmessgeräten.
Bei Strom ist der aktuelle Verbrauch ja Wh und die gespeicherten Werte werden in kWh angegeben/gespeichert.
Wie ist es bei Gas? Ist es immer m3? Gibt es m3 auch in kilo???
-
Danke erst einmal für die Erläuterungen, ich warte erst einmal ein paar Tage ab und sehe welche Werte erzeugt werden. Komischerweise kann ich bei dem Punkt VK keinen eigenen Wert einsetzen, die zahlen werden nicht angenommen, aber vielleicht wird sich das ja noch ändern wenn etwas produziert wird, im Moment is das Wetter so schlecht, dass die PV keine Verkäufe produziert.
Beim Gas werden m3 gemessen, diese werden dann umgerechnet in kWh, also Volumen x Zustandszahl x Brennwert. Zustandszhahl und Brennwert müsste man also eingeben.
Ich hänge mal eine Berechnung des Lieferanten an.
Es wäre toll wenn Du diese Möglichkeit auch noch schaffst.
-
Jetzt habe ich einen Tageswechsel abgewartet, leider sind keinerlei Kosten gespeichert. Muss ich bei Config noch etwas ändern? Was mache ich falsch?