[{"data":1,"prerenderedAt":12673},["ShallowReactive",2],{"blog-\u002Fblog\u002F2025\u002F04\u002Fbuilding-oee-dashboard-with-flowfuse-2":3,"blog-all-for-related":12672},{"id":4,"title":5,"authors":6,"body":8,"cta":12644,"date":12645,"description":12646,"extension":12647,"image":12648,"lastUpdated":12644,"meta":12649,"navigation":9981,"path":12664,"seo":12665,"sitemap":12666,"stem":12667,"subtitle":12668,"tags":12669,"tldr":12644,"video":12644,"__hash__":12671},"blog\u002Fblog\u002F2025\u002F04\u002Fbuilding-oee-dashboard-with-flowfuse-2.md","Part 2: Building an OEE Dashboard with FlowFuse",[7],"sumit-shinde",{"type":9,"value":10,"toc":12621},"minimark",[11,33,38,41,60,69,72,77,80,118,122,125,8568,8604,8607,8616,8620,8623,8628,8696,8711,8719,8723,8854,8862,8866,8869,9088,9095,9104,9112,9116,9119,9359,9367,9371,9374,9377,9397,9401,9409,9722,9757,9761,9862,9866,9889,11079,11088,11092,11095,11100,11124,11188,11193,11244,11248,11272,12269,12294,12303,12307,12310,12313,12565,12573,12576,12585,12592,12595,12598,12602,12618],[12,13,14,15,20,21,27,28,32],"p",{},"In ",[16,17,19],"a",{"href":18},"\u002Fblog\u002F2025\u002F04\u002Fbuilding-oee-dashboard-with-flowfuse-part-1\u002F","Part 1",", we explored the fundamentals of OEE, outlined a basic design of the dashboard, and identified the key elements to include in the OEE dashboard.\nIn this Part 2, we will focus on building the OEE dashboard interface using ",[16,22,26],{"href":23,"rel":24},"https:\u002F\u002Fdashboard.flowfuse.com\u002F",[25],"nofollow","FlowFuse Dashboard"," (Node-RED Dashboard 2.0) and FlowFuse, utilizing simulated production and downtime data, the same kind of data you'd track for torque, weld cycle time, or paint throughput on an ",[16,29,31],{"href":30},"\u002Findustries\u002Fautomotive\u002F","automotive"," line.",[34,35,37],"h2",{"id":36},"getting-started","Getting Started",[12,39,40],{},"To simplify the development process, we will divide development into five key parts:",[42,43,44,48,51,54,57],"ol",{},[45,46,47],"li",{},"Collecting and configuring data",[45,49,50],{},"Preparing data for calculations",[45,52,53],{},"Calculating OEE and key metrics",[45,55,56],{},"Detailed breakdown of OEE data",[45,58,59],{},"Building the dashboard",[12,61,62,63,68],{},"Before we start, it is recommended to have a basic knowledge of Node-RED. For that, I recommend this free ",[16,64,67],{"href":65,"rel":66},"https:\u002F\u002Fnode-red-academy.learnworlds.com\u002Fcourse\u002Fnode-red-getting-started",[25],"Node-RED Fundamental Course",".",[12,70,71],{},"Additionally, ensure that you organize flows into well-structured groups. To match my group organization, I have provided images of the flow for each section. Also, if a Link In node is present at the start, create the group starting from the Link In node and ending at the Link Out node.",[73,74,76],"h3",{"id":75},"prerequisites","Prerequisites",[12,78,79],{},"Before you begin building the OEE Dashboard with FlowFuse, make sure you have the following:",[81,82,83,96,107],"ul",{},[45,84,85,89,90,95],{},[86,87,88],"strong",{},"Running FlowFuse Instance:"," Make sure you have a FlowFuse instance set up and running. If you don't have an account, check out our ",[16,91,94],{"href":92,"rel":93},"https:\u002F\u002Fapp.flowfuse.com\u002Faccount\u002Fcreate",[25],"free trial"," and learn how to create an instance in FlowFuse.",[45,97,98,101,102,106],{},[86,99,100],{},"FlowFuse Dashboard:"," Ensure you have ",[16,103,26],{"href":104,"rel":105},"https:\u002F\u002Fflows.nodered.org\u002Fnode\u002F@flowfuse\u002Fnode-red-dashboard",[25]," (also known as Node-RED Dashboard 2.0 in the community) installed and properly configured on your instance.",[45,108,109,101,112,117],{},[86,110,111],{},"SQLite Contrib Node:",[16,113,116],{"href":114,"rel":115},"https:\u002F\u002Fflows.nodered.org\u002Fnode\u002Fnode-red-node-sqlite",[25],"node-red-contrib-sqlite"," installed.",[73,119,121],{"id":120},"preparing-simulated-data","Preparing Simulated Data",[12,123,124],{},"Before building the dashboard, we need a data source for production and downtime metrics. This data will serve as input for OEE calculations. We will focus on connecting a real source in the next part, but for now, let's generate simulated data.",[126,127,129],"render-flow",{":height":128},"300",[130,131,136],"pre",{"className":132,"code":133,"language":134,"meta":135,"style":135},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[{\"id\":\"fa7147e04d4d5ec3\",\"type\":\"tab\",\"label\":\"Simulated Data Generation\",\"disabled\":false,\"info\":\"\",\"env\":[]},{\"id\":\"3f2126c3c00b9e0d\",\"type\":\"group\",\"z\":\"fa7147e04d4d5ec3\",\"style\":{\"stroke\":\"#b2b3bd\",\"stroke-opacity\":\"1\",\"fill\":\"#f2f3fb\",\"fill-opacity\":\"0.5\",\"label\":true,\"label-position\":\"nw\",\"color\":\"#32333b\"},\"nodes\":[\"853fb3a395d833bb\",\"a96ffd171bf11823\",\"3d30995a4329eb71\",\"0f466ba2a885e22a\",\"f8229c651706b162\",\"2ceebc93d54adba4\",\"0c927abd3b139e97\",\"8222855bc32e9240\"],\"x\":24,\"y\":99,\"w\":1142,\"h\":182},{\"id\":\"07a3d5b9075ff846\",\"type\":\"group\",\"z\":\"fa7147e04d4d5ec3\",\"style\":{\"stroke\":\"#b2b3bd\",\"stroke-opacity\":\"1\",\"fill\":\"#f2f3fb\",\"fill-opacity\":\"0.5\",\"label\":true,\"label-position\":\"nw\",\"color\":\"#32333b\"},\"nodes\":[\"aa7bd867fa7daca5\",\"234aef8a999cb8d9\",\"d7641c9327f295f8\",\"c3e96b73cd6ec586\",\"13f2e851e3f28ec6\",\"9a444655c076d5a7\",\"e1fe1b1a4f1ef2e5\",\"2beb68abc5da93bc\",\"b83d517fae3c7bbf\",\"50ebbbfb159a3cbe\",\"8873774ad339b67e\",\"77e22b20d1862c7e\"],\"x\":-6,\"y\":299,\"w\":2092,\"h\":162},{\"id\":\"c0550db87d6fb947\",\"type\":\"group\",\"z\":\"fa7147e04d4d5ec3\",\"style\":{\"stroke\":\"#b2b3bd\",\"stroke-opacity\":\"1\",\"fill\":\"#f2f3fb\",\"fill-opacity\":\"0.5\",\"label\":true,\"label-position\":\"nw\",\"color\":\"#32333b\"},\"nodes\":[\"b1f773f4cc2266c6\",\"cce91928076adb23\",\"d853a554ecd152b1\",\"45628fb0ca0a4672\",\"36ae627ad694fc09\",\"69afd49e2ceb191b\",\"808db5612ba1aedc\",\"6dcd69acd5990793\"],\"x\":34,\"y\":479,\"w\":1202,\"h\":142},{\"id\":\"a96ffd171bf11823\",\"type\":\"template\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"3f2126c3c00b9e0d\",\"name\":\"Create ProductionData table\",\"field\":\"topic\",\"fieldType\":\"msg\",\"format\":\"sql\",\"syntax\":\"mustache\",\"template\":\"CREATE TABLE IF NOT EXISTS ProductionData (\\n    id INTEGER PRIMARY KEY AUTOINCREMENT,\\n    timestamp DATETIME NOT NULL,\\n    area VARCHAR(255) NOT NULL,\\n    line VARCHAR(100) NOT NULL,  \\n    machine_name VARCHAR(255) NOT NULL,\\n    shift VARCHAR(50) NOT NULL,\\n    shift_duration DECIMAL(5,2) NOT NULL,\\n    good_units INT NOT NULL,\\n    defect_units INT NOT NULL,\\n    total_produced_units INT NOT NULL,\\n    cycle_time DECIMAL(5,2) NOT NULL,\\n    ideal_cycle_time DECIMAL(5,2) NOT NULL,\\n    target_output INT NOT NULL DEFAULT 0,\\n    operating_time INT NOT NULL\\n);\\n\",\"output\":\"str\",\"x\":500,\"y\":140,\"wires\":[[\"853fb3a395d833bb\"]]},{\"id\":\"3d30995a4329eb71\",\"type\":\"inject\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"3f2126c3c00b9e0d\",\"name\":\"\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":true,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":150,\"y\":140,\"wires\":[[\"a96ffd171bf11823\"]]},{\"id\":\"0f466ba2a885e22a\",\"type\":\"debug\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"3f2126c3c00b9e0d\",\"name\":\"debug 1\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1050,\"y\":140,\"wires\":[]},{\"id\":\"2ceebc93d54adba4\",\"type\":\"template\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"3f2126c3c00b9e0d\",\"name\":\"Create Downtime table\",\"field\":\"topic\",\"fieldType\":\"msg\",\"format\":\"sql\",\"syntax\":\"mustache\",\"template\":\"CREATE TABLE IF NOT EXISTS DowntimeData (\\n    id INTEGER PRIMARY KEY AUTOINCREMENT,\\n    timestamp DATETIME NOT NULL,\\n    area VARCHAR(255) NOT NULL,\\n    line VARCHAR(100) NOT NULL,  \\n    machine_name VARCHAR(255) NOT NULL,\\n    shift VARCHAR(50) NOT NULL,\\n    downtime_start DATETIME NOT NULL,\\n    downtime_end DATETIME NOT NULL,\\n    downtime_duration_minutes INTEGER NOT NULL,\\n    downtime_type VARCHAR(50) NOT NULL CHECK (downtime_type IN ('Planned', 'Unplanned')),\\n    downtime_reason TEXT NOT NULL\\n);\\n\",\"output\":\"str\",\"x\":440,\"y\":240,\"wires\":[[\"f8229c651706b162\"]]},{\"id\":\"0c927abd3b139e97\",\"type\":\"inject\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"3f2126c3c00b9e0d\",\"name\":\"\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":true,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":150,\"y\":240,\"wires\":[[\"2ceebc93d54adba4\"]]},{\"id\":\"8222855bc32e9240\",\"type\":\"debug\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"3f2126c3c00b9e0d\",\"name\":\"debug 2\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1050,\"y\":240,\"wires\":[]},{\"id\":\"234aef8a999cb8d9\",\"type\":\"template\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"Insert production data record\",\"field\":\"topic\",\"fieldType\":\"msg\",\"format\":\"handlebars\",\"syntax\":\"mustache\",\"template\":\"INSERT INTO ProductionData (\\n    timestamp, \\n    area, \\n    line, \\n    machine_name, \\n    shift, \\n    shift_duration, \\n    good_units, \\n    defect_units, \\n    total_produced_units, \\n    cycle_time, \\n    ideal_cycle_time,  \\n    target_output,\\n    operating_time  \\n) \\nVALUES (\\n    '{{payload.timestamp}}', \\n    '{{payload.area}}', \\n    '{{payload.line}}', \\n    '{{payload.machine_name}}', \\n    '{{payload.shift}}', \\n    '{{payload.shift_duration}}',  \\n    '{{payload.good_units}}',  \\n    '{{payload.defect_units}}',  \\n    '{{payload.total_produced_units}}',  \\n    '{{payload.cycle_time}}',  \\n    '{{payload.ideal_cycle_time}}',  \\n    '{{payload.target_output}}',  \\n    '{{payload.operating_time}}'  \\n);\\n\",\"output\":\"str\",\"x\":1550,\"y\":340,\"wires\":[[\"aa7bd867fa7daca5\"]]},{\"id\":\"d7641c9327f295f8\",\"type\":\"debug\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"debug 3\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1970,\"y\":340,\"wires\":[]},{\"id\":\"cce91928076adb23\",\"type\":\"template\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"c0550db87d6fb947\",\"name\":\"Drop demo downtime data\",\"field\":\"topic\",\"fieldType\":\"msg\",\"format\":\"sql\",\"syntax\":\"mustache\",\"template\":\"Drop table DowntimeData;\",\"output\":\"str\",\"x\":480,\"y\":580,\"wires\":[[\"b1f773f4cc2266c6\"]]},{\"id\":\"d853a554ecd152b1\",\"type\":\"inject\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"c0550db87d6fb947\",\"name\":\"\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":150,\"y\":580,\"wires\":[[\"cce91928076adb23\"]]},{\"id\":\"45628fb0ca0a4672\",\"type\":\"debug\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"c0550db87d6fb947\",\"name\":\"debug 5\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1120,\"y\":580,\"wires\":[]},{\"id\":\"c3e96b73cd6ec586\",\"type\":\"inject\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"Click to generate and insert demo data.\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"0.5\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":230,\"y\":380,\"wires\":[[\"13f2e851e3f28ec6\"]]},{\"id\":\"13f2e851e3f28ec6\",\"type\":\"function\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"Generate simulated production and downtime data\",\"func\":\"function generateProductionData() {\\n    const areas = {\\n        \\\"Pressing\\\": [\\\"Hydraulic Press\\\", \\\"CNC Press Brake\\\", \\\"Stamping Press\\\", \\\"Power Press\\\"],\\n        \\\"Assembly\\\": [\\\"Robotic Arm\\\", \\\"Screw Insertion Machine\\\", \\\"Pick-and-Place Machine\\\"],\\n        \\\"Packaging\\\": [\\\"Carton Sealing Machine\\\", \\\"Shrink Wrapping Machine\\\", \\\"Bottle Filling and Capping Machine\\\", \\\"Flow Wrapper\\\"]\\n    };\\n\\n    const shifts = [\\\"Shift 1\\\", \\\"Shift 2\\\", \\\"Shift 3\\\"];\\n    const shiftStartTimes = {\\n        \\\"Shift 1\\\": \\\"00:00:00\\\",\\n        \\\"Shift 2\\\": \\\"08:00:00\\\",\\n        \\\"Shift 3\\\": \\\"16:00:00\\\"\\n    };\\n\\n    const uniqueShortCodes = {\\n        \\\"Pressing\\\": [\\\"HP\\\", \\\"PB\\\", \\\"SP\\\", \\\"PP\\\"],\\n        \\\"Assembly\\\": [\\\"RA\\\", \\\"SIM\\\", \\\"P and P\\\"],\\n        \\\"Packaging\\\": [\\\"CSM\\\", \\\"SWM\\\", \\\"BFCM\\\", \\\"FW\\\"]\\n    };\\n\\n    const downtimeTypes = [\\\"Planned\\\", \\\"Unplanned\\\"];\\n    const plannedDowntimeReasons = [\\n        \\\"Scheduled Maintenance\\\", \\\"Equipment Upgrades\\\", \\\"Shift Changeover\\\",\\n        \\\"Tool Changeover\\\", \\\"Calibration and Quality Checks\\\", \\\"Cleaning and Sanitation\\\", \\\"Planned Power Outage\\\"\\n    ];\\n    const unplannedDowntimeReasons = [\\n        \\\"Power Failure\\\", \\\"Material Shortage\\\", \\\"Technical Fault\\\", \\\"Operator Unavailable\\\"\\n    ];\\n\\n    const data = [];\\n    const downtimeData = [];\\n    const now = new Date();\\n\\n    const normalizeTimestamp = (timestamp) => timestamp.toISOString().split(\\\"T\\\").join(\\\" \\\").slice(0, 19);\\n\\n    for (let i = 0; i \u003C 30; i++) {\\n        const date = new Date();\\n        date.setDate(now.getDate() - i);\\n        const formattedDate = date.toISOString().split(\\\"T\\\")[0];\\n\\n        shifts.forEach(shift => {\\n            const shiftStart = shiftStartTimes[shift];\\n            const shiftTimestamp = new Date(`${formattedDate}T${shiftStart}`);\\n\\n            Object.entries(areas).forEach(([area, machines]) => {\\n                machines.forEach((_, index) => {\\n                    const randomCode = uniqueShortCodes[area][Math.floor(Math.random() * uniqueShortCodes[area].length)];\\n                    const uniqueID = Math.floor(10000 + Math.random() * 90000);\\n                    const shortMachineName = `${randomCode}-${uniqueID}`;\\n\\n                    const shiftDuration = 8;\\n                    let totalDowntimeMinutes = 0;\\n                    let downtimeEvents = [];\\n\\n                    \u002F\u002F Increase downtime frequency (up to 4 events per shift)\\n                    const numDowntimes = Math.floor(Math.random() * 4) + 1;\\n\\n                    for (let d = 0; d \u003C numDowntimes; d++) {\\n                        if (Math.random() \u003C 0.75) {  \u002F\u002F Increase probability of downtime\\n                            let downtimeMinutes = Math.floor(5 + Math.random() * 10); \u002F\u002F Shorter downtimes (5-15 mins)\\n                            totalDowntimeMinutes += downtimeMinutes;\\n\\n                            const downtimeStartMinutes = Math.floor(Math.random() * (shiftDuration * 60 - downtimeMinutes));\\n                            const downtimeStart = new Date(shiftTimestamp);\\n                            downtimeStart.setMinutes(downtimeStart.getMinutes() + downtimeStartMinutes);\\n\\n                            const downtimeEnd = new Date(downtimeStart);\\n                            downtimeEnd.setMinutes(downtimeEnd.getMinutes() + downtimeMinutes);\\n\\n                            const downtimeType = downtimeTypes[Math.floor(Math.random() * downtimeTypes.length)];\\n                            const downtimeReason = downtimeType === \\\"Planned\\\"\\n                                ? plannedDowntimeReasons[Math.floor(Math.random() * plannedDowntimeReasons.length)]\\n                                : unplannedDowntimeReasons[Math.floor(Math.random() * unplannedDowntimeReasons.length)];\\n\\n                            downtimeEvents.push({\\n                                timestamp: normalizeTimestamp(shiftTimestamp),\\n                                area,\\n                                machine_name: shortMachineName,\\n                                shift,\\n                                downtime_start: normalizeTimestamp(downtimeStart),\\n                                downtime_end: normalizeTimestamp(downtimeEnd),\\n                                downtime_duration_minutes: downtimeMinutes,\\n                                downtime_reason: downtimeReason,\\n                                downtime_type: downtimeType,\\n                                line: `Line-${index + 1}`\\n                            });\\n                        }\\n                    }\\n\\n                    const operatingTime = (shiftDuration * 60 - totalDowntimeMinutes) * 60;\\n                    let efficiency = Math.random() * 0.2 + 0.75;\\n                    let targetOutput = Math.floor(operatingTime \u002F 3) || 1;\\n                    let totalProduced = Math.floor(targetOutput * efficiency);\\n                    totalProduced = Math.min(totalProduced, targetOutput);\\n\\n                    const defectRate = Math.random() * 0.02 + 0.01;\\n                    const defectUnits = Math.floor(totalProduced * defectRate);\\n                    const goodUnits = totalProduced - defectUnits;\\n\\n                    data.push({\\n                        timestamp: normalizeTimestamp(shiftTimestamp),\\n                        area,\\n                        machine_name: shortMachineName,\\n                        shift,\\n                        shift_duration: shiftDuration,\\n                        operating_time: operatingTime - totalDowntimeMinutes * 60,\\n                        good_units: goodUnits,\\n                        defect_units: defectUnits,\\n                        total_produced_units: totalProduced,\\n                        target_output: targetOutput,\\n                        line: `Line-${index + 1}`\\n                    });\\n\\n                    downtimeData.push(...downtimeEvents);\\n                });\\n            });\\n        });\\n    }\\n\\n    return [\\n        { payload: data },\\n        { payload: downtimeData }\\n    ];\\n}\\n\\nconst productionDataSet = generateProductionData();\\n\\nreturn [\\n    { payload: productionDataSet[0].payload },\\n    { payload: productionDataSet[1].payload }\\n];\\n\",\"outputs\":2,\"timeout\":0,\"noerr\":0,\"initialize\":\"\",\"finalize\":\"\",\"libs\":[],\"x\":690,\"y\":380,\"wires\":[[\"9a444655c076d5a7\"],[\"8873774ad339b67e\"]]},{\"id\":\"9a444655c076d5a7\",\"type\":\"split\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"\",\"splt\":\"\\\\n\",\"spltType\":\"str\",\"arraySplt\":1,\"arraySpltType\":\"len\",\"stream\":false,\"addname\":\"\",\"x\":1060,\"y\":340,\"wires\":[[\"e1fe1b1a4f1ef2e5\"]]},{\"id\":\"e1fe1b1a4f1ef2e5\",\"type\":\"delay\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"10 msg\u002Fs\",\"pauseType\":\"rate\",\"timeout\":\"5\",\"timeoutUnits\":\"seconds\",\"rate\":\"10\",\"nbRateUnits\":\"1\",\"rateUnits\":\"second\",\"randomFirst\":\"1\",\"randomLast\":\"5\",\"randomUnits\":\"seconds\",\"drop\":false,\"allowrate\":false,\"outputs\":1,\"x\":1280,\"y\":340,\"wires\":[[\"234aef8a999cb8d9\"]]},{\"id\":\"b83d517fae3c7bbf\",\"type\":\"template\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"Insert downtime data record\",\"field\":\"topic\",\"fieldType\":\"msg\",\"format\":\"handlebars\",\"syntax\":\"mustache\",\"template\":\"INSERT INTO DowntimeData ( timestamp, area, line, machine_name, shift, \\n    downtime_start, downtime_end, downtime_duration_minutes, \\n    downtime_type, downtime_reason\\n)  \\nVALUES (\\n    '{{payload.timestamp}}',  \\n    '{{payload.area}}', \\n    '{{payload.line}}', \\n    '{{payload.machine_name}}', \\n    '{{payload.shift}}', \\n    '{{payload.downtime_start}}',\\n    '{{payload.downtime_end}}',  \\n    {{payload.downtime_duration_minutes}},  \\n    '{{payload.downtime_type}}',  \\n    '{{payload.downtime_reason}}'  \\n);\\n\",\"output\":\"str\",\"x\":1550,\"y\":420,\"wires\":[[\"2beb68abc5da93bc\"]]},{\"id\":\"50ebbbfb159a3cbe\",\"type\":\"debug\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"debug 8\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1970,\"y\":420,\"wires\":[]},{\"id\":\"8873774ad339b67e\",\"type\":\"split\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"\",\"splt\":\"\\\\n\",\"spltType\":\"str\",\"arraySplt\":1,\"arraySpltType\":\"len\",\"stream\":false,\"addname\":\"\",\"x\":1060,\"y\":420,\"wires\":[[\"77e22b20d1862c7e\"]]},{\"id\":\"77e22b20d1862c7e\",\"type\":\"delay\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"name\":\"10 msg\u002Fs\",\"pauseType\":\"rate\",\"timeout\":\"5\",\"timeoutUnits\":\"seconds\",\"rate\":\"10\",\"nbRateUnits\":\"1\",\"rateUnits\":\"second\",\"randomFirst\":\"1\",\"randomLast\":\"5\",\"randomUnits\":\"seconds\",\"drop\":false,\"allowrate\":false,\"outputs\":1,\"x\":1280,\"y\":420,\"wires\":[[\"b83d517fae3c7bbf\"]]},{\"id\":\"69afd49e2ceb191b\",\"type\":\"template\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"c0550db87d6fb947\",\"name\":\"Drop demo production data\",\"field\":\"topic\",\"fieldType\":\"msg\",\"format\":\"sql\",\"syntax\":\"mustache\",\"template\":\"Drop table ProductionData;\",\"output\":\"str\",\"x\":480,\"y\":520,\"wires\":[[\"36ae627ad694fc09\"]]},{\"id\":\"808db5612ba1aedc\",\"type\":\"inject\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"c0550db87d6fb947\",\"name\":\"\",\"props\":[{\"p\":\"payload\"},{\"p\":\"topic\",\"vt\":\"str\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":0.1,\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":150,\"y\":520,\"wires\":[[\"69afd49e2ceb191b\"]]},{\"id\":\"6dcd69acd5990793\",\"type\":\"debug\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"c0550db87d6fb947\",\"name\":\"debug 4\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":false,\"complete\":\"false\",\"statusVal\":\"\",\"statusType\":\"auto\",\"x\":1120,\"y\":520,\"wires\":[]},{\"id\":\"853fb3a395d833bb\",\"type\":\"sqlite\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"3f2126c3c00b9e0d\",\"mydb\":\"1ae6d7f7fdb60191\",\"sqlquery\":\"msg.topic\",\"sql\":\"\",\"name\":\"\",\"x\":720,\"y\":140,\"wires\":[[\"0f466ba2a885e22a\"]]},{\"id\":\"f8229c651706b162\",\"type\":\"sqlite\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"3f2126c3c00b9e0d\",\"mydb\":\"1ae6d7f7fdb60191\",\"sqlquery\":\"msg.topic\",\"sql\":\"\",\"name\":\"\",\"x\":720,\"y\":240,\"wires\":[[\"8222855bc32e9240\"]]},{\"id\":\"aa7bd867fa7daca5\",\"type\":\"sqlite\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"mydb\":\"1ae6d7f7fdb60191\",\"sqlquery\":\"msg.topic\",\"sql\":\"\",\"name\":\"\",\"x\":1780,\"y\":340,\"wires\":[[\"d7641c9327f295f8\"]]},{\"id\":\"b1f773f4cc2266c6\",\"type\":\"sqlite\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"c0550db87d6fb947\",\"mydb\":\"1ae6d7f7fdb60191\",\"sqlquery\":\"msg.topic\",\"sql\":\"\",\"name\":\"\",\"x\":730,\"y\":580,\"wires\":[[\"45628fb0ca0a4672\"]]},{\"id\":\"2beb68abc5da93bc\",\"type\":\"sqlite\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"07a3d5b9075ff846\",\"mydb\":\"1ae6d7f7fdb60191\",\"sqlquery\":\"msg.topic\",\"sql\":\"\",\"name\":\"\",\"x\":1780,\"y\":420,\"wires\":[[\"50ebbbfb159a3cbe\"]]},{\"id\":\"36ae627ad694fc09\",\"type\":\"sqlite\",\"z\":\"fa7147e04d4d5ec3\",\"g\":\"c0550db87d6fb947\",\"mydb\":\"1ae6d7f7fdb60191\",\"sqlquery\":\"msg.topic\",\"sql\":\"\",\"name\":\"\",\"x\":730,\"y\":520,\"wires\":[[\"6dcd69acd5990793\"]]},{\"id\":\"1ae6d7f7fdb60191\",\"type\":\"sqlitedb\",\"db\":\"sqllite\",\"mode\":\"RWC\"}]\n","json","",[137,138,139],"code",{"__ignoreMap":135},[140,141,144,148,151,155,157,160,162,166,168,171,173,176,178,180,182,185,187,189,191,194,196,198,200,203,205,207,209,212,214,217,219,222,224,226,229,231,233,236,238,241,243,245,247,249,251,254,256,258,260,262,264,266,268,271,273,275,277,280,282,284,286,288,290,292,294,297,299,302,304,308,310,312,314,317,319,321,323,326,328,330,332,335,337,339,341,344,346,348,350,353,355,357,359,362,364,366,368,371,373,375,377,379,381,384,386,389,391,393,395,398,400,402,404,407,409,411,413,416,418,421,423,426,428,431,433,436,438,440,442,445,447,449,451,454,456,458,460,463,465,467,469,472,474,476,478,481,483,485,487,490,492,494,496,499,501,504,506,509,511,513,517,519,521,524,526,528,531,533,535,538,540,542,545,547,549,552,554,556,559,562,564,566,568,570,572,575,577,579,581,583,585,587,589,591,593,595,597,599,601,603,605,607,609,611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,736,738,740,742,745,747,749,751,754,756,758,760,763,765,767,769,772,774,776,778,781,783,785,787,790,792,794,796,799,801,803,805,808,810,812,814,817,819,821,823,826,828,830,832,835,837,839,841,843,845,847,850,852,854,856,858,860,863,865,867,869,871,873,876,878,880,882,884,886,889,891,893,895,897,899,901,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1065,1067,1069,1071,1074,1076,1078,1080,1083,1085,1087,1089,1092,1094,1096,1098,1101,1103,1105,1107,1110,1112,1114,1116,1119,1121,1123,1125,1128,1130,1132,1134,1136,1138,1140,1143,1145,1147,1149,1151,1153,1156,1158,1160,1162,1164,1166,1169,1171,1173,1175,1177,1179,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233,1235,1238,1240,1242,1244,1246,1248,1250,1252,1255,1257,1259,1261,1264,1266,1268,1270,1273,1275,1277,1279,1282,1284,1286,1288,1291,1293,1295,1297,1300,1302,1304,1306,1309,1311,1313,1315,1318,1320,1322,1324,1327,1329,1331,1333,1336,1338,1340,1342,1344,1346,1348,1350,1353,1357,1360,1362,1365,1367,1370,1372,1375,1377,1380,1382,1385,1387,1390,1392,1395,1397,1400,1402,1405,1407,1410,1412,1415,1417,1420,1422,1425,1427,1430,1432,1434,1436,1438,1441,1443,1445,1447,1450,1452,1454,1456,1458,1460,1462,1465,1467,1469,1471,1473,1475,1478,1480,1482,1485,1487,1490,1492,1494,1496,1499,1501,1503,1505,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1581,1583,1586,1588,1590,1592,1594,1596,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1624,1626,1628,1630,1632,1634,1637,1639,1642,1644,1646,1648,1650,1652,1655,1657,1659,1661,1663,1665,1668,1670,1672,1674,1677,1679,1681,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1715,1717,1719,1721,1724,1726,1728,1730,1732,1734,1736,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844,1847,1849,1851,1853,1856,1858,1860,1862,1865,1867,1869,1871,1874,1876,1878,1880,1883,1885,1887,1889,1892,1894,1896,1898,1901,1903,1905,1907,1910,1912,1914,1916,1918,1920,1923,1925,1927,1929,1932,1934,1936,1938,1940,1942,1944,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2046,2048,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118,2120,2122,2124,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2156,2158,2161,2163,2166,2168,2171,2173,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2213,2215,2217,2219,2221,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2402,2404,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438,2440,2442,2444,2446,2448,2450,2452,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2577,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627,2629,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2663,2665,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2766,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804,2806,2808,2810,2812,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837,2839,2841,2843,2845,2848,2850,2853,2855,2858,2860,2863,2865,2868,2870,2873,2875,2878,2880,2883,2885,2888,2890,2893,2895,2898,2900,2903,2905,2908,2910,2913,2915,2918,2920,2923,2925,2928,2930,2933,2935,2938,2940,2943,2945,2948,2950,2953,2955,2958,2960,2963,2965,2968,2970,2973,2975,2978,2980,2983,2985,2988,2990,2992,2994,2996,2998,3000,3002,3004,3006,3008,3010,3012,3014,3016,3018,3020,3022,3025,3027,3029,3031,3033,3035,3038,3040,3042,3044,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064,3066,3068,3070,3072,3074,3076,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3098,3100,3102,3104,3106,3108,3110,3112,3114,3116,3118,3120,3122,3124,3126,3128,3130,3133,3135,3137,3139,3141,3143,3145,3147,3149,3151,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209,3211,3213,3215,3217,3219,3221,3224,3226,3228,3230,3232,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3323,3325,3327,3329,3331,3333,3335,3337,3339,3341,3343,3345,3347,3349,3351,3353,3355,3357,3359,3361,3363,3365,3367,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389,3391,3393,3395,3397,3399,3401,3404,3406,3408,3410,3412,3414,3416,3418,3420,3422,3424,3426,3428,3430,3432,3435,3437,3439,3441,3443,3445,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484,3486,3488,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3514,3516,3518,3520,3522,3524,3526,3528,3530,3532,3534,3536,3538,3540,3542,3544,3546,3548,3550,3552,3554,3556,3558,3560,3562,3564,3566,3568,3570,3572,3574,3576,3578,3580,3582,3584,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608,3610,3612,3614,3616,3618,3620,3622,3624,3626,3628,3630,3632,3634,3636,3638,3640,3642,3644,3646,3648,3650,3652,3654,3656,3658,3660,3662,3664,3666,3668,3670,3672,3674,3676,3678,3680,3682,3684,3686,3688,3690,3692,3694,3696,3698,3700,3702,3704,3706,3708,3710,3712,3714,3716,3718,3720,3722,3724,3726,3728,3730,3732,3734,3736,3738,3740,3742,3744,3746,3748,3750,3752,3754,3756,3758,3760,3762,3764,3766,3768,3770,3772,3774,3776,3778,3780,3782,3784,3786,3788,3790,3792,3794,3796,3799,3801,3803,3805,3807,3809,3811,3813,3815,3817,3819,3821,3823,3825,3827,3829,3831,3833,3835,3837,3839,3841,3843,3845,3847,3849,3851,3853,3855,3857,3859,3861,3863,3865,3867,3869,3871,3873,3875,3877,3879,3881,3883,3885,3887,3890,3892,3894,3896,3898,3900,3902,3904,3906,3908,3910,3912,3914,3916,3918,3920,3922,3924,3926,3928,3930,3932,3934,3936,3938,3940,3942,3944,3946,3948,3950,3952,3954,3956,3958,3960,3962,3964,3966,3968,3970,3972,3974,3976,3978,3980,3982,3984,3986,3989,3991,3993,3995,3997,3999,4001,4003,4005,4007,4009,4011,4013,4015,4017,4019,4021,4023,4025,4027,4029,4031,4033,4035,4037,4039,4041,4043,4045,4047,4049,4051,4053,4055,4057,4059,4061,4063,4065,4067,4069,4071,4073,4075,4077,4079,4081,4083,4085,4087,4089,4091,4093,4095,4097,4099,4101,4103,4105,4107,4109,4111,4113,4115,4117,4119,4121,4123,4125,4127,4129,4131,4133,4135,4137,4139,4141,4143,4145,4148,4150,4152,4154,4156,4158,4161,4163,4165,4167,4169,4171,4173,4175,4177,4179,4181,4183,4185,4187,4189,4191,4193,4195,4197,4199,4201,4203,4205,4208,4210,4212,4214,4216,4218,4220,4222,4224,4226,4228,4230,4232,4234,4236,4238,4240,4242,4244,4246,4248,4250,4252,4254,4257,4259,4261,4263,4266,4268,4270,4272,4275,4277,4280,4282,4285,4288,4291,4294,4296,4299,4301,4304,4306,4309,4311,4313,4315,4318,4320,4322,4324,4327,4329,4331,4333,4335,4338,4340,4342,4344,4347,4349,4351,4353,4356,4358,4360,4362,4365,4367,4369,4371,4373,4376,4378,4380,4382,4385,4387,4389,4391,4394,4396,4398,4400,4403,4405,4407,4409,4412,4414,4417,4419,4422,4425,4428,4430,4433,4435,4437,4439,4442,4444,4446,4448,4451,4453,4456,4458,4461,4463,4465,4467,4469,4472,4474,4477,4479,4481,4483,4485,4487,4489,4491,4493,4496,4498,4500,4502,4504,4506,4508,4510,4512,4515,4518,4520,4522,4525,4527,4529,4531,4533,4535,4537,4540,4542,4544,4546,4549,4551,4553,4555,4558,4560,4562,4564,4567,4569,4571,4573,4575,4577,4579,4581,4583,4586,4588,4590,4592,4595,4597,4599,4601,4604,4606,4608,4610,4612,4614,4616,4618,4620,4623,4625,4627,4629,4632,4634,4636,4638,4641,4643,4645,4647,4650,4652,4654,4656,4658,4660,4663,4665,4668,4670,4672,4674,4677,4679,4681,4683,4686,4688,4690,4693,4695,4697,4699,4702,4704,4706,4708,4711,4713,4715,4717,4719,4722,4724,4726,4728,4731,4733,4735,4737,4740,4742,4744,4746,4749,4751,4754,4756,4759,4761,4763,4766,4768,4770,4772,4775,4777,4779,4781,4784,4786,4788,4790,4793,4795,4797,4799,4802,4804,4807,4809,4812,4814,4817,4819,4822,4824,4827,4829,4832,4835,4837,4840,4842,4845,4847,4850,4852,4855,4857,4859,4861,4864,4866,4869,4871,4874,4876,4879,4881,4884,4886,4889,4891,4894,4896,4899,4901,4904,4906,4909,4911,4914,4916,4919,4921,4924,4926,4929,4931,4934,4936,4939,4941,4944,4946,4949,4951,4954,4956,4959,4961,4964,4966,4969,4971,4974,4976,4979,4981,4984,4986,4988,4990,4993,4995,4998,5000,5003,5005,5008,5010,5013,5015,5018,5020,5023,5025,5028,5030,5033,5035,5038,5040,5043,5045,5048,5050,5053,5055,5058,5060,5063,5065,5068,5070,5073,5075,5078,5080,5083,5085,5088,5090,5093,5095,5098,5100,5103,5105,5108,5110,5113,5115,5118,5120,5123,5125,5128,5130,5133,5135,5138,5140,5143,5145,5148,5150,5153,5155,5158,5160,5163,5165,5168,5170,5173,5175,5178,5180,5183,5185,5188,5190,5193,5195,5198,5200,5203,5205,5208,5210,5213,5215,5217,5219,5222,5224,5227,5229,5232,5234,5237,5239,5242,5244,5246,5248,5250,5252,5254,5257,5259,5261,5264,5266,5268,5271,5273,5275,5278,5280,5282,5285,5287,5289,5291,5293,5295,5298,5300,5302,5304,5306,5308,5311,5313,5315,5317,5319,5321,5324,5326,5329,5331,5333,5335,5337,5340,5342,5344,5346,5348,5350,5352,5354,5356,5358,5360,5362,5364,5366,5368,5371,5373,5375,5377,5379,5381,5383,5385,5387,5389,5391,5393,5395,5397,5399,5401,5403,5405,5408,5410,5412,5414,5416,5418,5420,5422,5424,5426,5428,5430,5432,5434,5436,5438,5440,5442,5444,5446,5448,5450,5452,5454,5456,5458,5461,5463,5465,5467,5470,5473,5475,5477,5479,5482,5484,5486,5488,5490,5492,5494,5496,5499,5501,5503,5505,5507,5509,5512,5514,5516,5518,5521,5523,5525,5527,5530,5532,5534,5536,5539,5541,5543,5545,5547,5549,5551,5553,5555,5558,5560,5562,5564,5566,5568,5570,5572,5574,5576,5578,5580,5582,5584,5586,5588,5590,5592,5594,5596,5598,5600,5602,5604,5606,5608,5610,5612,5614,5617,5619,5621,5623,5625,5627,5629,5631,5633,5635,5637,5639,5641,5643,5645,5647,5649,5651,5653,5655,5657,5659,5661,5663,5666,5668,5670,5672,5675,5677,5679,5681,5684,5686,5688,5690,5692,5694,5696,5698,5701,5703,5705,5707,5710,5712,5714,5716,5719,5721,5723,5725,5727,5729,5731,5733,5736,5738,5740,5742,5745,5747,5749,5751,5753,5755,5757,5759,5762,5764,5766,5768,5771,5773,5775,5777,5780,5782,5784,5786,5788,5790,5792,5794,5797,5799,5801,5803,5805,5807,5809,5811,5814,5816,5818,5820,5822,5824,5826,5828,5831,5833,5835,5837,5840,5842,5844,5846,5848,5850,5852,5854,5856,5858,5860,5862,5864,5867,5869,5871,5873,5875,5877,5879,5881,5883,5885,5887,5889,5891,5893,5895,5897,5899,5901,5903,5905,5907,5909,5911,5913,5915,5917,5919,5921,5923,5925,5927,5929,5931,5933,5935,5937,5939,5941,5943,5945,5947,5949,5951,5953,5955,5957,5959,5961,5963,5965,5967,5969,5971,5974,5976,5978,5980,5982,5984,5986,5988,5990,5992,5994,5996,5998,6000,6002,6004,6006,6008,6010,6012,6014,6016,6018,6020,6022,6024,6026,6028,6030,6032,6034,6036,6038,6040,6042,6044,6046,6048,6050,6052,6055,6057,6060,6062,6065,6067,6070,6072,6074,6076,6079,6081,6083,6085,6087,6089,6091,6093,6095,6097,6100,6102,6105,6107,6110,6112,6115,6117,6120,6122,6124,6126,6128,6130,6132,6134,6136,6138,6140,6142,6144,6146,6148,6150,6152,6154,6156,6158,6160,6162,6164,6166,6169,6171,6173,6175,6177,6179,6181,6183,6185,6187,6189,6191,6193,6195,6197,6199,6201,6203,6205,6207,6209,6211,6213,6215,6217,6219,6221,6223,6225,6227,6229,6231,6233,6235,6237,6239,6241,6243,6245,6247,6249,6251,6253,6255,6257,6259,6261,6264,6266,6268,6270,6272,6274,6276,6278,6280,6282,6284,6286,6288,6290,6292,6294,6296,6298,6300,6302,6304,6306,6308,6310,6312,6314,6316,6318,6320,6322,6324,6326,6328,6330,6332,6334,6336,6338,6340,6342,6344,6346,6348,6350,6352,6354,6356,6358,6360,6362,6364,6366,6368,6370,6372,6374,6376,6378,6380,6382,6384,6386,6388,6390,6392,6394,6396,6398,6400,6402,6404,6406,6408,6410,6412,6414,6416,6418,6420,6422,6424,6426,6428,6430,6432,6434,6436,6438,6440,6442,6444,6446,6448,6450,6452,6454,6456,6458,6460,6462,6464,6466,6468,6470,6472,6474,6476,6478,6480,6482,6484,6486,6488,6490,6492,6494,6496,6498,6500,6502,6504,6506,6508,6510,6512,6514,6516,6518,6520,6522,6524,6526,6528,6530,6532,6534,6536,6538,6540,6542,6544,6546,6548,6550,6552,6554,6556,6558,6560,6562,6564,6566,6568,6570,6572,6574,6576,6578,6580,6582,6584,6586,6588,6590,6592,6594,6596,6598,6600,6602,6604,6606,6608,6610,6612,6614,6616,6618,6620,6622,6624,6626,6628,6630,6632,6634,6636,6638,6640,6642,6644,6646,6648,6650,6652,6654,6656,6658,6660,6662,6664,6666,6668,6670,6672,6674,6676,6678,6680,6682,6684,6686,6688,6690,6692,6694,6696,6698,6700,6702,6704,6706,6708,6710,6712,6714,6716,6718,6720,6722,6724,6726,6728,6730,6732,6734,6736,6738,6740,6742,6744,6746,6748,6750,6752,6754,6756,6758,6760,6762,6764,6766,6768,6770,6772,6774,6776,6778,6780,6782,6784,6786,6788,6790,6792,6794,6796,6798,6800,6802,6804,6806,6808,6810,6812,6814,6816,6818,6820,6822,6824,6826,6828,6830,6832,6834,6836,6838,6840,6842,6844,6846,6848,6850,6852,6854,6856,6858,6860,6862,6864,6866,6868,6870,6872,6874,6876,6878,6880,6882,6884,6886,6888,6890,6892,6894,6896,6898,6900,6902,6904,6906,6908,6910,6912,6914,6916,6918,6920,6922,6924,6926,6928,6930,6932,6934,6936,6938,6940,6943,6945,6947,6949,6951,6953,6955,6957,6959,6961,6963,6965,6967,6969,6971,6973,6975,6977,6979,6981,6983,6985,6987,6989,6991,6993,6995,6997,6999,7001,7003,7005,7007,7009,7011,7013,7015,7017,7019,7021,7024,7026,7028,7030,7032,7034,7036,7038,7040,7042,7044,7046,7048,7050,7052,7054,7056,7058,7060,7062,7064,7067,7069,7071,7073,7075,7077,7079,7081,7083,7085,7087,7089,7091,7093,7095,7097,7099,7101,7103,7105,7107,7109,7111,7113,7115,7117,7119,7121,7123,7125,7127,7129,7131,7133,7135,7137,7139,7141,7143,7145,7147,7149,7151,7153,7155,7157,7159,7161,7163,7165,7167,7169,7171,7173,7175,7177,7179,7181,7183,7185,7187,7189,7191,7193,7195,7197,7199,7201,7203,7205,7207,7209,7211,7213,7215,7217,7219,7221,7223,7225,7227,7229,7231,7233,7235,7237,7239,7241,7243,7245,7247,7249,7251,7253,7255,7257,7259,7261,7263,7265,7267,7269,7271,7273,7275,7277,7279,7281,7283,7285,7287,7289,7291,7293,7295,7297,7299,7301,7303,7305,7307,7309,7311,7313,7315,7317,7319,7321,7323,7325,7327,7329,7331,7333,7335,7337,7339,7341,7343,7345,7347,7349,7351,7353,7355,7357,7359,7361,7363,7365,7367,7369,7371,7373,7375,7377,7379,7381,7383,7385,7387,7389,7391,7393,7395,7397,7399,7401,7403,7405,7407,7409,7411,7413,7415,7418,7420,7422,7424,7426,7428,7430,7432,7434,7436,7438,7440,7442,7444,7446,7448,7450,7452,7454,7456,7458,7460,7462,7464,7466,7468,7470,7472,7474,7476,7478,7480,7482,7484,7486,7488,7490,7492,7494,7496,7498,7500,7502,7504,7506,7508,7510,7512,7514,7516,7518,7520,7522,7524,7526,7528,7530,7532,7534,7536,7538,7540,7542,7544,7546,7548,7550,7552,7554,7556,7559,7561,7563,7565,7567,7569,7571,7573,7575,7577,7579,7581,7583,7585,7587,7589,7591,7593,7595,7597,7600,7602,7604,7606,7609,7611,7613,7615,7618,7620,7622,7624,7627,7629,7631,7633,7635,7637,7639,7641,7643,7645,7647,7649,7651,7653,7655,7657,7659,7661,7663,7666,7668,7670,7672,7674,7676,7678,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7830,7832,7834,7836,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,7936,7938,7940,7942,7944,7946,7948,7950,7952,7954,7956,7958,7960,7962,7964,7966,7968,7970,7972,7974,7976,7978,7980,7982,7984,7987,7989,7991,7993,7995,7997,7999,8001,8003,8005,8007,8009,8011,8013,8015,8017,8019,8021,8023,8025,8027,8029,8031,8033,8035,8037,8039,8041,8043,8045,8047,8049,8051,8053,8055,8057,8059,8061,8063,8065,8067,8069,8071,8073,8075,8077,8079,8081,8083,8085,8087,8089,8091,8093,8095,8097,8099,8101,8103,8105,8107,8109,8111,8113,8115,8117,8119,8121,8123,8125,8127,8129,8131,8133,8135,8137,8139,8141,8143,8145,8148,8150,8152,8154,8156,8158,8160,8162,8164,8166,8168,8170,8172,8174,8176,8178,8180,8182,8184,8186,8188,8190,8192,8194,8196,8198,8200,8202,8204,8206,8208,8210,8212,8214,8216,8218,8220,8222,8224,8226,8228,8230,8232,8234,8236,8238,8240,8242,8244,8246,8248,8250,8252,8254,8256,8258,8260,8262,8264,8266,8268,8270,8272,8274,8276,8278,8280,8282,8284,8286,8288,8290,8292,8294,8296,8298,8300,8302,8304,8306,8308,8310,8312,8314,8316,8318,8320,8322,8324,8326,8328,8330,8332,8334,8336,8338,8340,8342,8344,8346,8348,8350,8352,8354,8356,8358,8360,8362,8364,8366,8368,8370,8372,8374,8376,8378,8380,8382,8384,8386,8388,8390,8392,8394,8396,8398,8400,8402,8404,8406,8408,8410,8412,8414,8416,8418,8420,8422,8424,8426,8428,8430,8432,8434,8436,8438,8440,8442,8444,8446,8448,8450,8452,8454,8456,8458,8460,8462,8464,8466,8468,8470,8472,8474,8476,8478,8480,8482,8484,8486,8488,8490,8492,8494,8496,8498,8500,8502,8504,8506,8508,8510,8512,8514,8516,8518,8520,8522,8524,8527,8529,8531,8533,8536,8538,8540,8542,8545,8547,8549,8551,8554,8556,8558,8560,8563,8565],"span",{"class":142,"line":143},"line",1,[140,145,147],{"class":146},"sMK4o","[{",[140,149,150],{"class":146},"\"",[140,152,154],{"class":153},"spNyl","id",[140,156,150],{"class":146},[140,158,159],{"class":146},":",[140,161,150],{"class":146},[140,163,165],{"class":164},"sfazB","fa7147e04d4d5ec3",[140,167,150],{"class":146},[140,169,170],{"class":146},",",[140,172,150],{"class":146},[140,174,175],{"class":153},"type",[140,177,150],{"class":146},[140,179,159],{"class":146},[140,181,150],{"class":146},[140,183,184],{"class":164},"tab",[140,186,150],{"class":146},[140,188,170],{"class":146},[140,190,150],{"class":146},[140,192,193],{"class":153},"label",[140,195,150],{"class":146},[140,197,159],{"class":146},[140,199,150],{"class":146},[140,201,202],{"class":164},"Simulated Data Generation",[140,204,150],{"class":146},[140,206,170],{"class":146},[140,208,150],{"class":146},[140,210,211],{"class":153},"disabled",[140,213,150],{"class":146},[140,215,216],{"class":146},":false,",[140,218,150],{"class":146},[140,220,221],{"class":153},"info",[140,223,150],{"class":146},[140,225,159],{"class":146},[140,227,228],{"class":146},"\"\"",[140,230,170],{"class":146},[140,232,150],{"class":146},[140,234,235],{"class":153},"env",[140,237,150],{"class":146},[140,239,240],{"class":146},":[]},{",[140,242,150],{"class":146},[140,244,154],{"class":153},[140,246,150],{"class":146},[140,248,159],{"class":146},[140,250,150],{"class":146},[140,252,253],{"class":164},"3f2126c3c00b9e0d",[140,255,150],{"class":146},[140,257,170],{"class":146},[140,259,150],{"class":146},[140,261,175],{"class":153},[140,263,150],{"class":146},[140,265,159],{"class":146},[140,267,150],{"class":146},[140,269,270],{"class":164},"group",[140,272,150],{"class":146},[140,274,170],{"class":146},[140,276,150],{"class":146},[140,278,279],{"class":153},"z",[140,281,150],{"class":146},[140,283,159],{"class":146},[140,285,150],{"class":146},[140,287,165],{"class":164},[140,289,150],{"class":146},[140,291,170],{"class":146},[140,293,150],{"class":146},[140,295,296],{"class":153},"style",[140,298,150],{"class":146},[140,300,301],{"class":146},":{",[140,303,150],{"class":146},[140,305,307],{"class":306},"sBMFI","stroke",[140,309,150],{"class":146},[140,311,159],{"class":146},[140,313,150],{"class":146},[140,315,316],{"class":164},"#b2b3bd",[140,318,150],{"class":146},[140,320,170],{"class":146},[140,322,150],{"class":146},[140,324,325],{"class":306},"stroke-opacity",[140,327,150],{"class":146},[140,329,159],{"class":146},[140,331,150],{"class":146},[140,333,334],{"class":164},"1",[140,336,150],{"class":146},[140,338,170],{"class":146},[140,340,150],{"class":146},[140,342,343],{"class":306},"fill",[140,345,150],{"class":146},[140,347,159],{"class":146},[140,349,150],{"class":146},[140,351,352],{"class":164},"#f2f3fb",[140,354,150],{"class":146},[140,356,170],{"class":146},[140,358,150],{"class":146},[140,360,361],{"class":306},"fill-opacity",[140,363,150],{"class":146},[140,365,159],{"class":146},[140,367,150],{"class":146},[140,369,370],{"class":164},"0.5",[140,372,150],{"class":146},[140,374,170],{"class":146},[140,376,150],{"class":146},[140,378,193],{"class":306},[140,380,150],{"class":146},[140,382,383],{"class":146},":true,",[140,385,150],{"class":146},[140,387,388],{"class":306},"label-position",[140,390,150],{"class":146},[140,392,159],{"class":146},[140,394,150],{"class":146},[140,396,397],{"class":164},"nw",[140,399,150],{"class":146},[140,401,170],{"class":146},[140,403,150],{"class":146},[140,405,406],{"class":306},"color",[140,408,150],{"class":146},[140,410,159],{"class":146},[140,412,150],{"class":146},[140,414,415],{"class":164},"#32333b",[140,417,150],{"class":146},[140,419,420],{"class":146},"},",[140,422,150],{"class":146},[140,424,425],{"class":153},"nodes",[140,427,150],{"class":146},[140,429,430],{"class":146},":[",[140,432,150],{"class":146},[140,434,435],{"class":164},"853fb3a395d833bb",[140,437,150],{"class":146},[140,439,170],{"class":146},[140,441,150],{"class":146},[140,443,444],{"class":164},"a96ffd171bf11823",[140,446,150],{"class":146},[140,448,170],{"class":146},[140,450,150],{"class":146},[140,452,453],{"class":164},"3d30995a4329eb71",[140,455,150],{"class":146},[140,457,170],{"class":146},[140,459,150],{"class":146},[140,461,462],{"class":164},"0f466ba2a885e22a",[140,464,150],{"class":146},[140,466,170],{"class":146},[140,468,150],{"class":146},[140,470,471],{"class":164},"f8229c651706b162",[140,473,150],{"class":146},[140,475,170],{"class":146},[140,477,150],{"class":146},[140,479,480],{"class":164},"2ceebc93d54adba4",[140,482,150],{"class":146},[140,484,170],{"class":146},[140,486,150],{"class":146},[140,488,489],{"class":164},"0c927abd3b139e97",[140,491,150],{"class":146},[140,493,170],{"class":146},[140,495,150],{"class":146},[140,497,498],{"class":164},"8222855bc32e9240",[140,500,150],{"class":146},[140,502,503],{"class":146},"],",[140,505,150],{"class":146},[140,507,508],{"class":153},"x",[140,510,150],{"class":146},[140,512,159],{"class":146},[140,514,516],{"class":515},"sbssI","24",[140,518,170],{"class":146},[140,520,150],{"class":146},[140,522,523],{"class":153},"y",[140,525,150],{"class":146},[140,527,159],{"class":146},[140,529,530],{"class":515},"99",[140,532,170],{"class":146},[140,534,150],{"class":146},[140,536,537],{"class":153},"w",[140,539,150],{"class":146},[140,541,159],{"class":146},[140,543,544],{"class":515},"1142",[140,546,170],{"class":146},[140,548,150],{"class":146},[140,550,551],{"class":153},"h",[140,553,150],{"class":146},[140,555,159],{"class":146},[140,557,558],{"class":515},"182",[140,560,561],{"class":146},"},{",[140,563,150],{"class":146},[140,565,154],{"class":153},[140,567,150],{"class":146},[140,569,159],{"class":146},[140,571,150],{"class":146},[140,573,574],{"class":164},"07a3d5b9075ff846",[140,576,150],{"class":146},[140,578,170],{"class":146},[140,580,150],{"class":146},[140,582,175],{"class":153},[140,584,150],{"class":146},[140,586,159],{"class":146},[140,588,150],{"class":146},[140,590,270],{"class":164},[140,592,150],{"class":146},[140,594,170],{"class":146},[140,596,150],{"class":146},[140,598,279],{"class":153},[140,600,150],{"class":146},[140,602,159],{"class":146},[140,604,150],{"class":146},[140,606,165],{"class":164},[140,608,150],{"class":146},[140,610,170],{"class":146},[140,612,150],{"class":146},[140,614,296],{"class":153},[140,616,150],{"class":146},[140,618,301],{"class":146},[140,620,150],{"class":146},[140,622,307],{"class":306},[140,624,150],{"class":146},[140,626,159],{"class":146},[140,628,150],{"class":146},[140,630,316],{"class":164},[140,632,150],{"class":146},[140,634,170],{"class":146},[140,636,150],{"class":146},[140,638,325],{"class":306},[140,640,150],{"class":146},[140,642,159],{"class":146},[140,644,150],{"class":146},[140,646,334],{"class":164},[140,648,150],{"class":146},[140,650,170],{"class":146},[140,652,150],{"class":146},[140,654,343],{"class":306},[140,656,150],{"class":146},[140,658,159],{"class":146},[140,660,150],{"class":146},[140,662,352],{"class":164},[140,664,150],{"class":146},[140,666,170],{"class":146},[140,668,150],{"class":146},[140,670,361],{"class":306},[140,672,150],{"class":146},[140,674,159],{"class":146},[140,676,150],{"class":146},[140,678,370],{"class":164},[140,680,150],{"class":146},[140,682,170],{"class":146},[140,684,150],{"class":146},[140,686,193],{"class":306},[140,688,150],{"class":146},[140,690,383],{"class":146},[140,692,150],{"class":146},[140,694,388],{"class":306},[140,696,150],{"class":146},[140,698,159],{"class":146},[140,700,150],{"class":146},[140,702,397],{"class":164},[140,704,150],{"class":146},[140,706,170],{"class":146},[140,708,150],{"class":146},[140,710,406],{"class":306},[140,712,150],{"class":146},[140,714,159],{"class":146},[140,716,150],{"class":146},[140,718,415],{"class":164},[140,720,150],{"class":146},[140,722,420],{"class":146},[140,724,150],{"class":146},[140,726,425],{"class":153},[140,728,150],{"class":146},[140,730,430],{"class":146},[140,732,150],{"class":146},[140,734,735],{"class":164},"aa7bd867fa7daca5",[140,737,150],{"class":146},[140,739,170],{"class":146},[140,741,150],{"class":146},[140,743,744],{"class":164},"234aef8a999cb8d9",[140,746,150],{"class":146},[140,748,170],{"class":146},[140,750,150],{"class":146},[140,752,753],{"class":164},"d7641c9327f295f8",[140,755,150],{"class":146},[140,757,170],{"class":146},[140,759,150],{"class":146},[140,761,762],{"class":164},"c3e96b73cd6ec586",[140,764,150],{"class":146},[140,766,170],{"class":146},[140,768,150],{"class":146},[140,770,771],{"class":164},"13f2e851e3f28ec6",[140,773,150],{"class":146},[140,775,170],{"class":146},[140,777,150],{"class":146},[140,779,780],{"class":164},"9a444655c076d5a7",[140,782,150],{"class":146},[140,784,170],{"class":146},[140,786,150],{"class":146},[140,788,789],{"class":164},"e1fe1b1a4f1ef2e5",[140,791,150],{"class":146},[140,793,170],{"class":146},[140,795,150],{"class":146},[140,797,798],{"class":164},"2beb68abc5da93bc",[140,800,150],{"class":146},[140,802,170],{"class":146},[140,804,150],{"class":146},[140,806,807],{"class":164},"b83d517fae3c7bbf",[140,809,150],{"class":146},[140,811,170],{"class":146},[140,813,150],{"class":146},[140,815,816],{"class":164},"50ebbbfb159a3cbe",[140,818,150],{"class":146},[140,820,170],{"class":146},[140,822,150],{"class":146},[140,824,825],{"class":164},"8873774ad339b67e",[140,827,150],{"class":146},[140,829,170],{"class":146},[140,831,150],{"class":146},[140,833,834],{"class":164},"77e22b20d1862c7e",[140,836,150],{"class":146},[140,838,503],{"class":146},[140,840,150],{"class":146},[140,842,508],{"class":153},[140,844,150],{"class":146},[140,846,159],{"class":146},[140,848,849],{"class":515},"-6",[140,851,170],{"class":146},[140,853,150],{"class":146},[140,855,523],{"class":153},[140,857,150],{"class":146},[140,859,159],{"class":146},[140,861,862],{"class":515},"299",[140,864,170],{"class":146},[140,866,150],{"class":146},[140,868,537],{"class":153},[140,870,150],{"class":146},[140,872,159],{"class":146},[140,874,875],{"class":515},"2092",[140,877,170],{"class":146},[140,879,150],{"class":146},[140,881,551],{"class":153},[140,883,150],{"class":146},[140,885,159],{"class":146},[140,887,888],{"class":515},"162",[140,890,561],{"class":146},[140,892,150],{"class":146},[140,894,154],{"class":153},[140,896,150],{"class":146},[140,898,159],{"class":146},[140,900,150],{"class":146},[140,902,903],{"class":164},"c0550db87d6fb947",[140,905,150],{"class":146},[140,907,170],{"class":146},[140,909,150],{"class":146},[140,911,175],{"class":153},[140,913,150],{"class":146},[140,915,159],{"class":146},[140,917,150],{"class":146},[140,919,270],{"class":164},[140,921,150],{"class":146},[140,923,170],{"class":146},[140,925,150],{"class":146},[140,927,279],{"class":153},[140,929,150],{"class":146},[140,931,159],{"class":146},[140,933,150],{"class":146},[140,935,165],{"class":164},[140,937,150],{"class":146},[140,939,170],{"class":146},[140,941,150],{"class":146},[140,943,296],{"class":153},[140,945,150],{"class":146},[140,947,301],{"class":146},[140,949,150],{"class":146},[140,951,307],{"class":306},[140,953,150],{"class":146},[140,955,159],{"class":146},[140,957,150],{"class":146},[140,959,316],{"class":164},[140,961,150],{"class":146},[140,963,170],{"class":146},[140,965,150],{"class":146},[140,967,325],{"class":306},[140,969,150],{"class":146},[140,971,159],{"class":146},[140,973,150],{"class":146},[140,975,334],{"class":164},[140,977,150],{"class":146},[140,979,170],{"class":146},[140,981,150],{"class":146},[140,983,343],{"class":306},[140,985,150],{"class":146},[140,987,159],{"class":146},[140,989,150],{"class":146},[140,991,352],{"class":164},[140,993,150],{"class":146},[140,995,170],{"class":146},[140,997,150],{"class":146},[140,999,361],{"class":306},[140,1001,150],{"class":146},[140,1003,159],{"class":146},[140,1005,150],{"class":146},[140,1007,370],{"class":164},[140,1009,150],{"class":146},[140,1011,170],{"class":146},[140,1013,150],{"class":146},[140,1015,193],{"class":306},[140,1017,150],{"class":146},[140,1019,383],{"class":146},[140,1021,150],{"class":146},[140,1023,388],{"class":306},[140,1025,150],{"class":146},[140,1027,159],{"class":146},[140,1029,150],{"class":146},[140,1031,397],{"class":164},[140,1033,150],{"class":146},[140,1035,170],{"class":146},[140,1037,150],{"class":146},[140,1039,406],{"class":306},[140,1041,150],{"class":146},[140,1043,159],{"class":146},[140,1045,150],{"class":146},[140,1047,415],{"class":164},[140,1049,150],{"class":146},[140,1051,420],{"class":146},[140,1053,150],{"class":146},[140,1055,425],{"class":153},[140,1057,150],{"class":146},[140,1059,430],{"class":146},[140,1061,150],{"class":146},[140,1063,1064],{"class":164},"b1f773f4cc2266c6",[140,1066,150],{"class":146},[140,1068,170],{"class":146},[140,1070,150],{"class":146},[140,1072,1073],{"class":164},"cce91928076adb23",[140,1075,150],{"class":146},[140,1077,170],{"class":146},[140,1079,150],{"class":146},[140,1081,1082],{"class":164},"d853a554ecd152b1",[140,1084,150],{"class":146},[140,1086,170],{"class":146},[140,1088,150],{"class":146},[140,1090,1091],{"class":164},"45628fb0ca0a4672",[140,1093,150],{"class":146},[140,1095,170],{"class":146},[140,1097,150],{"class":146},[140,1099,1100],{"class":164},"36ae627ad694fc09",[140,1102,150],{"class":146},[140,1104,170],{"class":146},[140,1106,150],{"class":146},[140,1108,1109],{"class":164},"69afd49e2ceb191b",[140,1111,150],{"class":146},[140,1113,170],{"class":146},[140,1115,150],{"class":146},[140,1117,1118],{"class":164},"808db5612ba1aedc",[140,1120,150],{"class":146},[140,1122,170],{"class":146},[140,1124,150],{"class":146},[140,1126,1127],{"class":164},"6dcd69acd5990793",[140,1129,150],{"class":146},[140,1131,503],{"class":146},[140,1133,150],{"class":146},[140,1135,508],{"class":153},[140,1137,150],{"class":146},[140,1139,159],{"class":146},[140,1141,1142],{"class":515},"34",[140,1144,170],{"class":146},[140,1146,150],{"class":146},[140,1148,523],{"class":153},[140,1150,150],{"class":146},[140,1152,159],{"class":146},[140,1154,1155],{"class":515},"479",[140,1157,170],{"class":146},[140,1159,150],{"class":146},[140,1161,537],{"class":153},[140,1163,150],{"class":146},[140,1165,159],{"class":146},[140,1167,1168],{"class":515},"1202",[140,1170,170],{"class":146},[140,1172,150],{"class":146},[140,1174,551],{"class":153},[140,1176,150],{"class":146},[140,1178,159],{"class":146},[140,1180,1181],{"class":515},"142",[140,1183,561],{"class":146},[140,1185,150],{"class":146},[140,1187,154],{"class":153},[140,1189,150],{"class":146},[140,1191,159],{"class":146},[140,1193,150],{"class":146},[140,1195,444],{"class":164},[140,1197,150],{"class":146},[140,1199,170],{"class":146},[140,1201,150],{"class":146},[140,1203,175],{"class":153},[140,1205,150],{"class":146},[140,1207,159],{"class":146},[140,1209,150],{"class":146},[140,1211,1212],{"class":164},"template",[140,1214,150],{"class":146},[140,1216,170],{"class":146},[140,1218,150],{"class":146},[140,1220,279],{"class":153},[140,1222,150],{"class":146},[140,1224,159],{"class":146},[140,1226,150],{"class":146},[140,1228,165],{"class":164},[140,1230,150],{"class":146},[140,1232,170],{"class":146},[140,1234,150],{"class":146},[140,1236,1237],{"class":153},"g",[140,1239,150],{"class":146},[140,1241,159],{"class":146},[140,1243,150],{"class":146},[140,1245,253],{"class":164},[140,1247,150],{"class":146},[140,1249,170],{"class":146},[140,1251,150],{"class":146},[140,1253,1254],{"class":153},"name",[140,1256,150],{"class":146},[140,1258,159],{"class":146},[140,1260,150],{"class":146},[140,1262,1263],{"class":164},"Create ProductionData table",[140,1265,150],{"class":146},[140,1267,170],{"class":146},[140,1269,150],{"class":146},[140,1271,1272],{"class":153},"field",[140,1274,150],{"class":146},[140,1276,159],{"class":146},[140,1278,150],{"class":146},[140,1280,1281],{"class":164},"topic",[140,1283,150],{"class":146},[140,1285,170],{"class":146},[140,1287,150],{"class":146},[140,1289,1290],{"class":153},"fieldType",[140,1292,150],{"class":146},[140,1294,159],{"class":146},[140,1296,150],{"class":146},[140,1298,1299],{"class":164},"msg",[140,1301,150],{"class":146},[140,1303,170],{"class":146},[140,1305,150],{"class":146},[140,1307,1308],{"class":153},"format",[140,1310,150],{"class":146},[140,1312,159],{"class":146},[140,1314,150],{"class":146},[140,1316,1317],{"class":164},"sql",[140,1319,150],{"class":146},[140,1321,170],{"class":146},[140,1323,150],{"class":146},[140,1325,1326],{"class":153},"syntax",[140,1328,150],{"class":146},[140,1330,159],{"class":146},[140,1332,150],{"class":146},[140,1334,1335],{"class":164},"mustache",[140,1337,150],{"class":146},[140,1339,170],{"class":146},[140,1341,150],{"class":146},[140,1343,1212],{"class":153},[140,1345,150],{"class":146},[140,1347,159],{"class":146},[140,1349,150],{"class":146},[140,1351,1352],{"class":164},"CREATE TABLE IF NOT EXISTS ProductionData (",[140,1354,1356],{"class":1355},"sTEyZ","\\n",[140,1358,1359],{"class":164},"    id INTEGER PRIMARY KEY AUTOINCREMENT,",[140,1361,1356],{"class":1355},[140,1363,1364],{"class":164},"    timestamp DATETIME NOT NULL,",[140,1366,1356],{"class":1355},[140,1368,1369],{"class":164},"    area VARCHAR(255) NOT NULL,",[140,1371,1356],{"class":1355},[140,1373,1374],{"class":164},"    line VARCHAR(100) NOT NULL,  ",[140,1376,1356],{"class":1355},[140,1378,1379],{"class":164},"    machine_name VARCHAR(255) NOT NULL,",[140,1381,1356],{"class":1355},[140,1383,1384],{"class":164},"    shift VARCHAR(50) NOT NULL,",[140,1386,1356],{"class":1355},[140,1388,1389],{"class":164},"    shift_duration DECIMAL(5,2) NOT NULL,",[140,1391,1356],{"class":1355},[140,1393,1394],{"class":164},"    good_units INT NOT NULL,",[140,1396,1356],{"class":1355},[140,1398,1399],{"class":164},"    defect_units INT NOT NULL,",[140,1401,1356],{"class":1355},[140,1403,1404],{"class":164},"    total_produced_units INT NOT NULL,",[140,1406,1356],{"class":1355},[140,1408,1409],{"class":164},"    cycle_time DECIMAL(5,2) NOT NULL,",[140,1411,1356],{"class":1355},[140,1413,1414],{"class":164},"    ideal_cycle_time DECIMAL(5,2) NOT NULL,",[140,1416,1356],{"class":1355},[140,1418,1419],{"class":164},"    target_output INT NOT NULL DEFAULT 0,",[140,1421,1356],{"class":1355},[140,1423,1424],{"class":164},"    operating_time INT NOT NULL",[140,1426,1356],{"class":1355},[140,1428,1429],{"class":164},");",[140,1431,1356],{"class":1355},[140,1433,150],{"class":146},[140,1435,170],{"class":146},[140,1437,150],{"class":146},[140,1439,1440],{"class":153},"output",[140,1442,150],{"class":146},[140,1444,159],{"class":146},[140,1446,150],{"class":146},[140,1448,1449],{"class":164},"str",[140,1451,150],{"class":146},[140,1453,170],{"class":146},[140,1455,150],{"class":146},[140,1457,508],{"class":153},[140,1459,150],{"class":146},[140,1461,159],{"class":146},[140,1463,1464],{"class":515},"500",[140,1466,170],{"class":146},[140,1468,150],{"class":146},[140,1470,523],{"class":153},[140,1472,150],{"class":146},[140,1474,159],{"class":146},[140,1476,1477],{"class":515},"140",[140,1479,170],{"class":146},[140,1481,150],{"class":146},[140,1483,1484],{"class":153},"wires",[140,1486,150],{"class":146},[140,1488,1489],{"class":146},":[[",[140,1491,150],{"class":146},[140,1493,435],{"class":164},[140,1495,150],{"class":146},[140,1497,1498],{"class":146},"]]},{",[140,1500,150],{"class":146},[140,1502,154],{"class":153},[140,1504,150],{"class":146},[140,1506,159],{"class":146},[140,1508,150],{"class":146},[140,1510,453],{"class":164},[140,1512,150],{"class":146},[140,1514,170],{"class":146},[140,1516,150],{"class":146},[140,1518,175],{"class":153},[140,1520,150],{"class":146},[140,1522,159],{"class":146},[140,1524,150],{"class":146},[140,1526,1527],{"class":164},"inject",[140,1529,150],{"class":146},[140,1531,170],{"class":146},[140,1533,150],{"class":146},[140,1535,279],{"class":153},[140,1537,150],{"class":146},[140,1539,159],{"class":146},[140,1541,150],{"class":146},[140,1543,165],{"class":164},[140,1545,150],{"class":146},[140,1547,170],{"class":146},[140,1549,150],{"class":146},[140,1551,1237],{"class":153},[140,1553,150],{"class":146},[140,1555,159],{"class":146},[140,1557,150],{"class":146},[140,1559,253],{"class":164},[140,1561,150],{"class":146},[140,1563,170],{"class":146},[140,1565,150],{"class":146},[140,1567,1254],{"class":153},[140,1569,150],{"class":146},[140,1571,159],{"class":146},[140,1573,228],{"class":146},[140,1575,170],{"class":146},[140,1577,150],{"class":146},[140,1579,1580],{"class":153},"props",[140,1582,150],{"class":146},[140,1584,1585],{"class":146},":[{",[140,1587,150],{"class":146},[140,1589,12],{"class":306},[140,1591,150],{"class":146},[140,1593,159],{"class":146},[140,1595,150],{"class":146},[140,1597,1598],{"class":164},"payload",[140,1600,150],{"class":146},[140,1602,561],{"class":146},[140,1604,150],{"class":146},[140,1606,12],{"class":306},[140,1608,150],{"class":146},[140,1610,159],{"class":146},[140,1612,150],{"class":146},[140,1614,1281],{"class":164},[140,1616,150],{"class":146},[140,1618,170],{"class":146},[140,1620,150],{"class":146},[140,1622,1623],{"class":306},"vt",[140,1625,150],{"class":146},[140,1627,159],{"class":146},[140,1629,150],{"class":146},[140,1631,1449],{"class":164},[140,1633,150],{"class":146},[140,1635,1636],{"class":146},"}],",[140,1638,150],{"class":146},[140,1640,1641],{"class":153},"repeat",[140,1643,150],{"class":146},[140,1645,159],{"class":146},[140,1647,228],{"class":146},[140,1649,170],{"class":146},[140,1651,150],{"class":146},[140,1653,1654],{"class":153},"crontab",[140,1656,150],{"class":146},[140,1658,159],{"class":146},[140,1660,228],{"class":146},[140,1662,170],{"class":146},[140,1664,150],{"class":146},[140,1666,1667],{"class":153},"once",[140,1669,150],{"class":146},[140,1671,383],{"class":146},[140,1673,150],{"class":146},[140,1675,1676],{"class":153},"onceDelay",[140,1678,150],{"class":146},[140,1680,159],{"class":146},[140,1682,1683],{"class":515},"0.1",[140,1685,170],{"class":146},[140,1687,150],{"class":146},[140,1689,1281],{"class":153},[140,1691,150],{"class":146},[140,1693,159],{"class":146},[140,1695,228],{"class":146},[140,1697,170],{"class":146},[140,1699,150],{"class":146},[140,1701,1598],{"class":153},[140,1703,150],{"class":146},[140,1705,159],{"class":146},[140,1707,228],{"class":146},[140,1709,170],{"class":146},[140,1711,150],{"class":146},[140,1713,1714],{"class":153},"payloadType",[140,1716,150],{"class":146},[140,1718,159],{"class":146},[140,1720,150],{"class":146},[140,1722,1723],{"class":164},"date",[140,1725,150],{"class":146},[140,1727,170],{"class":146},[140,1729,150],{"class":146},[140,1731,508],{"class":153},[140,1733,150],{"class":146},[140,1735,159],{"class":146},[140,1737,1738],{"class":515},"150",[140,1740,170],{"class":146},[140,1742,150],{"class":146},[140,1744,523],{"class":153},[140,1746,150],{"class":146},[140,1748,159],{"class":146},[140,1750,1477],{"class":515},[140,1752,170],{"class":146},[140,1754,150],{"class":146},[140,1756,1484],{"class":153},[140,1758,150],{"class":146},[140,1760,1489],{"class":146},[140,1762,150],{"class":146},[140,1764,444],{"class":164},[140,1766,150],{"class":146},[140,1768,1498],{"class":146},[140,1770,150],{"class":146},[140,1772,154],{"class":153},[140,1774,150],{"class":146},[140,1776,159],{"class":146},[140,1778,150],{"class":146},[140,1780,462],{"class":164},[140,1782,150],{"class":146},[140,1784,170],{"class":146},[140,1786,150],{"class":146},[140,1788,175],{"class":153},[140,1790,150],{"class":146},[140,1792,159],{"class":146},[140,1794,150],{"class":146},[140,1796,1797],{"class":164},"debug",[140,1799,150],{"class":146},[140,1801,170],{"class":146},[140,1803,150],{"class":146},[140,1805,279],{"class":153},[140,1807,150],{"class":146},[140,1809,159],{"class":146},[140,1811,150],{"class":146},[140,1813,165],{"class":164},[140,1815,150],{"class":146},[140,1817,170],{"class":146},[140,1819,150],{"class":146},[140,1821,1237],{"class":153},[140,1823,150],{"class":146},[140,1825,159],{"class":146},[140,1827,150],{"class":146},[140,1829,253],{"class":164},[140,1831,150],{"class":146},[140,1833,170],{"class":146},[140,1835,150],{"class":146},[140,1837,1254],{"class":153},[140,1839,150],{"class":146},[140,1841,159],{"class":146},[140,1843,150],{"class":146},[140,1845,1846],{"class":164},"debug 1",[140,1848,150],{"class":146},[140,1850,170],{"class":146},[140,1852,150],{"class":146},[140,1854,1855],{"class":153},"active",[140,1857,150],{"class":146},[140,1859,216],{"class":146},[140,1861,150],{"class":146},[140,1863,1864],{"class":153},"tosidebar",[140,1866,150],{"class":146},[140,1868,383],{"class":146},[140,1870,150],{"class":146},[140,1872,1873],{"class":153},"console",[140,1875,150],{"class":146},[140,1877,216],{"class":146},[140,1879,150],{"class":146},[140,1881,1882],{"class":153},"tostatus",[140,1884,150],{"class":146},[140,1886,216],{"class":146},[140,1888,150],{"class":146},[140,1890,1891],{"class":153},"complete",[140,1893,150],{"class":146},[140,1895,159],{"class":146},[140,1897,150],{"class":146},[140,1899,1900],{"class":164},"false",[140,1902,150],{"class":146},[140,1904,170],{"class":146},[140,1906,150],{"class":146},[140,1908,1909],{"class":153},"statusVal",[140,1911,150],{"class":146},[140,1913,159],{"class":146},[140,1915,228],{"class":146},[140,1917,170],{"class":146},[140,1919,150],{"class":146},[140,1921,1922],{"class":153},"statusType",[140,1924,150],{"class":146},[140,1926,159],{"class":146},[140,1928,150],{"class":146},[140,1930,1931],{"class":164},"auto",[140,1933,150],{"class":146},[140,1935,170],{"class":146},[140,1937,150],{"class":146},[140,1939,508],{"class":153},[140,1941,150],{"class":146},[140,1943,159],{"class":146},[140,1945,1946],{"class":515},"1050",[140,1948,170],{"class":146},[140,1950,150],{"class":146},[140,1952,523],{"class":153},[140,1954,150],{"class":146},[140,1956,159],{"class":146},[140,1958,1477],{"class":515},[140,1960,170],{"class":146},[140,1962,150],{"class":146},[140,1964,1484],{"class":153},[140,1966,150],{"class":146},[140,1968,240],{"class":146},[140,1970,150],{"class":146},[140,1972,154],{"class":153},[140,1974,150],{"class":146},[140,1976,159],{"class":146},[140,1978,150],{"class":146},[140,1980,480],{"class":164},[140,1982,150],{"class":146},[140,1984,170],{"class":146},[140,1986,150],{"class":146},[140,1988,175],{"class":153},[140,1990,150],{"class":146},[140,1992,159],{"class":146},[140,1994,150],{"class":146},[140,1996,1212],{"class":164},[140,1998,150],{"class":146},[140,2000,170],{"class":146},[140,2002,150],{"class":146},[140,2004,279],{"class":153},[140,2006,150],{"class":146},[140,2008,159],{"class":146},[140,2010,150],{"class":146},[140,2012,165],{"class":164},[140,2014,150],{"class":146},[140,2016,170],{"class":146},[140,2018,150],{"class":146},[140,2020,1237],{"class":153},[140,2022,150],{"class":146},[140,2024,159],{"class":146},[140,2026,150],{"class":146},[140,2028,253],{"class":164},[140,2030,150],{"class":146},[140,2032,170],{"class":146},[140,2034,150],{"class":146},[140,2036,1254],{"class":153},[140,2038,150],{"class":146},[140,2040,159],{"class":146},[140,2042,150],{"class":146},[140,2044,2045],{"class":164},"Create Downtime table",[140,2047,150],{"class":146},[140,2049,170],{"class":146},[140,2051,150],{"class":146},[140,2053,1272],{"class":153},[140,2055,150],{"class":146},[140,2057,159],{"class":146},[140,2059,150],{"class":146},[140,2061,1281],{"class":164},[140,2063,150],{"class":146},[140,2065,170],{"class":146},[140,2067,150],{"class":146},[140,2069,1290],{"class":153},[140,2071,150],{"class":146},[140,2073,159],{"class":146},[140,2075,150],{"class":146},[140,2077,1299],{"class":164},[140,2079,150],{"class":146},[140,2081,170],{"class":146},[140,2083,150],{"class":146},[140,2085,1308],{"class":153},[140,2087,150],{"class":146},[140,2089,159],{"class":146},[140,2091,150],{"class":146},[140,2093,1317],{"class":164},[140,2095,150],{"class":146},[140,2097,170],{"class":146},[140,2099,150],{"class":146},[140,2101,1326],{"class":153},[140,2103,150],{"class":146},[140,2105,159],{"class":146},[140,2107,150],{"class":146},[140,2109,1335],{"class":164},[140,2111,150],{"class":146},[140,2113,170],{"class":146},[140,2115,150],{"class":146},[140,2117,1212],{"class":153},[140,2119,150],{"class":146},[140,2121,159],{"class":146},[140,2123,150],{"class":146},[140,2125,2126],{"class":164},"CREATE TABLE IF NOT EXISTS DowntimeData (",[140,2128,1356],{"class":1355},[140,2130,1359],{"class":164},[140,2132,1356],{"class":1355},[140,2134,1364],{"class":164},[140,2136,1356],{"class":1355},[140,2138,1369],{"class":164},[140,2140,1356],{"class":1355},[140,2142,1374],{"class":164},[140,2144,1356],{"class":1355},[140,2146,1379],{"class":164},[140,2148,1356],{"class":1355},[140,2150,1384],{"class":164},[140,2152,1356],{"class":1355},[140,2154,2155],{"class":164},"    downtime_start DATETIME NOT NULL,",[140,2157,1356],{"class":1355},[140,2159,2160],{"class":164},"    downtime_end DATETIME NOT NULL,",[140,2162,1356],{"class":1355},[140,2164,2165],{"class":164},"    downtime_duration_minutes INTEGER NOT NULL,",[140,2167,1356],{"class":1355},[140,2169,2170],{"class":164},"    downtime_type VARCHAR(50) NOT NULL CHECK (downtime_type IN ('Planned', 'Unplanned')),",[140,2172,1356],{"class":1355},[140,2174,2175],{"class":164},"    downtime_reason TEXT NOT NULL",[140,2177,1356],{"class":1355},[140,2179,1429],{"class":164},[140,2181,1356],{"class":1355},[140,2183,150],{"class":146},[140,2185,170],{"class":146},[140,2187,150],{"class":146},[140,2189,1440],{"class":153},[140,2191,150],{"class":146},[140,2193,159],{"class":146},[140,2195,150],{"class":146},[140,2197,1449],{"class":164},[140,2199,150],{"class":146},[140,2201,170],{"class":146},[140,2203,150],{"class":146},[140,2205,508],{"class":153},[140,2207,150],{"class":146},[140,2209,159],{"class":146},[140,2211,2212],{"class":515},"440",[140,2214,170],{"class":146},[140,2216,150],{"class":146},[140,2218,523],{"class":153},[140,2220,150],{"class":146},[140,2222,159],{"class":146},[140,2224,2225],{"class":515},"240",[140,2227,170],{"class":146},[140,2229,150],{"class":146},[140,2231,1484],{"class":153},[140,2233,150],{"class":146},[140,2235,1489],{"class":146},[140,2237,150],{"class":146},[140,2239,471],{"class":164},[140,2241,150],{"class":146},[140,2243,1498],{"class":146},[140,2245,150],{"class":146},[140,2247,154],{"class":153},[140,2249,150],{"class":146},[140,2251,159],{"class":146},[140,2253,150],{"class":146},[140,2255,489],{"class":164},[140,2257,150],{"class":146},[140,2259,170],{"class":146},[140,2261,150],{"class":146},[140,2263,175],{"class":153},[140,2265,150],{"class":146},[140,2267,159],{"class":146},[140,2269,150],{"class":146},[140,2271,1527],{"class":164},[140,2273,150],{"class":146},[140,2275,170],{"class":146},[140,2277,150],{"class":146},[140,2279,279],{"class":153},[140,2281,150],{"class":146},[140,2283,159],{"class":146},[140,2285,150],{"class":146},[140,2287,165],{"class":164},[140,2289,150],{"class":146},[140,2291,170],{"class":146},[140,2293,150],{"class":146},[140,2295,1237],{"class":153},[140,2297,150],{"class":146},[140,2299,159],{"class":146},[140,2301,150],{"class":146},[140,2303,253],{"class":164},[140,2305,150],{"class":146},[140,2307,170],{"class":146},[140,2309,150],{"class":146},[140,2311,1254],{"class":153},[140,2313,150],{"class":146},[140,2315,159],{"class":146},[140,2317,228],{"class":146},[140,2319,170],{"class":146},[140,2321,150],{"class":146},[140,2323,1580],{"class":153},[140,2325,150],{"class":146},[140,2327,1585],{"class":146},[140,2329,150],{"class":146},[140,2331,12],{"class":306},[140,2333,150],{"class":146},[140,2335,159],{"class":146},[140,2337,150],{"class":146},[140,2339,1598],{"class":164},[140,2341,150],{"class":146},[140,2343,561],{"class":146},[140,2345,150],{"class":146},[140,2347,12],{"class":306},[140,2349,150],{"class":146},[140,2351,159],{"class":146},[140,2353,150],{"class":146},[140,2355,1281],{"class":164},[140,2357,150],{"class":146},[140,2359,170],{"class":146},[140,2361,150],{"class":146},[140,2363,1623],{"class":306},[140,2365,150],{"class":146},[140,2367,159],{"class":146},[140,2369,150],{"class":146},[140,2371,1449],{"class":164},[140,2373,150],{"class":146},[140,2375,1636],{"class":146},[140,2377,150],{"class":146},[140,2379,1641],{"class":153},[140,2381,150],{"class":146},[140,2383,159],{"class":146},[140,2385,228],{"class":146},[140,2387,170],{"class":146},[140,2389,150],{"class":146},[140,2391,1654],{"class":153},[140,2393,150],{"class":146},[140,2395,159],{"class":146},[140,2397,228],{"class":146},[140,2399,170],{"class":146},[140,2401,150],{"class":146},[140,2403,1667],{"class":153},[140,2405,150],{"class":146},[140,2407,383],{"class":146},[140,2409,150],{"class":146},[140,2411,1676],{"class":153},[140,2413,150],{"class":146},[140,2415,159],{"class":146},[140,2417,1683],{"class":515},[140,2419,170],{"class":146},[140,2421,150],{"class":146},[140,2423,1281],{"class":153},[140,2425,150],{"class":146},[140,2427,159],{"class":146},[140,2429,228],{"class":146},[140,2431,170],{"class":146},[140,2433,150],{"class":146},[140,2435,1598],{"class":153},[140,2437,150],{"class":146},[140,2439,159],{"class":146},[140,2441,228],{"class":146},[140,2443,170],{"class":146},[140,2445,150],{"class":146},[140,2447,1714],{"class":153},[140,2449,150],{"class":146},[140,2451,159],{"class":146},[140,2453,150],{"class":146},[140,2455,1723],{"class":164},[140,2457,150],{"class":146},[140,2459,170],{"class":146},[140,2461,150],{"class":146},[140,2463,508],{"class":153},[140,2465,150],{"class":146},[140,2467,159],{"class":146},[140,2469,1738],{"class":515},[140,2471,170],{"class":146},[140,2473,150],{"class":146},[140,2475,523],{"class":153},[140,2477,150],{"class":146},[140,2479,159],{"class":146},[140,2481,2225],{"class":515},[140,2483,170],{"class":146},[140,2485,150],{"class":146},[140,2487,1484],{"class":153},[140,2489,150],{"class":146},[140,2491,1489],{"class":146},[140,2493,150],{"class":146},[140,2495,480],{"class":164},[140,2497,150],{"class":146},[140,2499,1498],{"class":146},[140,2501,150],{"class":146},[140,2503,154],{"class":153},[140,2505,150],{"class":146},[140,2507,159],{"class":146},[140,2509,150],{"class":146},[140,2511,498],{"class":164},[140,2513,150],{"class":146},[140,2515,170],{"class":146},[140,2517,150],{"class":146},[140,2519,175],{"class":153},[140,2521,150],{"class":146},[140,2523,159],{"class":146},[140,2525,150],{"class":146},[140,2527,1797],{"class":164},[140,2529,150],{"class":146},[140,2531,170],{"class":146},[140,2533,150],{"class":146},[140,2535,279],{"class":153},[140,2537,150],{"class":146},[140,2539,159],{"class":146},[140,2541,150],{"class":146},[140,2543,165],{"class":164},[140,2545,150],{"class":146},[140,2547,170],{"class":146},[140,2549,150],{"class":146},[140,2551,1237],{"class":153},[140,2553,150],{"class":146},[140,2555,159],{"class":146},[140,2557,150],{"class":146},[140,2559,253],{"class":164},[140,2561,150],{"class":146},[140,2563,170],{"class":146},[140,2565,150],{"class":146},[140,2567,1254],{"class":153},[140,2569,150],{"class":146},[140,2571,159],{"class":146},[140,2573,150],{"class":146},[140,2575,2576],{"class":164},"debug 2",[140,2578,150],{"class":146},[140,2580,170],{"class":146},[140,2582,150],{"class":146},[140,2584,1855],{"class":153},[140,2586,150],{"class":146},[140,2588,216],{"class":146},[140,2590,150],{"class":146},[140,2592,1864],{"class":153},[140,2594,150],{"class":146},[140,2596,383],{"class":146},[140,2598,150],{"class":146},[140,2600,1873],{"class":153},[140,2602,150],{"class":146},[140,2604,216],{"class":146},[140,2606,150],{"class":146},[140,2608,1882],{"class":153},[140,2610,150],{"class":146},[140,2612,216],{"class":146},[140,2614,150],{"class":146},[140,2616,1891],{"class":153},[140,2618,150],{"class":146},[140,2620,159],{"class":146},[140,2622,150],{"class":146},[140,2624,1900],{"class":164},[140,2626,150],{"class":146},[140,2628,170],{"class":146},[140,2630,150],{"class":146},[140,2632,1909],{"class":153},[140,2634,150],{"class":146},[140,2636,159],{"class":146},[140,2638,228],{"class":146},[140,2640,170],{"class":146},[140,2642,150],{"class":146},[140,2644,1922],{"class":153},[140,2646,150],{"class":146},[140,2648,159],{"class":146},[140,2650,150],{"class":146},[140,2652,1931],{"class":164},[140,2654,150],{"class":146},[140,2656,170],{"class":146},[140,2658,150],{"class":146},[140,2660,508],{"class":153},[140,2662,150],{"class":146},[140,2664,159],{"class":146},[140,2666,1946],{"class":515},[140,2668,170],{"class":146},[140,2670,150],{"class":146},[140,2672,523],{"class":153},[140,2674,150],{"class":146},[140,2676,159],{"class":146},[140,2678,2225],{"class":515},[140,2680,170],{"class":146},[140,2682,150],{"class":146},[140,2684,1484],{"class":153},[140,2686,150],{"class":146},[140,2688,240],{"class":146},[140,2690,150],{"class":146},[140,2692,154],{"class":153},[140,2694,150],{"class":146},[140,2696,159],{"class":146},[140,2698,150],{"class":146},[140,2700,744],{"class":164},[140,2702,150],{"class":146},[140,2704,170],{"class":146},[140,2706,150],{"class":146},[140,2708,175],{"class":153},[140,2710,150],{"class":146},[140,2712,159],{"class":146},[140,2714,150],{"class":146},[140,2716,1212],{"class":164},[140,2718,150],{"class":146},[140,2720,170],{"class":146},[140,2722,150],{"class":146},[140,2724,279],{"class":153},[140,2726,150],{"class":146},[140,2728,159],{"class":146},[140,2730,150],{"class":146},[140,2732,165],{"class":164},[140,2734,150],{"class":146},[140,2736,170],{"class":146},[140,2738,150],{"class":146},[140,2740,1237],{"class":153},[140,2742,150],{"class":146},[140,2744,159],{"class":146},[140,2746,150],{"class":146},[140,2748,574],{"class":164},[140,2750,150],{"class":146},[140,2752,170],{"class":146},[140,2754,150],{"class":146},[140,2756,1254],{"class":153},[140,2758,150],{"class":146},[140,2760,159],{"class":146},[140,2762,150],{"class":146},[140,2764,2765],{"class":164},"Insert production data record",[140,2767,150],{"class":146},[140,2769,170],{"class":146},[140,2771,150],{"class":146},[140,2773,1272],{"class":153},[140,2775,150],{"class":146},[140,2777,159],{"class":146},[140,2779,150],{"class":146},[140,2781,1281],{"class":164},[140,2783,150],{"class":146},[140,2785,170],{"class":146},[140,2787,150],{"class":146},[140,2789,1290],{"class":153},[140,2791,150],{"class":146},[140,2793,159],{"class":146},[140,2795,150],{"class":146},[140,2797,1299],{"class":164},[140,2799,150],{"class":146},[140,2801,170],{"class":146},[140,2803,150],{"class":146},[140,2805,1308],{"class":153},[140,2807,150],{"class":146},[140,2809,159],{"class":146},[140,2811,150],{"class":146},[140,2813,2814],{"class":164},"handlebars",[140,2816,150],{"class":146},[140,2818,170],{"class":146},[140,2820,150],{"class":146},[140,2822,1326],{"class":153},[140,2824,150],{"class":146},[140,2826,159],{"class":146},[140,2828,150],{"class":146},[140,2830,1335],{"class":164},[140,2832,150],{"class":146},[140,2834,170],{"class":146},[140,2836,150],{"class":146},[140,2838,1212],{"class":153},[140,2840,150],{"class":146},[140,2842,159],{"class":146},[140,2844,150],{"class":146},[140,2846,2847],{"class":164},"INSERT INTO ProductionData (",[140,2849,1356],{"class":1355},[140,2851,2852],{"class":164},"    timestamp, ",[140,2854,1356],{"class":1355},[140,2856,2857],{"class":164},"    area, ",[140,2859,1356],{"class":1355},[140,2861,2862],{"class":164},"    line, ",[140,2864,1356],{"class":1355},[140,2866,2867],{"class":164},"    machine_name, ",[140,2869,1356],{"class":1355},[140,2871,2872],{"class":164},"    shift, ",[140,2874,1356],{"class":1355},[140,2876,2877],{"class":164},"    shift_duration, ",[140,2879,1356],{"class":1355},[140,2881,2882],{"class":164},"    good_units, ",[140,2884,1356],{"class":1355},[140,2886,2887],{"class":164},"    defect_units, ",[140,2889,1356],{"class":1355},[140,2891,2892],{"class":164},"    total_produced_units, ",[140,2894,1356],{"class":1355},[140,2896,2897],{"class":164},"    cycle_time, ",[140,2899,1356],{"class":1355},[140,2901,2902],{"class":164},"    ideal_cycle_time,  ",[140,2904,1356],{"class":1355},[140,2906,2907],{"class":164},"    target_output,",[140,2909,1356],{"class":1355},[140,2911,2912],{"class":164},"    operating_time  ",[140,2914,1356],{"class":1355},[140,2916,2917],{"class":164},") ",[140,2919,1356],{"class":1355},[140,2921,2922],{"class":164},"VALUES (",[140,2924,1356],{"class":1355},[140,2926,2927],{"class":164},"    '{{payload.timestamp}}', ",[140,2929,1356],{"class":1355},[140,2931,2932],{"class":164},"    '{{payload.area}}', ",[140,2934,1356],{"class":1355},[140,2936,2937],{"class":164},"    '{{payload.line}}', ",[140,2939,1356],{"class":1355},[140,2941,2942],{"class":164},"    '{{payload.machine_name}}', ",[140,2944,1356],{"class":1355},[140,2946,2947],{"class":164},"    '{{payload.shift}}', ",[140,2949,1356],{"class":1355},[140,2951,2952],{"class":164},"    '{{payload.shift_duration}}',  ",[140,2954,1356],{"class":1355},[140,2956,2957],{"class":164},"    '{{payload.good_units}}',  ",[140,2959,1356],{"class":1355},[140,2961,2962],{"class":164},"    '{{payload.defect_units}}',  ",[140,2964,1356],{"class":1355},[140,2966,2967],{"class":164},"    '{{payload.total_produced_units}}',  ",[140,2969,1356],{"class":1355},[140,2971,2972],{"class":164},"    '{{payload.cycle_time}}',  ",[140,2974,1356],{"class":1355},[140,2976,2977],{"class":164},"    '{{payload.ideal_cycle_time}}',  ",[140,2979,1356],{"class":1355},[140,2981,2982],{"class":164},"    '{{payload.target_output}}',  ",[140,2984,1356],{"class":1355},[140,2986,2987],{"class":164},"    '{{payload.operating_time}}'  ",[140,2989,1356],{"class":1355},[140,2991,1429],{"class":164},[140,2993,1356],{"class":1355},[140,2995,150],{"class":146},[140,2997,170],{"class":146},[140,2999,150],{"class":146},[140,3001,1440],{"class":153},[140,3003,150],{"class":146},[140,3005,159],{"class":146},[140,3007,150],{"class":146},[140,3009,1449],{"class":164},[140,3011,150],{"class":146},[140,3013,170],{"class":146},[140,3015,150],{"class":146},[140,3017,508],{"class":153},[140,3019,150],{"class":146},[140,3021,159],{"class":146},[140,3023,3024],{"class":515},"1550",[140,3026,170],{"class":146},[140,3028,150],{"class":146},[140,3030,523],{"class":153},[140,3032,150],{"class":146},[140,3034,159],{"class":146},[140,3036,3037],{"class":515},"340",[140,3039,170],{"class":146},[140,3041,150],{"class":146},[140,3043,1484],{"class":153},[140,3045,150],{"class":146},[140,3047,1489],{"class":146},[140,3049,150],{"class":146},[140,3051,735],{"class":164},[140,3053,150],{"class":146},[140,3055,1498],{"class":146},[140,3057,150],{"class":146},[140,3059,154],{"class":153},[140,3061,150],{"class":146},[140,3063,159],{"class":146},[140,3065,150],{"class":146},[140,3067,753],{"class":164},[140,3069,150],{"class":146},[140,3071,170],{"class":146},[140,3073,150],{"class":146},[140,3075,175],{"class":153},[140,3077,150],{"class":146},[140,3079,159],{"class":146},[140,3081,150],{"class":146},[140,3083,1797],{"class":164},[140,3085,150],{"class":146},[140,3087,170],{"class":146},[140,3089,150],{"class":146},[140,3091,279],{"class":153},[140,3093,150],{"class":146},[140,3095,159],{"class":146},[140,3097,150],{"class":146},[140,3099,165],{"class":164},[140,3101,150],{"class":146},[140,3103,170],{"class":146},[140,3105,150],{"class":146},[140,3107,1237],{"class":153},[140,3109,150],{"class":146},[140,3111,159],{"class":146},[140,3113,150],{"class":146},[140,3115,574],{"class":164},[140,3117,150],{"class":146},[140,3119,170],{"class":146},[140,3121,150],{"class":146},[140,3123,1254],{"class":153},[140,3125,150],{"class":146},[140,3127,159],{"class":146},[140,3129,150],{"class":146},[140,3131,3132],{"class":164},"debug 3",[140,3134,150],{"class":146},[140,3136,170],{"class":146},[140,3138,150],{"class":146},[140,3140,1855],{"class":153},[140,3142,150],{"class":146},[140,3144,216],{"class":146},[140,3146,150],{"class":146},[140,3148,1864],{"class":153},[140,3150,150],{"class":146},[140,3152,383],{"class":146},[140,3154,150],{"class":146},[140,3156,1873],{"class":153},[140,3158,150],{"class":146},[140,3160,216],{"class":146},[140,3162,150],{"class":146},[140,3164,1882],{"class":153},[140,3166,150],{"class":146},[140,3168,216],{"class":146},[140,3170,150],{"class":146},[140,3172,1891],{"class":153},[140,3174,150],{"class":146},[140,3176,159],{"class":146},[140,3178,150],{"class":146},[140,3180,1900],{"class":164},[140,3182,150],{"class":146},[140,3184,170],{"class":146},[140,3186,150],{"class":146},[140,3188,1909],{"class":153},[140,3190,150],{"class":146},[140,3192,159],{"class":146},[140,3194,228],{"class":146},[140,3196,170],{"class":146},[140,3198,150],{"class":146},[140,3200,1922],{"class":153},[140,3202,150],{"class":146},[140,3204,159],{"class":146},[140,3206,150],{"class":146},[140,3208,1931],{"class":164},[140,3210,150],{"class":146},[140,3212,170],{"class":146},[140,3214,150],{"class":146},[140,3216,508],{"class":153},[140,3218,150],{"class":146},[140,3220,159],{"class":146},[140,3222,3223],{"class":515},"1970",[140,3225,170],{"class":146},[140,3227,150],{"class":146},[140,3229,523],{"class":153},[140,3231,150],{"class":146},[140,3233,159],{"class":146},[140,3235,3037],{"class":515},[140,3237,170],{"class":146},[140,3239,150],{"class":146},[140,3241,1484],{"class":153},[140,3243,150],{"class":146},[140,3245,240],{"class":146},[140,3247,150],{"class":146},[140,3249,154],{"class":153},[140,3251,150],{"class":146},[140,3253,159],{"class":146},[140,3255,150],{"class":146},[140,3257,1073],{"class":164},[140,3259,150],{"class":146},[140,3261,170],{"class":146},[140,3263,150],{"class":146},[140,3265,175],{"class":153},[140,3267,150],{"class":146},[140,3269,159],{"class":146},[140,3271,150],{"class":146},[140,3273,1212],{"class":164},[140,3275,150],{"class":146},[140,3277,170],{"class":146},[140,3279,150],{"class":146},[140,3281,279],{"class":153},[140,3283,150],{"class":146},[140,3285,159],{"class":146},[140,3287,150],{"class":146},[140,3289,165],{"class":164},[140,3291,150],{"class":146},[140,3293,170],{"class":146},[140,3295,150],{"class":146},[140,3297,1237],{"class":153},[140,3299,150],{"class":146},[140,3301,159],{"class":146},[140,3303,150],{"class":146},[140,3305,903],{"class":164},[140,3307,150],{"class":146},[140,3309,170],{"class":146},[140,3311,150],{"class":146},[140,3313,1254],{"class":153},[140,3315,150],{"class":146},[140,3317,159],{"class":146},[140,3319,150],{"class":146},[140,3321,3322],{"class":164},"Drop demo downtime data",[140,3324,150],{"class":146},[140,3326,170],{"class":146},[140,3328,150],{"class":146},[140,3330,1272],{"class":153},[140,3332,150],{"class":146},[140,3334,159],{"class":146},[140,3336,150],{"class":146},[140,3338,1281],{"class":164},[140,3340,150],{"class":146},[140,3342,170],{"class":146},[140,3344,150],{"class":146},[140,3346,1290],{"class":153},[140,3348,150],{"class":146},[140,3350,159],{"class":146},[140,3352,150],{"class":146},[140,3354,1299],{"class":164},[140,3356,150],{"class":146},[140,3358,170],{"class":146},[140,3360,150],{"class":146},[140,3362,1308],{"class":153},[140,3364,150],{"class":146},[140,3366,159],{"class":146},[140,3368,150],{"class":146},[140,3370,1317],{"class":164},[140,3372,150],{"class":146},[140,3374,170],{"class":146},[140,3376,150],{"class":146},[140,3378,1326],{"class":153},[140,3380,150],{"class":146},[140,3382,159],{"class":146},[140,3384,150],{"class":146},[140,3386,1335],{"class":164},[140,3388,150],{"class":146},[140,3390,170],{"class":146},[140,3392,150],{"class":146},[140,3394,1212],{"class":153},[140,3396,150],{"class":146},[140,3398,159],{"class":146},[140,3400,150],{"class":146},[140,3402,3403],{"class":164},"Drop table DowntimeData;",[140,3405,150],{"class":146},[140,3407,170],{"class":146},[140,3409,150],{"class":146},[140,3411,1440],{"class":153},[140,3413,150],{"class":146},[140,3415,159],{"class":146},[140,3417,150],{"class":146},[140,3419,1449],{"class":164},[140,3421,150],{"class":146},[140,3423,170],{"class":146},[140,3425,150],{"class":146},[140,3427,508],{"class":153},[140,3429,150],{"class":146},[140,3431,159],{"class":146},[140,3433,3434],{"class":515},"480",[140,3436,170],{"class":146},[140,3438,150],{"class":146},[140,3440,523],{"class":153},[140,3442,150],{"class":146},[140,3444,159],{"class":146},[140,3446,3447],{"class":515},"580",[140,3449,170],{"class":146},[140,3451,150],{"class":146},[140,3453,1484],{"class":153},[140,3455,150],{"class":146},[140,3457,1489],{"class":146},[140,3459,150],{"class":146},[140,3461,1064],{"class":164},[140,3463,150],{"class":146},[140,3465,1498],{"class":146},[140,3467,150],{"class":146},[140,3469,154],{"class":153},[140,3471,150],{"class":146},[140,3473,159],{"class":146},[140,3475,150],{"class":146},[140,3477,1082],{"class":164},[140,3479,150],{"class":146},[140,3481,170],{"class":146},[140,3483,150],{"class":146},[140,3485,175],{"class":153},[140,3487,150],{"class":146},[140,3489,159],{"class":146},[140,3491,150],{"class":146},[140,3493,1527],{"class":164},[140,3495,150],{"class":146},[140,3497,170],{"class":146},[140,3499,150],{"class":146},[140,3501,279],{"class":153},[140,3503,150],{"class":146},[140,3505,159],{"class":146},[140,3507,150],{"class":146},[140,3509,165],{"class":164},[140,3511,150],{"class":146},[140,3513,170],{"class":146},[140,3515,150],{"class":146},[140,3517,1237],{"class":153},[140,3519,150],{"class":146},[140,3521,159],{"class":146},[140,3523,150],{"class":146},[140,3525,903],{"class":164},[140,3527,150],{"class":146},[140,3529,170],{"class":146},[140,3531,150],{"class":146},[140,3533,1254],{"class":153},[140,3535,150],{"class":146},[140,3537,159],{"class":146},[140,3539,228],{"class":146},[140,3541,170],{"class":146},[140,3543,150],{"class":146},[140,3545,1580],{"class":153},[140,3547,150],{"class":146},[140,3549,1585],{"class":146},[140,3551,150],{"class":146},[140,3553,12],{"class":306},[140,3555,150],{"class":146},[140,3557,159],{"class":146},[140,3559,150],{"class":146},[140,3561,1598],{"class":164},[140,3563,150],{"class":146},[140,3565,561],{"class":146},[140,3567,150],{"class":146},[140,3569,12],{"class":306},[140,3571,150],{"class":146},[140,3573,159],{"class":146},[140,3575,150],{"class":146},[140,3577,1281],{"class":164},[140,3579,150],{"class":146},[140,3581,170],{"class":146},[140,3583,150],{"class":146},[140,3585,1623],{"class":306},[140,3587,150],{"class":146},[140,3589,159],{"class":146},[140,3591,150],{"class":146},[140,3593,1449],{"class":164},[140,3595,150],{"class":146},[140,3597,1636],{"class":146},[140,3599,150],{"class":146},[140,3601,1641],{"class":153},[140,3603,150],{"class":146},[140,3605,159],{"class":146},[140,3607,228],{"class":146},[140,3609,170],{"class":146},[140,3611,150],{"class":146},[140,3613,1654],{"class":153},[140,3615,150],{"class":146},[140,3617,159],{"class":146},[140,3619,228],{"class":146},[140,3621,170],{"class":146},[140,3623,150],{"class":146},[140,3625,1667],{"class":153},[140,3627,150],{"class":146},[140,3629,216],{"class":146},[140,3631,150],{"class":146},[140,3633,1676],{"class":153},[140,3635,150],{"class":146},[140,3637,159],{"class":146},[140,3639,1683],{"class":515},[140,3641,170],{"class":146},[140,3643,150],{"class":146},[140,3645,1281],{"class":153},[140,3647,150],{"class":146},[140,3649,159],{"class":146},[140,3651,228],{"class":146},[140,3653,170],{"class":146},[140,3655,150],{"class":146},[140,3657,1598],{"class":153},[140,3659,150],{"class":146},[140,3661,159],{"class":146},[140,3663,228],{"class":146},[140,3665,170],{"class":146},[140,3667,150],{"class":146},[140,3669,1714],{"class":153},[140,3671,150],{"class":146},[140,3673,159],{"class":146},[140,3675,150],{"class":146},[140,3677,1723],{"class":164},[140,3679,150],{"class":146},[140,3681,170],{"class":146},[140,3683,150],{"class":146},[140,3685,508],{"class":153},[140,3687,150],{"class":146},[140,3689,159],{"class":146},[140,3691,1738],{"class":515},[140,3693,170],{"class":146},[140,3695,150],{"class":146},[140,3697,523],{"class":153},[140,3699,150],{"class":146},[140,3701,159],{"class":146},[140,3703,3447],{"class":515},[140,3705,170],{"class":146},[140,3707,150],{"class":146},[140,3709,1484],{"class":153},[140,3711,150],{"class":146},[140,3713,1489],{"class":146},[140,3715,150],{"class":146},[140,3717,1073],{"class":164},[140,3719,150],{"class":146},[140,3721,1498],{"class":146},[140,3723,150],{"class":146},[140,3725,154],{"class":153},[140,3727,150],{"class":146},[140,3729,159],{"class":146},[140,3731,150],{"class":146},[140,3733,1091],{"class":164},[140,3735,150],{"class":146},[140,3737,170],{"class":146},[140,3739,150],{"class":146},[140,3741,175],{"class":153},[140,3743,150],{"class":146},[140,3745,159],{"class":146},[140,3747,150],{"class":146},[140,3749,1797],{"class":164},[140,3751,150],{"class":146},[140,3753,170],{"class":146},[140,3755,150],{"class":146},[140,3757,279],{"class":153},[140,3759,150],{"class":146},[140,3761,159],{"class":146},[140,3763,150],{"class":146},[140,3765,165],{"class":164},[140,3767,150],{"class":146},[140,3769,170],{"class":146},[140,3771,150],{"class":146},[140,3773,1237],{"class":153},[140,3775,150],{"class":146},[140,3777,159],{"class":146},[140,3779,150],{"class":146},[140,3781,903],{"class":164},[140,3783,150],{"class":146},[140,3785,170],{"class":146},[140,3787,150],{"class":146},[140,3789,1254],{"class":153},[140,3791,150],{"class":146},[140,3793,159],{"class":146},[140,3795,150],{"class":146},[140,3797,3798],{"class":164},"debug 5",[140,3800,150],{"class":146},[140,3802,170],{"class":146},[140,3804,150],{"class":146},[140,3806,1855],{"class":153},[140,3808,150],{"class":146},[140,3810,216],{"class":146},[140,3812,150],{"class":146},[140,3814,1864],{"class":153},[140,3816,150],{"class":146},[140,3818,383],{"class":146},[140,3820,150],{"class":146},[140,3822,1873],{"class":153},[140,3824,150],{"class":146},[140,3826,216],{"class":146},[140,3828,150],{"class":146},[140,3830,1882],{"class":153},[140,3832,150],{"class":146},[140,3834,216],{"class":146},[140,3836,150],{"class":146},[140,3838,1891],{"class":153},[140,3840,150],{"class":146},[140,3842,159],{"class":146},[140,3844,150],{"class":146},[140,3846,1900],{"class":164},[140,3848,150],{"class":146},[140,3850,170],{"class":146},[140,3852,150],{"class":146},[140,3854,1909],{"class":153},[140,3856,150],{"class":146},[140,3858,159],{"class":146},[140,3860,228],{"class":146},[140,3862,170],{"class":146},[140,3864,150],{"class":146},[140,3866,1922],{"class":153},[140,3868,150],{"class":146},[140,3870,159],{"class":146},[140,3872,150],{"class":146},[140,3874,1931],{"class":164},[140,3876,150],{"class":146},[140,3878,170],{"class":146},[140,3880,150],{"class":146},[140,3882,508],{"class":153},[140,3884,150],{"class":146},[140,3886,159],{"class":146},[140,3888,3889],{"class":515},"1120",[140,3891,170],{"class":146},[140,3893,150],{"class":146},[140,3895,523],{"class":153},[140,3897,150],{"class":146},[140,3899,159],{"class":146},[140,3901,3447],{"class":515},[140,3903,170],{"class":146},[140,3905,150],{"class":146},[140,3907,1484],{"class":153},[140,3909,150],{"class":146},[140,3911,240],{"class":146},[140,3913,150],{"class":146},[140,3915,154],{"class":153},[140,3917,150],{"class":146},[140,3919,159],{"class":146},[140,3921,150],{"class":146},[140,3923,762],{"class":164},[140,3925,150],{"class":146},[140,3927,170],{"class":146},[140,3929,150],{"class":146},[140,3931,175],{"class":153},[140,3933,150],{"class":146},[140,3935,159],{"class":146},[140,3937,150],{"class":146},[140,3939,1527],{"class":164},[140,3941,150],{"class":146},[140,3943,170],{"class":146},[140,3945,150],{"class":146},[140,3947,279],{"class":153},[140,3949,150],{"class":146},[140,3951,159],{"class":146},[140,3953,150],{"class":146},[140,3955,165],{"class":164},[140,3957,150],{"class":146},[140,3959,170],{"class":146},[140,3961,150],{"class":146},[140,3963,1237],{"class":153},[140,3965,150],{"class":146},[140,3967,159],{"class":146},[140,3969,150],{"class":146},[140,3971,574],{"class":164},[140,3973,150],{"class":146},[140,3975,170],{"class":146},[140,3977,150],{"class":146},[140,3979,1254],{"class":153},[140,3981,150],{"class":146},[140,3983,159],{"class":146},[140,3985,150],{"class":146},[140,3987,3988],{"class":164},"Click to generate and insert demo data.",[140,3990,150],{"class":146},[140,3992,170],{"class":146},[140,3994,150],{"class":146},[140,3996,1580],{"class":153},[140,3998,150],{"class":146},[140,4000,1585],{"class":146},[140,4002,150],{"class":146},[140,4004,12],{"class":306},[140,4006,150],{"class":146},[140,4008,159],{"class":146},[140,4010,150],{"class":146},[140,4012,1598],{"class":164},[140,4014,150],{"class":146},[140,4016,561],{"class":146},[140,4018,150],{"class":146},[140,4020,12],{"class":306},[140,4022,150],{"class":146},[140,4024,159],{"class":146},[140,4026,150],{"class":146},[140,4028,1281],{"class":164},[140,4030,150],{"class":146},[140,4032,170],{"class":146},[140,4034,150],{"class":146},[140,4036,1623],{"class":306},[140,4038,150],{"class":146},[140,4040,159],{"class":146},[140,4042,150],{"class":146},[140,4044,1449],{"class":164},[140,4046,150],{"class":146},[140,4048,1636],{"class":146},[140,4050,150],{"class":146},[140,4052,1641],{"class":153},[140,4054,150],{"class":146},[140,4056,159],{"class":146},[140,4058,228],{"class":146},[140,4060,170],{"class":146},[140,4062,150],{"class":146},[140,4064,1654],{"class":153},[140,4066,150],{"class":146},[140,4068,159],{"class":146},[140,4070,228],{"class":146},[140,4072,170],{"class":146},[140,4074,150],{"class":146},[140,4076,1667],{"class":153},[140,4078,150],{"class":146},[140,4080,216],{"class":146},[140,4082,150],{"class":146},[140,4084,1676],{"class":153},[140,4086,150],{"class":146},[140,4088,159],{"class":146},[140,4090,150],{"class":146},[140,4092,370],{"class":164},[140,4094,150],{"class":146},[140,4096,170],{"class":146},[140,4098,150],{"class":146},[140,4100,1281],{"class":153},[140,4102,150],{"class":146},[140,4104,159],{"class":146},[140,4106,228],{"class":146},[140,4108,170],{"class":146},[140,4110,150],{"class":146},[140,4112,1598],{"class":153},[140,4114,150],{"class":146},[140,4116,159],{"class":146},[140,4118,228],{"class":146},[140,4120,170],{"class":146},[140,4122,150],{"class":146},[140,4124,1714],{"class":153},[140,4126,150],{"class":146},[140,4128,159],{"class":146},[140,4130,150],{"class":146},[140,4132,1723],{"class":164},[140,4134,150],{"class":146},[140,4136,170],{"class":146},[140,4138,150],{"class":146},[140,4140,508],{"class":153},[140,4142,150],{"class":146},[140,4144,159],{"class":146},[140,4146,4147],{"class":515},"230",[140,4149,170],{"class":146},[140,4151,150],{"class":146},[140,4153,523],{"class":153},[140,4155,150],{"class":146},[140,4157,159],{"class":146},[140,4159,4160],{"class":515},"380",[140,4162,170],{"class":146},[140,4164,150],{"class":146},[140,4166,1484],{"class":153},[140,4168,150],{"class":146},[140,4170,1489],{"class":146},[140,4172,150],{"class":146},[140,4174,771],{"class":164},[140,4176,150],{"class":146},[140,4178,1498],{"class":146},[140,4180,150],{"class":146},[140,4182,154],{"class":153},[140,4184,150],{"class":146},[140,4186,159],{"class":146},[140,4188,150],{"class":146},[140,4190,771],{"class":164},[140,4192,150],{"class":146},[140,4194,170],{"class":146},[140,4196,150],{"class":146},[140,4198,175],{"class":153},[140,4200,150],{"class":146},[140,4202,159],{"class":146},[140,4204,150],{"class":146},[140,4206,4207],{"class":164},"function",[140,4209,150],{"class":146},[140,4211,170],{"class":146},[140,4213,150],{"class":146},[140,4215,279],{"class":153},[140,4217,150],{"class":146},[140,4219,159],{"class":146},[140,4221,150],{"class":146},[140,4223,165],{"class":164},[140,4225,150],{"class":146},[140,4227,170],{"class":146},[140,4229,150],{"class":146},[140,4231,1237],{"class":153},[140,4233,150],{"class":146},[140,4235,159],{"class":146},[140,4237,150],{"class":146},[140,4239,574],{"class":164},[140,4241,150],{"class":146},[140,4243,170],{"class":146},[140,4245,150],{"class":146},[140,4247,1254],{"class":153},[140,4249,150],{"class":146},[140,4251,159],{"class":146},[140,4253,150],{"class":146},[140,4255,4256],{"class":164},"Generate simulated production and downtime data",[140,4258,150],{"class":146},[140,4260,170],{"class":146},[140,4262,150],{"class":146},[140,4264,4265],{"class":153},"func",[140,4267,150],{"class":146},[140,4269,159],{"class":146},[140,4271,150],{"class":146},[140,4273,4274],{"class":164},"function generateProductionData() {",[140,4276,1356],{"class":1355},[140,4278,4279],{"class":164},"    const areas = {",[140,4281,1356],{"class":1355},[140,4283,4284],{"class":1355},"        \\\"",[140,4286,4287],{"class":164},"Pressing",[140,4289,4290],{"class":1355},"\\\"",[140,4292,4293],{"class":164},": [",[140,4295,4290],{"class":1355},[140,4297,4298],{"class":164},"Hydraulic Press",[140,4300,4290],{"class":1355},[140,4302,4303],{"class":164},", ",[140,4305,4290],{"class":1355},[140,4307,4308],{"class":164},"CNC Press Brake",[140,4310,4290],{"class":1355},[140,4312,4303],{"class":164},[140,4314,4290],{"class":1355},[140,4316,4317],{"class":164},"Stamping Press",[140,4319,4290],{"class":1355},[140,4321,4303],{"class":164},[140,4323,4290],{"class":1355},[140,4325,4326],{"class":164},"Power Press",[140,4328,4290],{"class":1355},[140,4330,503],{"class":164},[140,4332,1356],{"class":1355},[140,4334,4284],{"class":1355},[140,4336,4337],{"class":164},"Assembly",[140,4339,4290],{"class":1355},[140,4341,4293],{"class":164},[140,4343,4290],{"class":1355},[140,4345,4346],{"class":164},"Robotic Arm",[140,4348,4290],{"class":1355},[140,4350,4303],{"class":164},[140,4352,4290],{"class":1355},[140,4354,4355],{"class":164},"Screw Insertion Machine",[140,4357,4290],{"class":1355},[140,4359,4303],{"class":164},[140,4361,4290],{"class":1355},[140,4363,4364],{"class":164},"Pick-and-Place Machine",[140,4366,4290],{"class":1355},[140,4368,503],{"class":164},[140,4370,1356],{"class":1355},[140,4372,4284],{"class":1355},[140,4374,4375],{"class":164},"Packaging",[140,4377,4290],{"class":1355},[140,4379,4293],{"class":164},[140,4381,4290],{"class":1355},[140,4383,4384],{"class":164},"Carton Sealing Machine",[140,4386,4290],{"class":1355},[140,4388,4303],{"class":164},[140,4390,4290],{"class":1355},[140,4392,4393],{"class":164},"Shrink Wrapping Machine",[140,4395,4290],{"class":1355},[140,4397,4303],{"class":164},[140,4399,4290],{"class":1355},[140,4401,4402],{"class":164},"Bottle Filling and Capping Machine",[140,4404,4290],{"class":1355},[140,4406,4303],{"class":164},[140,4408,4290],{"class":1355},[140,4410,4411],{"class":164},"Flow Wrapper",[140,4413,4290],{"class":1355},[140,4415,4416],{"class":164},"]",[140,4418,1356],{"class":1355},[140,4420,4421],{"class":164},"    };",[140,4423,4424],{"class":1355},"\\n\\n",[140,4426,4427],{"class":164},"    const shifts = [",[140,4429,4290],{"class":1355},[140,4431,4432],{"class":164},"Shift 1",[140,4434,4290],{"class":1355},[140,4436,4303],{"class":164},[140,4438,4290],{"class":1355},[140,4440,4441],{"class":164},"Shift 2",[140,4443,4290],{"class":1355},[140,4445,4303],{"class":164},[140,4447,4290],{"class":1355},[140,4449,4450],{"class":164},"Shift 3",[140,4452,4290],{"class":1355},[140,4454,4455],{"class":164},"];",[140,4457,1356],{"class":1355},[140,4459,4460],{"class":164},"    const shiftStartTimes = {",[140,4462,1356],{"class":1355},[140,4464,4284],{"class":1355},[140,4466,4432],{"class":164},[140,4468,4290],{"class":1355},[140,4470,4471],{"class":164},": ",[140,4473,4290],{"class":1355},[140,4475,4476],{"class":164},"00:00:00",[140,4478,4290],{"class":1355},[140,4480,170],{"class":164},[140,4482,1356],{"class":1355},[140,4484,4284],{"class":1355},[140,4486,4441],{"class":164},[140,4488,4290],{"class":1355},[140,4490,4471],{"class":164},[140,4492,4290],{"class":1355},[140,4494,4495],{"class":164},"08:00:00",[140,4497,4290],{"class":1355},[140,4499,170],{"class":164},[140,4501,1356],{"class":1355},[140,4503,4284],{"class":1355},[140,4505,4450],{"class":164},[140,4507,4290],{"class":1355},[140,4509,4471],{"class":164},[140,4511,4290],{"class":1355},[140,4513,4514],{"class":164},"16:00:00",[140,4516,4517],{"class":1355},"\\\"\\n",[140,4519,4421],{"class":164},[140,4521,4424],{"class":1355},[140,4523,4524],{"class":164},"    const uniqueShortCodes = {",[140,4526,1356],{"class":1355},[140,4528,4284],{"class":1355},[140,4530,4287],{"class":164},[140,4532,4290],{"class":1355},[140,4534,4293],{"class":164},[140,4536,4290],{"class":1355},[140,4538,4539],{"class":164},"HP",[140,4541,4290],{"class":1355},[140,4543,4303],{"class":164},[140,4545,4290],{"class":1355},[140,4547,4548],{"class":164},"PB",[140,4550,4290],{"class":1355},[140,4552,4303],{"class":164},[140,4554,4290],{"class":1355},[140,4556,4557],{"class":164},"SP",[140,4559,4290],{"class":1355},[140,4561,4303],{"class":164},[140,4563,4290],{"class":1355},[140,4565,4566],{"class":164},"PP",[140,4568,4290],{"class":1355},[140,4570,503],{"class":164},[140,4572,1356],{"class":1355},[140,4574,4284],{"class":1355},[140,4576,4337],{"class":164},[140,4578,4290],{"class":1355},[140,4580,4293],{"class":164},[140,4582,4290],{"class":1355},[140,4584,4585],{"class":164},"RA",[140,4587,4290],{"class":1355},[140,4589,4303],{"class":164},[140,4591,4290],{"class":1355},[140,4593,4594],{"class":164},"SIM",[140,4596,4290],{"class":1355},[140,4598,4303],{"class":164},[140,4600,4290],{"class":1355},[140,4602,4603],{"class":164},"P and P",[140,4605,4290],{"class":1355},[140,4607,503],{"class":164},[140,4609,1356],{"class":1355},[140,4611,4284],{"class":1355},[140,4613,4375],{"class":164},[140,4615,4290],{"class":1355},[140,4617,4293],{"class":164},[140,4619,4290],{"class":1355},[140,4621,4622],{"class":164},"CSM",[140,4624,4290],{"class":1355},[140,4626,4303],{"class":164},[140,4628,4290],{"class":1355},[140,4630,4631],{"class":164},"SWM",[140,4633,4290],{"class":1355},[140,4635,4303],{"class":164},[140,4637,4290],{"class":1355},[140,4639,4640],{"class":164},"BFCM",[140,4642,4290],{"class":1355},[140,4644,4303],{"class":164},[140,4646,4290],{"class":1355},[140,4648,4649],{"class":164},"FW",[140,4651,4290],{"class":1355},[140,4653,4416],{"class":164},[140,4655,1356],{"class":1355},[140,4657,4421],{"class":164},[140,4659,4424],{"class":1355},[140,4661,4662],{"class":164},"    const downtimeTypes = [",[140,4664,4290],{"class":1355},[140,4666,4667],{"class":164},"Planned",[140,4669,4290],{"class":1355},[140,4671,4303],{"class":164},[140,4673,4290],{"class":1355},[140,4675,4676],{"class":164},"Unplanned",[140,4678,4290],{"class":1355},[140,4680,4455],{"class":164},[140,4682,1356],{"class":1355},[140,4684,4685],{"class":164},"    const plannedDowntimeReasons = [",[140,4687,1356],{"class":1355},[140,4689,4284],{"class":1355},[140,4691,4692],{"class":164},"Scheduled Maintenance",[140,4694,4290],{"class":1355},[140,4696,4303],{"class":164},[140,4698,4290],{"class":1355},[140,4700,4701],{"class":164},"Equipment Upgrades",[140,4703,4290],{"class":1355},[140,4705,4303],{"class":164},[140,4707,4290],{"class":1355},[140,4709,4710],{"class":164},"Shift Changeover",[140,4712,4290],{"class":1355},[140,4714,170],{"class":164},[140,4716,1356],{"class":1355},[140,4718,4284],{"class":1355},[140,4720,4721],{"class":164},"Tool Changeover",[140,4723,4290],{"class":1355},[140,4725,4303],{"class":164},[140,4727,4290],{"class":1355},[140,4729,4730],{"class":164},"Calibration and Quality Checks",[140,4732,4290],{"class":1355},[140,4734,4303],{"class":164},[140,4736,4290],{"class":1355},[140,4738,4739],{"class":164},"Cleaning and Sanitation",[140,4741,4290],{"class":1355},[140,4743,4303],{"class":164},[140,4745,4290],{"class":1355},[140,4747,4748],{"class":164},"Planned Power Outage",[140,4750,4517],{"class":1355},[140,4752,4753],{"class":164},"    ];",[140,4755,1356],{"class":1355},[140,4757,4758],{"class":164},"    const unplannedDowntimeReasons = [",[140,4760,1356],{"class":1355},[140,4762,4284],{"class":1355},[140,4764,4765],{"class":164},"Power Failure",[140,4767,4290],{"class":1355},[140,4769,4303],{"class":164},[140,4771,4290],{"class":1355},[140,4773,4774],{"class":164},"Material Shortage",[140,4776,4290],{"class":1355},[140,4778,4303],{"class":164},[140,4780,4290],{"class":1355},[140,4782,4783],{"class":164},"Technical Fault",[140,4785,4290],{"class":1355},[140,4787,4303],{"class":164},[140,4789,4290],{"class":1355},[140,4791,4792],{"class":164},"Operator Unavailable",[140,4794,4517],{"class":1355},[140,4796,4753],{"class":164},[140,4798,4424],{"class":1355},[140,4800,4801],{"class":164},"    const data = [];",[140,4803,1356],{"class":1355},[140,4805,4806],{"class":164},"    const downtimeData = [];",[140,4808,1356],{"class":1355},[140,4810,4811],{"class":164},"    const now = new Date();",[140,4813,4424],{"class":1355},[140,4815,4816],{"class":164},"    const normalizeTimestamp = (timestamp) => timestamp.toISOString().split(",[140,4818,4290],{"class":1355},[140,4820,4821],{"class":164},"T",[140,4823,4290],{"class":1355},[140,4825,4826],{"class":164},").join(",[140,4828,4290],{"class":1355},[140,4830,4831],{"class":1355}," \\\"",[140,4833,4834],{"class":164},").slice(0, 19);",[140,4836,4424],{"class":1355},[140,4838,4839],{"class":164},"    for (let i = 0; i \u003C 30; i++) {",[140,4841,1356],{"class":1355},[140,4843,4844],{"class":164},"        const date = new Date();",[140,4846,1356],{"class":1355},[140,4848,4849],{"class":164},"        date.setDate(now.getDate() - i);",[140,4851,1356],{"class":1355},[140,4853,4854],{"class":164},"        const formattedDate = date.toISOString().split(",[140,4856,4290],{"class":1355},[140,4858,4821],{"class":164},[140,4860,4290],{"class":1355},[140,4862,4863],{"class":164},")[0];",[140,4865,4424],{"class":1355},[140,4867,4868],{"class":164},"        shifts.forEach(shift => {",[140,4870,1356],{"class":1355},[140,4872,4873],{"class":164},"            const shiftStart = shiftStartTimes[shift];",[140,4875,1356],{"class":1355},[140,4877,4878],{"class":164},"            const shiftTimestamp = new Date(`${formattedDate}T${shiftStart}`);",[140,4880,4424],{"class":1355},[140,4882,4883],{"class":164},"            Object.entries(areas).forEach(([area, machines]) => {",[140,4885,1356],{"class":1355},[140,4887,4888],{"class":164},"                machines.forEach((_, index) => {",[140,4890,1356],{"class":1355},[140,4892,4893],{"class":164},"                    const randomCode = uniqueShortCodes[area][Math.floor(Math.random() * uniqueShortCodes[area].length)];",[140,4895,1356],{"class":1355},[140,4897,4898],{"class":164},"                    const uniqueID = Math.floor(10000 + Math.random() * 90000);",[140,4900,1356],{"class":1355},[140,4902,4903],{"class":164},"                    const shortMachineName = `${randomCode}-${uniqueID}`;",[140,4905,4424],{"class":1355},[140,4907,4908],{"class":164},"                    const shiftDuration = 8;",[140,4910,1356],{"class":1355},[140,4912,4913],{"class":164},"                    let totalDowntimeMinutes = 0;",[140,4915,1356],{"class":1355},[140,4917,4918],{"class":164},"                    let downtimeEvents = [];",[140,4920,4424],{"class":1355},[140,4922,4923],{"class":164},"                    \u002F\u002F Increase downtime frequency (up to 4 events per shift)",[140,4925,1356],{"class":1355},[140,4927,4928],{"class":164},"                    const numDowntimes = Math.floor(Math.random() * 4) + 1;",[140,4930,4424],{"class":1355},[140,4932,4933],{"class":164},"                    for (let d = 0; d \u003C numDowntimes; d++) {",[140,4935,1356],{"class":1355},[140,4937,4938],{"class":164},"                        if (Math.random() \u003C 0.75) {  \u002F\u002F Increase probability of downtime",[140,4940,1356],{"class":1355},[140,4942,4943],{"class":164},"                            let downtimeMinutes = Math.floor(5 + Math.random() * 10); \u002F\u002F Shorter downtimes (5-15 mins)",[140,4945,1356],{"class":1355},[140,4947,4948],{"class":164},"                            totalDowntimeMinutes += downtimeMinutes;",[140,4950,4424],{"class":1355},[140,4952,4953],{"class":164},"                            const downtimeStartMinutes = Math.floor(Math.random() * (shiftDuration * 60 - downtimeMinutes));",[140,4955,1356],{"class":1355},[140,4957,4958],{"class":164},"                            const downtimeStart = new Date(shiftTimestamp);",[140,4960,1356],{"class":1355},[140,4962,4963],{"class":164},"                            downtimeStart.setMinutes(downtimeStart.getMinutes() + downtimeStartMinutes);",[140,4965,4424],{"class":1355},[140,4967,4968],{"class":164},"                            const downtimeEnd = new Date(downtimeStart);",[140,4970,1356],{"class":1355},[140,4972,4973],{"class":164},"                            downtimeEnd.setMinutes(downtimeEnd.getMinutes() + downtimeMinutes);",[140,4975,4424],{"class":1355},[140,4977,4978],{"class":164},"                            const downtimeType = downtimeTypes[Math.floor(Math.random() * downtimeTypes.length)];",[140,4980,1356],{"class":1355},[140,4982,4983],{"class":164},"                            const downtimeReason = downtimeType === ",[140,4985,4290],{"class":1355},[140,4987,4667],{"class":164},[140,4989,4517],{"class":1355},[140,4991,4992],{"class":164},"                                ? plannedDowntimeReasons[Math.floor(Math.random() * plannedDowntimeReasons.length)]",[140,4994,1356],{"class":1355},[140,4996,4997],{"class":164},"                                : unplannedDowntimeReasons[Math.floor(Math.random() * unplannedDowntimeReasons.length)];",[140,4999,4424],{"class":1355},[140,5001,5002],{"class":164},"                            downtimeEvents.push({",[140,5004,1356],{"class":1355},[140,5006,5007],{"class":164},"                                timestamp: normalizeTimestamp(shiftTimestamp),",[140,5009,1356],{"class":1355},[140,5011,5012],{"class":164},"                                area,",[140,5014,1356],{"class":1355},[140,5016,5017],{"class":164},"                                machine_name: shortMachineName,",[140,5019,1356],{"class":1355},[140,5021,5022],{"class":164},"                                shift,",[140,5024,1356],{"class":1355},[140,5026,5027],{"class":164},"                                downtime_start: normalizeTimestamp(downtimeStart),",[140,5029,1356],{"class":1355},[140,5031,5032],{"class":164},"                                downtime_end: normalizeTimestamp(downtimeEnd),",[140,5034,1356],{"class":1355},[140,5036,5037],{"class":164},"                                downtime_duration_minutes: downtimeMinutes,",[140,5039,1356],{"class":1355},[140,5041,5042],{"class":164},"                                downtime_reason: downtimeReason,",[140,5044,1356],{"class":1355},[140,5046,5047],{"class":164},"                                downtime_type: downtimeType,",[140,5049,1356],{"class":1355},[140,5051,5052],{"class":164},"                                line: `Line-${index + 1}`",[140,5054,1356],{"class":1355},[140,5056,5057],{"class":164},"                            });",[140,5059,1356],{"class":1355},[140,5061,5062],{"class":164},"                        }",[140,5064,1356],{"class":1355},[140,5066,5067],{"class":164},"                    }",[140,5069,4424],{"class":1355},[140,5071,5072],{"class":164},"                    const operatingTime = (shiftDuration * 60 - totalDowntimeMinutes) * 60;",[140,5074,1356],{"class":1355},[140,5076,5077],{"class":164},"                    let efficiency = Math.random() * 0.2 + 0.75;",[140,5079,1356],{"class":1355},[140,5081,5082],{"class":164},"                    let targetOutput = Math.floor(operatingTime \u002F 3) || 1;",[140,5084,1356],{"class":1355},[140,5086,5087],{"class":164},"                    let totalProduced = Math.floor(targetOutput * efficiency);",[140,5089,1356],{"class":1355},[140,5091,5092],{"class":164},"                    totalProduced = Math.min(totalProduced, targetOutput);",[140,5094,4424],{"class":1355},[140,5096,5097],{"class":164},"                    const defectRate = Math.random() * 0.02 + 0.01;",[140,5099,1356],{"class":1355},[140,5101,5102],{"class":164},"                    const defectUnits = Math.floor(totalProduced * defectRate);",[140,5104,1356],{"class":1355},[140,5106,5107],{"class":164},"                    const goodUnits = totalProduced - defectUnits;",[140,5109,4424],{"class":1355},[140,5111,5112],{"class":164},"                    data.push({",[140,5114,1356],{"class":1355},[140,5116,5117],{"class":164},"                        timestamp: normalizeTimestamp(shiftTimestamp),",[140,5119,1356],{"class":1355},[140,5121,5122],{"class":164},"                        area,",[140,5124,1356],{"class":1355},[140,5126,5127],{"class":164},"                        machine_name: shortMachineName,",[140,5129,1356],{"class":1355},[140,5131,5132],{"class":164},"                        shift,",[140,5134,1356],{"class":1355},[140,5136,5137],{"class":164},"                        shift_duration: shiftDuration,",[140,5139,1356],{"class":1355},[140,5141,5142],{"class":164},"                        operating_time: operatingTime - totalDowntimeMinutes * 60,",[140,5144,1356],{"class":1355},[140,5146,5147],{"class":164},"                        good_units: goodUnits,",[140,5149,1356],{"class":1355},[140,5151,5152],{"class":164},"                        defect_units: defectUnits,",[140,5154,1356],{"class":1355},[140,5156,5157],{"class":164},"                        total_produced_units: totalProduced,",[140,5159,1356],{"class":1355},[140,5161,5162],{"class":164},"                        target_output: targetOutput,",[140,5164,1356],{"class":1355},[140,5166,5167],{"class":164},"                        line: `Line-${index + 1}`",[140,5169,1356],{"class":1355},[140,5171,5172],{"class":164},"                    });",[140,5174,4424],{"class":1355},[140,5176,5177],{"class":164},"                    downtimeData.push(...downtimeEvents);",[140,5179,1356],{"class":1355},[140,5181,5182],{"class":164},"                });",[140,5184,1356],{"class":1355},[140,5186,5187],{"class":164},"            });",[140,5189,1356],{"class":1355},[140,5191,5192],{"class":164},"        });",[140,5194,1356],{"class":1355},[140,5196,5197],{"class":164},"    }",[140,5199,4424],{"class":1355},[140,5201,5202],{"class":164},"    return [",[140,5204,1356],{"class":1355},[140,5206,5207],{"class":164},"        { payload: data },",[140,5209,1356],{"class":1355},[140,5211,5212],{"class":164},"        { payload: downtimeData }",[140,5214,1356],{"class":1355},[140,5216,4753],{"class":164},[140,5218,1356],{"class":1355},[140,5220,5221],{"class":164},"}",[140,5223,4424],{"class":1355},[140,5225,5226],{"class":164},"const productionDataSet = generateProductionData();",[140,5228,4424],{"class":1355},[140,5230,5231],{"class":164},"return [",[140,5233,1356],{"class":1355},[140,5235,5236],{"class":164},"    { payload: productionDataSet[0].payload },",[140,5238,1356],{"class":1355},[140,5240,5241],{"class":164},"    { payload: productionDataSet[1].payload }",[140,5243,1356],{"class":1355},[140,5245,4455],{"class":164},[140,5247,1356],{"class":1355},[140,5249,150],{"class":146},[140,5251,170],{"class":146},[140,5253,150],{"class":146},[140,5255,5256],{"class":153},"outputs",[140,5258,150],{"class":146},[140,5260,159],{"class":146},[140,5262,5263],{"class":515},"2",[140,5265,170],{"class":146},[140,5267,150],{"class":146},[140,5269,5270],{"class":153},"timeout",[140,5272,150],{"class":146},[140,5274,159],{"class":146},[140,5276,5277],{"class":515},"0",[140,5279,170],{"class":146},[140,5281,150],{"class":146},[140,5283,5284],{"class":153},"noerr",[140,5286,150],{"class":146},[140,5288,159],{"class":146},[140,5290,5277],{"class":515},[140,5292,170],{"class":146},[140,5294,150],{"class":146},[140,5296,5297],{"class":153},"initialize",[140,5299,150],{"class":146},[140,5301,159],{"class":146},[140,5303,228],{"class":146},[140,5305,170],{"class":146},[140,5307,150],{"class":146},[140,5309,5310],{"class":153},"finalize",[140,5312,150],{"class":146},[140,5314,159],{"class":146},[140,5316,228],{"class":146},[140,5318,170],{"class":146},[140,5320,150],{"class":146},[140,5322,5323],{"class":153},"libs",[140,5325,150],{"class":146},[140,5327,5328],{"class":146},":[],",[140,5330,150],{"class":146},[140,5332,508],{"class":153},[140,5334,150],{"class":146},[140,5336,159],{"class":146},[140,5338,5339],{"class":515},"690",[140,5341,170],{"class":146},[140,5343,150],{"class":146},[140,5345,523],{"class":153},[140,5347,150],{"class":146},[140,5349,159],{"class":146},[140,5351,4160],{"class":515},[140,5353,170],{"class":146},[140,5355,150],{"class":146},[140,5357,1484],{"class":153},[140,5359,150],{"class":146},[140,5361,1489],{"class":146},[140,5363,150],{"class":146},[140,5365,780],{"class":164},[140,5367,150],{"class":146},[140,5369,5370],{"class":146},"],[",[140,5372,150],{"class":146},[140,5374,825],{"class":164},[140,5376,150],{"class":146},[140,5378,1498],{"class":146},[140,5380,150],{"class":146},[140,5382,154],{"class":153},[140,5384,150],{"class":146},[140,5386,159],{"class":146},[140,5388,150],{"class":146},[140,5390,780],{"class":164},[140,5392,150],{"class":146},[140,5394,170],{"class":146},[140,5396,150],{"class":146},[140,5398,175],{"class":153},[140,5400,150],{"class":146},[140,5402,159],{"class":146},[140,5404,150],{"class":146},[140,5406,5407],{"class":164},"split",[140,5409,150],{"class":146},[140,5411,170],{"class":146},[140,5413,150],{"class":146},[140,5415,279],{"class":153},[140,5417,150],{"class":146},[140,5419,159],{"class":146},[140,5421,150],{"class":146},[140,5423,165],{"class":164},[140,5425,150],{"class":146},[140,5427,170],{"class":146},[140,5429,150],{"class":146},[140,5431,1237],{"class":153},[140,5433,150],{"class":146},[140,5435,159],{"class":146},[140,5437,150],{"class":146},[140,5439,574],{"class":164},[140,5441,150],{"class":146},[140,5443,170],{"class":146},[140,5445,150],{"class":146},[140,5447,1254],{"class":153},[140,5449,150],{"class":146},[140,5451,159],{"class":146},[140,5453,228],{"class":146},[140,5455,170],{"class":146},[140,5457,150],{"class":146},[140,5459,5460],{"class":153},"splt",[140,5462,150],{"class":146},[140,5464,159],{"class":146},[140,5466,150],{"class":146},[140,5468,5469],{"class":1355},"\\\\",[140,5471,5472],{"class":164},"n",[140,5474,150],{"class":146},[140,5476,170],{"class":146},[140,5478,150],{"class":146},[140,5480,5481],{"class":153},"spltType",[140,5483,150],{"class":146},[140,5485,159],{"class":146},[140,5487,150],{"class":146},[140,5489,1449],{"class":164},[140,5491,150],{"class":146},[140,5493,170],{"class":146},[140,5495,150],{"class":146},[140,5497,5498],{"class":153},"arraySplt",[140,5500,150],{"class":146},[140,5502,159],{"class":146},[140,5504,334],{"class":515},[140,5506,170],{"class":146},[140,5508,150],{"class":146},[140,5510,5511],{"class":153},"arraySpltType",[140,5513,150],{"class":146},[140,5515,159],{"class":146},[140,5517,150],{"class":146},[140,5519,5520],{"class":164},"len",[140,5522,150],{"class":146},[140,5524,170],{"class":146},[140,5526,150],{"class":146},[140,5528,5529],{"class":153},"stream",[140,5531,150],{"class":146},[140,5533,216],{"class":146},[140,5535,150],{"class":146},[140,5537,5538],{"class":153},"addname",[140,5540,150],{"class":146},[140,5542,159],{"class":146},[140,5544,228],{"class":146},[140,5546,170],{"class":146},[140,5548,150],{"class":146},[140,5550,508],{"class":153},[140,5552,150],{"class":146},[140,5554,159],{"class":146},[140,5556,5557],{"class":515},"1060",[140,5559,170],{"class":146},[140,5561,150],{"class":146},[140,5563,523],{"class":153},[140,5565,150],{"class":146},[140,5567,159],{"class":146},[140,5569,3037],{"class":515},[140,5571,170],{"class":146},[140,5573,150],{"class":146},[140,5575,1484],{"class":153},[140,5577,150],{"class":146},[140,5579,1489],{"class":146},[140,5581,150],{"class":146},[140,5583,789],{"class":164},[140,5585,150],{"class":146},[140,5587,1498],{"class":146},[140,5589,150],{"class":146},[140,5591,154],{"class":153},[140,5593,150],{"class":146},[140,5595,159],{"class":146},[140,5597,150],{"class":146},[140,5599,789],{"class":164},[140,5601,150],{"class":146},[140,5603,170],{"class":146},[140,5605,150],{"class":146},[140,5607,175],{"class":153},[140,5609,150],{"class":146},[140,5611,159],{"class":146},[140,5613,150],{"class":146},[140,5615,5616],{"class":164},"delay",[140,5618,150],{"class":146},[140,5620,170],{"class":146},[140,5622,150],{"class":146},[140,5624,279],{"class":153},[140,5626,150],{"class":146},[140,5628,159],{"class":146},[140,5630,150],{"class":146},[140,5632,165],{"class":164},[140,5634,150],{"class":146},[140,5636,170],{"class":146},[140,5638,150],{"class":146},[140,5640,1237],{"class":153},[140,5642,150],{"class":146},[140,5644,159],{"class":146},[140,5646,150],{"class":146},[140,5648,574],{"class":164},[140,5650,150],{"class":146},[140,5652,170],{"class":146},[140,5654,150],{"class":146},[140,5656,1254],{"class":153},[140,5658,150],{"class":146},[140,5660,159],{"class":146},[140,5662,150],{"class":146},[140,5664,5665],{"class":164},"10 msg\u002Fs",[140,5667,150],{"class":146},[140,5669,170],{"class":146},[140,5671,150],{"class":146},[140,5673,5674],{"class":153},"pauseType",[140,5676,150],{"class":146},[140,5678,159],{"class":146},[140,5680,150],{"class":146},[140,5682,5683],{"class":164},"rate",[140,5685,150],{"class":146},[140,5687,170],{"class":146},[140,5689,150],{"class":146},[140,5691,5270],{"class":153},[140,5693,150],{"class":146},[140,5695,159],{"class":146},[140,5697,150],{"class":146},[140,5699,5700],{"class":164},"5",[140,5702,150],{"class":146},[140,5704,170],{"class":146},[140,5706,150],{"class":146},[140,5708,5709],{"class":153},"timeoutUnits",[140,5711,150],{"class":146},[140,5713,159],{"class":146},[140,5715,150],{"class":146},[140,5717,5718],{"class":164},"seconds",[140,5720,150],{"class":146},[140,5722,170],{"class":146},[140,5724,150],{"class":146},[140,5726,5683],{"class":153},[140,5728,150],{"class":146},[140,5730,159],{"class":146},[140,5732,150],{"class":146},[140,5734,5735],{"class":164},"10",[140,5737,150],{"class":146},[140,5739,170],{"class":146},[140,5741,150],{"class":146},[140,5743,5744],{"class":153},"nbRateUnits",[140,5746,150],{"class":146},[140,5748,159],{"class":146},[140,5750,150],{"class":146},[140,5752,334],{"class":164},[140,5754,150],{"class":146},[140,5756,170],{"class":146},[140,5758,150],{"class":146},[140,5760,5761],{"class":153},"rateUnits",[140,5763,150],{"class":146},[140,5765,159],{"class":146},[140,5767,150],{"class":146},[140,5769,5770],{"class":164},"second",[140,5772,150],{"class":146},[140,5774,170],{"class":146},[140,5776,150],{"class":146},[140,5778,5779],{"class":153},"randomFirst",[140,5781,150],{"class":146},[140,5783,159],{"class":146},[140,5785,150],{"class":146},[140,5787,334],{"class":164},[140,5789,150],{"class":146},[140,5791,170],{"class":146},[140,5793,150],{"class":146},[140,5795,5796],{"class":153},"randomLast",[140,5798,150],{"class":146},[140,5800,159],{"class":146},[140,5802,150],{"class":146},[140,5804,5700],{"class":164},[140,5806,150],{"class":146},[140,5808,170],{"class":146},[140,5810,150],{"class":146},[140,5812,5813],{"class":153},"randomUnits",[140,5815,150],{"class":146},[140,5817,159],{"class":146},[140,5819,150],{"class":146},[140,5821,5718],{"class":164},[140,5823,150],{"class":146},[140,5825,170],{"class":146},[140,5827,150],{"class":146},[140,5829,5830],{"class":153},"drop",[140,5832,150],{"class":146},[140,5834,216],{"class":146},[140,5836,150],{"class":146},[140,5838,5839],{"class":153},"allowrate",[140,5841,150],{"class":146},[140,5843,216],{"class":146},[140,5845,150],{"class":146},[140,5847,5256],{"class":153},[140,5849,150],{"class":146},[140,5851,159],{"class":146},[140,5853,334],{"class":515},[140,5855,170],{"class":146},[140,5857,150],{"class":146},[140,5859,508],{"class":153},[140,5861,150],{"class":146},[140,5863,159],{"class":146},[140,5865,5866],{"class":515},"1280",[140,5868,170],{"class":146},[140,5870,150],{"class":146},[140,5872,523],{"class":153},[140,5874,150],{"class":146},[140,5876,159],{"class":146},[140,5878,3037],{"class":515},[140,5880,170],{"class":146},[140,5882,150],{"class":146},[140,5884,1484],{"class":153},[140,5886,150],{"class":146},[140,5888,1489],{"class":146},[140,5890,150],{"class":146},[140,5892,744],{"class":164},[140,5894,150],{"class":146},[140,5896,1498],{"class":146},[140,5898,150],{"class":146},[140,5900,154],{"class":153},[140,5902,150],{"class":146},[140,5904,159],{"class":146},[140,5906,150],{"class":146},[140,5908,807],{"class":164},[140,5910,150],{"class":146},[140,5912,170],{"class":146},[140,5914,150],{"class":146},[140,5916,175],{"class":153},[140,5918,150],{"class":146},[140,5920,159],{"class":146},[140,5922,150],{"class":146},[140,5924,1212],{"class":164},[140,5926,150],{"class":146},[140,5928,170],{"class":146},[140,5930,150],{"class":146},[140,5932,279],{"class":153},[140,5934,150],{"class":146},[140,5936,159],{"class":146},[140,5938,150],{"class":146},[140,5940,165],{"class":164},[140,5942,150],{"class":146},[140,5944,170],{"class":146},[140,5946,150],{"class":146},[140,5948,1237],{"class":153},[140,5950,150],{"class":146},[140,5952,159],{"class":146},[140,5954,150],{"class":146},[140,5956,574],{"class":164},[140,5958,150],{"class":146},[140,5960,170],{"class":146},[140,5962,150],{"class":146},[140,5964,1254],{"class":153},[140,5966,150],{"class":146},[140,5968,159],{"class":146},[140,5970,150],{"class":146},[140,5972,5973],{"class":164},"Insert downtime data record",[140,5975,150],{"class":146},[140,5977,170],{"class":146},[140,5979,150],{"class":146},[140,5981,1272],{"class":153},[140,5983,150],{"class":146},[140,5985,159],{"class":146},[140,5987,150],{"class":146},[140,5989,1281],{"class":164},[140,5991,150],{"class":146},[140,5993,170],{"class":146},[140,5995,150],{"class":146},[140,5997,1290],{"class":153},[140,5999,150],{"class":146},[140,6001,159],{"class":146},[140,6003,150],{"class":146},[140,6005,1299],{"class":164},[140,6007,150],{"class":146},[140,6009,170],{"class":146},[140,6011,150],{"class":146},[140,6013,1308],{"class":153},[140,6015,150],{"class":146},[140,6017,159],{"class":146},[140,6019,150],{"class":146},[140,6021,2814],{"class":164},[140,6023,150],{"class":146},[140,6025,170],{"class":146},[140,6027,150],{"class":146},[140,6029,1326],{"class":153},[140,6031,150],{"class":146},[140,6033,159],{"class":146},[140,6035,150],{"class":146},[140,6037,1335],{"class":164},[140,6039,150],{"class":146},[140,6041,170],{"class":146},[140,6043,150],{"class":146},[140,6045,1212],{"class":153},[140,6047,150],{"class":146},[140,6049,159],{"class":146},[140,6051,150],{"class":146},[140,6053,6054],{"class":164},"INSERT INTO DowntimeData ( timestamp, area, line, machine_name, shift, ",[140,6056,1356],{"class":1355},[140,6058,6059],{"class":164},"    downtime_start, downtime_end, downtime_duration_minutes, ",[140,6061,1356],{"class":1355},[140,6063,6064],{"class":164},"    downtime_type, downtime_reason",[140,6066,1356],{"class":1355},[140,6068,6069],{"class":164},")  ",[140,6071,1356],{"class":1355},[140,6073,2922],{"class":164},[140,6075,1356],{"class":1355},[140,6077,6078],{"class":164},"    '{{payload.timestamp}}',  ",[140,6080,1356],{"class":1355},[140,6082,2932],{"class":164},[140,6084,1356],{"class":1355},[140,6086,2937],{"class":164},[140,6088,1356],{"class":1355},[140,6090,2942],{"class":164},[140,6092,1356],{"class":1355},[140,6094,2947],{"class":164},[140,6096,1356],{"class":1355},[140,6098,6099],{"class":164},"    '{{payload.downtime_start}}',",[140,6101,1356],{"class":1355},[140,6103,6104],{"class":164},"    '{{payload.downtime_end}}',  ",[140,6106,1356],{"class":1355},[140,6108,6109],{"class":164},"    {{payload.downtime_duration_minutes}},  ",[140,6111,1356],{"class":1355},[140,6113,6114],{"class":164},"    '{{payload.downtime_type}}',  ",[140,6116,1356],{"class":1355},[140,6118,6119],{"class":164},"    '{{payload.downtime_reason}}'  ",[140,6121,1356],{"class":1355},[140,6123,1429],{"class":164},[140,6125,1356],{"class":1355},[140,6127,150],{"class":146},[140,6129,170],{"class":146},[140,6131,150],{"class":146},[140,6133,1440],{"class":153},[140,6135,150],{"class":146},[140,6137,159],{"class":146},[140,6139,150],{"class":146},[140,6141,1449],{"class":164},[140,6143,150],{"class":146},[140,6145,170],{"class":146},[140,6147,150],{"class":146},[140,6149,508],{"class":153},[140,6151,150],{"class":146},[140,6153,159],{"class":146},[140,6155,3024],{"class":515},[140,6157,170],{"class":146},[140,6159,150],{"class":146},[140,6161,523],{"class":153},[140,6163,150],{"class":146},[140,6165,159],{"class":146},[140,6167,6168],{"class":515},"420",[140,6170,170],{"class":146},[140,6172,150],{"class":146},[140,6174,1484],{"class":153},[140,6176,150],{"class":146},[140,6178,1489],{"class":146},[140,6180,150],{"class":146},[140,6182,798],{"class":164},[140,6184,150],{"class":146},[140,6186,1498],{"class":146},[140,6188,150],{"class":146},[140,6190,154],{"class":153},[140,6192,150],{"class":146},[140,6194,159],{"class":146},[140,6196,150],{"class":146},[140,6198,816],{"class":164},[140,6200,150],{"class":146},[140,6202,170],{"class":146},[140,6204,150],{"class":146},[140,6206,175],{"class":153},[140,6208,150],{"class":146},[140,6210,159],{"class":146},[140,6212,150],{"class":146},[140,6214,1797],{"class":164},[140,6216,150],{"class":146},[140,6218,170],{"class":146},[140,6220,150],{"class":146},[140,6222,279],{"class":153},[140,6224,150],{"class":146},[140,6226,159],{"class":146},[140,6228,150],{"class":146},[140,6230,165],{"class":164},[140,6232,150],{"class":146},[140,6234,170],{"class":146},[140,6236,150],{"class":146},[140,6238,1237],{"class":153},[140,6240,150],{"class":146},[140,6242,159],{"class":146},[140,6244,150],{"class":146},[140,6246,574],{"class":164},[140,6248,150],{"class":146},[140,6250,170],{"class":146},[140,6252,150],{"class":146},[140,6254,1254],{"class":153},[140,6256,150],{"class":146},[140,6258,159],{"class":146},[140,6260,150],{"class":146},[140,6262,6263],{"class":164},"debug 8",[140,6265,150],{"class":146},[140,6267,170],{"class":146},[140,6269,150],{"class":146},[140,6271,1855],{"class":153},[140,6273,150],{"class":146},[140,6275,216],{"class":146},[140,6277,150],{"class":146},[140,6279,1864],{"class":153},[140,6281,150],{"class":146},[140,6283,383],{"class":146},[140,6285,150],{"class":146},[140,6287,1873],{"class":153},[140,6289,150],{"class":146},[140,6291,216],{"class":146},[140,6293,150],{"class":146},[140,6295,1882],{"class":153},[140,6297,150],{"class":146},[140,6299,216],{"class":146},[140,6301,150],{"class":146},[140,6303,1891],{"class":153},[140,6305,150],{"class":146},[140,6307,159],{"class":146},[140,6309,150],{"class":146},[140,6311,1900],{"class":164},[140,6313,150],{"class":146},[140,6315,170],{"class":146},[140,6317,150],{"class":146},[140,6319,1909],{"class":153},[140,6321,150],{"class":146},[140,6323,159],{"class":146},[140,6325,228],{"class":146},[140,6327,170],{"class":146},[140,6329,150],{"class":146},[140,6331,1922],{"class":153},[140,6333,150],{"class":146},[140,6335,159],{"class":146},[140,6337,150],{"class":146},[140,6339,1931],{"class":164},[140,6341,150],{"class":146},[140,6343,170],{"class":146},[140,6345,150],{"class":146},[140,6347,508],{"class":153},[140,6349,150],{"class":146},[140,6351,159],{"class":146},[140,6353,3223],{"class":515},[140,6355,170],{"class":146},[140,6357,150],{"class":146},[140,6359,523],{"class":153},[140,6361,150],{"class":146},[140,6363,159],{"class":146},[140,6365,6168],{"class":515},[140,6367,170],{"class":146},[140,6369,150],{"class":146},[140,6371,1484],{"class":153},[140,6373,150],{"class":146},[140,6375,240],{"class":146},[140,6377,150],{"class":146},[140,6379,154],{"class":153},[140,6381,150],{"class":146},[140,6383,159],{"class":146},[140,6385,150],{"class":146},[140,6387,825],{"class":164},[140,6389,150],{"class":146},[140,6391,170],{"class":146},[140,6393,150],{"class":146},[140,6395,175],{"class":153},[140,6397,150],{"class":146},[140,6399,159],{"class":146},[140,6401,150],{"class":146},[140,6403,5407],{"class":164},[140,6405,150],{"class":146},[140,6407,170],{"class":146},[140,6409,150],{"class":146},[140,6411,279],{"class":153},[140,6413,150],{"class":146},[140,6415,159],{"class":146},[140,6417,150],{"class":146},[140,6419,165],{"class":164},[140,6421,150],{"class":146},[140,6423,170],{"class":146},[140,6425,150],{"class":146},[140,6427,1237],{"class":153},[140,6429,150],{"class":146},[140,6431,159],{"class":146},[140,6433,150],{"class":146},[140,6435,574],{"class":164},[140,6437,150],{"class":146},[140,6439,170],{"class":146},[140,6441,150],{"class":146},[140,6443,1254],{"class":153},[140,6445,150],{"class":146},[140,6447,159],{"class":146},[140,6449,228],{"class":146},[140,6451,170],{"class":146},[140,6453,150],{"class":146},[140,6455,5460],{"class":153},[140,6457,150],{"class":146},[140,6459,159],{"class":146},[140,6461,150],{"class":146},[140,6463,5469],{"class":1355},[140,6465,5472],{"class":164},[140,6467,150],{"class":146},[140,6469,170],{"class":146},[140,6471,150],{"class":146},[140,6473,5481],{"class":153},[140,6475,150],{"class":146},[140,6477,159],{"class":146},[140,6479,150],{"class":146},[140,6481,1449],{"class":164},[140,6483,150],{"class":146},[140,6485,170],{"class":146},[140,6487,150],{"class":146},[140,6489,5498],{"class":153},[140,6491,150],{"class":146},[140,6493,159],{"class":146},[140,6495,334],{"class":515},[140,6497,170],{"class":146},[140,6499,150],{"class":146},[140,6501,5511],{"class":153},[140,6503,150],{"class":146},[140,6505,159],{"class":146},[140,6507,150],{"class":146},[140,6509,5520],{"class":164},[140,6511,150],{"class":146},[140,6513,170],{"class":146},[140,6515,150],{"class":146},[140,6517,5529],{"class":153},[140,6519,150],{"class":146},[140,6521,216],{"class":146},[140,6523,150],{"class":146},[140,6525,5538],{"class":153},[140,6527,150],{"class":146},[140,6529,159],{"class":146},[140,6531,228],{"class":146},[140,6533,170],{"class":146},[140,6535,150],{"class":146},[140,6537,508],{"class":153},[140,6539,150],{"class":146},[140,6541,159],{"class":146},[140,6543,5557],{"class":515},[140,6545,170],{"class":146},[140,6547,150],{"class":146},[140,6549,523],{"class":153},[140,6551,150],{"class":146},[140,6553,159],{"class":146},[140,6555,6168],{"class":515},[140,6557,170],{"class":146},[140,6559,150],{"class":146},[140,6561,1484],{"class":153},[140,6563,150],{"class":146},[140,6565,1489],{"class":146},[140,6567,150],{"class":146},[140,6569,834],{"class":164},[140,6571,150],{"class":146},[140,6573,1498],{"class":146},[140,6575,150],{"class":146},[140,6577,154],{"class":153},[140,6579,150],{"class":146},[140,6581,159],{"class":146},[140,6583,150],{"class":146},[140,6585,834],{"class":164},[140,6587,150],{"class":146},[140,6589,170],{"class":146},[140,6591,150],{"class":146},[140,6593,175],{"class":153},[140,6595,150],{"class":146},[140,6597,159],{"class":146},[140,6599,150],{"class":146},[140,6601,5616],{"class":164},[140,6603,150],{"class":146},[140,6605,170],{"class":146},[140,6607,150],{"class":146},[140,6609,279],{"class":153},[140,6611,150],{"class":146},[140,6613,159],{"class":146},[140,6615,150],{"class":146},[140,6617,165],{"class":164},[140,6619,150],{"class":146},[140,6621,170],{"class":146},[140,6623,150],{"class":146},[140,6625,1237],{"class":153},[140,6627,150],{"class":146},[140,6629,159],{"class":146},[140,6631,150],{"class":146},[140,6633,574],{"class":164},[140,6635,150],{"class":146},[140,6637,170],{"class":146},[140,6639,150],{"class":146},[140,6641,1254],{"class":153},[140,6643,150],{"class":146},[140,6645,159],{"class":146},[140,6647,150],{"class":146},[140,6649,5665],{"class":164},[140,6651,150],{"class":146},[140,6653,170],{"class":146},[140,6655,150],{"class":146},[140,6657,5674],{"class":153},[140,6659,150],{"class":146},[140,6661,159],{"class":146},[140,6663,150],{"class":146},[140,6665,5683],{"class":164},[140,6667,150],{"class":146},[140,6669,170],{"class":146},[140,6671,150],{"class":146},[140,6673,5270],{"class":153},[140,6675,150],{"class":146},[140,6677,159],{"class":146},[140,6679,150],{"class":146},[140,6681,5700],{"class":164},[140,6683,150],{"class":146},[140,6685,170],{"class":146},[140,6687,150],{"class":146},[140,6689,5709],{"class":153},[140,6691,150],{"class":146},[140,6693,159],{"class":146},[140,6695,150],{"class":146},[140,6697,5718],{"class":164},[140,6699,150],{"class":146},[140,6701,170],{"class":146},[140,6703,150],{"class":146},[140,6705,5683],{"class":153},[140,6707,150],{"class":146},[140,6709,159],{"class":146},[140,6711,150],{"class":146},[140,6713,5735],{"class":164},[140,6715,150],{"class":146},[140,6717,170],{"class":146},[140,6719,150],{"class":146},[140,6721,5744],{"class":153},[140,6723,150],{"class":146},[140,6725,159],{"class":146},[140,6727,150],{"class":146},[140,6729,334],{"class":164},[140,6731,150],{"class":146},[140,6733,170],{"class":146},[140,6735,150],{"class":146},[140,6737,5761],{"class":153},[140,6739,150],{"class":146},[140,6741,159],{"class":146},[140,6743,150],{"class":146},[140,6745,5770],{"class":164},[140,6747,150],{"class":146},[140,6749,170],{"class":146},[140,6751,150],{"class":146},[140,6753,5779],{"class":153},[140,6755,150],{"class":146},[140,6757,159],{"class":146},[140,6759,150],{"class":146},[140,6761,334],{"class":164},[140,6763,150],{"class":146},[140,6765,170],{"class":146},[140,6767,150],{"class":146},[140,6769,5796],{"class":153},[140,6771,150],{"class":146},[140,6773,159],{"class":146},[140,6775,150],{"class":146},[140,6777,5700],{"class":164},[140,6779,150],{"class":146},[140,6781,170],{"class":146},[140,6783,150],{"class":146},[140,6785,5813],{"class":153},[140,6787,150],{"class":146},[140,6789,159],{"class":146},[140,6791,150],{"class":146},[140,6793,5718],{"class":164},[140,6795,150],{"class":146},[140,6797,170],{"class":146},[140,6799,150],{"class":146},[140,6801,5830],{"class":153},[140,6803,150],{"class":146},[140,6805,216],{"class":146},[140,6807,150],{"class":146},[140,6809,5839],{"class":153},[140,6811,150],{"class":146},[140,6813,216],{"class":146},[140,6815,150],{"class":146},[140,6817,5256],{"class":153},[140,6819,150],{"class":146},[140,6821,159],{"class":146},[140,6823,334],{"class":515},[140,6825,170],{"class":146},[140,6827,150],{"class":146},[140,6829,508],{"class":153},[140,6831,150],{"class":146},[140,6833,159],{"class":146},[140,6835,5866],{"class":515},[140,6837,170],{"class":146},[140,6839,150],{"class":146},[140,6841,523],{"class":153},[140,6843,150],{"class":146},[140,6845,159],{"class":146},[140,6847,6168],{"class":515},[140,6849,170],{"class":146},[140,6851,150],{"class":146},[140,6853,1484],{"class":153},[140,6855,150],{"class":146},[140,6857,1489],{"class":146},[140,6859,150],{"class":146},[140,6861,807],{"class":164},[140,6863,150],{"class":146},[140,6865,1498],{"class":146},[140,6867,150],{"class":146},[140,6869,154],{"class":153},[140,6871,150],{"class":146},[140,6873,159],{"class":146},[140,6875,150],{"class":146},[140,6877,1109],{"class":164},[140,6879,150],{"class":146},[140,6881,170],{"class":146},[140,6883,150],{"class":146},[140,6885,175],{"class":153},[140,6887,150],{"class":146},[140,6889,159],{"class":146},[140,6891,150],{"class":146},[140,6893,1212],{"class":164},[140,6895,150],{"class":146},[140,6897,170],{"class":146},[140,6899,150],{"class":146},[140,6901,279],{"class":153},[140,6903,150],{"class":146},[140,6905,159],{"class":146},[140,6907,150],{"class":146},[140,6909,165],{"class":164},[140,6911,150],{"class":146},[140,6913,170],{"class":146},[140,6915,150],{"class":146},[140,6917,1237],{"class":153},[140,6919,150],{"class":146},[140,6921,159],{"class":146},[140,6923,150],{"class":146},[140,6925,903],{"class":164},[140,6927,150],{"class":146},[140,6929,170],{"class":146},[140,6931,150],{"class":146},[140,6933,1254],{"class":153},[140,6935,150],{"class":146},[140,6937,159],{"class":146},[140,6939,150],{"class":146},[140,6941,6942],{"class":164},"Drop demo production data",[140,6944,150],{"class":146},[140,6946,170],{"class":146},[140,6948,150],{"class":146},[140,6950,1272],{"class":153},[140,6952,150],{"class":146},[140,6954,159],{"class":146},[140,6956,150],{"class":146},[140,6958,1281],{"class":164},[140,6960,150],{"class":146},[140,6962,170],{"class":146},[140,6964,150],{"class":146},[140,6966,1290],{"class":153},[140,6968,150],{"class":146},[140,6970,159],{"class":146},[140,6972,150],{"class":146},[140,6974,1299],{"class":164},[140,6976,150],{"class":146},[140,6978,170],{"class":146},[140,6980,150],{"class":146},[140,6982,1308],{"class":153},[140,6984,150],{"class":146},[140,6986,159],{"class":146},[140,6988,150],{"class":146},[140,6990,1317],{"class":164},[140,6992,150],{"class":146},[140,6994,170],{"class":146},[140,6996,150],{"class":146},[140,6998,1326],{"class":153},[140,7000,150],{"class":146},[140,7002,159],{"class":146},[140,7004,150],{"class":146},[140,7006,1335],{"class":164},[140,7008,150],{"class":146},[140,7010,170],{"class":146},[140,7012,150],{"class":146},[140,7014,1212],{"class":153},[140,7016,150],{"class":146},[140,7018,159],{"class":146},[140,7020,150],{"class":146},[140,7022,7023],{"class":164},"Drop table ProductionData;",[140,7025,150],{"class":146},[140,7027,170],{"class":146},[140,7029,150],{"class":146},[140,7031,1440],{"class":153},[140,7033,150],{"class":146},[140,7035,159],{"class":146},[140,7037,150],{"class":146},[140,7039,1449],{"class":164},[140,7041,150],{"class":146},[140,7043,170],{"class":146},[140,7045,150],{"class":146},[140,7047,508],{"class":153},[140,7049,150],{"class":146},[140,7051,159],{"class":146},[140,7053,3434],{"class":515},[140,7055,170],{"class":146},[140,7057,150],{"class":146},[140,7059,523],{"class":153},[140,7061,150],{"class":146},[140,7063,159],{"class":146},[140,7065,7066],{"class":515},"520",[140,7068,170],{"class":146},[140,7070,150],{"class":146},[140,7072,1484],{"class":153},[140,7074,150],{"class":146},[140,7076,1489],{"class":146},[140,7078,150],{"class":146},[140,7080,1100],{"class":164},[140,7082,150],{"class":146},[140,7084,1498],{"class":146},[140,7086,150],{"class":146},[140,7088,154],{"class":153},[140,7090,150],{"class":146},[140,7092,159],{"class":146},[140,7094,150],{"class":146},[140,7096,1118],{"class":164},[140,7098,150],{"class":146},[140,7100,170],{"class":146},[140,7102,150],{"class":146},[140,7104,175],{"class":153},[140,7106,150],{"class":146},[140,7108,159],{"class":146},[140,7110,150],{"class":146},[140,7112,1527],{"class":164},[140,7114,150],{"class":146},[140,7116,170],{"class":146},[140,7118,150],{"class":146},[140,7120,279],{"class":153},[140,7122,150],{"class":146},[140,7124,159],{"class":146},[140,7126,150],{"class":146},[140,7128,165],{"class":164},[140,7130,150],{"class":146},[140,7132,170],{"class":146},[140,7134,150],{"class":146},[140,7136,1237],{"class":153},[140,7138,150],{"class":146},[140,7140,159],{"class":146},[140,7142,150],{"class":146},[140,7144,903],{"class":164},[140,7146,150],{"class":146},[140,7148,170],{"class":146},[140,7150,150],{"class":146},[140,7152,1254],{"class":153},[140,7154,150],{"class":146},[140,7156,159],{"class":146},[140,7158,228],{"class":146},[140,7160,170],{"class":146},[140,7162,150],{"class":146},[140,7164,1580],{"class":153},[140,7166,150],{"class":146},[140,7168,1585],{"class":146},[140,7170,150],{"class":146},[140,7172,12],{"class":306},[140,7174,150],{"class":146},[140,7176,159],{"class":146},[140,7178,150],{"class":146},[140,7180,1598],{"class":164},[140,7182,150],{"class":146},[140,7184,561],{"class":146},[140,7186,150],{"class":146},[140,7188,12],{"class":306},[140,7190,150],{"class":146},[140,7192,159],{"class":146},[140,7194,150],{"class":146},[140,7196,1281],{"class":164},[140,7198,150],{"class":146},[140,7200,170],{"class":146},[140,7202,150],{"class":146},[140,7204,1623],{"class":306},[140,7206,150],{"class":146},[140,7208,159],{"class":146},[140,7210,150],{"class":146},[140,7212,1449],{"class":164},[140,7214,150],{"class":146},[140,7216,1636],{"class":146},[140,7218,150],{"class":146},[140,7220,1641],{"class":153},[140,7222,150],{"class":146},[140,7224,159],{"class":146},[140,7226,228],{"class":146},[140,7228,170],{"class":146},[140,7230,150],{"class":146},[140,7232,1654],{"class":153},[140,7234,150],{"class":146},[140,7236,159],{"class":146},[140,7238,228],{"class":146},[140,7240,170],{"class":146},[140,7242,150],{"class":146},[140,7244,1667],{"class":153},[140,7246,150],{"class":146},[140,7248,216],{"class":146},[140,7250,150],{"class":146},[140,7252,1676],{"class":153},[140,7254,150],{"class":146},[140,7256,159],{"class":146},[140,7258,1683],{"class":515},[140,7260,170],{"class":146},[140,7262,150],{"class":146},[140,7264,1281],{"class":153},[140,7266,150],{"class":146},[140,7268,159],{"class":146},[140,7270,228],{"class":146},[140,7272,170],{"class":146},[140,7274,150],{"class":146},[140,7276,1598],{"class":153},[140,7278,150],{"class":146},[140,7280,159],{"class":146},[140,7282,228],{"class":146},[140,7284,170],{"class":146},[140,7286,150],{"class":146},[140,7288,1714],{"class":153},[140,7290,150],{"class":146},[140,7292,159],{"class":146},[140,7294,150],{"class":146},[140,7296,1723],{"class":164},[140,7298,150],{"class":146},[140,7300,170],{"class":146},[140,7302,150],{"class":146},[140,7304,508],{"class":153},[140,7306,150],{"class":146},[140,7308,159],{"class":146},[140,7310,1738],{"class":515},[140,7312,170],{"class":146},[140,7314,150],{"class":146},[140,7316,523],{"class":153},[140,7318,150],{"class":146},[140,7320,159],{"class":146},[140,7322,7066],{"class":515},[140,7324,170],{"class":146},[140,7326,150],{"class":146},[140,7328,1484],{"class":153},[140,7330,150],{"class":146},[140,7332,1489],{"class":146},[140,7334,150],{"class":146},[140,7336,1109],{"class":164},[140,7338,150],{"class":146},[140,7340,1498],{"class":146},[140,7342,150],{"class":146},[140,7344,154],{"class":153},[140,7346,150],{"class":146},[140,7348,159],{"class":146},[140,7350,150],{"class":146},[140,7352,1127],{"class":164},[140,7354,150],{"class":146},[140,7356,170],{"class":146},[140,7358,150],{"class":146},[140,7360,175],{"class":153},[140,7362,150],{"class":146},[140,7364,159],{"class":146},[140,7366,150],{"class":146},[140,7368,1797],{"class":164},[140,7370,150],{"class":146},[140,7372,170],{"class":146},[140,7374,150],{"class":146},[140,7376,279],{"class":153},[140,7378,150],{"class":146},[140,7380,159],{"class":146},[140,7382,150],{"class":146},[140,7384,165],{"class":164},[140,7386,150],{"class":146},[140,7388,170],{"class":146},[140,7390,150],{"class":146},[140,7392,1237],{"class":153},[140,7394,150],{"class":146},[140,7396,159],{"class":146},[140,7398,150],{"class":146},[140,7400,903],{"class":164},[140,7402,150],{"class":146},[140,7404,170],{"class":146},[140,7406,150],{"class":146},[140,7408,1254],{"class":153},[140,7410,150],{"class":146},[140,7412,159],{"class":146},[140,7414,150],{"class":146},[140,7416,7417],{"class":164},"debug 4",[140,7419,150],{"class":146},[140,7421,170],{"class":146},[140,7423,150],{"class":146},[140,7425,1855],{"class":153},[140,7427,150],{"class":146},[140,7429,216],{"class":146},[140,7431,150],{"class":146},[140,7433,1864],{"class":153},[140,7435,150],{"class":146},[140,7437,383],{"class":146},[140,7439,150],{"class":146},[140,7441,1873],{"class":153},[140,7443,150],{"class":146},[140,7445,216],{"class":146},[140,7447,150],{"class":146},[140,7449,1882],{"class":153},[140,7451,150],{"class":146},[140,7453,216],{"class":146},[140,7455,150],{"class":146},[140,7457,1891],{"class":153},[140,7459,150],{"class":146},[140,7461,159],{"class":146},[140,7463,150],{"class":146},[140,7465,1900],{"class":164},[140,7467,150],{"class":146},[140,7469,170],{"class":146},[140,7471,150],{"class":146},[140,7473,1909],{"class":153},[140,7475,150],{"class":146},[140,7477,159],{"class":146},[140,7479,228],{"class":146},[140,7481,170],{"class":146},[140,7483,150],{"class":146},[140,7485,1922],{"class":153},[140,7487,150],{"class":146},[140,7489,159],{"class":146},[140,7491,150],{"class":146},[140,7493,1931],{"class":164},[140,7495,150],{"class":146},[140,7497,170],{"class":146},[140,7499,150],{"class":146},[140,7501,508],{"class":153},[140,7503,150],{"class":146},[140,7505,159],{"class":146},[140,7507,3889],{"class":515},[140,7509,170],{"class":146},[140,7511,150],{"class":146},[140,7513,523],{"class":153},[140,7515,150],{"class":146},[140,7517,159],{"class":146},[140,7519,7066],{"class":515},[140,7521,170],{"class":146},[140,7523,150],{"class":146},[140,7525,1484],{"class":153},[140,7527,150],{"class":146},[140,7529,240],{"class":146},[140,7531,150],{"class":146},[140,7533,154],{"class":153},[140,7535,150],{"class":146},[140,7537,159],{"class":146},[140,7539,150],{"class":146},[140,7541,435],{"class":164},[140,7543,150],{"class":146},[140,7545,170],{"class":146},[140,7547,150],{"class":146},[140,7549,175],{"class":153},[140,7551,150],{"class":146},[140,7553,159],{"class":146},[140,7555,150],{"class":146},[140,7557,7558],{"class":164},"sqlite",[140,7560,150],{"class":146},[140,7562,170],{"class":146},[140,7564,150],{"class":146},[140,7566,279],{"class":153},[140,7568,150],{"class":146},[140,7570,159],{"class":146},[140,7572,150],{"class":146},[140,7574,165],{"class":164},[140,7576,150],{"class":146},[140,7578,170],{"class":146},[140,7580,150],{"class":146},[140,7582,1237],{"class":153},[140,7584,150],{"class":146},[140,7586,159],{"class":146},[140,7588,150],{"class":146},[140,7590,253],{"class":164},[140,7592,150],{"class":146},[140,7594,170],{"class":146},[140,7596,150],{"class":146},[140,7598,7599],{"class":153},"mydb",[140,7601,150],{"class":146},[140,7603,159],{"class":146},[140,7605,150],{"class":146},[140,7607,7608],{"class":164},"1ae6d7f7fdb60191",[140,7610,150],{"class":146},[140,7612,170],{"class":146},[140,7614,150],{"class":146},[140,7616,7617],{"class":153},"sqlquery",[140,7619,150],{"class":146},[140,7621,159],{"class":146},[140,7623,150],{"class":146},[140,7625,7626],{"class":164},"msg.topic",[140,7628,150],{"class":146},[140,7630,170],{"class":146},[140,7632,150],{"class":146},[140,7634,1317],{"class":153},[140,7636,150],{"class":146},[140,7638,159],{"class":146},[140,7640,228],{"class":146},[140,7642,170],{"class":146},[140,7644,150],{"class":146},[140,7646,1254],{"class":153},[140,7648,150],{"class":146},[140,7650,159],{"class":146},[140,7652,228],{"class":146},[140,7654,170],{"class":146},[140,7656,150],{"class":146},[140,7658,508],{"class":153},[140,7660,150],{"class":146},[140,7662,159],{"class":146},[140,7664,7665],{"class":515},"720",[140,7667,170],{"class":146},[140,7669,150],{"class":146},[140,7671,523],{"class":153},[140,7673,150],{"class":146},[140,7675,159],{"class":146},[140,7677,1477],{"class":515},[140,7679,170],{"class":146},[140,7681,150],{"class":146},[140,7683,1484],{"class":153},[140,7685,150],{"class":146},[140,7687,1489],{"class":146},[140,7689,150],{"class":146},[140,7691,462],{"class":164},[140,7693,150],{"class":146},[140,7695,1498],{"class":146},[140,7697,150],{"class":146},[140,7699,154],{"class":153},[140,7701,150],{"class":146},[140,7703,159],{"class":146},[140,7705,150],{"class":146},[140,7707,471],{"class":164},[140,7709,150],{"class":146},[140,7711,170],{"class":146},[140,7713,150],{"class":146},[140,7715,175],{"class":153},[140,7717,150],{"class":146},[140,7719,159],{"class":146},[140,7721,150],{"class":146},[140,7723,7558],{"class":164},[140,7725,150],{"class":146},[140,7727,170],{"class":146},[140,7729,150],{"class":146},[140,7731,279],{"class":153},[140,7733,150],{"class":146},[140,7735,159],{"class":146},[140,7737,150],{"class":146},[140,7739,165],{"class":164},[140,7741,150],{"class":146},[140,7743,170],{"class":146},[140,7745,150],{"class":146},[140,7747,1237],{"class":153},[140,7749,150],{"class":146},[140,7751,159],{"class":146},[140,7753,150],{"class":146},[140,7755,253],{"class":164},[140,7757,150],{"class":146},[140,7759,170],{"class":146},[140,7761,150],{"class":146},[140,7763,7599],{"class":153},[140,7765,150],{"class":146},[140,7767,159],{"class":146},[140,7769,150],{"class":146},[140,7771,7608],{"class":164},[140,7773,150],{"class":146},[140,7775,170],{"class":146},[140,7777,150],{"class":146},[140,7779,7617],{"class":153},[140,7781,150],{"class":146},[140,7783,159],{"class":146},[140,7785,150],{"class":146},[140,7787,7626],{"class":164},[140,7789,150],{"class":146},[140,7791,170],{"class":146},[140,7793,150],{"class":146},[140,7795,1317],{"class":153},[140,7797,150],{"class":146},[140,7799,159],{"class":146},[140,7801,228],{"class":146},[140,7803,170],{"class":146},[140,7805,150],{"class":146},[140,7807,1254],{"class":153},[140,7809,150],{"class":146},[140,7811,159],{"class":146},[140,7813,228],{"class":146},[140,7815,170],{"class":146},[140,7817,150],{"class":146},[140,7819,508],{"class":153},[140,7821,150],{"class":146},[140,7823,159],{"class":146},[140,7825,7665],{"class":515},[140,7827,170],{"class":146},[140,7829,150],{"class":146},[140,7831,523],{"class":153},[140,7833,150],{"class":146},[140,7835,159],{"class":146},[140,7837,2225],{"class":515},[140,7839,170],{"class":146},[140,7841,150],{"class":146},[140,7843,1484],{"class":153},[140,7845,150],{"class":146},[140,7847,1489],{"class":146},[140,7849,150],{"class":146},[140,7851,498],{"class":164},[140,7853,150],{"class":146},[140,7855,1498],{"class":146},[140,7857,150],{"class":146},[140,7859,154],{"class":153},[140,7861,150],{"class":146},[140,7863,159],{"class":146},[140,7865,150],{"class":146},[140,7867,735],{"class":164},[140,7869,150],{"class":146},[140,7871,170],{"class":146},[140,7873,150],{"class":146},[140,7875,175],{"class":153},[140,7877,150],{"class":146},[140,7879,159],{"class":146},[140,7881,150],{"class":146},[140,7883,7558],{"class":164},[140,7885,150],{"class":146},[140,7887,170],{"class":146},[140,7889,150],{"class":146},[140,7891,279],{"class":153},[140,7893,150],{"class":146},[140,7895,159],{"class":146},[140,7897,150],{"class":146},[140,7899,165],{"class":164},[140,7901,150],{"class":146},[140,7903,170],{"class":146},[140,7905,150],{"class":146},[140,7907,1237],{"class":153},[140,7909,150],{"class":146},[140,7911,159],{"class":146},[140,7913,150],{"class":146},[140,7915,574],{"class":164},[140,7917,150],{"class":146},[140,7919,170],{"class":146},[140,7921,150],{"class":146},[140,7923,7599],{"class":153},[140,7925,150],{"class":146},[140,7927,159],{"class":146},[140,7929,150],{"class":146},[140,7931,7608],{"class":164},[140,7933,150],{"class":146},[140,7935,170],{"class":146},[140,7937,150],{"class":146},[140,7939,7617],{"class":153},[140,7941,150],{"class":146},[140,7943,159],{"class":146},[140,7945,150],{"class":146},[140,7947,7626],{"class":164},[140,7949,150],{"class":146},[140,7951,170],{"class":146},[140,7953,150],{"class":146},[140,7955,1317],{"class":153},[140,7957,150],{"class":146},[140,7959,159],{"class":146},[140,7961,228],{"class":146},[140,7963,170],{"class":146},[140,7965,150],{"class":146},[140,7967,1254],{"class":153},[140,7969,150],{"class":146},[140,7971,159],{"class":146},[140,7973,228],{"class":146},[140,7975,170],{"class":146},[140,7977,150],{"class":146},[140,7979,508],{"class":153},[140,7981,150],{"class":146},[140,7983,159],{"class":146},[140,7985,7986],{"class":515},"1780",[140,7988,170],{"class":146},[140,7990,150],{"class":146},[140,7992,523],{"class":153},[140,7994,150],{"class":146},[140,7996,159],{"class":146},[140,7998,3037],{"class":515},[140,8000,170],{"class":146},[140,8002,150],{"class":146},[140,8004,1484],{"class":153},[140,8006,150],{"class":146},[140,8008,1489],{"class":146},[140,8010,150],{"class":146},[140,8012,753],{"class":164},[140,8014,150],{"class":146},[140,8016,1498],{"class":146},[140,8018,150],{"class":146},[140,8020,154],{"class":153},[140,8022,150],{"class":146},[140,8024,159],{"class":146},[140,8026,150],{"class":146},[140,8028,1064],{"class":164},[140,8030,150],{"class":146},[140,8032,170],{"class":146},[140,8034,150],{"class":146},[140,8036,175],{"class":153},[140,8038,150],{"class":146},[140,8040,159],{"class":146},[140,8042,150],{"class":146},[140,8044,7558],{"class":164},[140,8046,150],{"class":146},[140,8048,170],{"class":146},[140,8050,150],{"class":146},[140,8052,279],{"class":153},[140,8054,150],{"class":146},[140,8056,159],{"class":146},[140,8058,150],{"class":146},[140,8060,165],{"class":164},[140,8062,150],{"class":146},[140,8064,170],{"class":146},[140,8066,150],{"class":146},[140,8068,1237],{"class":153},[140,8070,150],{"class":146},[140,8072,159],{"class":146},[140,8074,150],{"class":146},[140,8076,903],{"class":164},[140,8078,150],{"class":146},[140,8080,170],{"class":146},[140,8082,150],{"class":146},[140,8084,7599],{"class":153},[140,8086,150],{"class":146},[140,8088,159],{"class":146},[140,8090,150],{"class":146},[140,8092,7608],{"class":164},[140,8094,150],{"class":146},[140,8096,170],{"class":146},[140,8098,150],{"class":146},[140,8100,7617],{"class":153},[140,8102,150],{"class":146},[140,8104,159],{"class":146},[140,8106,150],{"class":146},[140,8108,7626],{"class":164},[140,8110,150],{"class":146},[140,8112,170],{"class":146},[140,8114,150],{"class":146},[140,8116,1317],{"class":153},[140,8118,150],{"class":146},[140,8120,159],{"class":146},[140,8122,228],{"class":146},[140,8124,170],{"class":146},[140,8126,150],{"class":146},[140,8128,1254],{"class":153},[140,8130,150],{"class":146},[140,8132,159],{"class":146},[140,8134,228],{"class":146},[140,8136,170],{"class":146},[140,8138,150],{"class":146},[140,8140,508],{"class":153},[140,8142,150],{"class":146},[140,8144,159],{"class":146},[140,8146,8147],{"class":515},"730",[140,8149,170],{"class":146},[140,8151,150],{"class":146},[140,8153,523],{"class":153},[140,8155,150],{"class":146},[140,8157,159],{"class":146},[140,8159,3447],{"class":515},[140,8161,170],{"class":146},[140,8163,150],{"class":146},[140,8165,1484],{"class":153},[140,8167,150],{"class":146},[140,8169,1489],{"class":146},[140,8171,150],{"class":146},[140,8173,1091],{"class":164},[140,8175,150],{"class":146},[140,8177,1498],{"class":146},[140,8179,150],{"class":146},[140,8181,154],{"class":153},[140,8183,150],{"class":146},[140,8185,159],{"class":146},[140,8187,150],{"class":146},[140,8189,798],{"class":164},[140,8191,150],{"class":146},[140,8193,170],{"class":146},[140,8195,150],{"class":146},[140,8197,175],{"class":153},[140,8199,150],{"class":146},[140,8201,159],{"class":146},[140,8203,150],{"class":146},[140,8205,7558],{"class":164},[140,8207,150],{"class":146},[140,8209,170],{"class":146},[140,8211,150],{"class":146},[140,8213,279],{"class":153},[140,8215,150],{"class":146},[140,8217,159],{"class":146},[140,8219,150],{"class":146},[140,8221,165],{"class":164},[140,8223,150],{"class":146},[140,8225,170],{"class":146},[140,8227,150],{"class":146},[140,8229,1237],{"class":153},[140,8231,150],{"class":146},[140,8233,159],{"class":146},[140,8235,150],{"class":146},[140,8237,574],{"class":164},[140,8239,150],{"class":146},[140,8241,170],{"class":146},[140,8243,150],{"class":146},[140,8245,7599],{"class":153},[140,8247,150],{"class":146},[140,8249,159],{"class":146},[140,8251,150],{"class":146},[140,8253,7608],{"class":164},[140,8255,150],{"class":146},[140,8257,170],{"class":146},[140,8259,150],{"class":146},[140,8261,7617],{"class":153},[140,8263,150],{"class":146},[140,8265,159],{"class":146},[140,8267,150],{"class":146},[140,8269,7626],{"class":164},[140,8271,150],{"class":146},[140,8273,170],{"class":146},[140,8275,150],{"class":146},[140,8277,1317],{"class":153},[140,8279,150],{"class":146},[140,8281,159],{"class":146},[140,8283,228],{"class":146},[140,8285,170],{"class":146},[140,8287,150],{"class":146},[140,8289,1254],{"class":153},[140,8291,150],{"class":146},[140,8293,159],{"class":146},[140,8295,228],{"class":146},[140,8297,170],{"class":146},[140,8299,150],{"class":146},[140,8301,508],{"class":153},[140,8303,150],{"class":146},[140,8305,159],{"class":146},[140,8307,7986],{"class":515},[140,8309,170],{"class":146},[140,8311,150],{"class":146},[140,8313,523],{"class":153},[140,8315,150],{"class":146},[140,8317,159],{"class":146},[140,8319,6168],{"class":515},[140,8321,170],{"class":146},[140,8323,150],{"class":146},[140,8325,1484],{"class":153},[140,8327,150],{"class":146},[140,8329,1489],{"class":146},[140,8331,150],{"class":146},[140,8333,816],{"class":164},[140,8335,150],{"class":146},[140,8337,1498],{"class":146},[140,8339,150],{"class":146},[140,8341,154],{"class":153},[140,8343,150],{"class":146},[140,8345,159],{"class":146},[140,8347,150],{"class":146},[140,8349,1100],{"class":164},[140,8351,150],{"class":146},[140,8353,170],{"class":146},[140,8355,150],{"class":146},[140,8357,175],{"class":153},[140,8359,150],{"class":146},[140,8361,159],{"class":146},[140,8363,150],{"class":146},[140,8365,7558],{"class":164},[140,8367,150],{"class":146},[140,8369,170],{"class":146},[140,8371,150],{"class":146},[140,8373,279],{"class":153},[140,8375,150],{"class":146},[140,8377,159],{"class":146},[140,8379,150],{"class":146},[140,8381,165],{"class":164},[140,8383,150],{"class":146},[140,8385,170],{"class":146},[140,8387,150],{"class":146},[140,8389,1237],{"class":153},[140,8391,150],{"class":146},[140,8393,159],{"class":146},[140,8395,150],{"class":146},[140,8397,903],{"class":164},[140,8399,150],{"class":146},[140,8401,170],{"class":146},[140,8403,150],{"class":146},[140,8405,7599],{"class":153},[140,8407,150],{"class":146},[140,8409,159],{"class":146},[140,8411,150],{"class":146},[140,8413,7608],{"class":164},[140,8415,150],{"class":146},[140,8417,170],{"class":146},[140,8419,150],{"class":146},[140,8421,7617],{"class":153},[140,8423,150],{"class":146},[140,8425,159],{"class":146},[140,8427,150],{"class":146},[140,8429,7626],{"class":164},[140,8431,150],{"class":146},[140,8433,170],{"class":146},[140,8435,150],{"class":146},[140,8437,1317],{"class":153},[140,8439,150],{"class":146},[140,8441,159],{"class":146},[140,8443,228],{"class":146},[140,8445,170],{"class":146},[140,8447,150],{"class":146},[140,8449,1254],{"class":153},[140,8451,150],{"class":146},[140,8453,159],{"class":146},[140,8455,228],{"class":146},[140,8457,170],{"class":146},[140,8459,150],{"class":146},[140,8461,508],{"class":153},[140,8463,150],{"class":146},[140,8465,159],{"class":146},[140,8467,8147],{"class":515},[140,8469,170],{"class":146},[140,8471,150],{"class":146},[140,8473,523],{"class":153},[140,8475,150],{"class":146},[140,8477,159],{"class":146},[140,8479,7066],{"class":515},[140,8481,170],{"class":146},[140,8483,150],{"class":146},[140,8485,1484],{"class":153},[140,8487,150],{"class":146},[140,8489,1489],{"class":146},[140,8491,150],{"class":146},[140,8493,1127],{"class":164},[140,8495,150],{"class":146},[140,8497,1498],{"class":146},[140,8499,150],{"class":146},[140,8501,154],{"class":153},[140,8503,150],{"class":146},[140,8505,159],{"class":146},[140,8507,150],{"class":146},[140,8509,7608],{"class":164},[140,8511,150],{"class":146},[140,8513,170],{"class":146},[140,8515,150],{"class":146},[140,8517,175],{"class":153},[140,8519,150],{"class":146},[140,8521,159],{"class":146},[140,8523,150],{"class":146},[140,8525,8526],{"class":164},"sqlitedb",[140,8528,150],{"class":146},[140,8530,170],{"class":146},[140,8532,150],{"class":146},[140,8534,8535],{"class":153},"db",[140,8537,150],{"class":146},[140,8539,159],{"class":146},[140,8541,150],{"class":146},[140,8543,8544],{"class":164},"sqllite",[140,8546,150],{"class":146},[140,8548,170],{"class":146},[140,8550,150],{"class":146},[140,8552,8553],{"class":153},"mode",[140,8555,150],{"class":146},[140,8557,159],{"class":146},[140,8559,150],{"class":146},[140,8561,8562],{"class":164},"RWC",[140,8564,150],{"class":146},[140,8566,8567],{"class":146},"}]\n",[42,8569,8570,8573,8580,8590,8601],{},[45,8571,8572],{},"Import the provided flow for data generation.",[45,8574,8575,8576,8579],{},"Click the ",[86,8577,8578],{},"Deploy"," button to activate the flow.",[45,8581,8582,8583,8586,8587,68],{},"On deployment, it will create two SQLite tables: ",[137,8584,8585],{},"ProductionData"," and ",[137,8588,8589],{},"DowntimeData",[45,8591,8592,8593,8596,8597,68],{},"Find the ",[86,8594,8595],{},"Inject node"," labeled ",[8598,8599,8600],"em",{},"Click to generate and insert demo data",[45,8602,8603],{},"Click the inject node to trigger data generation.",[12,8605,8606],{},"The flow will generate data with the following fields:",[12,8608,8609,8614],{},[8610,8611],"img",{"alt":8612,"dataZoomable":135,"src":8613},"Demo Production and Downtime data object","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fdemo-data-props.png",[8598,8615,8612],{},[73,8617,8619],{"id":8618},"collecting-and-configuring-data","Collecting and Configuring Data",[12,8621,8622],{},"Once the simulated data is generated and stored in SQLite, the next step is to create a flow for configuration settings. These settings will be used across the entire flow, allowing the flow to be reused by simply modifying the settings. The configured data will then be collected for use in the OEE dashboard.",[8624,8625,8627],"h4",{"id":8626},"adding-flow-to-configure-settings","Adding flow to configure settings:",[42,8629,8630,8637,8643,8677,8690],{},[45,8631,8632,8633,8636],{},"Click on the ",[86,8634,8635],{},"\"+\""," to create a new flow.",[45,8638,8639,8640,68],{},"Name the newly created flow to ",[86,8641,8642],{},"OEE Dashboard for Line-1",[45,8644,8645,8646,8649,8650],{},"Drag a ",[86,8647,8648],{},"Change node"," onto the canvas, double-click it, and add the following elements:",[81,8651,8652,8662,8670],{},[45,8653,8654,8655,8658,8659],{},"Set ",[137,8656,8657],{},"flow.line"," to ",[137,8660,8661],{},"\"Line-1\"",[45,8663,8654,8664,8658,8667],{},[137,8665,8666],{},"flow.shift_duration",[137,8668,8669],{},"12",[45,8671,8654,8672,8658,8675],{},[137,8673,8674],{},"flow.shiftDuration24h",[137,8676,516],{},[45,8678,8679,8680,8682,8683,8686,8687,8689],{},"Drag an ",[86,8681,8595],{},", set it to trigger on deploy by enabling ",[86,8684,8685],{},"Inject once after X seconds"," (set delay to ",[137,8688,1683],{}," seconds).",[45,8691,8692,8693,8695],{},"Click ",[86,8694,8578],{}," to apply changes.",[12,8697,8698,8699,8702,8703,8706,8707,8710],{},"In this flow, we are configuring the production line based on the demo data, specifically for ",[86,8700,8701],{},"Line-1",", as we are building the OEE dashboard for this line. The settings define the shift duration for the last ",[86,8704,8705],{},"X"," hours used in OEE calculations and the total shift duration within a ",[86,8708,8709],{},"24-hour"," period.",[12,8712,8713,8717],{},[8610,8714],{"alt":8715,"dataZoomable":135,"src":8716},"Flow to set basic configuration settings that will be used across the OEE dashboard flow for calculations.","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fconfiguration-flow.png",[8598,8718,8715],{},[8624,8720,8722],{"id":8721},"retrieving-data-from-sqlite","Retrieving Data from SQLite:",[42,8724,8725,8730,8768,8797,8810,8813,8837,8848,8851],{},[45,8726,8679,8727,8729],{},[86,8728,8595],{}," and configure it to trigger at regular intervals.",[45,8731,8645,8732,8734,8735],{},[86,8733,8648],{}," and add following elements:",[81,8736,8737,8745,8753,8761],{},[45,8738,8654,8739,8658,8742],{},[137,8740,8741],{},"msg.params",[137,8743,8744],{},"{}",[45,8746,8654,8747,8658,8750],{},[137,8748,8749],{},"msg.params.$startTime",[137,8751,8752],{},"$moment($millis() - ($number($flowContext('shift_duration')) * 60 * 60 * 1000)).format('YYYY-MM-DD HH:mm:ss')",[45,8754,8654,8755,8658,8758],{},[137,8756,8757],{},"msg.params.$endTime",[137,8759,8760],{},"$moment($millis()).format('YYYY-MM-DD HH:mm:ss')",[45,8762,8654,8763,8658,8766],{},[137,8764,8765],{},"msg.params.$line",[137,8767,8657],{},[45,8769,8679,8770,8773,8774],{},[86,8771,8772],{},"SQLite node"," and insert the following query:",[130,8775,8778],{"className":8776,"code":8777,"language":1317,"meta":135,"style":135},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SELECT timestamp, machine_name, area, line, total_produced_units, good_units, defect_units, target_output\nFROM ProductionData\nWHERE timestamp BETWEEN $startTime AND $endTime AND line = $line;\n",[137,8779,8780,8785,8791],{"__ignoreMap":135},[140,8781,8782],{"class":142,"line":143},[140,8783,8784],{},"SELECT timestamp, machine_name, area, line, total_produced_units, good_units, defect_units, target_output\n",[140,8786,8788],{"class":142,"line":8787},2,[140,8789,8790],{},"FROM ProductionData\n",[140,8792,8794],{"class":142,"line":8793},3,[140,8795,8796],{},"WHERE timestamp BETWEEN $startTime AND $endTime AND line = $line;\n",[45,8798,8799,8800],{},"Drag a Change node onto the canvas and set the following element to store the retrived production data result as new property:",[81,8801,8802],{},[45,8803,8654,8804,8658,8807],{},[137,8805,8806],{},"msg.payload",[137,8808,8809],{},"msg.productionData",[45,8811,8812],{},"Connect the Inject node’s output to the input of the Change node that sets parameters. Then, connect the Change node’s output to the input of the SQLite node that retrieves production data. Finally, connect the SQLite node’s output to the input of last change node we added.",[45,8814,8815,8816,8773,8818],{},"Drag another ",[86,8817,8772],{},[130,8819,8821],{"className":8776,"code":8820,"language":1317,"meta":135,"style":135},"SELECT timestamp, machine_name, downtime_start, downtime_duration_minutes, downtime_reason\nFROM DowntimeData\nWHERE timestamp BETWEEN $startTime AND $endTime AND line = $line;\n",[137,8822,8823,8828,8833],{"__ignoreMap":135},[140,8824,8825],{"class":142,"line":143},[140,8826,8827],{},"SELECT timestamp, machine_name, downtime_start, downtime_duration_minutes, downtime_reason\n",[140,8829,8830],{"class":142,"line":8787},[140,8831,8832],{},"FROM DowntimeData\n",[140,8834,8835],{"class":142,"line":8793},[140,8836,8796],{},[45,8838,8799,8839],{},[81,8840,8841],{},[45,8842,8654,8843,8658,8845],{},[137,8844,8806],{},[137,8846,8847],{},"msg.downtimeData",[45,8849,8850],{},"Connect the SQLite node’s output to the input of last change node we added.",[45,8852,8853],{},"Now, drag the Link Out node onto the canvas and connect it to the last Change node.",[12,8855,8856,8860],{},[8610,8857],{"alt":8858,"dataZoomable":135,"src":8859},"Flow that retrives the data from the sqlite table","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fsqlite-flow.png",[8598,8861,8858],{},[73,8863,8865],{"id":8864},"preparing-data-for-oee-calculations","Preparing Data for OEE Calculations",[12,8867,8868],{},"Now that we have a flow to retrieve production and downtime data, we can calculate key OEE metrics. The total number of good units, defective units, total produced units, target output, and downtime duration are summed across all production lines. Using these values, we can calculate availability, performance, and quality for the entire production system, which can then be used to calculate OEE.",[42,8870,8871,8881,8910,8930,8957,8980,8987,9010,9032,9039,9045,9066,9085],{},[45,8872,8873,8874,8877,8878,68],{},"Drag the ",[86,8875,8876],{},"link in node"," onto the canvas and connect it to the ",[86,8879,8880],{},"link out node",[45,8882,8883,8884,8887,8888,8891,8892],{},"Drag two ",[86,8885,8886],{},"Change nodes"," onto the canvas and connect them to the ",[86,8889,8890],{},"Link In"," node.",[81,8893,8894,8902],{},[45,8895,8896,8897,8658,8899,68],{},"In the first Change node, set ",[137,8898,8806],{},[137,8900,8901],{},"production_data",[45,8903,8904,8905,8658,8907,68],{},"In the second Change node, set ",[137,8906,8806],{},[137,8908,8909],{},"downtime_data",[45,8911,8645,8912,8915,8916,8918,8919,8921,8922,8924,8925,8927,8928,68],{},[86,8913,8914],{},"Split node"," onto the canvas and connect it to the first ",[86,8917,8648],{},", the one setting ",[137,8920,8901],{},". Configure the ",[86,8923,8914],{}," so that ",[137,8926,8806],{}," is assigned to ",[137,8929,8901],{},[45,8931,8932,8933,8887,8936,8938,8939,8942,8943],{},"Drag three ",[86,8934,8935],{},"Join nodes",[86,8937,8914],{}," to sum individual data points. Configure each ",[86,8940,8941],{},"Join node"," with the following settings:",[81,8944,8945,8948,8951],{},[45,8946,8947],{},"Mode: Reduce Sequence",[45,8949,8950],{},"Initial Value: 0",[45,8952,8953,8954],{},"Fix-up Expression: ",[137,8955,8956],{},"$A",[45,8958,8959,8960],{},"Set the reduce expressions as follows:",[81,8961,8962,8968,8974],{},[45,8963,8964,8965],{},"First Join Node: ",[137,8966,8967],{},"$A + msg.payload.total_produced_units",[45,8969,8970,8971],{},"Second Join Node: ",[137,8972,8973],{},"$A + msg.payload.good_units",[45,8975,8976,8977],{},"Third Join Node: ",[137,8978,8979],{},"$A + msg.payload.target_output",[45,8981,8932,8982,8984,8985,68],{},[86,8983,8886],{}," onto the canvas and connect each to a ",[86,8986,8941],{},[45,8988,8989,8990,8992,8993],{},"Configure these ",[86,8991,8886],{}," to store the summed values using the following variables to flow context:",[81,8994,8995,9000,9005],{},[45,8996,8997],{},[137,8998,8999],{},"total_produced_units",[45,9001,9002],{},[137,9003,9004],{},"total_good_units",[45,9006,9007],{},[137,9008,9009],{},"total_target_output",[45,9011,8645,9012,8877,9015,9017,9018,9020,9021,9023,9024],{},[86,9013,9014],{},"Switch node",[86,9016,8648],{}," that sets the retrieved downtime data to ",[137,9019,8806],{},", for switch node set the Property to ",[137,9022,8806],{}," and add the following conditions:",[81,9025,9026,9029],{},[45,9027,9028],{},"is not empty.",[45,9030,9031],{},"Otherwise.",[45,9033,8645,9034,9036,9037,68],{},[86,9035,8914],{}," onto the canvas and connect it to the first output of the ",[86,9038,9014],{},[45,9040,8645,9041,8877,9043,68],{},[86,9042,8941],{},[86,9044,8914],{},[45,9046,9047,9048,8942,9050],{},"Configure the ",[86,9049,8941],{},[81,9051,9052,9054,9056,9060],{},[45,9053,8947],{},[45,9055,8950],{},[45,9057,8953,9058],{},[137,9059,8956],{},[45,9061,9062,9063],{},"Reduce Expression: ",[137,9064,9065],{},"$A + payload.downtime_duration_minutes",[45,9067,8645,9068,8877,9070,9072,9073,9075,9076],{},[86,9069,8648],{},[86,9071,8941],{},", Configure this ",[86,9074,8648],{}," to store the total downtime duration in the flow context with following element:",[81,9077,9078],{},[45,9079,8654,9080,8658,9083],{},[137,9081,9082],{},"flow.total_downtime",[137,9084,8806],{},[45,9086,9087],{},"Drag another Change node onto the canvas and connect it to the second output of the Switch node, Set this Change node to store 0 in the flow context for total_downtime with following element:",[81,9089,9090],{},[45,9091,8654,9092,9094],{},[137,9093,9082],{}," to 0",[42,9096,9098],{"start":9097},14,[45,9099,8645,9100,9103],{},[86,9101,9102],{},"Link Out"," node onto the canvas and connect it to any of the Change nodes that store the summed metrics in the flow context.",[12,9105,9106,9110],{},[8610,9107],{"alt":9108,"dataZoomable":135,"src":9109},"Flow to prepare the data necessary to calculate OEE and all its three components.","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fpreparing-data-flow.png",[8598,9111,9108],{},[73,9113,9115],{"id":9114},"calculating-oee-and-key-metrics","Calculating OEE and Key Metrics",[12,9117,9118],{},"Now that we have all the necessary pieces, we can calculate the key metrics for OEE: Availability, Performance, and Quality and later OEE.",[42,9120,9121,9126,9332,9340,9349],{},[45,9122,8645,9123,68],{},[86,9124,9125],{},"Link In node",[45,9127,8645,9128,9130,9131,9193],{},[86,9129,8648],{}," and add element as following:",[81,9132,9133,9142,9150,9158,9166,9174,9181,9188],{},[45,9134,8654,9135,8658,9138,9141],{},[137,9136,9137],{},"msg.quality",[137,9139,9140],{},"($flowContext('total_good_units') \u002F $flowContext('total_produced_units')) * 100"," as JSONata expression.",[45,9143,8654,9144,8658,9147,9141],{},[137,9145,9146],{},"msg.availability",[137,9148,9149],{},"(($flowContext('shift_duration') - $flowContext('total_downtime')) \u002F $flowContext('shift_duration')) * 100",[45,9151,8654,9152,8658,9155,9141],{},[137,9153,9154],{},"msg.performance",[137,9156,9157],{},"($flowContext('total_produced_units') \u002F $flowContext('target_output')) * 100",[45,9159,8654,9160,8658,9163,9141],{},[137,9161,9162],{},"msg.oee",[137,9164,9165],{},"$round(((msg.availability \u002F 100) * (msg.performance \u002F 100) * (msg.quality \u002F 100)) * 100, 2)",[45,9167,8654,9168,9170,9171],{},[137,9169,9137],{},"to ",[137,9172,9173],{},"$round(msg.quality, 2)",[45,9175,8654,9176,8658,9178],{},[137,9177,9146],{},[137,9179,9180],{},"$round(msg.availability, 2)",[45,9182,8654,9183,8658,9185],{},[137,9184,9154],{},[137,9186,9187],{},"$round(msg.performance, 2)",[45,9189,8654,9190,9192],{},[137,9191,8809],{}," to JSONata expression:",[130,9194,9196],{"className":132,"code":9195,"language":134,"meta":135,"style":135},"[\n{\n    \"reason\": \"Total Good Units Produced\",\n    \"units\": $flowContext(\"total_good_units\")\n  },\n  {\n    \"series\": \"Total Defective Units Produced\",\n    \"units\": $number($flowContext(\"total_produced_units\")) - $number($flowContext(\"total_good_units\"))\n  }\n]\n",[137,9197,9198,9203,9208,9231,9255,9261,9267,9288,9320,9326],{"__ignoreMap":135},[140,9199,9200],{"class":142,"line":143},[140,9201,9202],{"class":146},"[\n",[140,9204,9205],{"class":142,"line":8787},[140,9206,9207],{"class":146},"{\n",[140,9209,9210,9213,9216,9218,9220,9223,9226,9228],{"class":142,"line":8793},[140,9211,9212],{"class":146},"    \"",[140,9214,9215],{"class":153},"reason",[140,9217,150],{"class":146},[140,9219,159],{"class":146},[140,9221,9222],{"class":146}," \"",[140,9224,9225],{"class":164},"Total Good Units Produced",[140,9227,150],{"class":146},[140,9229,9230],{"class":146},",\n",[140,9232,9234,9236,9239,9241,9243,9246,9248,9250,9252],{"class":142,"line":9233},4,[140,9235,9212],{"class":146},[140,9237,9238],{"class":153},"units",[140,9240,150],{"class":146},[140,9242,159],{"class":146},[140,9244,9245],{"class":1355}," $flowContext(",[140,9247,150],{"class":146},[140,9249,9004],{"class":164},[140,9251,150],{"class":146},[140,9253,9254],{"class":1355},")\n",[140,9256,9258],{"class":142,"line":9257},5,[140,9259,9260],{"class":146},"  },\n",[140,9262,9264],{"class":142,"line":9263},6,[140,9265,9266],{"class":146},"  {\n",[140,9268,9270,9272,9275,9277,9279,9281,9284,9286],{"class":142,"line":9269},7,[140,9271,9212],{"class":146},[140,9273,9274],{"class":153},"series",[140,9276,150],{"class":146},[140,9278,159],{"class":146},[140,9280,9222],{"class":146},[140,9282,9283],{"class":164},"Total Defective Units Produced",[140,9285,150],{"class":146},[140,9287,9230],{"class":146},[140,9289,9291,9293,9295,9297,9299,9302,9304,9306,9308,9311,9313,9315,9317],{"class":142,"line":9290},8,[140,9292,9212],{"class":146},[140,9294,9238],{"class":153},[140,9296,150],{"class":146},[140,9298,159],{"class":146},[140,9300,9301],{"class":1355}," $number($flowContext(",[140,9303,150],{"class":146},[140,9305,8999],{"class":164},[140,9307,150],{"class":146},[140,9309,9310],{"class":1355},")) - $number($flowContext(",[140,9312,150],{"class":146},[140,9314,9004],{"class":164},[140,9316,150],{"class":146},[140,9318,9319],{"class":1355},"))\n",[140,9321,9323],{"class":142,"line":9322},9,[140,9324,9325],{"class":146},"  }\n",[140,9327,9329],{"class":142,"line":9328},10,[140,9330,9331],{"class":146},"]\n",[45,9333,8645,9334,9337,9338,68],{},[86,9335,9336],{},"Link Out node"," and connect it to the ",[86,9339,8648],{},[45,9341,9342,9343,9345,9346,9348],{},"Drag a separate ",[86,9344,8890],{}," node for visualization and keep it in a separate flow. This will be the ",[86,9347,8890],{}," node where all the calculated final data for visualization will be stored.",[45,9350,9351,9352,9355,9356,8891],{},"Connect ",[86,9353,9354],{},"link out"," node to this ",[86,9357,9358],{},"link in",[12,9360,9361,9365],{},[8610,9362],{"alt":9363,"dataZoomable":135,"src":9364},"Flow that calculates availability, quality, performance, and OEE, and also prepares production data for visualization.","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fcalculate-oee-and-key-metrics.png",[8598,9366,9363],{},[73,9368,9370],{"id":9369},"detailed-breakdown-of-oee-data","Detailed Breakdown of OEE Data",[12,9372,9373],{},"We have calculated the OEE and other key metrics. However, as discussed in the planning section of our previous article, we will also visualize recent downtime events, a downtime summary, the top underperforming machines (OEE-wise), and the OEE trend over the last 30 days on the dashboard.",[12,9375,9376],{},"Let’s do that.",[42,9378,9379,9388],{},[45,9380,8873,9381,8877,9383,9385,9386,68],{},[86,9382,8876],{},[86,9384,8880],{}," that is part of the SQLite flow, which is also connected to the change node that sets the retrieved downtime result to ",[137,9387,8806],{},[45,9389,8645,9390,9393,9394,68],{},[86,9391,9392],{},"change node"," onto the canvas and set the following element: ",[137,9395,9396],{},"Set msg.downtime_data to msg.payload",[8624,9398,9400],{"id":9399},"downtime-summary","Downtime Summary",[42,9402,9403],{},[45,9404,8645,9405,9408],{},[86,9406,9407],{},"function node"," onto the canvas and add the following JavaScript to calculate the downtime summary:",[130,9410,9414],{"className":9411,"code":9412,"language":9413,"meta":135,"style":135},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","function calculateDowntimeByReason(downtimeData) {\n   if (!Array.isArray(downtimeData) || downtimeData.length === 0) {\n       return []; f\n   }\n   const summary = {};\n   downtimeData.forEach(({ downtime_reason, downtime_duration_minutes }) => {\n       summary[downtime_reason] = (summary[downtime_reason] || 0) + downtime_duration_minutes;\n   });\n   return Object.entries(summary).map(([reason, duration]) => ({\n       downtime_reason: reason,\n       downtime_duration_minutes: duration\n   }));\n}\nmsg.payload = calculateDowntimeByReason(msg.payload) || [];\nreturn msg;\n","javascript",[137,9415,9416,9437,9485,9499,9504,9518,9549,9591,9600,9645,9657,9668,9678,9684,9711],{"__ignoreMap":135},[140,9417,9418,9420,9424,9427,9431,9434],{"class":142,"line":143},[140,9419,4207],{"class":153},[140,9421,9423],{"class":9422},"s2Zo4"," calculateDowntimeByReason",[140,9425,9426],{"class":146},"(",[140,9428,9430],{"class":9429},"sHdIc","downtimeData",[140,9432,9433],{"class":146},")",[140,9435,9436],{"class":146}," {\n",[140,9438,9439,9443,9447,9450,9453,9455,9458,9460,9462,9464,9467,9470,9472,9475,9478,9481,9483],{"class":142,"line":8787},[140,9440,9442],{"class":9441},"s7zQu","   if",[140,9444,9446],{"class":9445},"swJcz"," (",[140,9448,9449],{"class":146},"!",[140,9451,9452],{"class":1355},"Array",[140,9454,68],{"class":146},[140,9456,9457],{"class":9422},"isArray",[140,9459,9426],{"class":9445},[140,9461,9430],{"class":1355},[140,9463,2917],{"class":9445},[140,9465,9466],{"class":146},"||",[140,9468,9469],{"class":1355}," downtimeData",[140,9471,68],{"class":146},[140,9473,9474],{"class":1355},"length",[140,9476,9477],{"class":146}," ===",[140,9479,9480],{"class":515}," 0",[140,9482,2917],{"class":9445},[140,9484,9207],{"class":146},[140,9486,9487,9490,9493,9496],{"class":142,"line":8793},[140,9488,9489],{"class":9441},"       return",[140,9491,9492],{"class":9445}," []",[140,9494,9495],{"class":146},";",[140,9497,9498],{"class":1355}," f\n",[140,9500,9501],{"class":142,"line":9233},[140,9502,9503],{"class":146},"   }\n",[140,9505,9506,9509,9512,9515],{"class":142,"line":9257},[140,9507,9508],{"class":153},"   const",[140,9510,9511],{"class":1355}," summary",[140,9513,9514],{"class":146}," =",[140,9516,9517],{"class":146}," {};\n",[140,9519,9520,9523,9525,9528,9530,9533,9536,9538,9541,9544,9547],{"class":142,"line":9263},[140,9521,9522],{"class":1355},"   downtimeData",[140,9524,68],{"class":146},[140,9526,9527],{"class":9422},"forEach",[140,9529,9426],{"class":9445},[140,9531,9532],{"class":146},"({",[140,9534,9535],{"class":9429}," downtime_reason",[140,9537,170],{"class":146},[140,9539,9540],{"class":9429}," downtime_duration_minutes",[140,9542,9543],{"class":146}," })",[140,9545,9546],{"class":153}," =>",[140,9548,9436],{"class":146},[140,9550,9551,9554,9557,9560,9563,9566,9568,9571,9573,9575,9577,9579,9581,9583,9586,9588],{"class":142,"line":9269},[140,9552,9553],{"class":1355},"       summary",[140,9555,9556],{"class":9445},"[",[140,9558,9559],{"class":1355},"downtime_reason",[140,9561,9562],{"class":9445},"] ",[140,9564,9565],{"class":146},"=",[140,9567,9446],{"class":9445},[140,9569,9570],{"class":1355},"summary",[140,9572,9556],{"class":9445},[140,9574,9559],{"class":1355},[140,9576,9562],{"class":9445},[140,9578,9466],{"class":146},[140,9580,9480],{"class":515},[140,9582,2917],{"class":9445},[140,9584,9585],{"class":146},"+",[140,9587,9540],{"class":1355},[140,9589,9590],{"class":146},";\n",[140,9592,9593,9596,9598],{"class":142,"line":9290},[140,9594,9595],{"class":146},"   }",[140,9597,9433],{"class":9445},[140,9599,9590],{"class":146},[140,9601,9602,9605,9608,9610,9613,9615,9617,9619,9621,9624,9626,9629,9631,9633,9636,9639,9641,9643],{"class":142,"line":9322},[140,9603,9604],{"class":9441},"   return",[140,9606,9607],{"class":1355}," Object",[140,9609,68],{"class":146},[140,9611,9612],{"class":9422},"entries",[140,9614,9426],{"class":9445},[140,9616,9570],{"class":1355},[140,9618,9433],{"class":9445},[140,9620,68],{"class":146},[140,9622,9623],{"class":9422},"map",[140,9625,9426],{"class":9445},[140,9627,9628],{"class":146},"([",[140,9630,9215],{"class":9429},[140,9632,170],{"class":146},[140,9634,9635],{"class":9429}," duration",[140,9637,9638],{"class":146},"])",[140,9640,9546],{"class":153},[140,9642,9446],{"class":9445},[140,9644,9207],{"class":146},[140,9646,9647,9650,9652,9655],{"class":142,"line":9328},[140,9648,9649],{"class":9445},"       downtime_reason",[140,9651,159],{"class":146},[140,9653,9654],{"class":1355}," reason",[140,9656,9230],{"class":146},[140,9658,9660,9663,9665],{"class":142,"line":9659},11,[140,9661,9662],{"class":9445},"       downtime_duration_minutes",[140,9664,159],{"class":146},[140,9666,9667],{"class":1355}," duration\n",[140,9669,9671,9673,9676],{"class":142,"line":9670},12,[140,9672,9595],{"class":146},[140,9674,9675],{"class":9445},"))",[140,9677,9590],{"class":146},[140,9679,9681],{"class":142,"line":9680},13,[140,9682,9683],{"class":146},"}\n",[140,9685,9686,9688,9690,9693,9695,9697,9700,9702,9705,9707,9709],{"class":142,"line":9097},[140,9687,1299],{"class":1355},[140,9689,68],{"class":146},[140,9691,9692],{"class":1355},"payload ",[140,9694,9565],{"class":146},[140,9696,9423],{"class":9422},[140,9698,9699],{"class":1355},"(msg",[140,9701,68],{"class":146},[140,9703,9704],{"class":1355},"payload) ",[140,9706,9466],{"class":146},[140,9708,9492],{"class":1355},[140,9710,9590],{"class":146},[140,9712,9714,9717,9720],{"class":142,"line":9713},15,[140,9715,9716],{"class":9441},"return",[140,9718,9719],{"class":1355}," msg",[140,9721,9590],{"class":146},[42,9723,9724,9738,9748],{"start":8787},[45,9725,8645,9726,9728,9729],{},[86,9727,9392],{}," onto the canvas and set:",[81,9730,9731],{},[45,9732,8654,9733,8658,9735,68],{},[137,9734,8806],{},[137,9736,9737],{},"msg.downtimeSummary",[45,9739,8645,9740,9742,9743,8658,9746,68],{},[86,9741,9354],{}," node and connect it to the change node that sets ",[137,9744,9745],{},"msg.downtime_data",[137,9747,8806],{},[45,9749,9750,9751,9753,9754,9756],{},"Connect this ",[86,9752,8880],{}," to the ",[86,9755,8876],{}," that we added earlier to receive all the calculated metrics for visualization.",[8624,9758,9760],{"id":9759},"recent-downtime","Recent Downtime",[42,9762,9763,9784,9796,9822,9834,9853],{},[45,9764,8645,9765,9768,9769,9771,9772],{},[86,9766,9767],{},"Switch"," node onto the canvas and set the property to ",[86,9770,8806],{},". Add the following condition:",[81,9773,9774,9779],{},[45,9775,9776],{},[86,9777,9778],{},"is not empty",[45,9780,9781],{},[86,9782,9783],{},"otherwise",[45,9785,8645,9786,9789,9790,9793,9794,8891],{},[86,9787,9788],{},"Split"," node onto the canvas and connect it to the ",[86,9791,9792],{},"first output"," of the ",[86,9795,9767],{},[45,9797,8645,9798,9789,9801,9803,9804,9807,9808,9813,9814,9817,9818,9821],{},[86,9799,9800],{},"Sort",[86,9802,9788],{}," node. Set the sort to ",[86,9805,9806],{},"\"message sequence\"",", key to ",[86,9809,9810],{},[137,9811,9812],{},"msg.payload.downtime_start",", and order to ",[86,9815,9816],{},"\"descending.\""," This will sort the downtime data from ",[86,9819,9820],{},"most recent to oldest"," based on its start time.",[45,9823,8645,9824,9827,9828,9831,9832,8891],{},[86,9825,9826],{},"Join"," node onto the canvas and set the mode to ",[86,9829,9830],{},"automatic",", then connect it to the ",[86,9833,9800],{},[45,9835,8645,9836,9839,9840],{},[86,9837,9838],{},"Change"," node onto the canvas and set the following element:",[81,9841,9842],{},[45,9843,9844],{},[86,9845,8654,9846,8658,9849,9852],{},[137,9847,9848],{},"msg.recentDowntime",[137,9850,9851],{},"payload^(10)"," as a JSONata expression.",[45,9854,9855,9856,9858,9859,9861],{},"Connect the ",[86,9857,9838],{}," node to the ",[86,9860,9102],{}," node that was added before.",[8624,9863,9865],{"id":9864},"top-underperforming-machines","Top Underperforming Machines",[42,9867,9868,9879],{},[45,9869,8645,9870,9789,9873,9875,9876,68],{},[86,9871,9872],{},"Function",[86,9874,8890],{}," node that is receiving the ",[86,9877,9878],{},"SQLite result",[45,9880,9881,9882,9885,9886,9888],{},"Add the following ",[86,9883,9884],{},"JavaScript"," code to the ",[86,9887,9872],{}," node:",[130,9890,9892],{"className":9411,"code":9891,"language":9413,"meta":135,"style":135},"const productionData = msg.production_data;\nconst downtimeEvents = msg.downtime_data;\nconst shiftDuration = (flow.get('shift_duration') || 1) * 60; \u002F\u002F Convert hours to minutes\n\n\u002F\u002F Group production data by machine (including area)\nlet machineData = {};\nproductionData.forEach(data => {\n    if (!machineData[data.machine_name]) {\n        machineData[data.machine_name] = {\n            total_produced_units: 0,\n            good_units: 0,\n            target_output: 0,\n            count: 0,\n            area: data.area \u002F\u002F Store area\n        };\n    }\n    machineData[data.machine_name].total_produced_units += data.total_produced_units;\n    machineData[data.machine_name].good_units += data.good_units;\n    machineData[data.machine_name].target_output += data.target_output;\n    machineData[data.machine_name].count += 1;\n});\n\nlet oeeResults = Object.keys(machineData).map(machineName => {\n    let data = machineData[machineName];\n\n    let machineDowntime = downtimeEvents.filter(event => event.machine_name === machineName);\n\n    function calculateOEE(data, downtime) {\n        if (data.target_output === 0) {\n            return { availability: 0, performance: 0, quality: 0, oee: 0 };\n        }\n\n        let totalDowntime = downtime.reduce((acc, event) =>\n            typeof event.downtime_duration_minutes === 'number' ? acc + event.downtime_duration_minutes : acc\n            , 0);\n\n        let availability = (shiftDuration - totalDowntime) \u002F shiftDuration;\n        availability = Math.max(0, Math.min(1, availability));\n\n        let performance = data.target_output > 0 ? data.total_produced_units \u002F data.target_output : 0;\n        let quality = data.total_produced_units > 0 ? data.good_units \u002F data.total_produced_units : 0;\n\n        let oee = availability * performance * quality;\n\n        return {\n            availability: parseFloat((availability * 100).toFixed(2)),\n            performance: parseFloat((performance * 100).toFixed(2)),\n            quality: parseFloat((quality * 100).toFixed(2)),\n            oee: parseFloat((oee * 100).toFixed(2))\n        };\n    }\n\n    let metrics = calculateOEE(data, machineDowntime);\n\n    return {\n        machine_name: machineName,\n        area: data.area,\n        oee: metrics.oee\n    };\n});\n\n\u002F\u002F Filter only machines with OEE \u003C 85\nmsg.payload = oeeResults.filter(machine => machine.oee \u003C 85);\n\nreturn msg;\n",[137,9893,9894,9912,9929,9977,9983,9988,10000,10018,10044,10063,10074,10085,10096,10107,10125,10130,10136,10167,10197,10227,10253,10262,10267,10300,10321,10326,10367,10372,10394,10416,10462,10468,10473,10507,10551,10563,10568,10597,10638,10643,10686,10727,10732,10754,10759,10767,10804,10837,10870,10901,10906,10911,10916,10940,10945,10953,10965,10981,10996,11002,11011,11016,11022,11065,11070],{"__ignoreMap":135},[140,9895,9896,9899,9902,9904,9906,9908,9910],{"class":142,"line":143},[140,9897,9898],{"class":153},"const",[140,9900,9901],{"class":1355}," productionData ",[140,9903,9565],{"class":146},[140,9905,9719],{"class":1355},[140,9907,68],{"class":146},[140,9909,8901],{"class":1355},[140,9911,9590],{"class":146},[140,9913,9914,9916,9919,9921,9923,9925,9927],{"class":142,"line":8787},[140,9915,9898],{"class":153},[140,9917,9918],{"class":1355}," downtimeEvents ",[140,9920,9565],{"class":146},[140,9922,9719],{"class":1355},[140,9924,68],{"class":146},[140,9926,8909],{"class":1355},[140,9928,9590],{"class":146},[140,9930,9931,9933,9936,9938,9941,9943,9946,9948,9951,9954,9956,9958,9960,9963,9965,9968,9971,9973],{"class":142,"line":8793},[140,9932,9898],{"class":153},[140,9934,9935],{"class":1355}," shiftDuration ",[140,9937,9565],{"class":146},[140,9939,9940],{"class":1355}," (flow",[140,9942,68],{"class":146},[140,9944,9945],{"class":9422},"get",[140,9947,9426],{"class":1355},[140,9949,9950],{"class":146},"'",[140,9952,9953],{"class":164},"shift_duration",[140,9955,9950],{"class":146},[140,9957,2917],{"class":1355},[140,9959,9466],{"class":146},[140,9961,9962],{"class":515}," 1",[140,9964,2917],{"class":1355},[140,9966,9967],{"class":146},"*",[140,9969,9970],{"class":515}," 60",[140,9972,9495],{"class":146},[140,9974,9976],{"class":9975},"sHwdD"," \u002F\u002F Convert hours to minutes\n",[140,9978,9979],{"class":142,"line":9233},[140,9980,9982],{"emptyLinePlaceholder":9981},true,"\n",[140,9984,9985],{"class":142,"line":9257},[140,9986,9987],{"class":9975},"\u002F\u002F Group production data by machine (including area)\n",[140,9989,9990,9993,9996,9998],{"class":142,"line":9263},[140,9991,9992],{"class":153},"let",[140,9994,9995],{"class":1355}," machineData ",[140,9997,9565],{"class":146},[140,9999,9517],{"class":146},[140,10001,10002,10005,10007,10009,10011,10014,10016],{"class":142,"line":9269},[140,10003,10004],{"class":1355},"productionData",[140,10006,68],{"class":146},[140,10008,9527],{"class":9422},[140,10010,9426],{"class":1355},[140,10012,10013],{"class":9429},"data",[140,10015,9546],{"class":153},[140,10017,9436],{"class":146},[140,10019,10020,10023,10025,10027,10030,10032,10034,10036,10039,10042],{"class":142,"line":9290},[140,10021,10022],{"class":9441},"    if",[140,10024,9446],{"class":9445},[140,10026,9449],{"class":146},[140,10028,10029],{"class":1355},"machineData",[140,10031,9556],{"class":9445},[140,10033,10013],{"class":1355},[140,10035,68],{"class":146},[140,10037,10038],{"class":1355},"machine_name",[140,10040,10041],{"class":9445},"]) ",[140,10043,9207],{"class":146},[140,10045,10046,10049,10051,10053,10055,10057,10059,10061],{"class":142,"line":9322},[140,10047,10048],{"class":1355},"        machineData",[140,10050,9556],{"class":9445},[140,10052,10013],{"class":1355},[140,10054,68],{"class":146},[140,10056,10038],{"class":1355},[140,10058,9562],{"class":9445},[140,10060,9565],{"class":146},[140,10062,9436],{"class":146},[140,10064,10065,10068,10070,10072],{"class":142,"line":9328},[140,10066,10067],{"class":9445},"            total_produced_units",[140,10069,159],{"class":146},[140,10071,9480],{"class":515},[140,10073,9230],{"class":146},[140,10075,10076,10079,10081,10083],{"class":142,"line":9659},[140,10077,10078],{"class":9445},"            good_units",[140,10080,159],{"class":146},[140,10082,9480],{"class":515},[140,10084,9230],{"class":146},[140,10086,10087,10090,10092,10094],{"class":142,"line":9670},[140,10088,10089],{"class":9445},"            target_output",[140,10091,159],{"class":146},[140,10093,9480],{"class":515},[140,10095,9230],{"class":146},[140,10097,10098,10101,10103,10105],{"class":142,"line":9680},[140,10099,10100],{"class":9445},"            count",[140,10102,159],{"class":146},[140,10104,9480],{"class":515},[140,10106,9230],{"class":146},[140,10108,10109,10112,10114,10117,10119,10122],{"class":142,"line":9097},[140,10110,10111],{"class":9445},"            area",[140,10113,159],{"class":146},[140,10115,10116],{"class":1355}," data",[140,10118,68],{"class":146},[140,10120,10121],{"class":1355},"area",[140,10123,10124],{"class":9975}," \u002F\u002F Store area\n",[140,10126,10127],{"class":142,"line":9713},[140,10128,10129],{"class":146},"        };\n",[140,10131,10133],{"class":142,"line":10132},16,[140,10134,10135],{"class":146},"    }\n",[140,10137,10139,10142,10144,10146,10148,10150,10152,10154,10156,10159,10161,10163,10165],{"class":142,"line":10138},17,[140,10140,10141],{"class":1355},"    machineData",[140,10143,9556],{"class":9445},[140,10145,10013],{"class":1355},[140,10147,68],{"class":146},[140,10149,10038],{"class":1355},[140,10151,4416],{"class":9445},[140,10153,68],{"class":146},[140,10155,8999],{"class":1355},[140,10157,10158],{"class":146}," +=",[140,10160,10116],{"class":1355},[140,10162,68],{"class":146},[140,10164,8999],{"class":1355},[140,10166,9590],{"class":146},[140,10168,10170,10172,10174,10176,10178,10180,10182,10184,10187,10189,10191,10193,10195],{"class":142,"line":10169},18,[140,10171,10141],{"class":1355},[140,10173,9556],{"class":9445},[140,10175,10013],{"class":1355},[140,10177,68],{"class":146},[140,10179,10038],{"class":1355},[140,10181,4416],{"class":9445},[140,10183,68],{"class":146},[140,10185,10186],{"class":1355},"good_units",[140,10188,10158],{"class":146},[140,10190,10116],{"class":1355},[140,10192,68],{"class":146},[140,10194,10186],{"class":1355},[140,10196,9590],{"class":146},[140,10198,10200,10202,10204,10206,10208,10210,10212,10214,10217,10219,10221,10223,10225],{"class":142,"line":10199},19,[140,10201,10141],{"class":1355},[140,10203,9556],{"class":9445},[140,10205,10013],{"class":1355},[140,10207,68],{"class":146},[140,10209,10038],{"class":1355},[140,10211,4416],{"class":9445},[140,10213,68],{"class":146},[140,10215,10216],{"class":1355},"target_output",[140,10218,10158],{"class":146},[140,10220,10116],{"class":1355},[140,10222,68],{"class":146},[140,10224,10216],{"class":1355},[140,10226,9590],{"class":146},[140,10228,10230,10232,10234,10236,10238,10240,10242,10244,10247,10249,10251],{"class":142,"line":10229},20,[140,10231,10141],{"class":1355},[140,10233,9556],{"class":9445},[140,10235,10013],{"class":1355},[140,10237,68],{"class":146},[140,10239,10038],{"class":1355},[140,10241,4416],{"class":9445},[140,10243,68],{"class":146},[140,10245,10246],{"class":1355},"count",[140,10248,10158],{"class":146},[140,10250,9962],{"class":515},[140,10252,9590],{"class":146},[140,10254,10256,10258,10260],{"class":142,"line":10255},21,[140,10257,5221],{"class":146},[140,10259,9433],{"class":1355},[140,10261,9590],{"class":146},[140,10263,10265],{"class":142,"line":10264},22,[140,10266,9982],{"emptyLinePlaceholder":9981},[140,10268,10270,10272,10275,10277,10279,10281,10284,10287,10289,10291,10293,10296,10298],{"class":142,"line":10269},23,[140,10271,9992],{"class":153},[140,10273,10274],{"class":1355}," oeeResults ",[140,10276,9565],{"class":146},[140,10278,9607],{"class":1355},[140,10280,68],{"class":146},[140,10282,10283],{"class":9422},"keys",[140,10285,10286],{"class":1355},"(machineData)",[140,10288,68],{"class":146},[140,10290,9623],{"class":9422},[140,10292,9426],{"class":1355},[140,10294,10295],{"class":9429},"machineName",[140,10297,9546],{"class":153},[140,10299,9436],{"class":146},[140,10301,10303,10306,10308,10310,10313,10315,10317,10319],{"class":142,"line":10302},24,[140,10304,10305],{"class":153},"    let",[140,10307,10116],{"class":1355},[140,10309,9514],{"class":146},[140,10311,10312],{"class":1355}," machineData",[140,10314,9556],{"class":9445},[140,10316,10295],{"class":1355},[140,10318,4416],{"class":9445},[140,10320,9590],{"class":146},[140,10322,10324],{"class":142,"line":10323},25,[140,10325,9982],{"emptyLinePlaceholder":9981},[140,10327,10329,10331,10334,10336,10339,10341,10344,10346,10349,10351,10354,10356,10358,10360,10363,10365],{"class":142,"line":10328},26,[140,10330,10305],{"class":153},[140,10332,10333],{"class":1355}," machineDowntime",[140,10335,9514],{"class":146},[140,10337,10338],{"class":1355}," downtimeEvents",[140,10340,68],{"class":146},[140,10342,10343],{"class":9422},"filter",[140,10345,9426],{"class":9445},[140,10347,10348],{"class":9429},"event",[140,10350,9546],{"class":153},[140,10352,10353],{"class":1355}," event",[140,10355,68],{"class":146},[140,10357,10038],{"class":1355},[140,10359,9477],{"class":146},[140,10361,10362],{"class":1355}," machineName",[140,10364,9433],{"class":9445},[140,10366,9590],{"class":146},[140,10368,10370],{"class":142,"line":10369},27,[140,10371,9982],{"emptyLinePlaceholder":9981},[140,10373,10375,10378,10381,10383,10385,10387,10390,10392],{"class":142,"line":10374},28,[140,10376,10377],{"class":153},"    function",[140,10379,10380],{"class":9422}," calculateOEE",[140,10382,9426],{"class":146},[140,10384,10013],{"class":9429},[140,10386,170],{"class":146},[140,10388,10389],{"class":9429}," downtime",[140,10391,9433],{"class":146},[140,10393,9436],{"class":146},[140,10395,10397,10400,10402,10404,10406,10408,10410,10412,10414],{"class":142,"line":10396},29,[140,10398,10399],{"class":9441},"        if",[140,10401,9446],{"class":9445},[140,10403,10013],{"class":1355},[140,10405,68],{"class":146},[140,10407,10216],{"class":1355},[140,10409,9477],{"class":146},[140,10411,9480],{"class":515},[140,10413,2917],{"class":9445},[140,10415,9207],{"class":146},[140,10417,10419,10422,10425,10428,10430,10432,10434,10437,10439,10441,10443,10446,10448,10450,10452,10455,10457,10459],{"class":142,"line":10418},30,[140,10420,10421],{"class":9441},"            return",[140,10423,10424],{"class":146}," {",[140,10426,10427],{"class":9445}," availability",[140,10429,159],{"class":146},[140,10431,9480],{"class":515},[140,10433,170],{"class":146},[140,10435,10436],{"class":9445}," performance",[140,10438,159],{"class":146},[140,10440,9480],{"class":515},[140,10442,170],{"class":146},[140,10444,10445],{"class":9445}," quality",[140,10447,159],{"class":146},[140,10449,9480],{"class":515},[140,10451,170],{"class":146},[140,10453,10454],{"class":9445}," oee",[140,10456,159],{"class":146},[140,10458,9480],{"class":515},[140,10460,10461],{"class":146}," };\n",[140,10463,10465],{"class":142,"line":10464},31,[140,10466,10467],{"class":146},"        }\n",[140,10469,10471],{"class":142,"line":10470},32,[140,10472,9982],{"emptyLinePlaceholder":9981},[140,10474,10476,10479,10482,10484,10486,10488,10491,10493,10495,10498,10500,10502,10504],{"class":142,"line":10475},33,[140,10477,10478],{"class":153},"        let",[140,10480,10481],{"class":1355}," totalDowntime",[140,10483,9514],{"class":146},[140,10485,10389],{"class":1355},[140,10487,68],{"class":146},[140,10489,10490],{"class":9422},"reduce",[140,10492,9426],{"class":9445},[140,10494,9426],{"class":146},[140,10496,10497],{"class":9429},"acc",[140,10499,170],{"class":146},[140,10501,10353],{"class":9429},[140,10503,9433],{"class":146},[140,10505,10506],{"class":153}," =>\n",[140,10508,10510,10513,10515,10517,10520,10522,10525,10528,10530,10533,10536,10539,10541,10543,10545,10548],{"class":142,"line":10509},34,[140,10511,10512],{"class":146},"            typeof",[140,10514,10353],{"class":1355},[140,10516,68],{"class":146},[140,10518,10519],{"class":1355},"downtime_duration_minutes",[140,10521,9477],{"class":146},[140,10523,10524],{"class":146}," '",[140,10526,10527],{"class":164},"number",[140,10529,9950],{"class":146},[140,10531,10532],{"class":146}," ?",[140,10534,10535],{"class":1355}," acc",[140,10537,10538],{"class":146}," +",[140,10540,10353],{"class":1355},[140,10542,68],{"class":146},[140,10544,10519],{"class":1355},[140,10546,10547],{"class":146}," :",[140,10549,10550],{"class":1355}," acc\n",[140,10552,10554,10557,10559,10561],{"class":142,"line":10553},35,[140,10555,10556],{"class":146},"            ,",[140,10558,9480],{"class":515},[140,10560,9433],{"class":9445},[140,10562,9590],{"class":146},[140,10564,10566],{"class":142,"line":10565},36,[140,10567,9982],{"emptyLinePlaceholder":9981},[140,10569,10571,10573,10575,10577,10579,10582,10585,10587,10589,10592,10595],{"class":142,"line":10570},37,[140,10572,10478],{"class":153},[140,10574,10427],{"class":1355},[140,10576,9514],{"class":146},[140,10578,9446],{"class":9445},[140,10580,10581],{"class":1355},"shiftDuration",[140,10583,10584],{"class":146}," -",[140,10586,10481],{"class":1355},[140,10588,2917],{"class":9445},[140,10590,10591],{"class":146},"\u002F",[140,10593,10594],{"class":1355}," shiftDuration",[140,10596,9590],{"class":146},[140,10598,10600,10603,10605,10608,10610,10613,10615,10617,10619,10621,10623,10626,10628,10630,10632,10634,10636],{"class":142,"line":10599},38,[140,10601,10602],{"class":1355},"        availability",[140,10604,9514],{"class":146},[140,10606,10607],{"class":1355}," Math",[140,10609,68],{"class":146},[140,10611,10612],{"class":9422},"max",[140,10614,9426],{"class":9445},[140,10616,5277],{"class":515},[140,10618,170],{"class":146},[140,10620,10607],{"class":1355},[140,10622,68],{"class":146},[140,10624,10625],{"class":9422},"min",[140,10627,9426],{"class":9445},[140,10629,334],{"class":515},[140,10631,170],{"class":146},[140,10633,10427],{"class":1355},[140,10635,9675],{"class":9445},[140,10637,9590],{"class":146},[140,10639,10641],{"class":142,"line":10640},39,[140,10642,9982],{"emptyLinePlaceholder":9981},[140,10644,10646,10648,10650,10652,10654,10656,10658,10661,10663,10665,10667,10669,10671,10674,10676,10678,10680,10682,10684],{"class":142,"line":10645},40,[140,10647,10478],{"class":153},[140,10649,10436],{"class":1355},[140,10651,9514],{"class":146},[140,10653,10116],{"class":1355},[140,10655,68],{"class":146},[140,10657,10216],{"class":1355},[140,10659,10660],{"class":146}," >",[140,10662,9480],{"class":515},[140,10664,10532],{"class":146},[140,10666,10116],{"class":1355},[140,10668,68],{"class":146},[140,10670,8999],{"class":1355},[140,10672,10673],{"class":146}," \u002F",[140,10675,10116],{"class":1355},[140,10677,68],{"class":146},[140,10679,10216],{"class":1355},[140,10681,10547],{"class":146},[140,10683,9480],{"class":515},[140,10685,9590],{"class":146},[140,10687,10689,10691,10693,10695,10697,10699,10701,10703,10705,10707,10709,10711,10713,10715,10717,10719,10721,10723,10725],{"class":142,"line":10688},41,[140,10690,10478],{"class":153},[140,10692,10445],{"class":1355},[140,10694,9514],{"class":146},[140,10696,10116],{"class":1355},[140,10698,68],{"class":146},[140,10700,8999],{"class":1355},[140,10702,10660],{"class":146},[140,10704,9480],{"class":515},[140,10706,10532],{"class":146},[140,10708,10116],{"class":1355},[140,10710,68],{"class":146},[140,10712,10186],{"class":1355},[140,10714,10673],{"class":146},[140,10716,10116],{"class":1355},[140,10718,68],{"class":146},[140,10720,8999],{"class":1355},[140,10722,10547],{"class":146},[140,10724,9480],{"class":515},[140,10726,9590],{"class":146},[140,10728,10730],{"class":142,"line":10729},42,[140,10731,9982],{"emptyLinePlaceholder":9981},[140,10733,10735,10737,10739,10741,10743,10746,10748,10750,10752],{"class":142,"line":10734},43,[140,10736,10478],{"class":153},[140,10738,10454],{"class":1355},[140,10740,9514],{"class":146},[140,10742,10427],{"class":1355},[140,10744,10745],{"class":146}," *",[140,10747,10436],{"class":1355},[140,10749,10745],{"class":146},[140,10751,10445],{"class":1355},[140,10753,9590],{"class":146},[140,10755,10757],{"class":142,"line":10756},44,[140,10758,9982],{"emptyLinePlaceholder":9981},[140,10760,10762,10765],{"class":142,"line":10761},45,[140,10763,10764],{"class":9441},"        return",[140,10766,9436],{"class":146},[140,10768,10770,10773,10775,10778,10781,10784,10786,10789,10791,10793,10796,10798,10800,10802],{"class":142,"line":10769},46,[140,10771,10772],{"class":9445},"            availability",[140,10774,159],{"class":146},[140,10776,10777],{"class":9422}," parseFloat",[140,10779,10780],{"class":9445},"((",[140,10782,10783],{"class":1355},"availability",[140,10785,10745],{"class":146},[140,10787,10788],{"class":515}," 100",[140,10790,9433],{"class":9445},[140,10792,68],{"class":146},[140,10794,10795],{"class":9422},"toFixed",[140,10797,9426],{"class":9445},[140,10799,5263],{"class":515},[140,10801,9675],{"class":9445},[140,10803,9230],{"class":146},[140,10805,10807,10810,10812,10814,10816,10819,10821,10823,10825,10827,10829,10831,10833,10835],{"class":142,"line":10806},47,[140,10808,10809],{"class":9445},"            performance",[140,10811,159],{"class":146},[140,10813,10777],{"class":9422},[140,10815,10780],{"class":9445},[140,10817,10818],{"class":1355},"performance",[140,10820,10745],{"class":146},[140,10822,10788],{"class":515},[140,10824,9433],{"class":9445},[140,10826,68],{"class":146},[140,10828,10795],{"class":9422},[140,10830,9426],{"class":9445},[140,10832,5263],{"class":515},[140,10834,9675],{"class":9445},[140,10836,9230],{"class":146},[140,10838,10840,10843,10845,10847,10849,10852,10854,10856,10858,10860,10862,10864,10866,10868],{"class":142,"line":10839},48,[140,10841,10842],{"class":9445},"            quality",[140,10844,159],{"class":146},[140,10846,10777],{"class":9422},[140,10848,10780],{"class":9445},[140,10850,10851],{"class":1355},"quality",[140,10853,10745],{"class":146},[140,10855,10788],{"class":515},[140,10857,9433],{"class":9445},[140,10859,68],{"class":146},[140,10861,10795],{"class":9422},[140,10863,9426],{"class":9445},[140,10865,5263],{"class":515},[140,10867,9675],{"class":9445},[140,10869,9230],{"class":146},[140,10871,10873,10876,10878,10880,10882,10885,10887,10889,10891,10893,10895,10897,10899],{"class":142,"line":10872},49,[140,10874,10875],{"class":9445},"            oee",[140,10877,159],{"class":146},[140,10879,10777],{"class":9422},[140,10881,10780],{"class":9445},[140,10883,10884],{"class":1355},"oee",[140,10886,10745],{"class":146},[140,10888,10788],{"class":515},[140,10890,9433],{"class":9445},[140,10892,68],{"class":146},[140,10894,10795],{"class":9422},[140,10896,9426],{"class":9445},[140,10898,5263],{"class":515},[140,10900,9319],{"class":9445},[140,10902,10904],{"class":142,"line":10903},50,[140,10905,10129],{"class":146},[140,10907,10909],{"class":142,"line":10908},51,[140,10910,10135],{"class":146},[140,10912,10914],{"class":142,"line":10913},52,[140,10915,9982],{"emptyLinePlaceholder":9981},[140,10917,10919,10921,10924,10926,10928,10930,10932,10934,10936,10938],{"class":142,"line":10918},53,[140,10920,10305],{"class":153},[140,10922,10923],{"class":1355}," metrics",[140,10925,9514],{"class":146},[140,10927,10380],{"class":9422},[140,10929,9426],{"class":9445},[140,10931,10013],{"class":1355},[140,10933,170],{"class":146},[140,10935,10333],{"class":1355},[140,10937,9433],{"class":9445},[140,10939,9590],{"class":146},[140,10941,10943],{"class":142,"line":10942},54,[140,10944,9982],{"emptyLinePlaceholder":9981},[140,10946,10948,10951],{"class":142,"line":10947},55,[140,10949,10950],{"class":9441},"    return",[140,10952,9436],{"class":146},[140,10954,10956,10959,10961,10963],{"class":142,"line":10955},56,[140,10957,10958],{"class":9445},"        machine_name",[140,10960,159],{"class":146},[140,10962,10362],{"class":1355},[140,10964,9230],{"class":146},[140,10966,10968,10971,10973,10975,10977,10979],{"class":142,"line":10967},57,[140,10969,10970],{"class":9445},"        area",[140,10972,159],{"class":146},[140,10974,10116],{"class":1355},[140,10976,68],{"class":146},[140,10978,10121],{"class":1355},[140,10980,9230],{"class":146},[140,10982,10984,10987,10989,10991,10993],{"class":142,"line":10983},58,[140,10985,10986],{"class":9445},"        oee",[140,10988,159],{"class":146},[140,10990,10923],{"class":1355},[140,10992,68],{"class":146},[140,10994,10995],{"class":1355},"oee\n",[140,10997,10999],{"class":142,"line":10998},59,[140,11000,11001],{"class":146},"    };\n",[140,11003,11005,11007,11009],{"class":142,"line":11004},60,[140,11006,5221],{"class":146},[140,11008,9433],{"class":1355},[140,11010,9590],{"class":146},[140,11012,11014],{"class":142,"line":11013},61,[140,11015,9982],{"emptyLinePlaceholder":9981},[140,11017,11019],{"class":142,"line":11018},62,[140,11020,11021],{"class":9975},"\u002F\u002F Filter only machines with OEE \u003C 85\n",[140,11023,11025,11027,11029,11031,11033,11036,11038,11040,11042,11045,11047,11050,11052,11055,11058,11061,11063],{"class":142,"line":11024},63,[140,11026,1299],{"class":1355},[140,11028,68],{"class":146},[140,11030,9692],{"class":1355},[140,11032,9565],{"class":146},[140,11034,11035],{"class":1355}," oeeResults",[140,11037,68],{"class":146},[140,11039,10343],{"class":9422},[140,11041,9426],{"class":1355},[140,11043,11044],{"class":9429},"machine",[140,11046,9546],{"class":153},[140,11048,11049],{"class":1355}," machine",[140,11051,68],{"class":146},[140,11053,11054],{"class":1355},"oee ",[140,11056,11057],{"class":146},"\u003C",[140,11059,11060],{"class":515}," 85",[140,11062,9433],{"class":1355},[140,11064,9590],{"class":146},[140,11066,11068],{"class":142,"line":11067},64,[140,11069,9982],{"emptyLinePlaceholder":9981},[140,11071,11073,11075,11077],{"class":142,"line":11072},65,[140,11074,9716],{"class":9441},[140,11076,9719],{"class":1355},[140,11078,9590],{"class":146},[12,11080,11081,11085],{},[8610,11082],{"alt":11083,"dataZoomable":135,"src":11084},"Flow that prepares the Recent Downtime, Downtime Summary, and Top Underperforming Machines (OEE-wise)\n","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fdowntime-events-summery-oee-machine-wise.png",[8598,11086,11087],{},"Flow that prepares the Recent Downtime, Downtime Summary, and Top Underperforming Machines (OEE-wise)",[8624,11089,11091],{"id":11090},"oee-trend-for-the-last-30-days","OEE Trend for the Last 30 Days",[12,11093,11094],{},"Now, to calculate the OEE for the last 30 days, we need the complete production and downtime data for that period. However, the current SQLite flow retrieves only the last 12 hours. Therefore, we need another SQLite flow to retrieve data from the last 30 days.",[11096,11097,11099],"h5",{"id":11098},"retrieving-production-and-downtime-data-for-the-last-30-days","Retrieving Production and Downtime Data for the Last 30 Days",[42,11101,11102,11116,11121],{},[45,11103,11104,11105,11108,11109,9753,11111,11113,11114,68],{},"Copy the existing ",[86,11106,11107],{},"SQLite flow"," from the ",[86,11110,8595],{},[86,11112,8648],{}," that sets the retrieved downtime result to ",[137,11115,8806],{},[45,11117,8632,11118,11120],{},[86,11119,8648],{}," that sets the parameters for the SQL query, keep only the element setting the line parameter, and remove the rest.",[45,11122,11123],{},"Modify the first SQLite node's SQL query to the following:",[130,11125,11127],{"className":8776,"code":11126,"language":1317,"meta":135,"style":135},"SELECT\n    timestamp AS timestamp,\n    machine_name AS machine_name,\n    area AS area,\n    line AS line,\n    total_produced_units AS total_produced_units,\n    good_units AS good_units,\n    defect_units AS defect_units,\n    target_output AS target_output\nFROM ProductionData\nWHERE line = $line\n  AND timestamp >= datetime('now', '-30 days');\n",[137,11128,11129,11134,11139,11144,11149,11154,11159,11164,11169,11174,11178,11183],{"__ignoreMap":135},[140,11130,11131],{"class":142,"line":143},[140,11132,11133],{},"SELECT\n",[140,11135,11136],{"class":142,"line":8787},[140,11137,11138],{},"    timestamp AS timestamp,\n",[140,11140,11141],{"class":142,"line":8793},[140,11142,11143],{},"    machine_name AS machine_name,\n",[140,11145,11146],{"class":142,"line":9233},[140,11147,11148],{},"    area AS area,\n",[140,11150,11151],{"class":142,"line":9257},[140,11152,11153],{},"    line AS line,\n",[140,11155,11156],{"class":142,"line":9263},[140,11157,11158],{},"    total_produced_units AS total_produced_units,\n",[140,11160,11161],{"class":142,"line":9269},[140,11162,11163],{},"    good_units AS good_units,\n",[140,11165,11166],{"class":142,"line":9290},[140,11167,11168],{},"    defect_units AS defect_units,\n",[140,11170,11171],{"class":142,"line":9322},[140,11172,11173],{},"    target_output AS target_output\n",[140,11175,11176],{"class":142,"line":9328},[140,11177,8790],{},[140,11179,11180],{"class":142,"line":9659},[140,11181,11182],{},"WHERE line = $line\n",[140,11184,11185],{"class":142,"line":9670},[140,11186,11187],{},"  AND timestamp >= datetime('now', '-30 days');\n",[42,11189,11190],{"start":9233},[45,11191,11192],{},"Modify the second SQLite node's SQL query to the following:",[130,11194,11196],{"className":8776,"code":11195,"language":1317,"meta":135,"style":135},"SELECT\n    timestamp AS timestamp,\n    machine_name AS machine_name,\n    downtime_start AS downtime_start,\n    downtime_duration_minutes AS downtime_duration_minutes,\n    downtime_reason AS downtime_reason\nFROM DowntimeData\nWHERE\n    timestamp BETWEEN $startTime AND $endTime\n    AND line = $line;\n",[137,11197,11198,11202,11206,11210,11215,11220,11225,11229,11234,11239],{"__ignoreMap":135},[140,11199,11200],{"class":142,"line":143},[140,11201,11133],{},[140,11203,11204],{"class":142,"line":8787},[140,11205,11138],{},[140,11207,11208],{"class":142,"line":8793},[140,11209,11143],{},[140,11211,11212],{"class":142,"line":9233},[140,11213,11214],{},"    downtime_start AS downtime_start,\n",[140,11216,11217],{"class":142,"line":9257},[140,11218,11219],{},"    downtime_duration_minutes AS downtime_duration_minutes,\n",[140,11221,11222],{"class":142,"line":9263},[140,11223,11224],{},"    downtime_reason AS downtime_reason\n",[140,11226,11227],{"class":142,"line":9269},[140,11228,8832],{},[140,11230,11231],{"class":142,"line":9290},[140,11232,11233],{},"WHERE\n",[140,11235,11236],{"class":142,"line":9322},[140,11237,11238],{},"    timestamp BETWEEN $startTime AND $endTime\n",[140,11240,11241],{"class":142,"line":9328},[140,11242,11243],{},"    AND line = $line;\n",[11096,11245,11247],{"id":11246},"calculating-last-30d-days-oee","Calculating last 30d days OEE",[42,11249,11250,11258,11264],{},[45,11251,8873,11252,11254,11255,11257],{},[86,11253,9336],{}," onto the canvas and connect it to the last ",[86,11256,8648],{}," of the SQLite flow.",[45,11259,8873,11260,11254,11262,68],{},[86,11261,9125],{},[86,11263,9336],{},[45,11265,8873,11266,11269,11270,159],{},[86,11267,11268],{},"Function node"," onto the canvas, add the following JavaScript, and connect the Function node to the ",[86,11271,9125],{},[130,11273,11275],{"className":9411,"code":11274,"language":9413,"meta":135,"style":135},"let productionData = msg.production_data;\nlet downtimeData = msg.downtime_data;\nlet line = flow.get('line');\nlet shiftDuration = flow.get('shiftDuration24h') * 3600;\n\nlet groupedData = {};\n\nproductionData.forEach(entry => {\n    if (entry.line === line) {\n        let date = entry.timestamp.split(\" \")[0];\n\n        if (!groupedData[date]) {\n            groupedData[date] = {\n                totalShiftDuration: shiftDuration,\n                totalGoodUnits: 0,\n                totalProducedUnits: 0,\n                totalDowntimeSeconds: 0,\n                totalCycleTime: 0,\n                cycleCount: 0,\n                totalTargetOutput: 0,\n                timestamp: entry.timestamp\n            };\n        }\n\n        groupedData[date].totalGoodUnits += entry.good_units;\n        groupedData[date].totalProducedUnits += entry.total_produced_units;\n        groupedData[date].totalCycleTime += entry.cycle_time;\n        groupedData[date].cycleCount++;\n        groupedData[date].totalTargetOutput += entry.target_output;\n    }\n});\n\ndowntimeData.forEach(downtime => {\n    if (downtime.line === line) {\n        let date = downtime.timestamp.split(\" \")[0];\n        if (groupedData[date]) {\n            groupedData[date].totalDowntimeSeconds += downtime.downtime_duration_minutes * 60;\n        }\n    }\n});\n\nlet oeeResults = Object.entries(groupedData).map(([date, data]) => {\n    let avgCycleTime = data.cycleCount > 0 ? data.totalCycleTime \u002F data.cycleCount : 0;\n    let availableTime = data.totalShiftDuration - data.totalDowntimeSeconds;\n    let availability = availableTime \u002F data.totalShiftDuration;\n    let performance = data.totalTargetOutput > 0 ? data.totalProducedUnits \u002F data.totalTargetOutput : 0;\n    let quality = data.totalProducedUnits > 0 ? data.totalGoodUnits \u002F data.totalProducedUnits : 0;\n    let oee = (availability * performance * quality * 100).toFixed(2);\n\n    return { date, availability, performance, quality, oee, timestamp: data.timestamp };\n});\n\n\u002F\u002F Sort data by timestamp (oldest to most recent)\noeeResults.sort((a, b) => new Date(a.timestamp).valueOf() - new Date(b.timestamp).valueOf());\nmsg.payload = oeeResults;\nreturn msg;\n",[137,11276,11277,11293,11310,11338,11370,11374,11385,11389,11406,11427,11463,11467,11486,11501,11512,11523,11534,11545,11556,11567,11578,11592,11597,11601,11605,11631,11656,11682,11700,11725,11729,11737,11741,11758,11778,11810,11826,11855,11859,11863,11871,11875,11912,11953,11979,11999,12039,12079,12117,12121,12160,12168,12172,12177,12247,12261],{"__ignoreMap":135},[140,11278,11279,11281,11283,11285,11287,11289,11291],{"class":142,"line":143},[140,11280,9992],{"class":153},[140,11282,9901],{"class":1355},[140,11284,9565],{"class":146},[140,11286,9719],{"class":1355},[140,11288,68],{"class":146},[140,11290,8901],{"class":1355},[140,11292,9590],{"class":146},[140,11294,11295,11297,11300,11302,11304,11306,11308],{"class":142,"line":8787},[140,11296,9992],{"class":153},[140,11298,11299],{"class":1355}," downtimeData ",[140,11301,9565],{"class":146},[140,11303,9719],{"class":1355},[140,11305,68],{"class":146},[140,11307,8909],{"class":1355},[140,11309,9590],{"class":146},[140,11311,11312,11314,11317,11319,11322,11324,11326,11328,11330,11332,11334,11336],{"class":142,"line":8793},[140,11313,9992],{"class":153},[140,11315,11316],{"class":1355}," line ",[140,11318,9565],{"class":146},[140,11320,11321],{"class":1355}," flow",[140,11323,68],{"class":146},[140,11325,9945],{"class":9422},[140,11327,9426],{"class":1355},[140,11329,9950],{"class":146},[140,11331,142],{"class":164},[140,11333,9950],{"class":146},[140,11335,9433],{"class":1355},[140,11337,9590],{"class":146},[140,11339,11340,11342,11344,11346,11348,11350,11352,11354,11356,11359,11361,11363,11365,11368],{"class":142,"line":9233},[140,11341,9992],{"class":153},[140,11343,9935],{"class":1355},[140,11345,9565],{"class":146},[140,11347,11321],{"class":1355},[140,11349,68],{"class":146},[140,11351,9945],{"class":9422},[140,11353,9426],{"class":1355},[140,11355,9950],{"class":146},[140,11357,11358],{"class":164},"shiftDuration24h",[140,11360,9950],{"class":146},[140,11362,2917],{"class":1355},[140,11364,9967],{"class":146},[140,11366,11367],{"class":515}," 3600",[140,11369,9590],{"class":146},[140,11371,11372],{"class":142,"line":9257},[140,11373,9982],{"emptyLinePlaceholder":9981},[140,11375,11376,11378,11381,11383],{"class":142,"line":9263},[140,11377,9992],{"class":153},[140,11379,11380],{"class":1355}," groupedData ",[140,11382,9565],{"class":146},[140,11384,9517],{"class":146},[140,11386,11387],{"class":142,"line":9269},[140,11388,9982],{"emptyLinePlaceholder":9981},[140,11390,11391,11393,11395,11397,11399,11402,11404],{"class":142,"line":9290},[140,11392,10004],{"class":1355},[140,11394,68],{"class":146},[140,11396,9527],{"class":9422},[140,11398,9426],{"class":1355},[140,11400,11401],{"class":9429},"entry",[140,11403,9546],{"class":153},[140,11405,9436],{"class":146},[140,11407,11408,11410,11412,11414,11416,11418,11420,11423,11425],{"class":142,"line":9322},[140,11409,10022],{"class":9441},[140,11411,9446],{"class":9445},[140,11413,11401],{"class":1355},[140,11415,68],{"class":146},[140,11417,142],{"class":1355},[140,11419,9477],{"class":146},[140,11421,11422],{"class":1355}," line",[140,11424,2917],{"class":9445},[140,11426,9207],{"class":146},[140,11428,11429,11431,11434,11436,11439,11441,11444,11446,11448,11450,11452,11454,11457,11459,11461],{"class":142,"line":9328},[140,11430,10478],{"class":153},[140,11432,11433],{"class":1355}," date",[140,11435,9514],{"class":146},[140,11437,11438],{"class":1355}," entry",[140,11440,68],{"class":146},[140,11442,11443],{"class":1355},"timestamp",[140,11445,68],{"class":146},[140,11447,5407],{"class":9422},[140,11449,9426],{"class":9445},[140,11451,150],{"class":146},[140,11453,9222],{"class":146},[140,11455,11456],{"class":9445},")[",[140,11458,5277],{"class":515},[140,11460,4416],{"class":9445},[140,11462,9590],{"class":146},[140,11464,11465],{"class":142,"line":9659},[140,11466,9982],{"emptyLinePlaceholder":9981},[140,11468,11469,11471,11473,11475,11478,11480,11482,11484],{"class":142,"line":9670},[140,11470,10399],{"class":9441},[140,11472,9446],{"class":9445},[140,11474,9449],{"class":146},[140,11476,11477],{"class":1355},"groupedData",[140,11479,9556],{"class":9445},[140,11481,1723],{"class":1355},[140,11483,10041],{"class":9445},[140,11485,9207],{"class":146},[140,11487,11488,11491,11493,11495,11497,11499],{"class":142,"line":9680},[140,11489,11490],{"class":1355},"            groupedData",[140,11492,9556],{"class":9445},[140,11494,1723],{"class":1355},[140,11496,9562],{"class":9445},[140,11498,9565],{"class":146},[140,11500,9436],{"class":146},[140,11502,11503,11506,11508,11510],{"class":142,"line":9097},[140,11504,11505],{"class":9445},"                totalShiftDuration",[140,11507,159],{"class":146},[140,11509,10594],{"class":1355},[140,11511,9230],{"class":146},[140,11513,11514,11517,11519,11521],{"class":142,"line":9713},[140,11515,11516],{"class":9445},"                totalGoodUnits",[140,11518,159],{"class":146},[140,11520,9480],{"class":515},[140,11522,9230],{"class":146},[140,11524,11525,11528,11530,11532],{"class":142,"line":10132},[140,11526,11527],{"class":9445},"                totalProducedUnits",[140,11529,159],{"class":146},[140,11531,9480],{"class":515},[140,11533,9230],{"class":146},[140,11535,11536,11539,11541,11543],{"class":142,"line":10138},[140,11537,11538],{"class":9445},"                totalDowntimeSeconds",[140,11540,159],{"class":146},[140,11542,9480],{"class":515},[140,11544,9230],{"class":146},[140,11546,11547,11550,11552,11554],{"class":142,"line":10169},[140,11548,11549],{"class":9445},"                totalCycleTime",[140,11551,159],{"class":146},[140,11553,9480],{"class":515},[140,11555,9230],{"class":146},[140,11557,11558,11561,11563,11565],{"class":142,"line":10199},[140,11559,11560],{"class":9445},"                cycleCount",[140,11562,159],{"class":146},[140,11564,9480],{"class":515},[140,11566,9230],{"class":146},[140,11568,11569,11572,11574,11576],{"class":142,"line":10229},[140,11570,11571],{"class":9445},"                totalTargetOutput",[140,11573,159],{"class":146},[140,11575,9480],{"class":515},[140,11577,9230],{"class":146},[140,11579,11580,11583,11585,11587,11589],{"class":142,"line":10255},[140,11581,11582],{"class":9445},"                timestamp",[140,11584,159],{"class":146},[140,11586,11438],{"class":1355},[140,11588,68],{"class":146},[140,11590,11591],{"class":1355},"timestamp\n",[140,11593,11594],{"class":142,"line":10264},[140,11595,11596],{"class":146},"            };\n",[140,11598,11599],{"class":142,"line":10269},[140,11600,10467],{"class":146},[140,11602,11603],{"class":142,"line":10302},[140,11604,9982],{"emptyLinePlaceholder":9981},[140,11606,11607,11610,11612,11614,11616,11618,11621,11623,11625,11627,11629],{"class":142,"line":10323},[140,11608,11609],{"class":1355},"        groupedData",[140,11611,9556],{"class":9445},[140,11613,1723],{"class":1355},[140,11615,4416],{"class":9445},[140,11617,68],{"class":146},[140,11619,11620],{"class":1355},"totalGoodUnits",[140,11622,10158],{"class":146},[140,11624,11438],{"class":1355},[140,11626,68],{"class":146},[140,11628,10186],{"class":1355},[140,11630,9590],{"class":146},[140,11632,11633,11635,11637,11639,11641,11643,11646,11648,11650,11652,11654],{"class":142,"line":10328},[140,11634,11609],{"class":1355},[140,11636,9556],{"class":9445},[140,11638,1723],{"class":1355},[140,11640,4416],{"class":9445},[140,11642,68],{"class":146},[140,11644,11645],{"class":1355},"totalProducedUnits",[140,11647,10158],{"class":146},[140,11649,11438],{"class":1355},[140,11651,68],{"class":146},[140,11653,8999],{"class":1355},[140,11655,9590],{"class":146},[140,11657,11658,11660,11662,11664,11666,11668,11671,11673,11675,11677,11680],{"class":142,"line":10369},[140,11659,11609],{"class":1355},[140,11661,9556],{"class":9445},[140,11663,1723],{"class":1355},[140,11665,4416],{"class":9445},[140,11667,68],{"class":146},[140,11669,11670],{"class":1355},"totalCycleTime",[140,11672,10158],{"class":146},[140,11674,11438],{"class":1355},[140,11676,68],{"class":146},[140,11678,11679],{"class":1355},"cycle_time",[140,11681,9590],{"class":146},[140,11683,11684,11686,11688,11690,11692,11694,11697],{"class":142,"line":10374},[140,11685,11609],{"class":1355},[140,11687,9556],{"class":9445},[140,11689,1723],{"class":1355},[140,11691,4416],{"class":9445},[140,11693,68],{"class":146},[140,11695,11696],{"class":1355},"cycleCount",[140,11698,11699],{"class":146},"++;\n",[140,11701,11702,11704,11706,11708,11710,11712,11715,11717,11719,11721,11723],{"class":142,"line":10396},[140,11703,11609],{"class":1355},[140,11705,9556],{"class":9445},[140,11707,1723],{"class":1355},[140,11709,4416],{"class":9445},[140,11711,68],{"class":146},[140,11713,11714],{"class":1355},"totalTargetOutput",[140,11716,10158],{"class":146},[140,11718,11438],{"class":1355},[140,11720,68],{"class":146},[140,11722,10216],{"class":1355},[140,11724,9590],{"class":146},[140,11726,11727],{"class":142,"line":10418},[140,11728,10135],{"class":146},[140,11730,11731,11733,11735],{"class":142,"line":10464},[140,11732,5221],{"class":146},[140,11734,9433],{"class":1355},[140,11736,9590],{"class":146},[140,11738,11739],{"class":142,"line":10470},[140,11740,9982],{"emptyLinePlaceholder":9981},[140,11742,11743,11745,11747,11749,11751,11754,11756],{"class":142,"line":10475},[140,11744,9430],{"class":1355},[140,11746,68],{"class":146},[140,11748,9527],{"class":9422},[140,11750,9426],{"class":1355},[140,11752,11753],{"class":9429},"downtime",[140,11755,9546],{"class":153},[140,11757,9436],{"class":146},[140,11759,11760,11762,11764,11766,11768,11770,11772,11774,11776],{"class":142,"line":10509},[140,11761,10022],{"class":9441},[140,11763,9446],{"class":9445},[140,11765,11753],{"class":1355},[140,11767,68],{"class":146},[140,11769,142],{"class":1355},[140,11771,9477],{"class":146},[140,11773,11422],{"class":1355},[140,11775,2917],{"class":9445},[140,11777,9207],{"class":146},[140,11779,11780,11782,11784,11786,11788,11790,11792,11794,11796,11798,11800,11802,11804,11806,11808],{"class":142,"line":10553},[140,11781,10478],{"class":153},[140,11783,11433],{"class":1355},[140,11785,9514],{"class":146},[140,11787,10389],{"class":1355},[140,11789,68],{"class":146},[140,11791,11443],{"class":1355},[140,11793,68],{"class":146},[140,11795,5407],{"class":9422},[140,11797,9426],{"class":9445},[140,11799,150],{"class":146},[140,11801,9222],{"class":146},[140,11803,11456],{"class":9445},[140,11805,5277],{"class":515},[140,11807,4416],{"class":9445},[140,11809,9590],{"class":146},[140,11811,11812,11814,11816,11818,11820,11822,11824],{"class":142,"line":10565},[140,11813,10399],{"class":9441},[140,11815,9446],{"class":9445},[140,11817,11477],{"class":1355},[140,11819,9556],{"class":9445},[140,11821,1723],{"class":1355},[140,11823,10041],{"class":9445},[140,11825,9207],{"class":146},[140,11827,11828,11830,11832,11834,11836,11838,11841,11843,11845,11847,11849,11851,11853],{"class":142,"line":10570},[140,11829,11490],{"class":1355},[140,11831,9556],{"class":9445},[140,11833,1723],{"class":1355},[140,11835,4416],{"class":9445},[140,11837,68],{"class":146},[140,11839,11840],{"class":1355},"totalDowntimeSeconds",[140,11842,10158],{"class":146},[140,11844,10389],{"class":1355},[140,11846,68],{"class":146},[140,11848,10519],{"class":1355},[140,11850,10745],{"class":146},[140,11852,9970],{"class":515},[140,11854,9590],{"class":146},[140,11856,11857],{"class":142,"line":10599},[140,11858,10467],{"class":146},[140,11860,11861],{"class":142,"line":10640},[140,11862,10135],{"class":146},[140,11864,11865,11867,11869],{"class":142,"line":10645},[140,11866,5221],{"class":146},[140,11868,9433],{"class":1355},[140,11870,9590],{"class":146},[140,11872,11873],{"class":142,"line":10688},[140,11874,9982],{"emptyLinePlaceholder":9981},[140,11876,11877,11879,11881,11883,11885,11887,11889,11892,11894,11896,11898,11900,11902,11904,11906,11908,11910],{"class":142,"line":10729},[140,11878,9992],{"class":153},[140,11880,10274],{"class":1355},[140,11882,9565],{"class":146},[140,11884,9607],{"class":1355},[140,11886,68],{"class":146},[140,11888,9612],{"class":9422},[140,11890,11891],{"class":1355},"(groupedData)",[140,11893,68],{"class":146},[140,11895,9623],{"class":9422},[140,11897,9426],{"class":1355},[140,11899,9628],{"class":146},[140,11901,1723],{"class":9429},[140,11903,170],{"class":146},[140,11905,10116],{"class":9429},[140,11907,9638],{"class":146},[140,11909,9546],{"class":153},[140,11911,9436],{"class":146},[140,11913,11914,11916,11919,11921,11923,11925,11927,11929,11931,11933,11935,11937,11939,11941,11943,11945,11947,11949,11951],{"class":142,"line":10734},[140,11915,10305],{"class":153},[140,11917,11918],{"class":1355}," avgCycleTime",[140,11920,9514],{"class":146},[140,11922,10116],{"class":1355},[140,11924,68],{"class":146},[140,11926,11696],{"class":1355},[140,11928,10660],{"class":146},[140,11930,9480],{"class":515},[140,11932,10532],{"class":146},[140,11934,10116],{"class":1355},[140,11936,68],{"class":146},[140,11938,11670],{"class":1355},[140,11940,10673],{"class":146},[140,11942,10116],{"class":1355},[140,11944,68],{"class":146},[140,11946,11696],{"class":1355},[140,11948,10547],{"class":146},[140,11950,9480],{"class":515},[140,11952,9590],{"class":146},[140,11954,11955,11957,11960,11962,11964,11966,11969,11971,11973,11975,11977],{"class":142,"line":10756},[140,11956,10305],{"class":153},[140,11958,11959],{"class":1355}," availableTime",[140,11961,9514],{"class":146},[140,11963,10116],{"class":1355},[140,11965,68],{"class":146},[140,11967,11968],{"class":1355},"totalShiftDuration",[140,11970,10584],{"class":146},[140,11972,10116],{"class":1355},[140,11974,68],{"class":146},[140,11976,11840],{"class":1355},[140,11978,9590],{"class":146},[140,11980,11981,11983,11985,11987,11989,11991,11993,11995,11997],{"class":142,"line":10761},[140,11982,10305],{"class":153},[140,11984,10427],{"class":1355},[140,11986,9514],{"class":146},[140,11988,11959],{"class":1355},[140,11990,10673],{"class":146},[140,11992,10116],{"class":1355},[140,11994,68],{"class":146},[140,11996,11968],{"class":1355},[140,11998,9590],{"class":146},[140,12000,12001,12003,12005,12007,12009,12011,12013,12015,12017,12019,12021,12023,12025,12027,12029,12031,12033,12035,12037],{"class":142,"line":10769},[140,12002,10305],{"class":153},[140,12004,10436],{"class":1355},[140,12006,9514],{"class":146},[140,12008,10116],{"class":1355},[140,12010,68],{"class":146},[140,12012,11714],{"class":1355},[140,12014,10660],{"class":146},[140,12016,9480],{"class":515},[140,12018,10532],{"class":146},[140,12020,10116],{"class":1355},[140,12022,68],{"class":146},[140,12024,11645],{"class":1355},[140,12026,10673],{"class":146},[140,12028,10116],{"class":1355},[140,12030,68],{"class":146},[140,12032,11714],{"class":1355},[140,12034,10547],{"class":146},[140,12036,9480],{"class":515},[140,12038,9590],{"class":146},[140,12040,12041,12043,12045,12047,12049,12051,12053,12055,12057,12059,12061,12063,12065,12067,12069,12071,12073,12075,12077],{"class":142,"line":10806},[140,12042,10305],{"class":153},[140,12044,10445],{"class":1355},[140,12046,9514],{"class":146},[140,12048,10116],{"class":1355},[140,12050,68],{"class":146},[140,12052,11645],{"class":1355},[140,12054,10660],{"class":146},[140,12056,9480],{"class":515},[140,12058,10532],{"class":146},[140,12060,10116],{"class":1355},[140,12062,68],{"class":146},[140,12064,11620],{"class":1355},[140,12066,10673],{"class":146},[140,12068,10116],{"class":1355},[140,12070,68],{"class":146},[140,12072,11645],{"class":1355},[140,12074,10547],{"class":146},[140,12076,9480],{"class":515},[140,12078,9590],{"class":146},[140,12080,12081,12083,12085,12087,12089,12091,12093,12095,12097,12099,12101,12103,12105,12107,12109,12111,12113,12115],{"class":142,"line":10839},[140,12082,10305],{"class":153},[140,12084,10454],{"class":1355},[140,12086,9514],{"class":146},[140,12088,9446],{"class":9445},[140,12090,10783],{"class":1355},[140,12092,10745],{"class":146},[140,12094,10436],{"class":1355},[140,12096,10745],{"class":146},[140,12098,10445],{"class":1355},[140,12100,10745],{"class":146},[140,12102,10788],{"class":515},[140,12104,9433],{"class":9445},[140,12106,68],{"class":146},[140,12108,10795],{"class":9422},[140,12110,9426],{"class":9445},[140,12112,5263],{"class":515},[140,12114,9433],{"class":9445},[140,12116,9590],{"class":146},[140,12118,12119],{"class":142,"line":10872},[140,12120,9982],{"emptyLinePlaceholder":9981},[140,12122,12123,12125,12127,12129,12131,12133,12135,12137,12139,12141,12143,12145,12147,12150,12152,12154,12156,12158],{"class":142,"line":10903},[140,12124,10950],{"class":9441},[140,12126,10424],{"class":146},[140,12128,11433],{"class":1355},[140,12130,170],{"class":146},[140,12132,10427],{"class":1355},[140,12134,170],{"class":146},[140,12136,10436],{"class":1355},[140,12138,170],{"class":146},[140,12140,10445],{"class":1355},[140,12142,170],{"class":146},[140,12144,10454],{"class":1355},[140,12146,170],{"class":146},[140,12148,12149],{"class":9445}," timestamp",[140,12151,159],{"class":146},[140,12153,10116],{"class":1355},[140,12155,68],{"class":146},[140,12157,11443],{"class":1355},[140,12159,10461],{"class":146},[140,12161,12162,12164,12166],{"class":142,"line":10908},[140,12163,5221],{"class":146},[140,12165,9433],{"class":1355},[140,12167,9590],{"class":146},[140,12169,12170],{"class":142,"line":10913},[140,12171,9982],{"emptyLinePlaceholder":9981},[140,12173,12174],{"class":142,"line":10918},[140,12175,12176],{"class":9975},"\u002F\u002F Sort data by timestamp (oldest to most recent)\n",[140,12178,12179,12182,12184,12187,12189,12191,12193,12195,12198,12200,12202,12205,12208,12211,12213,12216,12218,12221,12224,12227,12229,12231,12234,12236,12238,12240,12242,12245],{"class":142,"line":10942},[140,12180,12181],{"class":1355},"oeeResults",[140,12183,68],{"class":146},[140,12185,12186],{"class":9422},"sort",[140,12188,9426],{"class":1355},[140,12190,9426],{"class":146},[140,12192,16],{"class":9429},[140,12194,170],{"class":146},[140,12196,12197],{"class":9429}," b",[140,12199,9433],{"class":146},[140,12201,9546],{"class":153},[140,12203,12204],{"class":146}," new",[140,12206,12207],{"class":9422}," Date",[140,12209,12210],{"class":1355},"(a",[140,12212,68],{"class":146},[140,12214,12215],{"class":1355},"timestamp)",[140,12217,68],{"class":146},[140,12219,12220],{"class":9422},"valueOf",[140,12222,12223],{"class":1355},"() ",[140,12225,12226],{"class":146},"-",[140,12228,12204],{"class":146},[140,12230,12207],{"class":9422},[140,12232,12233],{"class":1355},"(b",[140,12235,68],{"class":146},[140,12237,12215],{"class":1355},[140,12239,68],{"class":146},[140,12241,12220],{"class":9422},[140,12243,12244],{"class":1355},"())",[140,12246,9590],{"class":146},[140,12248,12249,12251,12253,12255,12257,12259],{"class":142,"line":10947},[140,12250,1299],{"class":1355},[140,12252,68],{"class":146},[140,12254,9692],{"class":1355},[140,12256,9565],{"class":146},[140,12258,11035],{"class":1355},[140,12260,9590],{"class":146},[140,12262,12263,12265,12267],{"class":142,"line":10955},[140,12264,9716],{"class":9441},[140,12266,9719],{"class":1355},[140,12268,9590],{"class":146},[42,12270,12271,12281,12287],{"start":9233},[45,12272,8873,12273,12275,12276,8658,12278,68],{},[86,12274,8648],{}," onto the canvas and set ",[137,12277,8806],{},[137,12279,12280],{},"msg.oeeTrend",[45,12282,8873,12283,8877,12285,68],{},[86,12284,9336],{},[86,12286,8648],{},[45,12288,9750,12289,9753,12291,12293],{},[86,12290,9336],{},[86,12292,9125],{}," that was added earlier to receive all the calculated metrics for visualization.",[12,12295,12296,12300],{},[8610,12297],{"alt":12298,"dataZoomable":135,"src":12299},"Flows that calculate the OEE for each day over the last 30 days","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-trend.png",[8598,12301,12302],{},"Flows that calculate the OEE for each day over the last 30 days.",[73,12304,12306],{"id":12305},"building-the-oee-dashboard","Building the OEE Dashboard",[12,12308,12309],{},"Now that the key OEE metrics have been calculated and detailed insights into production performance have been gathered, it is time to bring everything together in a visually intuitive and interactive dashboard. The OEE dashboard will provide real-time visibility into availability, performance, and quality while also displaying recent downtime events, downtime summaries, underperforming machines, and historical OEE trends.",[12,12311,12312],{},"Using FlowFuse Dashboard (Node-RED Dashboard 2.0), a clean and efficient interface will be designed, allowing operators and decision-makers to monitor production efficiency at a glance.",[42,12314,12315,12326,12329,12376,12387,12401,12414,12441,12458,12492,12500,12520,12525,12558,12562],{},[45,12316,12317,12318,12320,12321],{},"Drag a Switch node onto the canvas, set the property to ",[137,12319,9162],{},", and add the condition:",[81,12322,12323],{},[45,12324,12325],{},"\"Is not null\".",[45,12327,12328],{},"Connect it to the Link-In node that receives calculated metrics.",[45,12330,12331,12332,8658,12334,12336,12337],{},"Drag a Change node, set ",[137,12333,9162],{},[137,12335,8806],{},", and connect it to a Gauge widget.",[81,12338,12339,12344,12358],{},[45,12340,12341,12342,68],{},"Create a new Group on a new page named ",[86,12343,8701],{},[45,12345,12346,12347,12350,12351,12354,12355,68],{},"Set the page layout to ",[86,12348,12349],{},"Grid",", adjust the range from ",[86,12352,12353],{},"0 to 100",", and label the gauge ",[86,12356,12357],{},"OEE",[45,12359,12360,12361,12364,12365,12368,12369,8586,12372,12375],{},"Choose ",[86,12362,12363],{},"Half Gauge"," as the type, set the style to ",[86,12366,12367],{},"Rounded",", and adjust the width and height to ",[86,12370,12371],{},"6",[86,12373,12374],{},"3"," for both the group and the widget.",[45,12377,12378,12379,4303,12381,12383,12384,12386],{},"Repeat these steps for ",[137,12380,9137],{},[137,12382,9146],{},", and ",[137,12385,9154],{},", ensuring each has a separate Group with the correct label.",[45,12388,12389,12390,12392,12393,8658,12395,159,12397],{},"Drag a Switch node for ",[137,12391,8809],{}," and connect it to a Change node setting ",[137,12394,8809],{},[137,12396,8806],{},[81,12398,12399],{},[45,12400,12325],{},[45,12402,12403,12404,4303,12406,4303,12408,12383,12411,12413],{},"Repeat this step for ",[137,12405,9737],{},[137,12407,9848],{},[137,12409,12410],{},"msg.topUnderPerformingMachines",[137,12412,12280],{},", ensuring each has a separate Switch node and Change node.",[45,12415,12416,12417,12419,12420,12423,12424,12427,12428,12431,12432,8586,12435,12438,12439,68],{},"Drag a Bar Chart widget, create a new Group, set the width to ",[86,12418,12371],{}," and height to ",[86,12421,12422],{},"8"," for both the group and widget, label it ",[86,12425,12426],{},"Production Data",", group data by ",[86,12429,12430],{},"Stacks",", and map ",[86,12433,12434],{},"X to series",[86,12436,12437],{},"Y to units",". Connect it to the node setting ",[137,12440,8809],{},[45,12442,12443,12444,12446,12447,8586,12450,12453,12454,8658,12456,68],{},"Duplicate the chart for ",[86,12445,9400],{},", mapping ",[86,12448,12449],{},"X to downtime_reason",[86,12451,12452],{},"Y to downtime_duration_minutes",", and connect it to the node setting ",[137,12455,9737],{},[137,12457,8806],{},[45,12459,12460,12461,12463,12464,12423,12466,12469,12470,12472,12473],{},"Drag a Table widget, create a new Group, set width ",[86,12462,12371],{}," and height ",[86,12465,5263],{},[86,12467,12468],{},"Recent Downtime Events",", set max rows to ",[86,12471,5700],{},", and add columns with keys:",[81,12474,12475,12479,12484,12488],{},[45,12476,12477],{},[137,12478,10038],{},[45,12480,12481],{},[137,12482,12483],{},"downtime_start",[45,12485,12486],{},[137,12487,10519],{},[45,12489,12490],{},[137,12491,9559],{},[45,12493,12494,12495,8658,12498,68],{},"Connect it to the node setting ",[137,12496,12497],{},"msg.recent_downtime",[137,12499,8806],{},[45,12501,12502,12503,12505,12506],{},"Duplicate the table for ",[86,12504,9865],{},", adding columns with keys:",[81,12507,12508,12512,12516],{},[45,12509,12510],{},[137,12511,10038],{},[45,12513,12514],{},[137,12515,10121],{},[45,12517,12518],{},[137,12519,10884],{},[45,12521,12522,12523,68],{},"Connect it to ",[137,12524,12410],{},[45,12526,12527,12528,12463,12530,12423,12532,12535,12536,12539,12540,12431,12543,8586,12548,12553,12554,8658,12556,68],{},"Drag a Line Chart widget, create a new Group, set width ",[86,12529,8669],{},[86,12531,5700],{},[86,12533,12534],{},"Daily OEE Trend Over 24 Hours",", set X-axis to ",[86,12537,12538],{},"Timescale",", format ",[86,12541,12542],{},"Y-l-d",[86,12544,12545,12546],{},"X to ",[137,12547,1723],{},[86,12549,12550,12551],{},"Y to ",[137,12552,10884],{},". Connect it to the Change node setting ",[137,12555,12280],{},[137,12557,8806],{},[45,12559,8692,12560,68],{},[86,12561,8578],{},[45,12563,12564],{},"Open the dashboard by clicking the Dashboard 2.0 button located at the top-right corner of the Dashboard 2.0 sidebar.",[12,12566,12567,12571],{},[8610,12568],{"alt":12569,"dataZoomable":135,"src":12570},"OEE Dashboard UI flow","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-dashboard.png",[8598,12572,12569],{},[12,12574,12575],{},"Your OEE dashboard is now set up and ready to use. It will visualize key metrics, including OEE, quality, availability, performance, production data, downtime events, and machine performance trends.",[12,12577,12578,12582],{},[8610,12579],{"alt":12580,"dataZoomable":135,"src":12581},"OEE Dashboard results without proper theming and styling","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-dashboard-without-style.png",[8598,12583,12584],{},"OEE Dashboard results without proper theming and styling.",[12,12586,12587,12590],{},[8610,12588],{"alt":12580,"dataZoomable":135,"src":12589},"\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-dashboard-without-style-2.png",[8598,12591,12580],{},[12,12593,12594],{},"However, the dashboard may not yet look exactly as it did in the previous design or intended layout. Some components may not align correctly with adjacent components in terms of width and height. Additionally, on different screens, you may notice layout inconsistencies, and the top header elements, such as the OEE Dashboard title and logo is missing.",[12,12596,12597],{},"Do not worry, in the next part of this series, we will style the dashboard to match the original design. Later, we will demonstrate how to connect it to a real data source, scale it across your production lines, and explain how you can use this dashboard to improve production efficiency.",[34,12599,12601],{"id":12600},"what-next","What Next?",[12,12603,14,12604,12608,12609,12613,12614,68],{},[16,12605,12607],{"href":12606},"\u002Fblog\u002F2025\u002F04\u002Fbuilding-oee-dashboard-with-flowfuse-part-3\u002F","Part 3"," of this series, we style the dashboard, connect it to a real data source, and scale it across production lines. In the meantime, if you’re excited to quickly launch your OEE dashboard in your factory environment, don’t delay! ",[16,12610,12612],{"href":92,"rel":12611},[25],"Register for a FlowFuse account"," now and initiate your journey with our new effective, ready-made ",[16,12615,12617],{"href":12616},"\u002Fblueprints\u002Fmanufacturing\u002Foee-dashboard\u002F","OEE Dashboard Blueprint",[296,12619,12620],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":135,"searchDepth":9233,"depth":9233,"links":12622},[12623,12643],{"id":36,"depth":8787,"text":37,"children":12624},[12625,12626,12627,12631,12632,12633,12642],{"id":75,"depth":8793,"text":76},{"id":120,"depth":8793,"text":121},{"id":8618,"depth":8793,"text":8619,"children":12628},[12629,12630],{"id":8626,"depth":9233,"text":8627},{"id":8721,"depth":9233,"text":8722},{"id":8864,"depth":8793,"text":8865},{"id":9114,"depth":8793,"text":9115},{"id":9369,"depth":8793,"text":9370,"children":12634},[12635,12636,12637,12638],{"id":9399,"depth":9233,"text":9400},{"id":9759,"depth":9233,"text":9760},{"id":9864,"depth":9233,"text":9865},{"id":11090,"depth":9233,"text":11091,"children":12639},[12640,12641],{"id":11098,"depth":9257,"text":11099},{"id":11246,"depth":9257,"text":11247},{"id":12305,"depth":8793,"text":12306},{"id":12600,"depth":8787,"text":12601},null,"2025-04-09","Learn how to build an OEE Dashboard using FlowFuse Dashboard (Node-RED Dashboard 2.0). This step-by-step guide covers data collection, OEE calculations, and dashboard creation with simulated production and downtime data.","md","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-dashboard-buildig-ff-2.png",{"usecase":12650,"keywords":12652,"excerpt":12653},[12651],"production-monitoring","free oee dashboard, oee dashboard free, building oee dashboard, node-red oee dashboard, flowfuse oee dashboard",{"type":9,"value":12654},[12655],[12,12656,14,12657,20,12659,27,12662,32],{},[16,12658,19],{"href":18},[16,12660,26],{"href":23,"rel":12661},[25],[16,12663,31],{"href":30},"\u002Fblog\u002F2025\u002F04\u002Fbuilding-oee-dashboard-with-flowfuse-2",{"title":5,"description":12646},{"loc":12664},"blog\u002F2025\u002F04\u002Fbuilding-oee-dashboard-with-flowfuse-2","Step-by-step guide to building your own OEE Dashboard.",[12670],"flowfuse","8lZAfwBn9UlDYSC6uq08y0qDwbeASIH_vzluN5eor6U",[],1785929993509]