NEWS
Adapter um elektrische Arbeit zu messen
-
moin moin,
ich habe hier ein so ein Sct013-030 Zangenwandler an einem Wemos D1, der liefert momentan jeder Sekunde eine Wattzahl. (ungefähr mit einem wattmeter verglichen)
Gibt es einen Adapter der solche Werte aufnehmen und in elektrische Arbeit umrechnen kann?
-
@stevensen sagte in Adapter um elektrische Arbeit zu messen:
Gibt es einen Adapter der solche Werte aufnehmen und in elektrische Arbeit umrechnen kann?
Sourceanalytics !?
-
- Bedient der WeMOS MQTT? -> MQTT Adapter
- Wemos selbst programmiert -> simpleApi Adapter
-
@stevensen sagte: in elektrische Arbeit umrechnen kann?
Die Integration über die Zeit kann auch ein kleines Skript erledigen.
-
@klassisch
Ich bin eher Anfänger in iobroker, und habe den Wemos D1 selbstprogrammiert und per MQTT eingebunden.Die Frage ist jetzt wie ich es mache.
Jetzt kommt jede Sekunde die aktuelle Leistung eines Stromsensors.
Ich dachte es gibt vielleicht schom einen fertigen "Powermeter" Adapter der die Werte über die Zeit integriert, auch hinsichtlich 3 Phasen.
Ich fände es auch gut wenn er nicht so viel Traffic macht.
-
@stevensen sagte in Adapter um elektrische Arbeit zu messen:
es gibt vielleicht schom einen fertigen "Powermeter" Adapter der die Werte über die Zeit integriert
also doch!
Dann ist der Sensor schon über MQTT eingebunden und die Werte müssen ur noch mit Sourceanalytics integriert und kumuliert werden.
-
@homoran
Sorry hatte dich nicht erwähnt.
an alle
Vielen Dank für die Antworten bisher.SourceAnalytix hatte ich gesucht und nicht gefunden.
Dann sollte man die repositories auf Beta umschalten. Nur das Umschalten hatte ich gemacht und dann ist mein Iobroker nicht mehr gestartet.
Gibt es eine stabile Version davon, und wenn ja wie kann ich die instaliieren? -
@stevensen sagte in Adapter um elektrische Arbeit zu messen:
@klassisch
Ich bin eher Anfänger in iobroker,das gibt sich. Da kommt man schnell rein, wenn man schon WeMos programmieren kann. In ioBroker programmiert man in javascript. Eine hilfreiche Einführung, gerade auch was das einlesen und Ausgeben von Datenpunkten betrifft: https://www.iobroker.net/docu/index-43.htm?page_id=5385&lang=de
Ansonsten ist selfhtml eine gute Quelle für allgemeine Javascript Fragen.
Viele verwenden Blockly, ein graphische UI.und habe den Wemos D1 selbstprogrammiert und per MQTT eingebunden.
Das klingt doch gut. Die Daten sind also im ioBroker im Datenpunktverzeichnis von MQTT
Die Frage ist jetzt wie ich es mache.
Ich mache das prinzilell so
Delta E = (neuerLeistungswert + alterLeistungswert) / (2*(neuerZeitstempel - alterZeitstempel))
Also Mittelwert der letzten beiden Leistungswerte / Delta tGesamtenergie = Gesamtenergie + Delta E
Jetzt kommt jede Sekunde die aktuelle Leistung eines Stromsensors.
Ja, wenn das WLAN und der ioBroker Rechner das verkraften, ist das kein Problem, Ich habe etliche solcher Messungen im Sekundentakt
Ich dachte es gibt vielleicht schom einen fertigen "Powermeter" Adapter der die Werte über die Zeit integriert, auch hinsichtlich 3 Phasen.
@Homoran verweist auf sourceanalytics Adapter. Ich weiß aber nicht, ob der Leistung in Energie integriert. Der Adapter kam für mich zu spät, da war ich mit diesen Themen schon durch
Ich fände es auch gut wenn er nicht so viel Traffic macht.
Dann kannst Du ja die Integration der Leistung in die Energie in den WeMos verlegen und von dort z.B. jede Minute einen Wert an den ioBroker schicken.
-
@klassisch
Ich probiers mal in blockly.
Aber wie machen es die anderen Adapter so. Es gibt ja so Stromzähler die nach soundso vielen Watt/s oder Watt/min nur ein Puls geben. die man dann zählt und addiert und nach ner Stunde schreibt man das in einen Datenpunkt und das addiert man dann auch bis zum Ende des Tages? -
@stevensen sagte in Adapter um elektrische Arbeit zu messen:
Ich probiers mal in blockly.
Viel Erfolg! Für einen C-Programmierer läge JScript wohl näher
Aber wie machen es die anderen Adapter so.
Sehr allgemeine Frage, die ich so nicht beantworten kann
Es gibt ja so Stromzähler die nach soundso vielen Watt/s oder Watt/min nur ein Puls geben.
Nicht ganz, die geben nach x Ws (nicht W/s) einen Impuls. Das nennt sich S0-Schnittstelle. Jeder Impuls sagt, daß eine bestimmte Energiemenge gezählt wurde. Die Leistung wurde also schon differenziert.
Hatte ich auch schon in Betrieb:
- Mit ESPEasy (oder ähnlichem) Habe ich die Impulse summiert ("Integer")
- Diese Impuls-Summe jede Minute an den ioBroker übertragen
- Auf dem ioBroker überprüft, ob der ESP einen Reset hatte und die Gesamtenergie berechnet. Bei Bedarf wird noch differenziert und so die Leistung berechnet.
Keine Ahnung, ob es dazu mittlerweile einen Adapter gibt. Als ich das implementiert habe, hatte ich keinen gefunden. Ist aber in JS auch schnell gemacht.
-
@homoran sagte: mit Sourceanalytics integriert und kumuliert werden.
Gerade getestet: Wenn man die Integration W in kWh in SA nutzt, indem man als Einheit W auswählt, muss alles mit 0 beginnen, denn man kann keinen aktuellen Zählerstand (Anfangswert) eingeben.
-
@paul53 sagte in Adapter um elektrische Arbeit zu messen:
denn man kann keinen aktuellen Zählerstand (Anfangswert) eingeben.
Schade. Das kann selbst mein selbsgefrickeltes S0-Programm bzw. Wasseruhren-Programm. Wenn der Energiewert vom Admin (also user) verändert wird, dann wird auch ein neuer Energie-Offsetwert berechnet.
Aber man könnte sowas natürlich als Skript mit einbauen und dann SA zur Zwischenrechnung nutzen. -
@klassisch sagte: als Skript mit einbauen und dann SA zur Zwischenrechnung nutzen.
Ja, so würde ich es auch machen. Zur Ermittlung von Periodenwerten ist SA gut geeignet.
-
@klassisch sagte: Für einen C-Programmierer läge JScript wohl näher
Das denke ich auch.
const idPower = '...'; // in W const idEnergy = '0_userdata.0.Elektro.Gesamt.Energie'; // Zählerstand in kWh var energy = getState(idEnergy).val; on(idPower, function(dp) { energy += dp.oldState.val * (dp.state.lc - dp.oldState.lc) / 3600000000; setState(idEnergy, Math.round(energy * 100) / 100, true); });
Vor Skriptstart den aktuellen Zählerstand manuell eintragen.
-
@paul53 Ja, so ähnlich sieht es bei mir auch aus. Allerdings operiere ich mit .ts statt .lc und überspringe nach Skriptstart die erste Berechnung weil ich nicht weiß, wie die oldStates befüllt sind.
Bringt einen Fehler, aber die PV Anlage wirft fast sekündlich einen neuen Wert ab.
Und ich nutze die Mittelwertsumme. Macht aber wahrscheinlich keinen nennenswerten Unterschied. -
@klassisch sagte: nicht weiß, wie die oldStates befüllt sind.
"oldState" ist beim ersten Trigger mit dem Zustand befüllt, der bei Skriptstart in "state" enthalten ist.
Beim Trigger auf Wertänderung wird der Wert von "oldState" gerade verlassen und der bisherige Wert lag für die Dauer von "dp.state.lc - dp.oldState.lc" an. -
@paul53 Vielen Dank! Da ich die Datenpunkte initial beim Skriptstart einlese, könnte ich also schon vom ersten Trigger an rechnen und müßte nicht die erste Messung verwerfen.
-
@klassisch sagte: müßte nicht die erste Messung verwerfen.
Die erste Messung muss nicht verworfen werden.
-
@paul53 sagte:
denn man kann keinen aktuellen Zählerstand (Anfangswert) eingeben.
sicher?
ich meine einfach in der Vorperiode den initialen Zählerstand eingegeben zu haben. -
@homoran sagte: sicher?
Nein. Ich habe keine Möglichkeit zur Eingabe gefunden. Versuchsweises Eintragen in "Cumulative Reading" wurde wieder überschrieben.