NEWS
SMA Energy Meter in Echtzeit auslesen
-
Die Daten vom den beiden Wechselrichter hole ich mir schon per Script [emoji4]
Geht recht gut direkt von den Sunny webbox …
Gesendet von iPad mit Tapatalk
-
Die Daten ist aber die Einspeisung, mit dem sma Energy Meter könnte ich aber auch Bezug + Einspeisung am eon Netz ermitteln….
Gesendet von iPad mit Tapatalk
-
Guten Morgen,
der Wechselrichter holt sich sowieso die Daten vom EnergyMeter. Ich habe vor der ModBus-Lösung die Daten auch separat geholt. Kann ja auch jeder machen wir er es mag.
Ich mag es immer am liebsten komplett.
Gruß Marco
-
Hallo
das ist ja toll leider sehe ich die Werte im IoBroker doch leider erfolgt kein Eintrag in der CCU2. Welche Systemvariable hast du genommen?
HM-REGA liest alle Daten aus der CCU2 aus doch anscheinend werden keine gesendet.
-
Ich möchte mir auch gerne einen SMA Energie Meter kaufen. Was kostet dieser? Finde keine Preise? Wie genau ist diese Erfassung?
-
Hallo,
kann der Wechselrichter ModBus? Dann könntest du dir über den ModBus Adapter alle Daten ziehen. Bei mir kommuniziert der EnergyMeter mit dem Wechselrichter. Dadurch habe ich mir das mit dem NodeRed gespart.
Gruß Marco `
Was meinst du mit Wechselrichter? Ich möchte gerne mein Stromverbrauch mit mit Bus abgreifen z.B. Modbus weiß aber nicht was ich dazu alles brauche. -
Hi Wobo,
ich habe via Node-Red die Werte von Iobroker mit den Werten in der CCU2 verknüpft.
Siehe Bild:
Hallo Kirbsi,
https://www.google.de/#q=sma+energy+meter&tbm=shop
Das Teil hat eine Ethernet-Schnittstelle und sendet im Broadcast sekündlich die aktuellen Daten. Das NodeRed-Script zum abgreifen der Daten habe ich schonmal hier veröffentlicht.
Gruß Marco
-
Hi Marcolotti,
könntest du mir etwas helfen bei dem node red Thema.
Ich möchte ebenfalls die Daten meines Energy Meter 2.0 in iobroker bekommen. Eine Übergabe an die CCU bräuchte ich nicht unbedingt,
ich möchte nur die Werte in iobroker visualisieren.
Ich hatte aber bisher noch keinerlei Berührungspunkte mit node red und daher auch keine Ahnung wie ich dein Script oben nun verwenden muss, damit es läuft.
Ich habe den node red adapter in iobroker installiert und dann stehe ich auch schon an …
Muss ich etwas konfigurieren ? Wo muss ich dein Script reinkopieren ?
Was ist mit http Stammpfad gemeint ? Was mit zusätzliche NPM Module ?
Wenn ich den Reiter node-red.0 öffne, dann erscheint nur der weinende Smiley (keine Seite verfügbar)
Momentan siehts bei mir so aus:
Vielen Dank für deine Hilfe.
Beste Grüße
-
Hallo Qlink,
ich gehe mal davon aus, dass du bereits über Adapter Node-Red installiert hast. Der weinende Smilie kommt bei mir auch immer, wenn die Node-Red Instanz noch nicht fertig gestartet ist oder man mal die Reiter wechselt. Konfigurieren musst du da eigentlich nichts mehr.
Danach gehst du rechts auf das Menüsymbol -> Import -> Clipboard und kopierst das Script hinein.
Danach sollte sich alles aufbauen. Beim Doppelklick auf die blauen Felder z.B. Verbrauch kannst du festlegen, mit welchem Objekt du es verknüpfen willst. Kannst dir also auch selber welche anlegen unter Objekte und diese dann verknüpfen.
Danach bitte auf Deploy gehen und losgehts schon.
Gruß Marco
-
Hi Marcolotti,
vielen Dank für deine Hilfe.
Ich bekomme jetzt Werte in iobroker rein.
Seltsamerweise bleibt aber der Wert "aktuelle_Einspeisung" bei 0kW ? Woran kann das liegen ?
Ich hätte gerne auch noch den Wert Netzbezug von W in kW umgerechnet und idealerweise auf 2 Kommastellen gerundet.Ich hätte dafür ein Umrechnungsscript probiert zu schreiben, aber der Wert in iobroker bleibt bei 0.
Habe ich einen Fehler in meinem Script oder etwas vergessen ?Wie kann ich die Rundung auf 2 Kommastellen bewerkstelligen ?
Beste Grüße
-
Versuch mal
setState("idNetzbezugkW", ((Math.round(getState("idNetzbezug").val / 1000) * 100) / 100), true);
Gruß Marco
-
Hi Marco,
ich bekomme jetzt einen umgerechneten Wert in kW, aber die Rundung auf 2 Kommastellen funktioniert noch nicht.
Bei 3340W Verbrauch zeigt er mir nun 3kW an bei dem berechneten Wert. d.h. er rundet auf ganze Zahlen…
Hast du auch eine Idee warum ich bei deinem Script beim Wert aktuell Einspeisung keinen Wert vom Energy Meter erhalte ?
Vielen Dank für deine Hilfe.
Beste Grüße
-
Hi,
mit welchem Widget zeigst du den an? Also bei mir funktioniert diese Vorgehensweise.
Gruß Marco
-
Hi Marco,
in vis kann ich die Werte ja beliebig mit einem Multiplikator anzeigen lassen. Dafür bräuchte ich die Umrechnung auch nicht. Da klappt alles gut.
Das Umrechnungsskript bräuchte ich um in flot die Kurven vergleichbar mit einer einheitlichen y-Achse anzeigen zu können.
Ich glaub dass das Umrechnungsskript auf ganze Zahlen rundet und nicht auf 2 Kommastellen.
Kann es sein das hier noch etwas geändert werden muss ?
Funktioniert bei dir das Umrechnungsskript, so dass beim Ergebnis ein Wert mit 2 Kommastellen angezeigt wird?
var idNetzbezug = 'hm-rega.0.40900'; // Datenpunkt-ID vorhanden var idNetzbezugkW = 'javascript.0.Netzbezug.kW'; // Datenpunkt-ID für neuen DP Netzbezug in kW function calckW() { var Netzbezug = parseFloat(getState(idNetzbezug).val); setState(idNetzbezugkW, ((Math.round(getState(idNetzbezug).val / 1000) * 100) / 100), true); } on(idNetzbezug, calckW); // bei jeder Änderung von Netzbezug
-
Hallo Qlink,
daher wird der Wert ja erst mit 100 Multipliziert -> gerundet (er rundet nur auf ganze Zahlen) und danach durch 100 subtrahiert.
Ich habe bei mir nochmal nachgesehen, wie es Blockly macht:
Vorher musst du noch deine Umrechnung auf kW machen.
Math.ceil(100 * getState("javascript.0.PV_Anlage.StromkostenanzeigeMonat").val/1000) / 100
Für sowas ist Blockly wirklich wunderbar.
Gruß Marco
-
Hi marcolotti,
so funktionierts perfekt!
Vielen Dank für deine Hilfe
Beste Grüße
-
Ich möchte gerne per Blockly die Werte addieren zu einem Gesamtverbrauchswert.
Irgendwie klappts aber nicht …
Wo liegt der Fehler ?
-
Hallo,
Trigger: Falls WERT von Objekt Netzbezug.
mach mal aktualisiere "WERT" von Objekt Gesamtverbrauch.
Den Gesamtverbrauch (Hausverbrauch) ermittelst du aber anders. Anbei mal mein Blockly-Script.
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="A_|oG95s;SJyu.E{x%7V" x="-637" y="-587"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id=",XHVS?h[R1:AZAj~(]{I"><field name="oid">modbus.0.inputRegisters.30775_PVLeistung</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="qHHO|g6/TAQ.).Yo{lH?"><value name="IF0"><block type="logic_compare" id="ReyL(zZ-IFCB!(,SQ7e."><field name="OP">GT</field> <value name="A"><block type="get_value" id="8d,ucU}B{Mu_/WoqL*wW"><field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30865_Bezug</field></block></value> <value name="B"><block type="math_number" id="7gE)SC`pgjZ,OaJMKO@X"><field name="NUM">1</field></block></value></block></value> <statement name="DO0"><block type="update" id="gKGH45oZ.F#AW?GZDqUx"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_arithmetic" id="%%je1MKU.._nRf^9FUk7"><field name="OP">ADD</field> <value name="A"><shadow type="math_number" id="_y%]3cOycFhKAJnHhJi("><field name="NUM">1</field></shadow> <block type="get_value" id="bdETUtBo:uyyeb]WQBO-"><field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30865_Bezug</field></block></value> <value name="B"><shadow type="math_number" id="-Z[8!/-igUXos;(vJUVw"><field name="NUM">1</field></shadow> <block type="get_value" id="/.AZOS,oX]g-1|ppFf-q"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.Werte.PVLeistung</field></block></value></block></value></block></statement></block></statement> <next><block type="on_ext" id="+hCBHdKPoJ07auWNVqF]"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="*+mSamkO0_PDL=-{%cK7"><field name="oid">modbus.0.inputRegisters.30865_Bezug</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="0K4{*}3bY@,{E.kwU2iQ"><value name="IF0"><block type="logic_compare" id="ed)^9`y`u5M({wRJ0QK-"><field name="OP">LT</field> <value name="A"><block type="get_value" id="q60LaHAnF9zFFy*t)8kv"><field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30775_PVLeistung</field></block></value> <value name="B"><block type="math_number" id="g`gA;;Igq%#{~XX:lVXG"><field name="NUM">1</field></block></value></block></value> <statement name="DO0"><block type="update" id="Zwm;%=MetHz@Z[rTU^k*"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id="1K{jq}Q;uUh|#T1Fnml;"><field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30865_Bezug</field></block></value></block></statement></block></statement> <next><block type="on_ext" id=").9fLJ-=]~P)cBvbL@N8"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="K(p8q^h+TEg6`+Tz|zHd"><field name="oid">modbus.0.inputRegisters.30867_Einspeisung</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="aOwi+@J%Af2z`M]iUntU"><value name="IF0"><block type="logic_compare" id="HUpU+1WgogWAt~g::j1]"><field name="OP">GT</field> <value name="A"><block type="get_value" id="s!Ryj}gQ_Rbb2hT9FOqr"><field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30867_Einspeisung</field></block></value> <value name="B"><block type="math_number" id="`c{;cIl!vvFwx3#M85m."><field name="NUM">1</field></block></value></block></value> <statement name="DO0"><block type="update" id="8#B{9[vq+}.yjz4yt({;"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_arithmetic" id="6_p4XZ+.80LPnLU26+Qy"><field name="OP">MINUS</field> <value name="A"><shadow type="math_number" id="_y%]3cOycFhKAJnHhJi("><field name="NUM">1</field></shadow> <block type="get_value" id="/V5kC~bpl~iB)okjV~Y-"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.Werte.PVLeistung</field></block></value> <value name="B"><shadow type="math_number" id="-Z[8!/-igUXos;(vJUVw"><field name="NUM">1</field></shadow> <block type="get_value" id="R(!t|d+6)8LLtF,vqJrs"><field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.30867_Einspeisung</field></block></value></block></value></block></statement></block></statement> <next><block type="on_ext" id="?36x-AQU8nD[OmAgz[_]"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="tUm]PB6uk2%jJAb}2te:"><field name="oid">javascript.0.PV_Anlage.AktHausverbrauch</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="PxZ/oA[33q#/d~xL=!M{"><value name="IF0"><block type="logic_compare" id="oUy-3/+PJeC:uIB9JTkl"><field name="OP">GT</field> <value name="A"><block type="get_value" id="-EfAF.m7|8F2NN7sTPm6"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field></block></value> <value name="B"><block type="get_value" id="6tvlPvH7#`/c6*0)z}_g"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.MaxVerbrauchHeute</field></block></value></block></value> <statement name="DO0"><block type="update" id="7~kniq!7nBj?^0]Ibhk!"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.MaxVerbrauchHeute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id="KqDq?2tl*2wVnB!lu;8Z"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field></block></value></block></statement></block></statement> <next><block type="schedule" id="5BUMKb@ibWS7o?x2HzV+"><field name="SCHEDULE">59 59 23 * * *</field> <statement name="STATEMENT"><block type="update" id="}%Q^Ta92/;nMH7!^ct|e"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.MaxVerbrauchHeute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="HnO;1qG,Ylaj*A@P=c(-"><field name="NUM">0</field></block></value> <next><block type="update" id="|qy!pM2Uu~x:1Kreg)Oa"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.MaxPVHeute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="fxF.%(]-Eo/Q|RkyMhKA"><field name="NUM">0</field></block></value></block></next></block></statement> <next><block type="on_ext" id="n9_GDzS1NxQt2!RfN@Be"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="4;_,hSYl5TxrGbMP,[l}"><field name="oid">modbus.0.inputRegisters.30775_PVLeistung</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="^Q.6FAXh!F7|qs6Nz/+#"><value name="IF0"><block type="logic_compare" id="y?-W.IqVC)OMg~rZ]t:8"><field name="OP">GT</field> <value name="A"><block type="get_value" id="NJFvsM[F-qi;W=o`m.ly"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.Werte.PVLeistung</field></block></value> <value name="B"><block type="get_value" id="Jd`/x7z!1L_[%FltwK[S"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.MaxPVHeute</field></block></value></block></value> <statement name="DO0"><block type="update" id="*HHkx8OmN=E)HkaCdqLz"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.MaxPVHeute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id="l]/F%O}Yfn_nRj*I?@RD"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.Werte.PVLeistung</field></block></value></block></statement> <next><block type="controls_if" id="Of|KASl2L#md3Ja5=BtB"><value name="IF0"><block type="logic_compare" id="4CLR;Ws?UfX])eQ8^mw*"><field name="OP">GT</field> <value name="A"><block type="get_value" id="LG!0Q+G[j(NJ~z:T]cO1"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.Werte.PVLeistung</field></block></value> <value name="B"><block type="get_value" id="(7I?/+syvHG:S@XcH},C"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.MAXPVever</field></block></value></block></value> <statement name="DO0"><block type="update" id="CL,.4(Wj5Sm].!4y@?pm"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.MAXPVever</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id="._6z#.CayIYZT.7#c*VG"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.Werte.PVLeistung</field></block></value></block></statement></block></next></block></statement> <next><block type="on_ext" id="m2w.v~KBYw4MNQAZ%4e6"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="2^/i*jy?5F[n9W?N|j}j"><field name="oid">javascript.0.PV_Anlage.AktHausverbrauch</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="PSIuUZVF2K(,lk{P5b!N"><value name="IF0"><block type="logic_compare" id="Kl(Kt;=?F(Imszqzzi1u"><field name="OP">GT</field> <value name="A"><block type="get_value" id="aRM%{M?GRx0bPQAmdysW"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field></block></value> <value name="B"><block type="get_value" id="f!B5KEC)Kek]YHFH8RnY"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.MAXVerbrauchever</field></block></value></block></value> <statement name="DO0"><block type="update" id="(uh]J)8E9BWJ8HjyC=Hp"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.MAXVerbrauchever</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id=":AS43UBCU|d/)vy[`0F_"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field></block></value></block></statement> <next><block type="controls_if" id="%b8RpM92~YV2,QS5D?4~"><value name="IF0"><block type="logic_compare" id="NSjOvY#BB,KrdffsFBbU"><field name="OP">LT</field> <value name="A"><block type="math_arithmetic" id=",J.XLc7i2y1|mMQbNy/f"><field name="OP">ADD</field> <value name="A"><shadow type="math_number" id="NH32l;.J+J)|Wm@Au~0e"><field name="NUM">1</field></shadow> <block type="get_value" id="Eis/z}IaDz4qR/w?{GWl"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field></block></value> <value name="B"><shadow type="math_number" id="~URDq5C3v{k[VYcx7-I!"><field name="NUM">10</field></shadow></value></block></value> <value name="B"><block type="get_value" id="lW]UZDSjI7pOgV^?;GDA"><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.MinVerbrauchever</field></block></value></block></value> <statement name="DO0"><block type="update" id="nNr6_]Wghq-]NAkpi:^Q"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.PV_Anlage.MinVerbrauchever</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="get_value" id="rGwq^6qZiHx:!0T)5Jx("><field name="ATTR">val</field> <field name="OID">javascript.0.PV_Anlage.AktHausverbrauch</field></block></value></block></statement></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></xml>
Gruß Marco
-
Meinst du so:
Funktioniert leider trotzdem nicht
Wie kann ich dein Blockly in Textform importieren und wieder in Blocklys umwandeln ?
-
Siehe Bild.