[
    {
        "id": "88ccbc5be73df02c",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": "# TODO important things\r\n\r\nthis flow needs some work\r\n\r\n- [ ] add more useful nodes\r\n- [ ] add some useless nodes for fun\r\n- [ ] delete the useless nodes to have a clean workspace\r\n- always keep the workspace clean\r\n\r\n# other things\r\nhello world",
        "env": []
    },
    {
        "id": "7af78f3eb7943a0c",
        "type": "tab",
        "label": "Flow 2",
        "disabled": false,
        "info": "#  TODO\r\n- [ ] create a useful flow here",
        "env": []
    },
    {
        "id": "5bd9a15cdb92542d",
        "type": "tab",
        "label": "Flow 3",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "4168ecac79119914",
        "type": "subflow",
        "name": "Subflow 1",
        "info": "# TODO\r\ndo subflow stuff xxxx",
        "category": "",
        "in": [],
        "out": [],
        "env": [],
        "meta": {},
        "color": "#DDAA99"
    },
    {
        "id": "9ecf897c9f95a858",
        "type": "subflow",
        "name": "Subflow 2",
        "info": "# TODO\r\nimplement subflow 2\r\n\r\n# Documentation\r\nthis is a subflow\r\n\r\n# Outputs\r\nThis is an additional output text\r\n- with list element\r\n\r\n# Inputs\r\nThis is an additional input text\r\n1. with num list\r\n<!-- 2. second point... -->",
        "category": "",
        "in": [
            {
                "x": 50,
                "y": 30,
                "wires": []
            }
        ],
        "out": [
            {
                "x": 810,
                "y": 160,
                "wires": []
            },
            {
                "x": 810,
                "y": 240,
                "wires": []
            },
            {
                "x": 740,
                "y": 320,
                "wires": []
            }
        ],
        "env": [],
        "meta": {},
        "color": "#DDAA99",
        "outputLabels": [
            "templateOutput 1",
            "templateOutput 2",
            ""
        ]
    },
    {
        "id": "d6a193d8f5a00b21",
        "type": "subflow",
        "name": "Subflow 3",
        "info": "# Docu\r\nSubflow 3 should have a Docu\r\n\r\n# TODO\r\n- [ ] add a Docu\r\n\r\n# Outputs",
        "category": "",
        "in": [],
        "out": [
            {
                "x": 650,
                "y": 120,
                "wires": [
                    {
                        "id": "34e65f5feba5c24f",
                        "port": 0
                    }
                ]
            },
            {
                "x": 690,
                "y": 180,
                "wires": [
                    {
                        "id": "34e65f5feba5c24f",
                        "port": 1
                    }
                ]
            }
        ],
        "env": [],
        "meta": {},
        "color": "#DDAA99",
        "outputLabels": [
            "default",
            "my second output"
        ]
    },
    {
        "id": "435c7258d0d57116",
        "type": "group",
        "z": "88ccbc5be73df02c",
        "name": "my group",
        "style": {
            "label": true
        },
        "nodes": [
            "dc88e356249f5130",
            "f0669c80e99966f8"
        ],
        "x": 74,
        "y": 179,
        "w": 612,
        "h": 82,
        "info": "# Todo\r\ninsert useful stuff\r\n\r\n# Docu\r\nGroup docu"
    },
    {
        "id": "900e9aebd26f2c84",
        "type": "inject",
        "z": "4168ecac79119914",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 200,
        "y": 80,
        "wires": [
            [
                "addcf838a0109da5"
            ]
        ]
    },
    {
        "id": "addcf838a0109da5",
        "type": "function",
        "z": "4168ecac79119914",
        "name": "function 1",
        "func": "\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 400,
        "y": 80,
        "wires": [
            [
                "97cba97f51e5d2d1"
            ]
        ]
    },
    {
        "id": "97cba97f51e5d2d1",
        "type": "debug",
        "z": "4168ecac79119914",
        "name": "debug 3",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 620,
        "y": 80,
        "wires": []
    },
    {
        "id": "450290bf3b1057c9",
        "type": "inject",
        "z": "9ecf897c9f95a858",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 140,
        "y": 120,
        "wires": [
            [
                "a5e8524e45b32ce6"
            ]
        ]
    },
    {
        "id": "abdd382a93e8ecd5",
        "type": "debug",
        "z": "9ecf897c9f95a858",
        "name": "debug 4",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 640,
        "y": 120,
        "wires": []
    },
    {
        "id": "a5e8524e45b32ce6",
        "type": "change",
        "z": "9ecf897c9f95a858",
        "name": "node in sf2",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 370,
        "y": 120,
        "wires": [
            [
                "abdd382a93e8ecd5"
            ]
        ],
        "info": "# Doc\r\n\r\nYour advertisment could stay here!\r\n\r\n# TODO"
    },
    {
        "id": "2f5766c12aff4a32",
        "type": "inject",
        "z": "d6a193d8f5a00b21",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 180,
        "y": 140,
        "wires": [
            [
                "34e65f5feba5c24f"
            ]
        ]
    },
    {
        "id": "34e65f5feba5c24f",
        "type": "switch",
        "z": "d6a193d8f5a00b21",
        "name": "node in sf3",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 410,
        "y": 140,
        "wires": [
            [],
            []
        ],
        "info": "# TODO implement logic\r\n\r\n# Hello World"
    },
    {
        "id": "830a24bb23f2264f",
        "type": "inject",
        "z": "88ccbc5be73df02c",
        "name": "start",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 120,
        "wires": [
            [
                "68f68ee73978dd82"
            ]
        ],
        "info": "# Input\r\n\r\n# Output\r\n"
    },
    {
        "id": "e54779751f55f485",
        "type": "debug",
        "z": "88ccbc5be73df02c",
        "name": "debug 1",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 960,
        "y": 100,
        "wires": [],
        "info": "# Outputs"
    },
    {
        "id": "0f61bb8bf562134e",
        "type": "function",
        "z": "88ccbc5be73df02c",
        "name": "does something important",
        "func": "\nreturn msg;",
        "outputs": 3,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 630,
        "y": 120,
        "wires": [
            [
                "e54779751f55f485"
            ],
            [],
            []
        ],
        "outputLabels": [
            "default",
            "special",
            "error"
        ],
        "info": "# Documentation\r\n\r\nThis is a _very detailed_ documentation written in a **markdown** editor.\r\n\r\n## It is very long and has too much text.\r\n\r\nTherefore it should not be able to see all in the popover.\r\n\r\n## But don't worry, you can scroll downwards.\r\n\r\nAt the end there will be the edit button....\r\n\r\n## You don't have to read all this\r\n\r\n## This is only to make the documentation very long...\r\n\r\n## For real...\r\n\r\nMaybe this Button should have a absolute position.\r\n\r\nBut not for now...\r\n\r\nYou have to scroll...\r\n\r\n# Input\r\n\r\n# Output\r\n\r\nThis is a docu to the three outputs, but only the special and the error output are documentated...\r\n\r\n## special\r\n\r\nThis special output would be much more important if the flow would go on!\r\n\r\n## error\r\n\r\nWell, this is unfortunate...\r\n\r\n\r\n# TODO\r\n\r\n- [x] todo is in tooltip on top\r\n- [x] output is second\r\n- [x] rest is documentation \r\n"
    },
    {
        "id": "68f68ee73978dd82",
        "type": "function",
        "z": "88ccbc5be73df02c",
        "name": "not yet implemented",
        "func": "\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 340,
        "y": 120,
        "wires": [
            [
                "0f61bb8bf562134e"
            ]
        ],
        "outputLabels": [
            "the only one"
        ],
        "info": "# Todo short but important info!\r\n\r\n## a useful list\r\n\r\n- [x] thinking what should the node do\r\n- [ ] writing code\r\n- [ ] enjoy\r\n- [ ] buy milk\r\n\r\n## other things to reconsider\r\n\r\nthere is nothing to reconsider\r\n\r\n# some additional text (documentation)\r\nthis node does some things\r\n\r\n# Outputs\r\n"
    },
    {
        "id": "dc88e356249f5130",
        "type": "inject",
        "z": "88ccbc5be73df02c",
        "g": "435c7258d0d57116",
        "name": "node in a group",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 200,
        "y": 220,
        "wires": [
            [
                "f0669c80e99966f8"
            ]
        ],
        "info": "# Todo\r\na todo in a group"
    },
    {
        "id": "f0669c80e99966f8",
        "type": "debug",
        "z": "88ccbc5be73df02c",
        "g": "435c7258d0d57116",
        "name": "debug 2",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 580,
        "y": 220,
        "wires": []
    },
    {
        "id": "e6e2162222bf6267",
        "type": "subflow:4168ecac79119914",
        "z": "88ccbc5be73df02c",
        "name": "Subflow 1 node (no own Todo and Documentation)",
        "x": 270,
        "y": 320,
        "wires": []
    },
    {
        "id": "c920ee5e47536231",
        "type": "subflow:9ecf897c9f95a858",
        "z": "88ccbc5be73df02c",
        "name": "Subflow 2 (own documentation)",
        "x": 210,
        "y": 380,
        "wires": [
            [],
            [],
            []
        ],
        "outputLabels": [
            "Node output 1",
            "",
            ""
        ],
        "info": "This documentation overwrites the subflow documentation...\r\n\r\nBut not the Todo... only if a Todo header is set here\r\n\r\n# My documentation\r\nIt also can have own headers\r\n\r\n## H2\r\n### H3\r\n#### H4"
    },
    {
        "id": "2780dd2ee5f4686d",
        "type": "subflow:d6a193d8f5a00b21",
        "z": "88ccbc5be73df02c",
        "name": "Subflow 3 node (own todo)",
        "x": 190,
        "y": 440,
        "wires": [
            [],
            []
        ],
        "icon": "node-red/light.svg",
        "info": "# TODO \r\n- this overwrites the todo docu from sf3"
    },
    {
        "id": "e5a74e06a1d43956",
        "type": "comment",
        "z": "88ccbc5be73df02c",
        "name": "completed tasks",
        "info": "# TODO\n\n- [x] done\n- [x] also done\n- [x] somehow done\n- [x] really done\n",
        "x": 154,
        "y": 60,
        "wires": []
    },
    {
        "id": "e8d8ea7d30247e26",
        "type": "switch",
        "z": "88ccbc5be73df02c",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "btwn",
                "v": "1",
                "vt": "num",
                "v2": "5",
                "v2t": "num"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 930,
        "y": 220,
        "wires": [
            [],
            [],
            [],
            []
        ],
        "info": "# Outputs"
    },
    {
        "id": "652aa3c0f951179f",
        "type": "switch",
        "z": "88ccbc5be73df02c",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 790,
        "y": 220,
        "wires": [
            [],
            [],
            [],
            []
        ],
        "inputLabels": [
            "incoming data"
        ],
        "outputLabels": [
            "default",
            "special 1",
            "another special",
            "error"
        ],
        "info": "# Outputs\r\n\r\nThis is a generell hint to the outputs\r\n\r\n## special 1\r\nThis is a hint for the special 1 output.\r\n- Why does it exists?\r\n- Does special 2 exists?\r\n\r\n# Inputs"
    },
    {
        "id": "dfbba731a8565242",
        "type": "switch",
        "z": "88ccbc5be73df02c",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 5,
        "x": 890,
        "y": 360,
        "wires": [
            [],
            [],
            [],
            [],
            []
        ],
        "info": "# Input\r\n\r\n# Output"
    },
    {
        "id": "deb69ff56b4186a2",
        "type": "debug",
        "z": "88ccbc5be73df02c",
        "name": "debug 7",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 580,
        "y": 440,
        "wires": [],
        "info": "xaxa"
    },
    {
        "id": "7a1c3d8d36ad7079",
        "type": "function",
        "z": "88ccbc5be73df02c",
        "name": "function 2",
        "func": "\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 420,
        "y": 600,
        "wires": [
            []
        ],
        "info": "# Input\r\n\r\n # Output"
    },
    {
        "id": "0ee4a7e83f482b8c",
        "type": "inject",
        "z": "7af78f3eb7943a0c",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 160,
        "y": 100,
        "wires": [
            [
                "f15c700167abeacd"
            ]
        ]
    },
    {
        "id": "f33bb44d267b43e3",
        "type": "debug",
        "z": "7af78f3eb7943a0c",
        "name": "debug 6",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 560,
        "y": 100,
        "wires": []
    },
    {
        "id": "f15c700167abeacd",
        "type": "function",
        "z": "7af78f3eb7943a0c",
        "name": "node in workspace 2",
        "func": "\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 360,
        "y": 100,
        "wires": [
            [
                "f33bb44d267b43e3"
            ]
        ],
        "info": "# TODO\r\n- [ ] create a function"
    }
]