Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Muster Stromzähler RS232

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Muster Stromzähler RS232

Muster Stromzähler RS232

Scheduled Pinned Locked Moved Node-Red
1 Posts 1 Posters 263 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    peterfido
    wrote on last edited by peterfido
    #1

    Hallo,

    anbei mein Node-Red-Flow, welches per optischem Lesekopf den Stromzähler vom EVU abfragt.

    Der RS232-LAN-Adapter ist ein USRIOT USR-TCP232-T 2

    Der Stromzähler ist ein LOGAREX LK13BE, welcher per PIN geschwätziger geschaltet wurde.
    Der optische Lesekopf ist ein günstig bei eBay als Bausatz geschossener NoName.

    [
        {
            "id": "c587122ec79a200c",
            "type": "tab",
            "label": "Strom EVU",
            "disabled": false,
            "info": ""
        },
        {
            "id": "1ce291586779796c",
            "type": "catch",
            "z": "c587122ec79a200c",
            "name": "",
            "scope": [
                "61dd23b258b802e6",
                "bd2f6fb84b795289",
                "472af7c34b784cef",
                "8425fef0bf9f3b09",
                "7e6496b30f82a733",
                "8725b4dd7db48627",
                "6bd2ac13e94179f9"
            ],
            "uncaught": false,
            "x": 90,
            "y": 680,
            "wires": [
                [
                    "bc4e1c204c90a1a0"
                ]
            ]
        },
        {
            "id": "bc4e1c204c90a1a0",
            "type": "debug",
            "z": "c587122ec79a200c",
            "name": "",
            "active": false,
            "tosidebar": true,
            "console": false,
            "tostatus": false,
            "complete": "false",
            "statusVal": "",
            "statusType": "auto",
            "x": 300,
            "y": 680,
            "wires": []
        },
        {
            "id": "61dd23b258b802e6",
            "type": "tcp in",
            "z": "c587122ec79a200c",
            "name": "Empfang EVU",
            "server": "server",
            "host": "",
            "port": "28234",
            "datamode": "stream",
            "datatype": "utf8",
            "newline": "",
            "topic": "",
            "base64": false,
            "tls": "",
            "x": 130,
            "y": 60,
            "wires": [
                [
                    "8425fef0bf9f3b09"
                ]
            ]
        },
        {
            "id": "8425fef0bf9f3b09",
            "type": "split",
            "z": "c587122ec79a200c",
            "name": "",
            "splt": "!",
            "spltType": "str",
            "arraySplt": 1,
            "arraySpltType": "len",
            "stream": true,
            "addname": "",
            "x": 270,
            "y": 60,
            "wires": [
                [
                    "472af7c34b784cef",
                    "15844dfdf721c9c4"
                ]
            ]
        },
        {
            "id": "472af7c34b784cef",
            "type": "function",
            "z": "c587122ec79a200c",
            "name": "Werte",
            "func": "var text = msg.payload;\ntext = text.replace(\"\\r\",\"\");\nconst myArray = text.split(\"\\n\");\nconst Pfad = '0_userdata.0.Zaehler.Strom.EVU.ist.';\nvar wertholen = function(datensatz) {\n    var beginn=text.indexOf(datensatz);\n    if(beginn > 0){\n        beginn=text.indexOf('(',beginn+1)+1;\n        var ende = text.indexOf('*',beginn);\n        if(ende > 0){\n            return parseFloat(text.substring(beginn,ende));    \n        }else{\n            return -99999;\n        }\n    }else{\n        return -99999;\n    }\n}\n\nvar kwhTotal = wertholen(':1.8.0*255');\nvar kwh = wertholen(':1.8.0*100');\nvar kwh1 = wertholen(':1.8.0*96');   //1 Tag\nvar kwh7 = wertholen(':1.8.0*97');  //7 Tage\nvar kwh30 = wertholen(':1.8.0*98');   //30 Tage\nvar kwh365 = wertholen(':1.8.0*99'); //365 Tage\nvar kwhPVTotal = wertholen(':2.8.0*255');\n\nvar u1 = wertholen(':32.7');\nvar u2 = wertholen(':52.7');\nvar u3 = wertholen(':72.7');\nvar i1 = wertholen(':31.7');\nvar i2 = wertholen(':51.7');\nvar i3 = wertholen(':71.7');\nvar w = wertholen(':16.7');\nvar f = wertholen(':14.7');\nvar w1 = (wertholen(':81.7.4'));   //Winkel L1\nvar w2 = (wertholen(':81.7.15'));  //Winkel L2\nvar w3 = (wertholen(':81.7.26'));  //Winkel L3\n\n\nvar p1 = Math.round(u1*i1*Math.cos(w1 * Math.PI / 180)*10)/10;\nvar p2 = Math.round(u2*i2*Math.cos(w2 * Math.PI / 180)*10)/10;\nvar p3 = Math.round(u3*i3*Math.cos(w3 * Math.PI / 180)*10)/10;\n\nvar s1 = Math.round(u1*i1*10)/10;\nvar s2 = Math.round(u2*i2*10)/10;\nvar s3 = Math.round(u3*i3*10)/10;\n\nvar q1 = Math.round(u1*i1*Math.sin(w1 * Math.PI / 180)*10)/10;\nvar q2 = Math.round(u2*i2*Math.sin(w2 * Math.PI / 180)*10)/10;\nvar q3 = Math.round(u3*i3*Math.sin(w3 * Math.PI / 180)*10)/10;\n\nvar i4 = Math.round((i1+i2+i3)*10)/10;  //Runden notwendig, da teilweise Werte mit zig Stellen rauskamen\nvar s4 = Math.round((s1+s2+s3)*10)/10;\nvar q4 = Math.round((q1+q2+q3)*10)/10;\nvar p4 = Math.round((p1+p2+p3)*10)/10;\n\nvar summe = Math.round(p1+p2+p3);\nsumme =  w-summe;\n/*\nif (summe < -0){\n    p1 = p1 * (-1);\n} \n*/\n\n/*\nvar w4 = (wertholen(':81.7.1*'));  //Winkel Spannung U2 U1\nvar w5 = (wertholen(':81.7.2*'));  //Winkel Spannung U3 U1\nw4 = 360 / w4;  //L2\nw5 = 360 / (w5-120);    //L3\n\nvar u12 = ((u1*Math.sqrt(3)+u2*Math.sqrt(w4))/2);\nvar u23 = ((u2*Math.sqrt(w4)+u3*Math.sqrt(w5))/2);\nvar u31 = ((u1*Math.sqrt(3)+u3*Math.sqrt(w5))/2);\n\nu12 = Math.round(u12*10)/10;\nu23 = Math.round(u23*10)/10;\nu31 = Math.round(u31*10)/10;\n\nnode.status({text:u12+\";\"+u23+\";\"+u31});\n*/\nvar cP1 = Math.round((p1/s1)*1000)/1000;\nvar cP2 = Math.round((p2/s2)*1000)/1000;\nvar cP3 = Math.round((p3/s3)*1000)/1000;\nvar cP4 = Math.round((p4/s4)*1000)/1000;\n\nnode.status({ text: \"Summe:\" + summe + \"; P:\" + w + \"; P0:\" + p4});\n\nreturn [\n    {\n        payload: kwhTotal, topic:Pfad+'Arbeit_Total', stateUnit: 'kWh', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: kwh, topic:Pfad+'Arbeit', stateUnit: 'kWh', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: kwh1, topic:Pfad+'Arbeit_001Tag', stateUnit: 'kWh', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: kwh7, topic:Pfad+'Arbeit_007Tage', stateUnit: 'kWh', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: kwh30, topic:Pfad+'Arbeit_030Tage', stateUnit: 'kWh', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: kwh365, topic:Pfad+'Arbeit_365Tage', stateUnit: 'kWh', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: w, topic:Pfad+'P', stateUnit: 'W', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: f, topic:Pfad+'F', stateUnit: 'Hz', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: u1, topic:Pfad+'U1', stateUnit: 'V', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: u2, topic:Pfad+'U2', stateUnit: 'V', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: u3, topic:Pfad+'U3', stateUnit: 'V', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: i1, topic:Pfad+'I1', stateUnit: 'A', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: i2, topic:Pfad+'I2', stateUnit: 'A', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: i3, topic:Pfad+'I3', stateUnit: 'A', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: i4, topic:Pfad+'I', stateUnit: 'A', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: p1, topic:Pfad+'P1', stateUnit: 'W', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: p2, topic:Pfad+'P2', stateUnit: 'W', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: p3, topic:Pfad+'P3', stateUnit: 'W', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: p4, topic:Pfad+'P0', stateUnit: 'W', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: s1, topic:Pfad+'S1', stateUnit: 'VA', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: s2, topic:Pfad+'S2', stateUnit: 'VA', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: s3, topic:Pfad+'S3', stateUnit: 'VA', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: s4, topic:Pfad+'S', stateUnit: 'VA', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: q1, topic:Pfad+'Q1', stateUnit: 'var', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: q2, topic:Pfad+'Q2', stateUnit: 'var', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: q3, topic:Pfad+'Q3', stateUnit: 'var', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: q4, topic:Pfad+'Q', stateUnit: 'var', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: cP1, topic:Pfad+'cosPhi1', stateUnit: '', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: cP2, topic:Pfad+'cosPhi2', stateUnit: '', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: cP3, topic:Pfad+'cosPhi3', stateUnit: '', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: cP4, topic:Pfad+'cosPhi', stateUnit: '', stateType: 'number', stateRole: 'value'\n    },\n    {\n        payload: kwhPVTotal, topic: Pfad + 'PV_Total', stateUnit: 'kWh', stateType: 'number', stateRole: 'value'\n    }\n];\n\n\n\n",
            "outputs": 32,
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 450,
            "y": 300,
            "wires": [
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ],
                [
                    "8725b4dd7db48627"
                ]
            ]
        },
        {
            "id": "7e6496b30f82a733",
            "type": "ioBroker out",
            "z": "c587122ec79a200c",
            "name": "",
            "topic": "",
            "ack": "true",
            "autoCreate": "true",
            "stateName": "",
            "role": "",
            "payloadType": "number",
            "readonly": "false",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1120,
            "y": 200,
            "wires": []
        },
        {
            "id": "8725b4dd7db48627",
            "type": "switch",
            "z": "c587122ec79a200c",
            "name": "Zahlen",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "istype",
                    "v": "number",
                    "vt": "number"
                },
                {
                    "t": "else"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 710,
            "y": 200,
            "wires": [
                [
                    "6bd2ac13e94179f9"
                ],
                []
            ]
        },
        {
            "id": "6bd2ac13e94179f9",
            "type": "switch",
            "z": "c587122ec79a200c",
            "name": "Gültig",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "lt",
                    "v": "-99990",
                    "vt": "num"
                },
                {
                    "t": "gt",
                    "v": "99999999",
                    "vt": "num"
                },
                {
                    "t": "else"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 3,
            "x": 890,
            "y": 200,
            "wires": [
                [],
                [],
                [
                    "7e6496b30f82a733",
                    "da60cc6f5913df09"
                ]
            ]
        },
        {
            "id": "15844dfdf721c9c4",
            "type": "debug",
            "z": "c587122ec79a200c",
            "name": "",
            "active": false,
            "tosidebar": true,
            "console": false,
            "tostatus": false,
            "complete": "true",
            "targetType": "full",
            "statusVal": "",
            "statusType": "auto",
            "x": 850,
            "y": 40,
            "wires": []
        },
        {
            "id": "af6725d8ac794375",
            "type": "ioBroker out",
            "z": "c587122ec79a200c",
            "name": "",
            "topic": "0_userdata.0.Zaehler.Strom.Timeout",
            "ack": "true",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1350,
            "y": 300,
            "wires": []
        },
        {
            "id": "da60cc6f5913df09",
            "type": "timeout",
            "z": "c587122ec79a200c",
            "name": "Timeout",
            "outtopic": "",
            "outsafe": "Stromzähler OK",
            "outwarning": "Warnung Verbindung Stromzähler",
            "outunsafe": "Fehler Verbindung Stromzähler",
            "warning": "60",
            "timer": "300",
            "repeat": false,
            "again": true,
            "x": 1080,
            "y": 320,
            "wires": [
                [
                    "af6725d8ac794375"
                ]
            ]
        },
        {
            "id": "1d80687864318675",
            "type": "comment",
            "z": "c587122ec79a200c",
            "name": "LOGAREX LK13BE",
            "info": "",
            "x": 150,
            "y": 20,
            "wires": []
        }
    ]
    

    Gruß

    Peterfido


    Proxmox auf Intel NUC12WSHi5
    ioBroker: Debian (VM)
    CCU: Debmatic (VM)
    Influx: Debian (VM)
    Grafana: Debian (VM)
    eBus: Debian (VM)
    Zigbee: Debian (VM) mit zigbee2mqtt

    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    Support us

    ioBroker
    Community Adapters
    Donate

    546

    Online

    32.4k

    Users

    81.3k

    Topics

    1.3m

    Posts
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    ioBroker Community 2014-2025
    logo
    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Recent
    • Tags
    • Unread 0
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe