Flow #32

👤 Anonymous • 📅 10.03.2026 13:18 • 👁️ 11 • 👍 0p
JSON
[
    {
        "id": "nulleinspeisung_group",
        "type": "group",
        "z": "8f32aaab05a0cf37",
        "name": "MARSTEK Nulleinspeisung (Siemens PAC2200)",
        "style": {
            "fill": "#e3f2fd",
            "label": true,
            "color": "#0d47a1"
        },
        "nodes": [
            "trigger_1s",
            "pac2200_getter",
            "logic_processor",
            "write_venus_power"
        ],
        "x": 50,
        "y": 1200,
        "w": 1000,
        "h": 120
    },
    {
        "id": "trigger_1s",
        "type": "inject",
        "z": "8f32aaab05a0cf37",
        "g": "nulleinspeisung_group",
        "name": "1 Sek. Takt",
        "props": [
            { "p": "payload" }
        ],
        "repeat": "1",
        "crontab": "",
        "once": true,
        "onceDelay": "2",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 140,
        "y": 1260,
        "wires": [["pac2200_getter"]]
    },
    {
        "id": "pac2200_getter",
        "type": "modbus-getter",
        "z": "8f32aaab05a0cf37",
        "g": "nulleinspeisung_group",
        "name": "Lese PAC2200 (Watt)",
        "showStatusActivities": true,
        "showErrors": true,
        "unitid": "1",
        "dataType": "HoldingRegister",
        "adr": "1",
        "quantity": "2",
        "server": "siemens_pac_client",
        "x": 360,
        "y": 1260,
        "wires": [["logic_processor"], []]
    },
    {
        "id": "logic_processor",
        "type": "function",
        "z": "8f32aaab05a0cf37",
        "g": "nulleinspeisung_group",
        "name": "Übersetzer & Schutz",
        "func": "// 1. Siemens PAC2200 Float32 Buffer auslesen\nvar buf = Buffer.from(msg.payload);\nvar rawWatts = buf.readFloatBE(0);\n\n// 2. Wert runden für Marstek (Ganzzahl)\nlet finalPower = Math.round(rawWatts);\n\n// 3. Sicherheits-Limit (Venus A verträgt max 2400W/800W je nach Modell)\n// Wir setzen 2200W als Deckel, damit nichts überhitzt.\nif (finalPower > 2200) finalPower = 2200;\nif (finalPower < -2200) finalPower = -2200;\n\n// 4. Totzone (Beruhigt das System bei Kleinstmengen)\nif (Math.abs(finalPower) < 15) finalPower = 0;\n\nmsg.payload = finalPower;\nreturn msg;",
        "outputs": 1,
        "x": 620,
        "y": 1260,
        "wires": [["write_venus_power"]]
    },
    {
        "id": "write_venus_power",
        "type": "modbus-write",
        "z": "8f32aaab05a0cf37",
        "g": "nulleinspeisung_group",
        "name": "Sende an Venus (42021)",
        "showStatusActivities": true,
        "showErrors": true,
        "unitid": "3",
        "dataType": "HoldingRegister",
        "adr": "42021",
        "quantity": "1",
        "server": "67aa8a7899544f4d",
        "x": 890,
        "y": 1260,
        "wires": [[], []]
    }
]




Click to open Preview

Browse more flows