NEWS
SMA Energy Meter in Echtzeit auslesen
-
Hallo Werte Gemeinde,
hier kommt von mir ein Node-Red-Flow für den Energy Meter. Dieser empfängt und übergibt die Daten an die Homematic CCU2.
[{"id":"92bd2097.3853a8","type":"udp in","name":"SMA Energy Meter","iface":"","port":"9522","ipv":"udp4","multicast":"true","group":"239.12.255.254","datatype":"buffer","x":92.88333129882812,"y":305.8833312988281,"z":"851687cc.dd6d58","wires":[["66eba2d2.54f614"]]},{"id":"66eba2d2.54f614","type":"function","name":"eMeter auslesen","func":"// Script von Marco Jäger\n// Aktueller Verbrauch\nvar eMeter = msg.payload;\nvar AktVerbrauch = {};\nmsg = {};\nvar deco = eMeter.toString('hex');\nAktVerbrauch=deco.substr(64,8);\nAktVerbrauch=parseInt(AktVerbrauch,16)/10;\nmsg.payload = AktVerbrauch;\n// Gesamtverbrauch\nvar GesVerbrauch = {};\nmsg2 = {};\nGesVerbrauch=deco.substr(80,16);\nGesVerbrauch=parseInt(GesVerbrauch,16)/3600000;\nmsg2.payload = GesVerbrauch;\n// Aktuelle Einspeisung\nvar AktEin = {};\nmsg3 = {};\nAktEin=deco.substr(104,8);\nAktEin=parseInt(AktEin,16)/10;\nmsg3.payload = AktEin;\n// Gesamt Einspeisung\nvar GesEin = {};\nmsg4 = {};\nGesEin=deco.substr(120,16);\nGesEin=parseInt(GesEin,16)/3600000;\nmsg4.payload = GesEin;\nreturn [msg,msg2,msg3,msg4]","outputs":"4","noerr":0,"x":319.8833312988281,"y":306.8833312988281,"z":"851687cc.dd6d58","wires":[["83a55ab8.2d3c8"],["2686c4be.822e94"],["276e6767.d6d4e"],["902fe131.3a4cc8"]]},{"id":"83a55ab8.2d3c8","type":"ioBroker out","name":"Aktueller Verbrauch","topic":"hm-rega.0.7456","ack":"true","autoCreate":"false","x":881.88330078125,"y":250.88333129882812,"z":"851687cc.dd6d58","wires":[]},{"id":"2686c4be.822e94","type":"ioBroker out","name":"Gesamtverbrauch","topic":"hm-rega.0.7457","ack":"true","autoCreate":"false","x":875.88330078125,"y":293.8833312988281,"z":"851687cc.dd6d58","wires":[]},{"id":"276e6767.d6d4e","type":"ioBroker out","name":"Aktuelle Einspeisung","topic":"hm-rega.0.7458","ack":"true","autoCreate":"false","x":886.88330078125,"y":338.8833312988281,"z":"851687cc.dd6d58","wires":[]},{"id":"902fe131.3a4cc8","type":"ioBroker out","name":"Gesamteinspeisung","topic":"hm-rega.0.7459","ack":"true","autoCreate":"false","x":883.88330078125,"y":384.8833312988281,"z":"851687cc.dd6d58","wires":[]}]
Viel Spaß.
-
Hallo,
Ich überlege auch mir eine sma enery meter zuzulegen.
Das Gerät sendet ja nur über broadcast die Detaildaten.
http://www.eb-systeme.de/?page_id=1240
Was müsste ich machen um das dann in iobroker zu bekommen:
-
umstellen der broadcast Adresse auf iobroker host
-
red node mit dem Script nehmen
Reicht das um auch die Details
Einspeisewerte, phasenverbrauchswerte…
Zu erhalten?
PS. Aktuell habe ich eine Erfassung über s0 impulssignal.
Funktioniert auch über lan, allerdings unterscheidet das Gerät nicht zwischen
Einspeisung und Verbrauch, da es nur eine Summe liefert...
Auch phasenlast ist natürlich nicht sichtbar.
http://www.wasnlos.ch/wasnlos/2013/12/2 … -erhalten/
Gruß
Thomas
-
-
Hallo,
du brauchst garnichts mit dem Energy-Meter machen. Broadcast heißt, er sendet ins ganze Netzwerk. Du greifst mit dem NodeRed den Broadcast auf. Möchtest du einen SMA Wechselrichter irgendwann kaufen?
Gruß Marco
-
Hallo,
Danke für die Info.
Den sma Wechselrichter habe ich schon…
Gesendet von iPhone mit Tapatalk
-
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
-
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