Demnächst werde ich mein LBS dazu auf centos 7/PHP 7 heben... dann werde ich mich auch inhaltlich wieder damit beschäftigen und kann dir - hoffentlich - gute Antworten geben.
Ankündigung
Einklappen
Keine Ankündigung bisher.
SMA Energy Meter (SMA EM) auslesen per Multicast und Lieferung an edomi
Einklappen
X
-
Zitat von saegefisch Beitrag anzeigenDemnächst werde ich mein LBS dazu auf centos 7/PHP 7 heben... dann werde ich mich auch inhaltlich wieder damit beschäftigen und kann dir - hoffentlich - gute Antworten geben.
Kommentar
-
Zitat von saegefisch Beitrag anzeigenIch weiß, ich weiß...
aber meine Pumpen waren wichtiger... die Baustelle sollte am Kommenden WE abgeschlossen sein, dann geht in der Zeit danach weiter mit dem gesamten Thema Energieversorgung mit allem Drumherum, also Notstrom/Inselschaltung, PV, EnergieMeter, influxDB&grafana,...
Kommentar
-
Wenn du die letzten Tage im Forum mitgelesen hast, dann weist Du, was ich meine. Es geht um die stetige Überwachung von drainage-Pumpen mit vielfältigem Alarm bei unterschiedlichen Abweichungen.
Wenn nicht, dann lies es am besten nach (user-> letzte Beiträge) v.a. zum Thema neuer LBS Durchschnitt letzte x Werte... aber auch DWD rückwirkende Regenmengen und Grundwasser stand (JSON MassenDaten)...
Kommentar
-
Zitat von saegefisch Beitrag anzeigenWenn du die letzten Tage im Forum mitgelesen hast, dann weist Du, was ich meine. Es geht um die stetige Überwachung von drainage-Pumpen mit vielfältigem Alarm bei unterschiedlichen Abweichungen.
Wenn nicht, dann lies es am besten nach (user-> letzte Beiträge) v.a. zum Thema neuer LBS Durchschnitt letzte x Werte... aber auch DWD rückwirkende Regenmengen und Grundwasser stand (JSON MassenDaten)...
Schaue mich die Tage im Forum um was an neuen und schönen Sachen dazugekommen ist!
Grüße
Kommentar
-
Zitat von saegefisch Beitrag anzeigenDemnächst werde ich mein LBS dazu auf centos 7/PHP 7 heben... dann werde ich mich auch inhaltlich wieder damit beschäftigen und kann dir - hoffentlich - gute Antworten geben.
Kommentar
-
Danke für Deinen Gedanken. Hatte ich auch schon Mal überlegt. Aber mit Node-red hole ich mir noch eine (Logik-)Instanz ins Haus/Infrastruktur. Zu Gunsten der Einfachheit habe ich mich dagegen entschieden und werde es weiter in edomi machen. Damit gilt für mich: Logik = edomi, außer es ist ein bash-Script unausweichlich.
wunderbar, dass es immer so schön viele Wege nach Rom gibt...
MQTT ist davon unbenommen und klasse. Wenngleich für diesen Zweck für mich nicht nötig, weil dann schon in edomi.
Man könnte allerdings edomi -> MQTT für die Versorgung von influxDB nutzen, anstatt influxDB direkt per LBS aus edomi zu befeuern... was denkt ihr dazu? Sinnvoll? Hat jemand MQTT-2-influxDB am laufen?
Kommentar
-
image_94994.png Genau so einfach wie KNX direkt nach InfluxDB. Dauert keine 10 Sekunden.
Oder von Edomi -> MQTT -> Node_red -> Influxdb
Anmerkung 2020-03-04 115908.pngZuletzt geändert von hartmut; 04.03.2020, 12:00.
Kommentar
-
Zitat von hartmut Beitrag anzeigenNein, aber ich bringe die Werte von Node-Red direkt zu der InfluxDB
Kommentar
-
Zitat von rucksman007 Beitrag anzeigenbekomme ich auf den einzelnen Phase auch keine Schein- und Blindleistungen
Bleibt nur noch das Problem des Dateninterpretation... Und das bringt mich um den Verstand. Ich krieg die Zahlen aus dem Skript einfach nicht in Einklang mit dem, was ich im Sunnyportal bzw. im Sunny Explorer bzw. in der SMA App sehe.
Kommentar
-
Ich hoffe das hilft weiter, hatte den Ursprung mal im KNX Forum gesehen und dann für mich angepasst. Läuft seit einem 1/2 Jahr ohne irgendwelche Probleme.
Code:[ { "id": "886d73bc.59db5", "type": "delay", "z": "e75a966e.f162f8", "name": "", "pauseType": "rate", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "5", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": true, "x": 180, "y": 220, "wires": [ [ "6dc17ff4.e4c61", "dae6f85c.46aec8" ] ] }, { "id": "5e3cc1f3.77b46", "type": "udp in", "z": "e75a966e.f162f8", "name": "SMA Energy Meter", "iface": "", "port": "9522", "ipv": "udp4", "multicast": "true", "group": "239.12.255.254", "datatype": "buffer", "x": 130, "y": 140, "wires": [ [ "886d73bc.59db5" ] ] }, { "id": "dae6f85c.46aec8", "type": "function", "z": "e75a966e.f162f8", "name": "eMeter auslesen", "func": "// Script von Marco Jäger\n// die Offset ev. auf 0 setzen\nvar BezugKWhOffset = 19171.7 ;\nvar LieferungKWhOffset = 31622.3 ;\n\n// Aktueller BezugW\nvar eMeter = msg.payload;\nvar Bezug = {};\nmsg = {};\nvar deco = eMeter.toString('hex');\nBezugW=deco.substr(64,8); \nBezugW=parseInt(BezugW,16)/10;\nglobal.set('emeter.BezugW',BezugW.toFixed(1)) ;\nmsg.payload = BezugW.toFixed(1);\n\n\n// BezugKWh\nvar BezugKWh = {};\nmsg2 = {};\nBezugKWh=deco.substr(80,16);\nBezugKWh=parseI nt(BezugKWh,16)/3600000.0;\nBezugKWh += BezugKWhOffset\nglobal.set('emeter.BezugKWh', BezugKWh.toFixed(6)) ;\nmsg2.payload = BezugKWh.toFixed(1);\n\n// Aktuelle LieferungW\nvar LieferunW = {};\nmsg3 = {};\nLieferungW=deco.substr(104,8);\nLieferungW=pa rseInt(LieferungW,16)/10;\nglobal.set('emeter.LieferungW',LieferungW.toF ixed(1));\nmsg3.payload = LieferungW.toFixed(1);\nif (LieferungW > 0 ) {\n global.set('emeter.Bezug_LieferungW',-LieferungW.toFixed(1));\n} else {\n global.set('emeter.Bezug_LieferungW',BezugW.toFixe d(1));\n \n}\n\n// Gesamt LieferungKWh\nvar LieferunKWh = {};\nmsg4 = {};\nLieferungKWh=deco.substr(120,16);\nLieferungK Wh=parseInt(LieferungKWh,16)/3600000.0;\nLieferungKWh += LieferungKWhOffset ;\nglobal.set('emeter.LieferungKWh',LieferungKWh.t oFixed(6));\nmsg4.payload = LieferungKWh.toFixed(1);\n\n// Wirkleistung -Bezug/Lieferung L1\nvar wirkleistungbezugL1 = {};\nvar wirkleistungEinspeisungL1 = {};\nvar WirkleistungL1 = {} ;\nmsg5 = {};\nwirkleistungbezugL1=deco.substr(320,8);\nwirk leistungbezugL1=parseInt(wirkleistungbezugL1,16)/10;\nwirkleistungEinspeisungL1=deco.substr(360,8); \nwirkleistungEinspeisungL1=parseInt(wirkleistungE inspeisungL1,16)/10;\nif (wirkleistungbezugL1 === 0) {\n WirkleistungL1 = -wirkleistungEinspeisungL1;\n }\nelse {\n WirkleistungL1 = wirkleistungbezugL1;\n }\nglobal.set('emeter.WirkleistungL1',Wirkleistung L1.toFixed(1)) ;\nmsg5.payload = WirkleistungL1.toFixed(1) ;\n\n// Wirkleistung -Bezug/Lieferung L2\nvar wirkleistungbezugL2 = {};\nvar wirkleistungEinspeisungL2 = {};\nvar WirkleistungL2 = {};\nmsg6 = {};\nwirkleistungbezugL2=deco.substr(608,8);\nwirk leistungbezugL2=parseInt(wirkleistungbezugL2,16)/10;\nwirkleistungEinspeisungL2=deco.substr(648,8); \nwirkleistungEinspeisungL2=parseInt(wirkleistungE inspeisungL2,16)/10;\nif (wirkleistungbezugL2 === 0) {\n WirkleistungL2 = -wirkleistungEinspeisungL2;\n}\nelse {\n WirkleistungL2 = wirkleistungbezugL2;\n}\nglobal.set('emeter.Wirkle istungL2',WirkleistungL2.toFixed(1)) ;\nmsg6.payload = WirkleistungL2.toFixed(1) ;\n\n// Wirkleistung -Bezug/Lieferung L3\nvar wirkleistungbezugL3 = {};\nvar wirkleistungEinspeisungL3 = {};\nvar WirkleistungL3 = {};\nmsg7 = {};\nwirkleistungbezugL3=deco.substr(896,8);\nwirk leistungbezugL3=parseInt(wirkleistungbezugL3,16)/10;\nwirkleistungEinspeisungL3=deco.substr(936,8); \nwirkleistungEinspeisungL3=parseInt(wirkleistungE inspeisungL3,16)/10;\nif (wirkleistungbezugL3 === 0) {\n WirkleistungL3 = -wirkleistungEinspeisungL3;\n}\nelse {\n WirkleistungL3= wirkleistungbezugL3;\n}\nglobal.set('emeter.Wirkle istungL3',WirkleistungL3.toFixed(1)) ;\nmsg7.payload = WirkleistungL3.toFixed(1) ;\n\nmsg8 = {} ;\nvar snr = deco.substr(40,8);\nvar nr = parseInt(snr,16) ;\nglobal.set('emeter.Nr',nr) ;\nmsg8.payload = nr ;\n\n\nreturn [msg,msg2,msg3,msg4,msg5,msg6,msg7,msg8]", "outputs": 8, "noerr": 0, "x": 480, "y": 180, "wires": [ [ "4e351293.b0378c", "9aa1ffcf.1bb3e" ], [ "91c2a33.22c656" ], [ "355394e5.bfcc0c", "21c0cf73.bfc4b" ], [ "cca453e2.0b41e" ], [ "cdf12cb6.1c2cf" ], [ "fc737e0b.0d18" ], [ "a9ef0332.c67e1" ], [ "68144d4c.6ed0d4" ] ], "outputLabels": [ "Bezug W", "Bezug KWh", "Lieferung W", "Lieferung KWh", "Lieferung / Bezug L1", "Lieferung / Bezug L3", "Lieferung / Bezug L3", "Nr." ] } ]
Zuletzt geändert von hartmut; 04.03.2020, 14:21.
Kommentar
-
Zitat von hartmut Beitrag anzeigenIch hoffe das hilft weiter
Ich meinte aber eigentlich diesen Flow:
https://knx-user-forum.de/filedata/fetch?id=1476958
Hier würden mich insbesondere die beiden letzten function nodes (emeter.eigenverbrauch und wr.pac) interessieren...
Kommentar
Kommentar