NEWS
Test Adapter SourceAnalytix v0.2.x
-
@HeinrichB Das stimmt schon, die HS110 rechnet Tag und Monat. Möchte ich aber fürs Jahr die Zahlen, muss ich Blockly nutzen. Oder hast Du eine Lösung für den Jahresverbrauch?
-
@HeinrichB Da ich nun bemerkt habe, dass die Werte über SourceAnalytix nicht korrekt sind ( etwa 7 fach zu niedrig), habe ich mich doch mal an Blockly gesetzt.
Da ich mich im "Programmieren" nicht gut auskenne bin ich mal gespannt, ob am 31.12. die Werte korrekt in die Datenpunkte geschrieben werden
Leider sind die Werte auch unterschiedlich. Die HS110 ermittelt Tag und Monat, Virtualpowermeter die täglichen und den bisherigen Gesamtverbrauch ( wenn ich das richtig verstanden habe).
Bin aber weiterhin gespannt, wie Du die Werte nutzt.
-
@PatrickFro Hi, nein den habe ich nicht bzw. es stimmt, dann muss man den zusätzlich ermitteln. Könnte man bspw. über die SQL-Protokollierung machen, wobei ich nun noch nicht weiss, wie man da jeweils den Endwert des Tages ermittelt, da der Verbrauch ja summiert wird im Laufe des Tages
-
Erstmal müssen wir uns m.E. schon klar sein, dass Skripte wie SourceAnalytix und VirtualPowermeter den Verbrauch immer nur grob abschätzen können, wenn man keine anderen Daten als An/Aus hat.
Am Ende ist jede Vebrauchsermittlung immer eine Näherung; es hängt immer von der Größe der Zeitintervalle ab. Wenn die "deltaT" gegen Null konvergieren, dann konvergiert das Ergebnis gegen den "wahren" Wert.Zu Deinem Script: Das kann ich so nicht bewerten, aber mir fällt auf, dass in der Zeile mit der Umrechnung kW in kWh (wenn der Kommentar stimmt) keine Multiplikation stattfindet. Sowas macht erstmal stutzig; das mag alles richtig sein, aber auf den ersten Blick würde man eine erwarten
-
@PatrickFro sagte in Test Adapter SourceAnalytix v0.2.x:
@HeinrichB Da ich nun bemerkt habe, dass die Werte über SourceAnalytix nicht korrekt sind ( etwa 7 fach zu niedrig), habe ich mich doch mal an Blockly gesetzt.
da werst du de erste, was. wird genau nicht richtig ermittelt ?
Wen es um Berechnung W nach kWh geht, das ist. abhängig vom Intervall des senden der dosen
-
@Dutchman Meines Erachtens ist das eine ganz klassische Näherungslösung. Man hat de Zeitdifferenz und schätzt mit einer konstanten Wattzahl die kWh ab. Bei mir klappt es soweit mit einer Sonoff S20
-
@HeinrichB sagte in Test Adapter SourceAnalytix v0.2.x:
@Dutchman Meines Erachtens ist das eine ganz klassische Näherungslösung. Man hat de Zeitdifferenz und schätzt mit einer konstanten Wattzahl die kWh ab. Bei mir klappt es soweit mit einer Sonoff S20
SourcenAnalytix ratet nicht sondern Arbeitet mit echten werten da wird auf (wen sein muss) ms Bereich berechnet.
Ich nehme immer die Zeitdifferenz und rechne diese hoch auf Stunde, das kann nur abweichen wen die dose nicht richtig übermittelt.Siehe Formel im code :
// Get previous reading of W and its related timestammps const Prev_Reading = await this.getStateAsync(obj_id + ".Meter_Readings.Current_Reading_W"); this.log.debug("Previous_reading from state : " + JSON.stringify(Prev_Reading)); if (!Prev_Reading) return; // Get current calculated kWh value, if not present in memory read from states let Prev_calc_reading = 0; this.log.debug("W value from memory : " + JSON.stringify(w_values)); this.log.debug("W value from memory_2 : " + JSON.stringify(w_values.calc_reading)); if (w_values.calc_reading !== undefined && w_values.calc_reading !== null && (w_values.calc_reading[obj_id] !== undefined && w_values.calc_reading[obj_id] !== null)) { Prev_calc_reading = w_values.calc_reading[obj_id]; this.log.debug("Previous_calc_reading from memory : " + JSON.stringify(Prev_calc_reading)); // Calculation logic W to kWh calc_reading = Prev_calc_reading + (((reading.ts - Prev_Reading.ts) / 1000) * Prev_Reading.val / 3600000); // Update variable with new value for next calculation cyclus w_values.calc_reading[obj_id] = calc_reading; this.log.debug("New calculated reading : " + JSON.stringify(calc_reading)); this.log.debug("new W value from memory : " + JSON.stringify(w_values)); // Write values to state await this.setState(obj_root + ".Meter_Readings.Current_Reading", { val: calc_reading ,ack: true }); await this.setState(obj_root + ".Meter_Readings.Current_Reading_W", { val: reading.val ,ack: true });
https://github.com/iobroker-community-adapters/ioBroker.sourceanalytix/blob/master/main.js#L743-L765
Frage ist auch womit wird verglichen ob es richtig ist, stimmt. der Vergleichswert oder SA ?
-
@Dutchman ich bin der falsche Adressat Ich habe nur kommentiert
Ich sprach von einer Näherungslösung als ERGEBNIS, nicht über den Adapter. Man kann die kWh nur abschätzen, wenn man keine KONKRETEN Watt-Werte hat und diese sind immer eine konstante Annahme über ein Zeitintervall dt. Un je kleiner dt, desto genauer.
-
Hallo zusammen,
ich nutze den Adapter für alle Geräte, welche mir den Verbrauch in kWh als Datenpunkt z.V. stellen.
Wie sieht es aus, wenn nur die Leistung als Datenpunkt vorliegt?
Die Idee wäre jetzt, Mittels blockly aus history die gleichbleibende Leistung mit der Zeit aus dem Zeitstempel zu multiplizieren ( W x s = Ws —> kWh) und dann in Sourceanalytics weiter zu verarbeiten, um diese in VIS darzustellen.
Denke ich zu kompliziert und es gibt bereits ein Adapter hierfür? -
@onkel-ede hast du dir schonmal VirtualPowermeter angesehen?
Aber welche Sensoren bringen denn nur die Leistung in Watt und dann nicht den Verbrauch dazu? Ich kenne nur welche die beide oder keine.
In dem Fall nehm ich den Mittelwert aus einer Vergleichrechnung und multiplizier mit der Zeit, um den Verbrauch zu "schätzen" -
@HeinrichB
Meine Meross-WiFi-Steckdose z.B. liefert nur Watt und keinen Verbrauch dazu:
Virtualpowermeter habe ich mir angesehen. Hier wird von einer konstanten Leistung bzw. von einer prozentualen Abweichung (Dimmwert) ausgegangen, wenn ich dies richtig verstanden habe. -
@onkel-ede ok ich sehe. Aber wenn du die Watt hast, kannst du ja klassisch eine mathematische Näherungsrechnung machen. Genau wie du es oben geschrieben hast. Und je kleiner deine "Delta t" sind, je genauer
-
Dann mache ich mich mal an blockly zu schaffen.
Wenn ich den vorherigen Zeitstempel vom aktuellen Zeitstempel abziehe, welche Zeiteinheit bekomme ich da?
-
Hallo,
das mit dem Zeitstempel weiss ich nicht, da ich die frage selbst noch für mich offen habe. Da könntest Du mir auch einen Tip geben, wenn du es gelöst hast.
Du musst dir auch überlegen, welche Watt-Zahl du auf welche Zeitdifferenz ansetzt.
Du hast ja nur die Watt zu dem Zeitpunkt des Zeitstempels. Ich würde es linear auf die halbe Zeitdifferenz zum Stempel davor und danach ansetzen und die Wattzahl in den beiden halben Zeitdifferenzen als konstant dann annehmen.
Aber nur meine Idee -
@HeinrichB
Der history-Adapter ist so konfiguriert, dass nur geänderte Werte gespeichert werden.
Folglich kann ich davon ausgehen, dass die Leistung in Watt zwischen den beiden Zeitstempeln konstant ist.
Habe die errechneten Werte über Nacht mitgeloggt. 10 Watt Leistung (relativ konstanter Verbraucher) über 9 Stunden ergibt 0,09 kWh. Passt also rechnerisch. Jetzt summiere ich mir noch die Verbräuche in den Zeitabschnitten auf zu einem Zählerstand und kann diesen dann mit Sourceanalytics für Tag/Woche etc. auswerten. -
@onkel-ede ok
Dennoch würde ich immer im Kopf behalten dass du immer nur die Watt je Zeitpunkt hast.
Es ist ja kein kontinuierlicher Datenfluss sondern immer nur diskrete Werte. Aber deine Näherung klappt ja️ -
Hallo, ich wollte im neune Jahr anfangen meine Stromkosten über den SourceAnalytix zu analysieren.
Wiekann ich SourceAnalytix sagen das meine Zählerwert bei 2357.0000 kWh anfängt, jetzt nimmt er den ganzen Wert als anfangs Wert und somit habe ich jetzt schon eine Rechnung von 6000€
-
@GeorgS dann musst du als Startwert in jeden Punkt deinen Zählerstand eintragen.
-
@Homer-J Wo mache ich das?
-
@GeorgS in den Einstellungen.