Ankündigung

Einklappen
Keine Ankündigung bisher.

SMA Energy Meter (SMA EM) auslesen per Multicast und Lieferung an edomi

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #46
    Das sind nur Funktionen die globale Werte ausgeben.
    Code:
    var e=global.get('emeter.Eigenverbrauch') ;
    var msg1= {} ;
    msg1.payload = Number(e) ;
    return msg1;
    Die Werte werden aus dem Wechselrichter ausgelesen mit einem Rasperry über 485 da die Wechselrichter keinen Ethernet Port haben. Das geht leider noch nicht mit Node-Red.

    Kommentar


      #47
      Verstehe... da hat mich die Bezeichnung "emeter.eigenverbrauch" in die Irre geführt. Dachte, die Werte kommen auch aus dem Energy Meter... Danke!

      Kommentar


        #48
        Aber für meinen Sohn habe ich einen Flow erstellt der den SMA Modbus ausliest. Damit kannst du den WR Auslesen und den Eigenbedarf usw in Verbindung mit dem Energiemeter berechnen. Vielleicht hilft das weiter.

        Code:
        [
        {
        "id": "f068f9da.0ba828",
        "type": "inject",
        "z": "f0ce096a.89e038",
        "name": "",
        "topic": "Anfrage",
        "payload": "[{\"name\":\"Power_W\",\"address\":30775,\"quantity \":2,\"dataType\":\"FC3\",\"interval\":10000,\"iee eBE\":false,\"ieeeType\":\"off\"},{\"name\":\"Stat us\",\"address\":30201,\"quantity\":2,\"dataType\" :\"FC3\",\"interval\":30000,\"ieeeBE\":false,\"iee eType\":\"off\"},{\"name\":\"interneTemp\",\"addre ss\":30953,\"quantity\":2,\"dataType\":\"FC3\",\"i nterval\":60000,\"ieeeBE\":false,\"ieeeType\":\"of f\"},{\"name\":\"Total_yield_Wh\",\"address\":3051 3,\"quantity\":4,\"dataType\":\"FC3\",\"interval\" :30000,\"ieeeBE\":false,\"ieeeType\":\"off\"},{\"n ame\":\"Temperatur-Derating\",\"address\":30219,\"quantity\":2,\"data Type\":\"FC3\",\"interval\":60000,\"ieeeBE\":false ,\"ieeeType\":\"off\"},{\"name\":\"DC_current_inpu t1_A\",\"address\":30769,\"quantity\":2,\"dataType \":\"FC3\",\"interval\":20000,\"ieeeBE\":false,\"i eeeType\":\"off\"},{\"name\":\"DC_voltage_input1_V \",\"address\":30771,\"quantity\":2,\"dataType\":\ "FC3\",\"interval\":20000,\"ieeeBE\":false,\"ieeeT ype\":\"off\"},{\"name\":\"DC_power_input1_W\",\"a ddress\":30773,\"quantity\":2,\"dataType\":\"FC3\" ,\"interval\":20000,\"ieeeBE\":false,\"ieeeType\": \"off\"},{\"name\":\"DC_current_input2_A\",\"addre ss\":30957,\"quantity\":2,\"dataType\":\"FC3\",\"i nterval\":20000,\"ieeeBE\":false,\"ieeeType\":\"of f\"},{\"name\":\"DC_voltage_input2_V\",\"address\" :30959,\"quantity\":2,\"dataType\":\"FC3\",\"inter val\":20000,\"ieeeBE\":false,\"ieeeType\":\"off\"} ,{\"name\":\"DC_power_input2_W\",\"address\":30961 ,\"quantity\":2,\"dataType\":\"FC3\",\"interval\": 20000,\"ieeeBE\":false,\"ieeeType\":\"off\"}]",
        "payloadType": "json",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "3",
        "x": 120,
        "y": 60,
        "wires": [
        [
        "aeae242e.58b728"
        ]
        ]
        },
        {
        "id": "aeae242e.58b728",
        "type": "modbustcp-read",
        "z": "f0ce096a.89e038",
        "name": "SMA Modbus ",
        "topic": "topic",
        "dataType": "HoldingRegister",
        "adr": "30057",
        "quantity": "2",
        "rate": "10",
        "rateUnit": "m",
        "server": "d3cd2226.7513d",
        "ieeeType": "off",
        "ieeeBE": "true",
        "x": 290,
        "y": 60,
        "wires": [
        [
        "b820e3ce.1402",
        "d4035185.4736c"
        ]
        ]
        },
        {
        "id": "b820e3ce.1402",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "console": "false",
        "complete": "true",
        "x": 510,
        "y": 60,
        "wires": []
        },
        {
        "id": "d4035185.4736c",
        "type": "switch",
        "z": "f0ce096a.89e038",
        "name": "msg.settings.name",
        "property": "settings.name",
        "propertyType": "msg",
        "rules": [
        {
        "t": "eq",
        "v": "Power_W",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "Status",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "interneTemp",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "Total_yield_Wh",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "Temperatur-Derating",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "DC_current_input1_A",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "DC_voltage_input1_V",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "DC_power_input1_W",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "DC_current_input2_A",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "DC_voltage_input2_V",
        "vt": "str"
        },
        {
        "t": "eq",
        "v": "DC_power_input2_W",
        "vt": "str"
        }
        ],
        "checkall": "false",
        "repair": false,
        "outputs": 11,
        "x": 170,
        "y": 380,
        "wires": [
        [
        "fdf79c39.ef644"
        ],
        [
        "fe6a7924.959018"
        ],
        [
        "8f95ae1.4f7345"
        ],
        [
        "92931026.b198f"
        ],
        [
        "3e541069.464a8",
        "1f6b386a.e4a048"
        ],
        [
        "c39230b4.2cdc5"
        ],
        [
        "7650419a.ba53a"
        ],
        [
        "b12f6c36.f1d29"
        ],
        [
        "33587db.9407b82"
        ],
        [
        "c2adc49c.6c5768"
        ],
        [
        "a29b957f.807948"
        ]
        ]
        },
        {
        "id": "fdf79c39.ef644",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "Power [W]",
        "func": "if (msg.payload[0] === 0x8000)\n{\n msg.payload = 0 ;\n global.set('wr.PowerW',0) ;\n return msg ;\n}\nelse\n{\nvar b32 = 0 ;\nb32 = (msg.payload[0] << 16) + (msg.payload[1] << 0) ;\n\nmsg.payload = b32 ;\nglobal.set('wr.PowerW',b32) ;\n\nreturn msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 450,
        "y": 200,
        "wires": [
        [
        "ed847d25.b8efe",
        "d6e179f3.00ab68",
        "c75523b1.6d432"
        ]
        ]
        },
        {
        "id": "fe6a7924.959018",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "Status",
        "func": "var b32 = 0 ;\nb32 = ((msg.payload[0] << 16) + (msg.payload[1] << 0)) & 0x00FFFFFF ;\n\nvar s =\"??\" ;\n switch(b32) {\n case 35: s=\"Fehler\" ; break ;\n case 303: s=\"Aus\" ; break ;\n case 307: s=\"OK\" ; break ;\n case 455: s=\"Warnung\" ; break ;\n }\n msg.payload = s ;\n global.set('wr.Status',s) ;\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 430,
        "y": 240,
        "wires": [
        [
        "405a4914.9f9cb8"
        ]
        ]
        },
        {
        "id": "8f95ae1.4f7345",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "Temparatur[°C]",
        "func": "\nif ((msg.payload[0] === 0x8000) && (msg.payload[1] === 0) )\n{\n msg.payload = 0 ;\n global.set('wr.interneTemp',0);\n return msg ;\n}\nelse\n{\n var b32 = 0 ;\n b32 = (msg.payload[0] << 16) + (msg.payload[1] << 0)\n\n global.set('wr.interneTemp',b32/10) ;\n msg.payload = b32/10;\n return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 460,
        "y": 280,
        "wires": [
        [
        "243a1e3f.99d4b2",
        "d4d6764c.45fb48",
        "8162ff1c.5b5a1"
        ]
        ]
        },
        {
        "id": "92931026.b198f",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "Total_yield_KWh aus Wh",
        "func": "if ((msg.payload[0] === 0xFFFF) && (msg.payload[1] === 0xFFFF) && (msg.payload[2] === 0xFFFF) && (msg.payload[3] === 0xFFFF))\n{\n msg.payload = 0 ;\n global.set('wr.Total_yield_KWh',0) ;\n return msg ;\n}\nelse\n{\nvar b64 = 0 ;\nb64 = (msg.payload[0] << 48) + (msg.payload[1] << 32) + (msg.payload[2] << 16) + (msg.payload[3] << 0)\n\n//var bufView = new Uint16Array(msg.payload);\nglobal.set('wr.Total_yi eld_KWh',b64/1000) ;\nmsg.payload = b64/1000 ;\nreturn msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 490,
        "y": 320,
        "wires": [
        [
        "eeda9c81.9526f",
        "7f36ef26.42d3d"
        ]
        ]
        },
        {
        "id": "3e541069.464a8",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "Temperatur-Derating",
        "func": "var b32 = 0 ;\nb32 = ((msg.payload[0] << 16) + (msg.payload[1] << 0)) & 0x00FFFFFF ;\n\n//var s =\"??\" ;\n// switch(b32) {\n// case 302: s=\"Kein Derating\" ; break ;\n// case 557: s=\"Temperatur-Derating\" ; break ;\n// case 884: s=\"Nicht aktiv\" ; break ;\n// case 1704: s=\"Warnung\" ; break ;\n// case 1705: s=\"Frequenz-Derating\" ; break ;\n// case 1706: s=\"Derating aufgrund PV-Strombegrenzung\" ; break ;\n// }\n msg.payload = b32 ;\n global.set('wr.TemperaturDerating',b32) ;\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 480,
        "y": 360,
        "wires": [
        [
        "f115fcca.1218d"
        ]
        ]
        },
        {
        "id": "1f6b386a.e4a048",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "console": "false",
        "complete": "true",
        "x": 430,
        "y": 160,
        "wires": []
        },
        {
        "id": "c39230b4.2cdc5",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "DC_current_input1_A",
        "func": "if ((msg.payload[0] === 0x8000) && (msg.payload[1] === 0) )\n{\n msg.payload = 0 ;\n global.set('wr.DC_current_input1_A',0) ;\n return msg ;\n}\nelse\n{\n var b32 = 0 ;\n b32 = (msg.payload[0] << 16) + (msg.payload[1] << 0)\n\n global.set('wr.DC_current_input1_A',b32/1000) ;\n msg.payload = b32/1000 ;\n return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 480,
        "y": 400,
        "wires": [
        [
        "78da7d67.ea0ae4"
        ]
        ]
        },
        {
        "id": "7650419a.ba53a",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "DC_voltage_input1_V",
        "func": "if ((msg.payload[0] === 0x8000) && (msg.payload[1] === 0) )\n{\n msg.payload = 0 ;\n global.set('wr.DC_voltage_input1_V',0) ;\n return msg ;\n}\nelse\n{\n var b32 = 0 ;\n b32 = (msg.payload[0] << 16) + (msg.payload[1] << 0)\n\n global.set('wr.DC_voltage_input1_V',b32/100) ;\n msg.payload = b32/100 ;\n return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 480,
        "y": 440,
        "wires": [
        [
        "dc2ef9a5.6d5508"
        ]
        ]
        },
        {
        "id": "b12f6c36.f1d29",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "DC_power_input1_W",
        "func": "if ((msg.payload[0] === 0x8000) && (msg.payload[1] === 0) )\n{\n msg.payload = 0 ;\n global.set('wr.DC_power_input1_W',0);\n return msg ;\n}\nelse\n{\n var b32 = 0 ;\n b32 = (msg.payload[0] << 16) + (msg.payload[1] << 0)\n\n global.set('wr.DC_power_input1_W',b32) ;\n msg.payload = b32 ;\n return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 480,
        "y": 480,
        "wires": [
        [
        "5f510265.41f1ac"
        ]
        ]
        },
        {
        "id": "33587db.9407b82",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "DC_current_input2_A",
        "func": "if ((msg.payload[0] === 0x8000) && (msg.payload[1] === 0) )\n{\n msg.payload = 0 ;\n global.set('wr.DC_current_input2_A',0) ;\n return msg ;\n}\nelse\n{\n var b32 = 0 ;\n b32 = (msg.payload[0] << 16) + (msg.payload[1] << 0)\n\n global.set('wr.DC_current_input2_A',b32/1000) ;\n msg.payload = b32/1000 ;\n return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 480,
        "y": 520,
        "wires": [
        [
        "8f8f87a8.46c8c8"
        ]
        ]
        },
        {
        "id": "c2adc49c.6c5768",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "DC_voltage_input2_V",
        "func": "if ((msg.payload[0] === 0x8000) && (msg.payload[1] === 0) )\n{\n msg.payload = 0 ;\n global.set('wr.DC_voltage_input2_V',0);\n return msg ;\n}\nelse\n{\n var b32 = 0 ;\n b32 = (msg.payload[0] << 16) + (msg.payload[1] << 0)\n\n global.set('wr.DC_voltage_input2_V',b32/100) ;\n msg.payload = b32/100 ;\n return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 480,
        "y": 560,
        "wires": [
        [
        "dfa7d525.2bb998"
        ]
        ]
        },
        {
        "id": "a29b957f.807948",
        "type": "function",
        "z": "f0ce096a.89e038",
        "name": "DC_power_input2_W",
        "func": "if ((msg.payload[0] === 0x8000) && (msg.payload[1] === 0) )\n{\n msg.payload = 0 ;\n global.set('wr.DC_power_input2_W',0) ;\n return msg ;\n}\nelse\n{\n var b32 = 0 ;\n b32 = (msg.payload[0] << 16) + (msg.payload[1] << 0)\n\n global.set('wr.DC_power_input2_W',b32) ;\n msg.payload = b32 ;\n return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 480,
        "y": 600,
        "wires": [
        [
        "af6f0da4.f7778"
        ]
        ]
        },
        {
        "id": "ed847d25.b8efe",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 650,
        "y": 200,
        "wires": []
        },
        {
        "id": "d6e179f3.00ab68",
        "type": "mqtt out",
        "z": "f0ce096a.89e038",
        "name": "",
        "topic": "nodered/pv/erzeugungW",
        "qos": "0",
        "retain": "true",
        "broker": "65ddf21a.65e74c",
        "x": 950,
        "y": 200,
        "wires": [],
        "inputLabels": [
        "payload"
        ]
        },
        {
        "id": "c75523b1.6d432",
        "type": "link out",
        "z": "f0ce096a.89e038",
        "name": "Leistung W",
        "links": [
        "cf8aa1f3.c5409"
        ],
        "x": 1095,
        "y": 200,
        "wires": []
        },
        {
        "id": "405a4914.9f9cb8",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 670,
        "y": 240,
        "wires": []
        },
        {
        "id": "243a1e3f.99d4b2",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 670,
        "y": 280,
        "wires": []
        },
        {
        "id": "d4d6764c.45fb48",
        "type": "mqtt out",
        "z": "f0ce096a.89e038",
        "name": "",
        "topic": "nodered/pv/WR-Temperatur",
        "qos": "0",
        "retain": "true",
        "broker": "65ddf21a.65e74c",
        "x": 960,
        "y": 280,
        "wires": [],
        "inputLabels": [
        "payload"
        ]
        },
        {
        "id": "8162ff1c.5b5a1",
        "type": "influxdb out",
        "z": "f0ce096a.89e038",
        "influxdb": "7ea52b18.2b9874",
        "name": "",
        "measurement": "pv/temperatur",
        "precision": "",
        "retentionPolicy": "",
        "x": 1220,
        "y": 280,
        "wires": []
        },
        {
        "id": "eeda9c81.9526f",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 320,
        "wires": []
        },
        {
        "id": "7f36ef26.42d3d",
        "type": "link out",
        "z": "f0ce096a.89e038",
        "name": "LeistungKWh",
        "links": [
        "803dd037.d125"
        ],
        "x": 1135,
        "y": 320,
        "wires": []
        },
        {
        "id": "f115fcca.1218d",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 360,
        "wires": []
        },
        {
        "id": "78da7d67.ea0ae4",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 400,
        "wires": []
        },
        {
        "id": "dc2ef9a5.6d5508",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 440,
        "wires": []
        },
        {
        "id": "5f510265.41f1ac",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 480,
        "wires": []
        },
        {
        "id": "8f8f87a8.46c8c8",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 520,
        "wires": []
        },
        {
        "id": "dfa7d525.2bb998",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 560,
        "wires": []
        },
        {
        "id": "af6f0da4.f7778",
        "type": "debug",
        "z": "f0ce096a.89e038",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 600,
        "wires": []
        },
        {
        "id": "d3cd2226.7513d",
        "type": "modbustcp-server",
        "z": "",
        "name": "SMA Wechselrichter",
        "host": "192.168.99.99",
        "port": "502",
        "unit_id": "3",
        "reconnecttimeout": "100"
        },
        {
        "id": "65ddf21a.65e74c",
        "type": "mqtt-broker",
        "z": "",
        "name": "MQTT  99",
        "broker": "192.168.99.98",
        "port": "1883",
        "clientid": "",
        "usetls": false,
        "compatmode": false,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "willTopic": "",
        "willQos": "0",
        "willPayload": ""
        },
        {
        "id": "7ea52b18.2b9874",
        "type": "influxdb",
        "z": "",
        "hostname": "192.168.99.97",
        "port": "8086",
        "protocol": "http",
        "database": "haus",
        "name": "influxdb 165",
        "usetls": false,
        "tls": ""
        }
        ]
        Zuletzt geändert von hartmut; 05.03.2020, 08:37.

        Kommentar


          #49
          Wie cool, vielen Dank! Ich muss erst mal den Flow korrigieren, ich krieg den nicht importiert. Leerzeichen oder so... Dann werd ich mal versuchen zu verstehen, was da so passiert. Ws. sind einige der verwendeten Register bei mir gar nicht belegt. Mal sehen... Wenn ich darf, frage ich nochmal nach, wenn ich was nicht verstehe. Danke!

          Kommentar


            #50
            Ja beim Wechselrichter musst du schauen welche Werte ausgeliefert werden. SMA hat da eine Excel Tabelle in der die Register für die jeweiligen WR aufgeführt sind.
            Aufpassen muss man nur dass man den Flow nicht so oft hintereinander aktiviert, am besten einstellen dass nur geänderte Nodes übersetzt werden, da der WR es nicht mag wenn während der Anfrage mit dem Modbus Unterbrechungen sind. Dann meldet er sich mit Fehler und dann hilft nur den WR mal abschalten.

            Kommentar


              #51
              Zitat von hartmut Beitrag anzeigen
              Ja beim Wechselrichter musst du schauen welche Werte ausgeliefert werden. SMA hat da eine Excel Tabelle in der die Register für die jeweiligen WR aufgeführt sind.
              Die Tabelle samt PDF Docs kenne ich schon seit vielen Versionen. Problem ist nur, dass zumindest die PDFs dazu mindestens lückenhaft sind und in den verschiedenen Versionen keine Besserung zu erkennen ist. Sowohl die englische als auch die deutsche Version haben riesige Lücken, wo dann einfach mal die Beschreibung von Dutzenden Registern fehlt (jeweils unterschiedliche Lücken in der deutschen und englischen Version). Und nur durch den Namen in der Excel Tabelle erschließen sich halt viele Werte nicht (auch die PDFs dürften gerne noch ein bisschen ausführlicher sein).

              Zitat von hartmut Beitrag anzeigen
              Aufpassen muss man nur dass man den Flow nicht so oft hintereinander aktiviert.
              Hatte ich auch schon oft genug. Das muss nicht nur am häufigen Abfragen liegen. Meinen Wechselrichter darf ich mindestens ein Mal pro Quartal (gerne auch öfter) neu starten, weil sich irgendwas aufgehangen hat und er auf Modbus Anfrage nicht mehr reagiert. Insgesamt eine sehr unbefriedigende Lösung, aber das sagte ich ja schon in einem vorherigen Post und tut hier nichts zur Sache.

              Kommentar


                #52
                Seit Oktober läuft es ohne Probleme mit dem Modbus und Node-Red.

                Kommentar


                  #53
                  Guten Morgen,

                  ich bekomme demnächst meine PV Anlage montiert und möchte die Daten dann mit einem Rapsberry empfangen und an Edomi übergeben.
                  Bis dahin möchte ich gerne in Edomi alles vorbereiten um ab der ersten erzeugten Kwh alles mit zu loggen .

                  Könnte mir jemand einen String bzw. die verschiedenen Strings posten die ich aus den Script übergeben bekomme?

                  Dann kann ich das damit schon mal testen.

                  Kommentar


                    #54
                    Zitat von Michael85 Beitrag anzeigen
                    Guten Morgen,

                    ich bekomme demnächst meine PV Anlage montiert und möchte die Daten dann mit einem Rapsberry empfangen und an Edomi übergeben.
                    Edomi kann das direkt via "ModBus Read" LBS


                    modbus.JPG

                    Kommentar


                      #55
                      Hallo zusammen,
                      vorweg ich bin kein KNX Nutzer, bin bei der Suche im Internet auf dieses Thema gestoßen und hoffe dass mir hier vielleicht geholfen werden kann.

                      Kleine Vorgeschichte:
                      Ich besitze den SMA Home Manager 2.0 und habe bis 2019 ein Windows Programm zum auslesen des EM benutzt:
                      1588267179714.png
                      Autor unbekannt, wie ihr seht zeigt es Quatsch an seit der neuen Firmware.
                      Programm Download: https://www.dropbox.com/s/3twhhlwjes...gramm.zip?dl=0

                      Analog gab es eine Android App "EMViewer", die leider auch nicht aktualisiert wurde und genau so Mist anzeigt.

                      Habe dann auf github folgendes Projekt gefunden:
                      https://github.com/datenschuft/SMA-EM

                      und ans laufen bekommen, die Anleitung ist fehlerhaft und die Werte teilweise auch, daher habe ich eine korrigierte Anleitung geschrieben und die *.py korrigiert, das findet ihr auf meinem Blog:

                      http://hausbau-becker.blogspot.com/2020/05/fachartikel-sma-energy-meter-home.html

                      Das ganze läuft auch schön im Shell.

                      Ich würde das jedoch gerne im Browser angezeigt bekommen (über´n Raspberry), so ähnlich wie es das Windows Programm getan hat.
                      Die Felder würde ich gern selber konfigurieren, das ganze im Sekundentakt aktualsiert.

                      Im Verzeichnis von Datenschuft´s SMA-EM gibt es sowohl eine
                      sma_grafana.json als auch influxdb.py Datei, siehe: https://github.com/datenschuft/SMA-EM/tree/master/features

                      Leider habe ich davon 0,0 Plan.


                      Ich bekam einen Tip wie ich das mit Node RED lösen könnte, da es dafür eine phyton3 funktion node gibt.
                      Leider stürzt mir NR sofort ab, wenn ich nur etwas rein kopiere, und löscht alles.

                      Vielleicht gibt es ja über die bereits vorhandenen /features ein Möglichkeit wie ich so eine grafische Oberfläche mit einem Tool (egal ob Node RED, Grafana, Edomi oder was es noch so gibt) herstellen kann.

                      Ich bräuchte nur eine "Starthilfe", die Feinarbeit mache ich gern selbst, so wie ich das Skript korrigiert habe.
                      Ich würde das Ergebnis natürlich veröffentlichen, so dass jeder der einen Raspberry hat das ganze realisieren kann.

                      Liebe Grüße




                      Angehängte Dateien

                      Kommentar


                        #56
                        Ich sehe den Beitrag erst jetzt wieder.... die Benachrichtigungen funktionieren nicht richtig...

                        Wieseo zeigt dir EMView Mist an.... und was ist da genau falsch?

                        Ich habe den "alten" HomeManager noch mit dem extra SMA Energy meter (Bei dir ist ja alles in dem EM verbaut und du brauchst nicht mehr den Homemanager extra)

                        Der Smart Meter 2.0 ist nicht so ganz problembefreit... es gibt viele Leute die mit dem Ding probleme haben- vielfach auch Leute mit Speicher

                        Kommentar


                          #57
                          Hi,


                          muss mich mal hier einbringen


                          Ich würde das Skript von Carstene mal in einen LBS für EDOMI verpacken. Ich frage aus dem Grund, weil ich mir die Arbeit nicht machen möchte wenn schon jemand daran arbeitet

                          Gruß Benji

                          Kommentar


                            #58
                            Hi Benji,

                            begonnen habe ich bereits. Da ich endlich dieser Tage mit meinem Umzug 1.64 -> 2.02 weiter komme, sollte es nicht mehr all zu lange dauern. Mein persönliches Ziel wäre Ende kommendes WE.

                            Dann wird die Lösung auch endlich so einfach, wie sie schon immer hätte sein sollen, wenn das alte PHP Multicast gekonnt hätte...

                            VG,
                            Carsten

                            Kommentar


                              #59
                              Hm, wie weit bist du denn???

                              Ich habe gerade etwas gespielt und das Skript einfach mal quick & Dirty in LBS verpackt. Läuft auf Anhieb ohne Probleme. Ist natürlich kein Logging usw. auf die Schnelle dabei.

                              Delay hab ich schnell mittels Telegrammgenerator gemacht.

                              Ich könnte dir den LBS aber zukommen lassen und du baust ihn fertig. Möchte dir nicht vorgreifen hier.

                              Gruß Benjamin


                              Anbei mal Screen

                              sma-multicast.png

                              Kommentar


                                #60
                                gerne per PN zukommen lassen. Ich mach' zwar gerne "mein eigens Ding", aber Inspiration ist immer hilfreich. Dank' Dir schon mal...

                                Kommentar

                                Lädt...
                                X