[
    {
        "id": "bfc61e48d73b2dc6",
        "type": "comment",
        "z": "3e038939.79f446",
        "name": "Direktnachricht Spooler",
        "info": "",
        "x": 620,
        "y": 100,
        "wires": []
    },
    {
        "id": "d642eb2f04de8913",
        "type": "http request",
        "z": "3e038939.79f446",
        "name": "CallMeBot",
        "method": "GET",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "https://api.callmebot.com/whatsapp.php?phone=491234567890&text={{textmessage}}&apikey=1234567",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": false,
        "headers": [],
        "x": 1210,
        "y": 220,
        "wires": [
            [
                "ba308ea42973851c"
            ]
        ]
    },
    {
        "id": "ba308ea42973851c",
        "type": "function",
        "z": "3e038939.79f446",
        "name": "whatsapp",
        "func": "// WhatsApp Nachricht Encodieren und Versenden.\n\nvar msgException = null;\nvar msgOkOutput = null;\nvar msgWhatsApp = null;\n\n\n// Handelt es sich um den ersten Sendeversuch.\nif (msg.originalPayload == null) {\n    // Erstsendung\n    var textmessage = msg.payload;\n\n    if (textmessage == '') {\n        textmessage = 'Leere Textnachricht.'\n        msgException = msg;\n        msgException.execption = textmessage;\n    }\n    \n    msg.textmessage = encodeURIComponent(textmessage).replace(/%20/g,'+'),\n    msg.originalPayload = msg.payload;\n    msg.msgCreated = new Date().toLocaleDateString('de-DE') + ' ' + new Date().toLocaleTimeString('de-DE');\n    msg.sendAttempt = 1;\n    msg.delay = 0;\n    msg.nextPayload = null;\n} else {\n    // HTTPS-Response Prüfen ob Sendung wiederholt werden muss.\n    if (msg.payload.startsWith('Error: ') ||\n        msg.payload.startsWith('TimeoutError: ') ||\n        msg.payload.startsWith('RequestError: ')) {\n        // Wiederholung\n        msg.sendAttempt++;\n\n        // Zeitverzögerung(Millisekunden) bis zum nächsten Sendeversuch.\n        switch (msg.sendAttempt) {\n            case 2:\n                // Zeitstempel hinzufügen, damit man weiß wann die Originalnachricht versendet werden sollte.\n                msg.textmessage = encodeURIComponent(msg.msgCreated + \": \").replace(/%20/g,'+') + msg.textmessage;\n                msg.delay = 60000; // 1 Min\n                break;\n            case 3:\n                msg.delay = 300000; // 5 Min\n                break;\n            case 4:\n                msg.delay = 900000; // 15 Min\n                break;\n            default:\n                msg.delay = 1800000;// 30 Min\n        }\n\n        // Es wird zwei Tage und ein bisschen \n        // versucht die Nachricht zu versenden.\n        // Danach wird die Nachricht verworfen.\n        if (msg.sendAttempt > 52) {\n            msgException = msg;\n            msgException.exception = 'WhatsApp Nachricht vom '+ msg.msgCreated + ' ' +\n                'konnte nicht versendet werden. Nach 51 Sendeversuchen wurde aufgegeben. '+\n                'Nachrichtentext: ' + msg.originalPayload;\n            msg = null;\n        }\n    // HTTPS-Response auf bekannte Rückmeldungen von CallMeBot prüfen.\n    } else if (msg.payload.includes('Your Account is <b>Paused')) {\n        msgException = msg;\n        msgException.exception = 'WhatsApp Nachricht vom '+ msg.msgCreated + ' ' +\n            'konnte nicht versendet werden. CallMeBot-Meldung: ' + msg.payload +\n            'Nachrichtentext: ' + msg.originalPayload;\n        msg = null;\n    // Nachricht wurde versendet.\n    } else {\n        // Alles gut\n        msgOkOutput = msg;\n        msg = null;\n    }\n}\n\nreturn [msgException, msgOkOutput, msg];\n",
        "outputs": 3,
        "timeout": "2",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 780,
        "y": 180,
        "wires": [
            [
                "1ada019450f6abb0"
            ],
            [
                "98aae129822e2d2c"
            ],
            [
                "aa15fbd09e835e61"
            ]
        ],
        "inputLabels": [
            "Textnachricht"
        ],
        "outputLabels": [
            "Exception",
            "Ok-Response",
            "HTTPS-API"
        ]
    },
    {
        "id": "aa15fbd09e835e61",
        "type": "delay",
        "z": "3e038939.79f446",
        "name": "RetryDelay",
        "pauseType": "delayv",
        "timeout": "1",
        "timeoutUnits": "milliseconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 930,
        "y": 220,
        "wires": [
            [
                "c63e2a1c7dfdad53"
            ]
        ]
    },
    {
        "id": "c63e2a1c7dfdad53",
        "type": "delay",
        "z": "3e038939.79f446",
        "name": "Limiter",
        "pauseType": "rate",
        "timeout": "5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "20",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 1070,
        "y": 220,
        "wires": [
            [
                "d642eb2f04de8913"
            ]
        ]
    },
    {
        "id": "1ada019450f6abb0",
        "type": "debug",
        "z": "3e038939.79f446",
        "name": "Exception",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 920,
        "y": 140,
        "wires": []
    },
    {
        "id": "610f38067c50c370",
        "type": "inject",
        "z": "3e038939.79f446",
        "name": "Testnachricht",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "Testnachricht",
        "payload": "Hallo Welt",
        "payloadType": "str",
        "x": 610,
        "y": 180,
        "wires": [
            [
                "ba308ea42973851c"
            ]
        ]
    },
    {
        "id": "98aae129822e2d2c",
        "type": "debug",
        "z": "3e038939.79f446",
        "name": "Output",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 910,
        "y": 180,
        "wires": []
    }
]