[
    {
        "id": "f6f2187d.f17ca8",
        "type": "tab",
        "label": "Parse Meters Data ",
        "disabled": false,
        "info": ""
    },
    {
        "id": "9d47a854bd15e917",
        "type": "mqtt in",
        "z": "f6f2187d.f17ca8",
        "name": "Subscribe to Raw meters data",
        "topic": "acrios/+/meter/+/raw",
        "qos": "0",
        "datatype": "auto-detect",
        "broker": "c95a80c8fbe25af4",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 160,
        "y": 60,
        "wires": [
            [
                "0a319728324e5692"
            ]
        ]
    },
    {
        "id": "0b9e5af9c9c02106",
        "type": "www-request",
        "z": "f6f2187d.f17ca8",
        "name": "Parse Raw Data",
        "method": "GET",
        "ret": "obj",
        "url": "",
        "follow-redirects": true,
        "persistent-http": false,
        "tls": "ab43f2005a63c260",
        "x": 620,
        "y": 60,
        "wires": [
            [
                "b2d6527948bf7617"
            ]
        ]
    },
    {
        "id": "0a319728324e5692",
        "type": "function",
        "z": "f6f2187d.f17ca8",
        "name": "Prepare data for parsing",
        "func": "let rawData = msg.payload['raw-data'];\nlet meterId = msg.payload['ID'];\nlet meterMode = msg.payload['mode'];\n\n\nif (meterId.startsWith(\"0101-\") && meterMode.startsWith(\"M\")) {\n    msg.method = 'GET';\n    msg.url = `https://backend.wmbus.testvps.acrios.com/parser/metraNG/hex?data=${rawData}`;\n    msg.headers = {\n        'accept': 'application/json',\n        'Authorization': 'Bearer --- redacted ---'  \n    };\n} else if (meterId.startsWith(\"3\") && meterMode.startsWith(\"M\")) {\n    msg.method = 'GET';\n    msg.url = `https://backend.wmbus.testvps.acrios.com/parser/oldmetra/hex?data=${rawData}`;\n    msg.headers = {\n        'accept': 'application/json',\n        'Authorization': 'Bearer --- redacted ---'\n    };\n} else {\n    msg.method = 'GET';\n    msg.url = `https://backend.wmbus.testvps.acrios.com/parser/wmbusmeters/hex?data=${rawData}`;\n    msg.headers = {\n        'accept': 'application/json'\n    };\n}\n\nreturn msg;\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 410,
        "y": 60,
        "wires": [
            [
                "0b9e5af9c9c02106"
            ]
        ]
    },
    {
        "id": "1f35a22f02d6b38d",
        "type": "mqtt out",
        "z": "f6f2187d.f17ca8",
        "name": "Publish Parsed meters data",
        "topic": "",
        "qos": "2",
        "retain": "true",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "c95a80c8fbe25af4",
        "x": 1080,
        "y": 60,
        "wires": []
    },
    {
        "id": "b2d6527948bf7617",
        "type": "function",
        "z": "f6f2187d.f17ca8",
        "name": "Prepare data to Publish",
        "func": "let parsedData = msg.payload;\nlet newTopic = msg.topic.replace('/raw', '/parsed');  \nlet q = msg.qos;\nlet r = msg.retain;\n\n\nreturn {\n    topic: newTopic,\n    payload: parsedData,\n    qos: q,\n    retain: r\n};\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 830,
        "y": 60,
        "wires": [
            [
                "1f35a22f02d6b38d"
            ]
        ]
    },
    {
        "id": "c95a80c8fbe25af4",
        "type": "mqtt-broker",
        "name": "HiveMQ Public Broker",
        "broker": "broker.hivemq.com",
        "port": "8883",
        "tls": "8c646dd87450e965",
        "clientid": "node-red",
        "autoConnect": true,
        "usetls": true,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": false,
        "autoUnsubscribe": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthRetain": "false",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closeRetain": "false",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willRetain": "false",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    },
    {
        "id": "ab43f2005a63c260",
        "type": "tls-config",
        "name": "",
        "cert": "",
        "key": "",
        "ca": "",
        "certname": "",
        "keyname": "",
        "caname": "",
        "servername": "",
        "verifyservercert": true,
        "alpnprotocol": ""
    },
    {
        "id": "8c646dd87450e965",
        "type": "tls-config",
        "name": "",
        "cert": "",
        "key": "",
        "ca": "",
        "certname": "",
        "keyname": "",
        "caname": "",
        "servername": "",
        "verifyservercert": false,
        "alpnprotocol": ""
    }
]