NEWS
[Vorlage] Stromverbrauch protokollieren - (etwas optimiert)
-
Version 1.1.0 ist nun online:
https://github.com/hdering/homematic_st … okollieren
1.1.0 (2018-03-12)
-
(hdering) Arbeitspreis + Grundpreis werden nicht mehr über das Skript gesetzt.
-
(hdering) Neuer Arbeitspreis + Grundpreis können innerhalb des Jahres angegeben werden.
-
(hdering) Geräte können ihren eigenen Strompreis haben.
-
(hdering) Geräte mit eigenem Strompreis haben ebenfalls die Funktion Arbeitspreis + Grundpreis innerhalb des Jahres zu ändern.
-
(hdering) Eigene Datenpunkte angeben
-
(hdering) Fehler in Funktion entferneDatenpunkt behoben
-
-
Mach mal Screenshots von den Objekten in ioBroker. Am besten die ganze Baumstruktur aufklappen, damit man sieht, welchen Wert man mitloggen muss. `
Danke für die Rückmeldung,
ich hoffe damit kannst du Arbeiten
TP-Link HS110:
HS110.PNG
Sonoff POW:
HS110.PNG
Gruß Christian `
Version 1.1.0 ist nun online:
https://github.com/hdering/homematic_st … okollieren
1.1.0 (2018-03-12)
-
(hdering) Arbeitspreis + Grundpreis werden nicht mehr über das Skript gesetzt.
-
(hdering) Neuer Arbeitspreis + Grundpreis können innerhalb des Jahres angegeben werden.
-
(hdering) Geräte können ihren eigenen Strompreis haben.
-
(hdering) Geräte mit eigenem Strompreis haben ebenfalls die Funktion Arbeitspreis + Grundpreis innerhalb des Jahres zu ändern.
-
(hdering) Eigene Datenpunkte angeben
-
(hdering) Fehler in Funktion entferneDatenpunkt behoben
-
-
ups, das ist im falschen Fred gelandet.
Jo mit der Angabe tuts das Script.
Nun etwas anderes. Das bezieht sich ja alles auf HM Produkte.
Das brauch ich in diesem Script nicht.
Kann man nicht am Anfang des Scriptes einen Datenpunkt angeben der Ausgewertet werden soll?
Einen Zählerstand, oder ein HM Fremdes Gerät.
Das wäre mir lieber
Gruß Andreas `
Version 1.1.0 ist nun online:
https://github.com/hdering/homematic_st … okollieren
1.1.0 (2018-03-12)
-
(hdering) Arbeitspreis + Grundpreis werden nicht mehr über das Skript gesetzt.
-
(hdering) Neuer Arbeitspreis + Grundpreis können innerhalb des Jahres angegeben werden.
-
(hdering) Geräte können ihren eigenen Strompreis haben.
-
(hdering) Geräte mit eigenem Strompreis haben ebenfalls die Funktion Arbeitspreis + Grundpreis innerhalb des Jahres zu ändern.
-
(hdering) Eigene Datenpunkte angeben
-
(hdering) Fehler in Funktion entferneDatenpunkt behoben
-
-
Yeah, das muss ich heute Abend mal testen;-)
Besten Dank für deine Bemühungen;-)
Gruß
-
Top
habs gleich mal eingebaut. Jetzt gehts ans Testen.
Bist ja wirklich fix
Besten Dank !!!
Gruß Andreas
-
****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