[{"data":1,"prerenderedAt":12710},["ShallowReactive",2],{"blog-\u002Fblog\u002F2025\u002F04\u002Fbuild-manufacturing-oee-dashboard":3,"blog-all-for-related":12709},{"id":4,"title":5,"authors":6,"body":8,"cta":12679,"date":12680,"description":12681,"extension":12682,"image":12683,"lastUpdated":12684,"meta":12685,"navigation":9996,"path":12700,"seo":12701,"sitemap":12702,"stem":12703,"subtitle":12704,"tags":12705,"tldr":12707,"video":12679,"__hash__":12708},"blog\u002Fblog\u002F2025\u002F04\u002Fbuild-manufacturing-oee-dashboard.md","How to Build a Manufacturing OEE Dashboard with FlowFuse",[7],"sumit-shinde",{"type":9,"value":10,"toc":12656},"minimark",[11,33,38,41,60,69,72,77,80,128,132,140,8583,8619,8622,8631,8635,8638,8643,8711,8726,8734,8738,8869,8877,8881,8884,9103,9110,9119,9127,9131,9134,9374,9382,9386,9389,9392,9412,9416,9424,9737,9772,9776,9877,9881,9904,11094,11103,11107,11110,11115,11139,11203,11208,11259,11263,11287,12284,12309,12318,12322,12325,12338,12590,12598,12601,12610,12617,12620,12623,12627,12642,12653],[12,13,14,15,20,21,27,28,32],"p",{},"In ",[16,17,19],"a",{"href":18},"\u002Fblog\u002F2025\u002F04\u002Fwhat-is-an-oee-dashboard\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 second part, 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,118,122,123,127],{},[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. We use SQLite here because it needs no setup, but the flow works against any database - ",[16,119,121],{"href":120},"\u002Fdocs\u002Fuser\u002Fff-tables\u002F","FlowFuse Tables"," gives you managed PostgreSQL if you want something production-grade from the start, and our ",[16,124,126],{"href":125},"\u002Fnode-red\u002Fdatabase\u002F","Database"," guides cover MongoDB, InfluxDB, TimescaleDB, and DynamoDB.",[73,129,131],{"id":130},"preparing-simulated-data","Preparing Simulated Data",[12,133,134,135,139],{},"Before building the dashboard, we need a data source for production and downtime metrics. This data will serve as input for OEE calculations. ",[16,136,138],{"href":137},"\u002Fblog\u002F2025\u002F04\u002Fdesign-and-scale-oee-dashboard\u002F","Part 3 covers connecting a real source",", including how to remap the queries when your database field names differ. For now, let's generate simulated data.",[141,142,144],"render-flow",{":height":143},"300",[145,146,151],"pre",{"className":147,"code":148,"language":149,"meta":150,"style":150},"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","",[152,153,154],"code",{"__ignoreMap":150},[155,156,159,163,166,170,172,175,177,181,183,186,188,191,193,195,197,200,202,204,206,209,211,213,215,218,220,222,224,227,229,232,234,237,239,241,244,246,248,251,253,256,258,260,262,264,266,269,271,273,275,277,279,281,283,286,288,290,292,295,297,299,301,303,305,307,309,312,314,317,319,323,325,327,329,332,334,336,338,341,343,345,347,350,352,354,356,359,361,363,365,368,370,372,374,377,379,381,383,386,388,390,392,394,396,399,401,404,406,408,410,413,415,417,419,422,424,426,428,431,433,436,438,441,443,446,448,451,453,455,457,460,462,464,466,469,471,473,475,478,480,482,484,487,489,491,493,496,498,500,502,505,507,509,511,514,516,519,521,524,526,528,532,534,536,539,541,543,546,548,550,553,555,557,560,562,564,567,569,571,574,577,579,581,583,585,587,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,751,753,755,757,760,762,764,766,769,771,773,775,778,780,782,784,787,789,791,793,796,798,800,802,805,807,809,811,814,816,818,820,823,825,827,829,832,834,836,838,841,843,845,847,850,852,854,856,858,860,862,865,867,869,871,873,875,878,880,882,884,886,888,891,893,895,897,899,901,904,906,908,910,912,914,916,919,921,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953,955,957,959,961,963,965,967,969,971,973,975,977,979,981,983,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1080,1082,1084,1086,1089,1091,1093,1095,1098,1100,1102,1104,1107,1109,1111,1113,1116,1118,1120,1122,1125,1127,1129,1131,1134,1136,1138,1140,1143,1145,1147,1149,1151,1153,1155,1158,1160,1162,1164,1166,1168,1171,1173,1175,1177,1179,1181,1184,1186,1188,1190,1192,1194,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1253,1255,1257,1259,1261,1263,1265,1267,1270,1272,1274,1276,1279,1281,1283,1285,1288,1290,1292,1294,1297,1299,1301,1303,1306,1308,1310,1312,1315,1317,1319,1321,1324,1326,1328,1330,1333,1335,1337,1339,1342,1344,1346,1348,1351,1353,1355,1357,1359,1361,1363,1365,1368,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,1435,1437,1440,1442,1445,1447,1449,1451,1453,1456,1458,1460,1462,1465,1467,1469,1471,1473,1475,1477,1480,1482,1484,1486,1488,1490,1493,1495,1497,1500,1502,1505,1507,1509,1511,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587,1589,1591,1593,1596,1598,1601,1603,1605,1607,1609,1611,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1639,1641,1643,1645,1647,1649,1652,1654,1657,1659,1661,1663,1665,1667,1670,1672,1674,1676,1678,1680,1683,1685,1687,1689,1692,1694,1696,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1730,1732,1734,1736,1739,1741,1743,1745,1747,1749,1751,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1813,1815,1817,1819,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1841,1843,1845,1847,1849,1851,1853,1855,1857,1859,1862,1864,1866,1868,1871,1873,1875,1877,1880,1882,1884,1886,1889,1891,1893,1895,1898,1900,1902,1904,1907,1909,1911,1913,1916,1918,1920,1922,1925,1927,1929,1931,1933,1935,1938,1940,1942,1944,1947,1949,1951,1953,1955,1957,1959,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2081,2083,2085,2087,2089,2091,2093,2095,2097,2099,2101,2103,2105,2107,2109,2111,2113,2115,2117,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2142,2144,2146,2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168,2171,2173,2176,2178,2181,2183,2186,2188,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2213,2215,2217,2219,2221,2223,2225,2228,2230,2232,2234,2236,2238,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2427,2429,2431,2433,2435,2437,2439,2441,2443,2445,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2501,2503,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543,2545,2547,2549,2551,2553,2555,2557,2559,2561,2563,2565,2567,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587,2589,2592,2594,2596,2598,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698,2700,2702,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774,2776,2778,2781,2783,2785,2787,2789,2791,2793,2795,2797,2799,2801,2803,2805,2807,2809,2811,2813,2815,2817,2819,2821,2823,2825,2827,2830,2832,2834,2836,2838,2840,2842,2844,2846,2848,2850,2852,2854,2856,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,2993,2995,2998,3000,3003,3005,3007,3009,3011,3013,3015,3017,3019,3021,3023,3025,3027,3029,3031,3033,3035,3037,3040,3042,3044,3046,3048,3050,3053,3055,3057,3059,3061,3063,3065,3067,3069,3071,3073,3075,3077,3079,3081,3083,3085,3087,3089,3091,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3148,3150,3152,3154,3156,3158,3160,3162,3164,3166,3168,3170,3172,3174,3176,3178,3180,3182,3184,3186,3188,3190,3192,3194,3196,3198,3200,3202,3204,3206,3208,3210,3212,3214,3216,3218,3220,3222,3224,3226,3228,3230,3232,3234,3236,3239,3241,3243,3245,3247,3249,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3289,3291,3293,3295,3297,3299,3301,3303,3305,3307,3309,3311,3313,3315,3317,3319,3321,3323,3325,3327,3329,3331,3333,3335,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3414,3416,3419,3421,3423,3425,3427,3429,3431,3433,3435,3437,3439,3441,3443,3445,3447,3450,3452,3454,3456,3458,3460,3463,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3569,3571,3573,3575,3577,3579,3581,3583,3585,3587,3589,3591,3593,3595,3597,3599,3601,3603,3605,3607,3609,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637,3639,3641,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671,3673,3675,3677,3679,3681,3683,3685,3687,3689,3691,3693,3695,3697,3699,3701,3703,3705,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725,3727,3729,3731,3733,3735,3737,3739,3741,3743,3745,3747,3749,3751,3753,3755,3757,3759,3761,3763,3765,3767,3769,3771,3773,3775,3777,3779,3781,3783,3785,3787,3789,3791,3793,3795,3797,3799,3801,3803,3805,3807,3809,3811,3814,3816,3818,3820,3822,3824,3826,3828,3830,3832,3834,3836,3838,3840,3842,3844,3846,3848,3850,3852,3854,3856,3858,3860,3862,3864,3866,3868,3870,3872,3874,3876,3878,3880,3882,3884,3886,3888,3890,3892,3894,3896,3898,3900,3902,3905,3907,3909,3911,3913,3915,3917,3919,3921,3923,3925,3927,3929,3931,3933,3935,3937,3939,3941,3943,3945,3947,3949,3951,3953,3955,3957,3959,3961,3963,3965,3967,3969,3971,3973,3975,3977,3979,3981,3983,3985,3987,3989,3991,3993,3995,3997,3999,4001,4004,4006,4008,4010,4012,4014,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034,4036,4038,4040,4042,4044,4046,4048,4050,4052,4054,4056,4058,4060,4062,4064,4066,4068,4070,4072,4074,4076,4078,4080,4082,4084,4086,4088,4090,4092,4094,4096,4098,4100,4102,4104,4106,4108,4110,4112,4114,4116,4118,4120,4122,4124,4126,4128,4130,4132,4134,4136,4138,4140,4142,4144,4146,4148,4150,4152,4154,4156,4158,4160,4163,4165,4167,4169,4171,4173,4176,4178,4180,4182,4184,4186,4188,4190,4192,4194,4196,4198,4200,4202,4204,4206,4208,4210,4212,4214,4216,4218,4220,4223,4225,4227,4229,4231,4233,4235,4237,4239,4241,4243,4245,4247,4249,4251,4253,4255,4257,4259,4261,4263,4265,4267,4269,4272,4274,4276,4278,4281,4283,4285,4287,4290,4292,4295,4297,4300,4303,4306,4309,4311,4314,4316,4319,4321,4324,4326,4328,4330,4333,4335,4337,4339,4342,4344,4346,4348,4350,4353,4355,4357,4359,4362,4364,4366,4368,4371,4373,4375,4377,4380,4382,4384,4386,4388,4391,4393,4395,4397,4400,4402,4404,4406,4409,4411,4413,4415,4418,4420,4422,4424,4427,4429,4432,4434,4437,4440,4443,4445,4448,4450,4452,4454,4457,4459,4461,4463,4466,4468,4471,4473,4476,4478,4480,4482,4484,4487,4489,4492,4494,4496,4498,4500,4502,4504,4506,4508,4511,4513,4515,4517,4519,4521,4523,4525,4527,4530,4533,4535,4537,4540,4542,4544,4546,4548,4550,4552,4555,4557,4559,4561,4564,4566,4568,4570,4573,4575,4577,4579,4582,4584,4586,4588,4590,4592,4594,4596,4598,4601,4603,4605,4607,4610,4612,4614,4616,4619,4621,4623,4625,4627,4629,4631,4633,4635,4638,4640,4642,4644,4647,4649,4651,4653,4656,4658,4660,4662,4665,4667,4669,4671,4673,4675,4678,4680,4683,4685,4687,4689,4692,4694,4696,4698,4701,4703,4705,4708,4710,4712,4714,4717,4719,4721,4723,4726,4728,4730,4732,4734,4737,4739,4741,4743,4746,4748,4750,4752,4755,4757,4759,4761,4764,4766,4769,4771,4774,4776,4778,4781,4783,4785,4787,4790,4792,4794,4796,4799,4801,4803,4805,4808,4810,4812,4814,4817,4819,4822,4824,4827,4829,4832,4834,4837,4839,4842,4844,4847,4850,4852,4855,4857,4860,4862,4865,4867,4870,4872,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,4989,4991,4994,4996,4999,5001,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,5218,5220,5223,5225,5228,5230,5232,5234,5237,5239,5242,5244,5247,5249,5252,5254,5257,5259,5261,5263,5265,5267,5269,5272,5274,5276,5279,5281,5283,5286,5288,5290,5293,5295,5297,5300,5302,5304,5306,5308,5310,5313,5315,5317,5319,5321,5323,5326,5328,5330,5332,5334,5336,5339,5341,5344,5346,5348,5350,5352,5355,5357,5359,5361,5363,5365,5367,5369,5371,5373,5375,5377,5379,5381,5383,5386,5388,5390,5392,5394,5396,5398,5400,5402,5404,5406,5408,5410,5412,5414,5416,5418,5420,5423,5425,5427,5429,5431,5433,5435,5437,5439,5441,5443,5445,5447,5449,5451,5453,5455,5457,5459,5461,5463,5465,5467,5469,5471,5473,5476,5478,5480,5482,5485,5488,5490,5492,5494,5497,5499,5501,5503,5505,5507,5509,5511,5514,5516,5518,5520,5522,5524,5527,5529,5531,5533,5536,5538,5540,5542,5545,5547,5549,5551,5554,5556,5558,5560,5562,5564,5566,5568,5570,5573,5575,5577,5579,5581,5583,5585,5587,5589,5591,5593,5595,5597,5599,5601,5603,5605,5607,5609,5611,5613,5615,5617,5619,5621,5623,5625,5627,5629,5632,5634,5636,5638,5640,5642,5644,5646,5648,5650,5652,5654,5656,5658,5660,5662,5664,5666,5668,5670,5672,5674,5676,5678,5681,5683,5685,5687,5690,5692,5694,5696,5699,5701,5703,5705,5707,5709,5711,5713,5716,5718,5720,5722,5725,5727,5729,5731,5734,5736,5738,5740,5742,5744,5746,5748,5751,5753,5755,5757,5760,5762,5764,5766,5768,5770,5772,5774,5777,5779,5781,5783,5786,5788,5790,5792,5795,5797,5799,5801,5803,5805,5807,5809,5812,5814,5816,5818,5820,5822,5824,5826,5829,5831,5833,5835,5837,5839,5841,5843,5846,5848,5850,5852,5855,5857,5859,5861,5863,5865,5867,5869,5871,5873,5875,5877,5879,5882,5884,5886,5888,5890,5892,5894,5896,5898,5900,5902,5904,5906,5908,5910,5912,5914,5916,5918,5920,5922,5924,5926,5928,5930,5932,5934,5936,5938,5940,5942,5944,5946,5948,5950,5952,5954,5956,5958,5960,5962,5964,5966,5968,5970,5972,5974,5976,5978,5980,5982,5984,5986,5989,5991,5993,5995,5997,5999,6001,6003,6005,6007,6009,6011,6013,6015,6017,6019,6021,6023,6025,6027,6029,6031,6033,6035,6037,6039,6041,6043,6045,6047,6049,6051,6053,6055,6057,6059,6061,6063,6065,6067,6070,6072,6075,6077,6080,6082,6085,6087,6089,6091,6094,6096,6098,6100,6102,6104,6106,6108,6110,6112,6115,6117,6120,6122,6125,6127,6130,6132,6135,6137,6139,6141,6143,6145,6147,6149,6151,6153,6155,6157,6159,6161,6163,6165,6167,6169,6171,6173,6175,6177,6179,6181,6184,6186,6188,6190,6192,6194,6196,6198,6200,6202,6204,6206,6208,6210,6212,6214,6216,6218,6220,6222,6224,6226,6228,6230,6232,6234,6236,6238,6240,6242,6244,6246,6248,6250,6252,6254,6256,6258,6260,6262,6264,6266,6268,6270,6272,6274,6276,6279,6281,6283,6285,6287,6289,6291,6293,6295,6297,6299,6301,6303,6305,6307,6309,6311,6313,6315,6317,6319,6321,6323,6325,6327,6329,6331,6333,6335,6337,6339,6341,6343,6345,6347,6349,6351,6353,6355,6357,6359,6361,6363,6365,6367,6369,6371,6373,6375,6377,6379,6381,6383,6385,6387,6389,6391,6393,6395,6397,6399,6401,6403,6405,6407,6409,6411,6413,6415,6417,6419,6421,6423,6425,6427,6429,6431,6433,6435,6437,6439,6441,6443,6445,6447,6449,6451,6453,6455,6457,6459,6461,6463,6465,6467,6469,6471,6473,6475,6477,6479,6481,6483,6485,6487,6489,6491,6493,6495,6497,6499,6501,6503,6505,6507,6509,6511,6513,6515,6517,6519,6521,6523,6525,6527,6529,6531,6533,6535,6537,6539,6541,6543,6545,6547,6549,6551,6553,6555,6557,6559,6561,6563,6565,6567,6569,6571,6573,6575,6577,6579,6581,6583,6585,6587,6589,6591,6593,6595,6597,6599,6601,6603,6605,6607,6609,6611,6613,6615,6617,6619,6621,6623,6625,6627,6629,6631,6633,6635,6637,6639,6641,6643,6645,6647,6649,6651,6653,6655,6657,6659,6661,6663,6665,6667,6669,6671,6673,6675,6677,6679,6681,6683,6685,6687,6689,6691,6693,6695,6697,6699,6701,6703,6705,6707,6709,6711,6713,6715,6717,6719,6721,6723,6725,6727,6729,6731,6733,6735,6737,6739,6741,6743,6745,6747,6749,6751,6753,6755,6757,6759,6761,6763,6765,6767,6769,6771,6773,6775,6777,6779,6781,6783,6785,6787,6789,6791,6793,6795,6797,6799,6801,6803,6805,6807,6809,6811,6813,6815,6817,6819,6821,6823,6825,6827,6829,6831,6833,6835,6837,6839,6841,6843,6845,6847,6849,6851,6853,6855,6857,6859,6861,6863,6865,6867,6869,6871,6873,6875,6877,6879,6881,6883,6885,6887,6889,6891,6893,6895,6897,6899,6901,6903,6905,6907,6909,6911,6913,6915,6917,6919,6921,6923,6925,6927,6929,6931,6933,6935,6937,6939,6941,6943,6945,6947,6949,6951,6953,6955,6958,6960,6962,6964,6966,6968,6970,6972,6974,6976,6978,6980,6982,6984,6986,6988,6990,6992,6994,6996,6998,7000,7002,7004,7006,7008,7010,7012,7014,7016,7018,7020,7022,7024,7026,7028,7030,7032,7034,7036,7039,7041,7043,7045,7047,7049,7051,7053,7055,7057,7059,7061,7063,7065,7067,7069,7071,7073,7075,7077,7079,7082,7084,7086,7088,7090,7092,7094,7096,7098,7100,7102,7104,7106,7108,7110,7112,7114,7116,7118,7120,7122,7124,7126,7128,7130,7132,7134,7136,7138,7140,7142,7144,7146,7148,7150,7152,7154,7156,7158,7160,7162,7164,7166,7168,7170,7172,7174,7176,7178,7180,7182,7184,7186,7188,7190,7192,7194,7196,7198,7200,7202,7204,7206,7208,7210,7212,7214,7216,7218,7220,7222,7224,7226,7228,7230,7232,7234,7236,7238,7240,7242,7244,7246,7248,7250,7252,7254,7256,7258,7260,7262,7264,7266,7268,7270,7272,7274,7276,7278,7280,7282,7284,7286,7288,7290,7292,7294,7296,7298,7300,7302,7304,7306,7308,7310,7312,7314,7316,7318,7320,7322,7324,7326,7328,7330,7332,7334,7336,7338,7340,7342,7344,7346,7348,7350,7352,7354,7356,7358,7360,7362,7364,7366,7368,7370,7372,7374,7376,7378,7380,7382,7384,7386,7388,7390,7392,7394,7396,7398,7400,7402,7404,7406,7408,7410,7412,7414,7416,7418,7420,7422,7424,7426,7428,7430,7433,7435,7437,7439,7441,7443,7445,7447,7449,7451,7453,7455,7457,7459,7461,7463,7465,7467,7469,7471,7473,7475,7477,7479,7481,7483,7485,7487,7489,7491,7493,7495,7497,7499,7501,7503,7505,7507,7509,7511,7513,7515,7517,7519,7521,7523,7525,7527,7529,7531,7533,7535,7537,7539,7541,7543,7545,7547,7549,7551,7553,7555,7557,7559,7561,7563,7565,7567,7569,7571,7574,7576,7578,7580,7582,7584,7586,7588,7590,7592,7594,7596,7598,7600,7602,7604,7606,7608,7610,7612,7615,7617,7619,7621,7624,7626,7628,7630,7633,7635,7637,7639,7642,7644,7646,7648,7650,7652,7654,7656,7658,7660,7662,7664,7666,7668,7670,7672,7674,7676,7678,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7829,7831,7833,7835,7837,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,7935,7937,7939,7941,7943,7945,7947,7949,7951,7953,7955,7957,7959,7961,7963,7965,7967,7969,7971,7973,7975,7977,7979,7981,7983,7985,7987,7989,7991,7993,7995,7997,7999,8002,8004,8006,8008,8010,8012,8014,8016,8018,8020,8022,8024,8026,8028,8030,8032,8034,8036,8038,8040,8042,8044,8046,8048,8050,8052,8054,8056,8058,8060,8062,8064,8066,8068,8070,8072,8074,8076,8078,8080,8082,8084,8086,8088,8090,8092,8094,8096,8098,8100,8102,8104,8106,8108,8110,8112,8114,8116,8118,8120,8122,8124,8126,8128,8130,8132,8134,8136,8138,8140,8142,8144,8146,8148,8150,8152,8154,8156,8158,8160,8163,8165,8167,8169,8171,8173,8175,8177,8179,8181,8183,8185,8187,8189,8191,8193,8195,8197,8199,8201,8203,8205,8207,8209,8211,8213,8215,8217,8219,8221,8223,8225,8227,8229,8231,8233,8235,8237,8239,8241,8243,8245,8247,8249,8251,8253,8255,8257,8259,8261,8263,8265,8267,8269,8271,8273,8275,8277,8279,8281,8283,8285,8287,8289,8291,8293,8295,8297,8299,8301,8303,8305,8307,8309,8311,8313,8315,8317,8319,8321,8323,8325,8327,8329,8331,8333,8335,8337,8339,8341,8343,8345,8347,8349,8351,8353,8355,8357,8359,8361,8363,8365,8367,8369,8371,8373,8375,8377,8379,8381,8383,8385,8387,8389,8391,8393,8395,8397,8399,8401,8403,8405,8407,8409,8411,8413,8415,8417,8419,8421,8423,8425,8427,8429,8431,8433,8435,8437,8439,8441,8443,8445,8447,8449,8451,8453,8455,8457,8459,8461,8463,8465,8467,8469,8471,8473,8475,8477,8479,8481,8483,8485,8487,8489,8491,8493,8495,8497,8499,8501,8503,8505,8507,8509,8511,8513,8515,8517,8519,8521,8523,8525,8527,8529,8531,8533,8535,8537,8539,8542,8544,8546,8548,8551,8553,8555,8557,8560,8562,8564,8566,8569,8571,8573,8575,8578,8580],"span",{"class":157,"line":158},"line",1,[155,160,162],{"class":161},"sMK4o","[{",[155,164,165],{"class":161},"\"",[155,167,169],{"class":168},"spNyl","id",[155,171,165],{"class":161},[155,173,174],{"class":161},":",[155,176,165],{"class":161},[155,178,180],{"class":179},"sfazB","fa7147e04d4d5ec3",[155,182,165],{"class":161},[155,184,185],{"class":161},",",[155,187,165],{"class":161},[155,189,190],{"class":168},"type",[155,192,165],{"class":161},[155,194,174],{"class":161},[155,196,165],{"class":161},[155,198,199],{"class":179},"tab",[155,201,165],{"class":161},[155,203,185],{"class":161},[155,205,165],{"class":161},[155,207,208],{"class":168},"label",[155,210,165],{"class":161},[155,212,174],{"class":161},[155,214,165],{"class":161},[155,216,217],{"class":179},"Simulated Data Generation",[155,219,165],{"class":161},[155,221,185],{"class":161},[155,223,165],{"class":161},[155,225,226],{"class":168},"disabled",[155,228,165],{"class":161},[155,230,231],{"class":161},":false,",[155,233,165],{"class":161},[155,235,236],{"class":168},"info",[155,238,165],{"class":161},[155,240,174],{"class":161},[155,242,243],{"class":161},"\"\"",[155,245,185],{"class":161},[155,247,165],{"class":161},[155,249,250],{"class":168},"env",[155,252,165],{"class":161},[155,254,255],{"class":161},":[]},{",[155,257,165],{"class":161},[155,259,169],{"class":168},[155,261,165],{"class":161},[155,263,174],{"class":161},[155,265,165],{"class":161},[155,267,268],{"class":179},"3f2126c3c00b9e0d",[155,270,165],{"class":161},[155,272,185],{"class":161},[155,274,165],{"class":161},[155,276,190],{"class":168},[155,278,165],{"class":161},[155,280,174],{"class":161},[155,282,165],{"class":161},[155,284,285],{"class":179},"group",[155,287,165],{"class":161},[155,289,185],{"class":161},[155,291,165],{"class":161},[155,293,294],{"class":168},"z",[155,296,165],{"class":161},[155,298,174],{"class":161},[155,300,165],{"class":161},[155,302,180],{"class":179},[155,304,165],{"class":161},[155,306,185],{"class":161},[155,308,165],{"class":161},[155,310,311],{"class":168},"style",[155,313,165],{"class":161},[155,315,316],{"class":161},":{",[155,318,165],{"class":161},[155,320,322],{"class":321},"sBMFI","stroke",[155,324,165],{"class":161},[155,326,174],{"class":161},[155,328,165],{"class":161},[155,330,331],{"class":179},"#b2b3bd",[155,333,165],{"class":161},[155,335,185],{"class":161},[155,337,165],{"class":161},[155,339,340],{"class":321},"stroke-opacity",[155,342,165],{"class":161},[155,344,174],{"class":161},[155,346,165],{"class":161},[155,348,349],{"class":179},"1",[155,351,165],{"class":161},[155,353,185],{"class":161},[155,355,165],{"class":161},[155,357,358],{"class":321},"fill",[155,360,165],{"class":161},[155,362,174],{"class":161},[155,364,165],{"class":161},[155,366,367],{"class":179},"#f2f3fb",[155,369,165],{"class":161},[155,371,185],{"class":161},[155,373,165],{"class":161},[155,375,376],{"class":321},"fill-opacity",[155,378,165],{"class":161},[155,380,174],{"class":161},[155,382,165],{"class":161},[155,384,385],{"class":179},"0.5",[155,387,165],{"class":161},[155,389,185],{"class":161},[155,391,165],{"class":161},[155,393,208],{"class":321},[155,395,165],{"class":161},[155,397,398],{"class":161},":true,",[155,400,165],{"class":161},[155,402,403],{"class":321},"label-position",[155,405,165],{"class":161},[155,407,174],{"class":161},[155,409,165],{"class":161},[155,411,412],{"class":179},"nw",[155,414,165],{"class":161},[155,416,185],{"class":161},[155,418,165],{"class":161},[155,420,421],{"class":321},"color",[155,423,165],{"class":161},[155,425,174],{"class":161},[155,427,165],{"class":161},[155,429,430],{"class":179},"#32333b",[155,432,165],{"class":161},[155,434,435],{"class":161},"},",[155,437,165],{"class":161},[155,439,440],{"class":168},"nodes",[155,442,165],{"class":161},[155,444,445],{"class":161},":[",[155,447,165],{"class":161},[155,449,450],{"class":179},"853fb3a395d833bb",[155,452,165],{"class":161},[155,454,185],{"class":161},[155,456,165],{"class":161},[155,458,459],{"class":179},"a96ffd171bf11823",[155,461,165],{"class":161},[155,463,185],{"class":161},[155,465,165],{"class":161},[155,467,468],{"class":179},"3d30995a4329eb71",[155,470,165],{"class":161},[155,472,185],{"class":161},[155,474,165],{"class":161},[155,476,477],{"class":179},"0f466ba2a885e22a",[155,479,165],{"class":161},[155,481,185],{"class":161},[155,483,165],{"class":161},[155,485,486],{"class":179},"f8229c651706b162",[155,488,165],{"class":161},[155,490,185],{"class":161},[155,492,165],{"class":161},[155,494,495],{"class":179},"2ceebc93d54adba4",[155,497,165],{"class":161},[155,499,185],{"class":161},[155,501,165],{"class":161},[155,503,504],{"class":179},"0c927abd3b139e97",[155,506,165],{"class":161},[155,508,185],{"class":161},[155,510,165],{"class":161},[155,512,513],{"class":179},"8222855bc32e9240",[155,515,165],{"class":161},[155,517,518],{"class":161},"],",[155,520,165],{"class":161},[155,522,523],{"class":168},"x",[155,525,165],{"class":161},[155,527,174],{"class":161},[155,529,531],{"class":530},"sbssI","24",[155,533,185],{"class":161},[155,535,165],{"class":161},[155,537,538],{"class":168},"y",[155,540,165],{"class":161},[155,542,174],{"class":161},[155,544,545],{"class":530},"99",[155,547,185],{"class":161},[155,549,165],{"class":161},[155,551,552],{"class":168},"w",[155,554,165],{"class":161},[155,556,174],{"class":161},[155,558,559],{"class":530},"1142",[155,561,185],{"class":161},[155,563,165],{"class":161},[155,565,566],{"class":168},"h",[155,568,165],{"class":161},[155,570,174],{"class":161},[155,572,573],{"class":530},"182",[155,575,576],{"class":161},"},{",[155,578,165],{"class":161},[155,580,169],{"class":168},[155,582,165],{"class":161},[155,584,174],{"class":161},[155,586,165],{"class":161},[155,588,589],{"class":179},"07a3d5b9075ff846",[155,591,165],{"class":161},[155,593,185],{"class":161},[155,595,165],{"class":161},[155,597,190],{"class":168},[155,599,165],{"class":161},[155,601,174],{"class":161},[155,603,165],{"class":161},[155,605,285],{"class":179},[155,607,165],{"class":161},[155,609,185],{"class":161},[155,611,165],{"class":161},[155,613,294],{"class":168},[155,615,165],{"class":161},[155,617,174],{"class":161},[155,619,165],{"class":161},[155,621,180],{"class":179},[155,623,165],{"class":161},[155,625,185],{"class":161},[155,627,165],{"class":161},[155,629,311],{"class":168},[155,631,165],{"class":161},[155,633,316],{"class":161},[155,635,165],{"class":161},[155,637,322],{"class":321},[155,639,165],{"class":161},[155,641,174],{"class":161},[155,643,165],{"class":161},[155,645,331],{"class":179},[155,647,165],{"class":161},[155,649,185],{"class":161},[155,651,165],{"class":161},[155,653,340],{"class":321},[155,655,165],{"class":161},[155,657,174],{"class":161},[155,659,165],{"class":161},[155,661,349],{"class":179},[155,663,165],{"class":161},[155,665,185],{"class":161},[155,667,165],{"class":161},[155,669,358],{"class":321},[155,671,165],{"class":161},[155,673,174],{"class":161},[155,675,165],{"class":161},[155,677,367],{"class":179},[155,679,165],{"class":161},[155,681,185],{"class":161},[155,683,165],{"class":161},[155,685,376],{"class":321},[155,687,165],{"class":161},[155,689,174],{"class":161},[155,691,165],{"class":161},[155,693,385],{"class":179},[155,695,165],{"class":161},[155,697,185],{"class":161},[155,699,165],{"class":161},[155,701,208],{"class":321},[155,703,165],{"class":161},[155,705,398],{"class":161},[155,707,165],{"class":161},[155,709,403],{"class":321},[155,711,165],{"class":161},[155,713,174],{"class":161},[155,715,165],{"class":161},[155,717,412],{"class":179},[155,719,165],{"class":161},[155,721,185],{"class":161},[155,723,165],{"class":161},[155,725,421],{"class":321},[155,727,165],{"class":161},[155,729,174],{"class":161},[155,731,165],{"class":161},[155,733,430],{"class":179},[155,735,165],{"class":161},[155,737,435],{"class":161},[155,739,165],{"class":161},[155,741,440],{"class":168},[155,743,165],{"class":161},[155,745,445],{"class":161},[155,747,165],{"class":161},[155,749,750],{"class":179},"aa7bd867fa7daca5",[155,752,165],{"class":161},[155,754,185],{"class":161},[155,756,165],{"class":161},[155,758,759],{"class":179},"234aef8a999cb8d9",[155,761,165],{"class":161},[155,763,185],{"class":161},[155,765,165],{"class":161},[155,767,768],{"class":179},"d7641c9327f295f8",[155,770,165],{"class":161},[155,772,185],{"class":161},[155,774,165],{"class":161},[155,776,777],{"class":179},"c3e96b73cd6ec586",[155,779,165],{"class":161},[155,781,185],{"class":161},[155,783,165],{"class":161},[155,785,786],{"class":179},"13f2e851e3f28ec6",[155,788,165],{"class":161},[155,790,185],{"class":161},[155,792,165],{"class":161},[155,794,795],{"class":179},"9a444655c076d5a7",[155,797,165],{"class":161},[155,799,185],{"class":161},[155,801,165],{"class":161},[155,803,804],{"class":179},"e1fe1b1a4f1ef2e5",[155,806,165],{"class":161},[155,808,185],{"class":161},[155,810,165],{"class":161},[155,812,813],{"class":179},"2beb68abc5da93bc",[155,815,165],{"class":161},[155,817,185],{"class":161},[155,819,165],{"class":161},[155,821,822],{"class":179},"b83d517fae3c7bbf",[155,824,165],{"class":161},[155,826,185],{"class":161},[155,828,165],{"class":161},[155,830,831],{"class":179},"50ebbbfb159a3cbe",[155,833,165],{"class":161},[155,835,185],{"class":161},[155,837,165],{"class":161},[155,839,840],{"class":179},"8873774ad339b67e",[155,842,165],{"class":161},[155,844,185],{"class":161},[155,846,165],{"class":161},[155,848,849],{"class":179},"77e22b20d1862c7e",[155,851,165],{"class":161},[155,853,518],{"class":161},[155,855,165],{"class":161},[155,857,523],{"class":168},[155,859,165],{"class":161},[155,861,174],{"class":161},[155,863,864],{"class":530},"-6",[155,866,185],{"class":161},[155,868,165],{"class":161},[155,870,538],{"class":168},[155,872,165],{"class":161},[155,874,174],{"class":161},[155,876,877],{"class":530},"299",[155,879,185],{"class":161},[155,881,165],{"class":161},[155,883,552],{"class":168},[155,885,165],{"class":161},[155,887,174],{"class":161},[155,889,890],{"class":530},"2092",[155,892,185],{"class":161},[155,894,165],{"class":161},[155,896,566],{"class":168},[155,898,165],{"class":161},[155,900,174],{"class":161},[155,902,903],{"class":530},"162",[155,905,576],{"class":161},[155,907,165],{"class":161},[155,909,169],{"class":168},[155,911,165],{"class":161},[155,913,174],{"class":161},[155,915,165],{"class":161},[155,917,918],{"class":179},"c0550db87d6fb947",[155,920,165],{"class":161},[155,922,185],{"class":161},[155,924,165],{"class":161},[155,926,190],{"class":168},[155,928,165],{"class":161},[155,930,174],{"class":161},[155,932,165],{"class":161},[155,934,285],{"class":179},[155,936,165],{"class":161},[155,938,185],{"class":161},[155,940,165],{"class":161},[155,942,294],{"class":168},[155,944,165],{"class":161},[155,946,174],{"class":161},[155,948,165],{"class":161},[155,950,180],{"class":179},[155,952,165],{"class":161},[155,954,185],{"class":161},[155,956,165],{"class":161},[155,958,311],{"class":168},[155,960,165],{"class":161},[155,962,316],{"class":161},[155,964,165],{"class":161},[155,966,322],{"class":321},[155,968,165],{"class":161},[155,970,174],{"class":161},[155,972,165],{"class":161},[155,974,331],{"class":179},[155,976,165],{"class":161},[155,978,185],{"class":161},[155,980,165],{"class":161},[155,982,340],{"class":321},[155,984,165],{"class":161},[155,986,174],{"class":161},[155,988,165],{"class":161},[155,990,349],{"class":179},[155,992,165],{"class":161},[155,994,185],{"class":161},[155,996,165],{"class":161},[155,998,358],{"class":321},[155,1000,165],{"class":161},[155,1002,174],{"class":161},[155,1004,165],{"class":161},[155,1006,367],{"class":179},[155,1008,165],{"class":161},[155,1010,185],{"class":161},[155,1012,165],{"class":161},[155,1014,376],{"class":321},[155,1016,165],{"class":161},[155,1018,174],{"class":161},[155,1020,165],{"class":161},[155,1022,385],{"class":179},[155,1024,165],{"class":161},[155,1026,185],{"class":161},[155,1028,165],{"class":161},[155,1030,208],{"class":321},[155,1032,165],{"class":161},[155,1034,398],{"class":161},[155,1036,165],{"class":161},[155,1038,403],{"class":321},[155,1040,165],{"class":161},[155,1042,174],{"class":161},[155,1044,165],{"class":161},[155,1046,412],{"class":179},[155,1048,165],{"class":161},[155,1050,185],{"class":161},[155,1052,165],{"class":161},[155,1054,421],{"class":321},[155,1056,165],{"class":161},[155,1058,174],{"class":161},[155,1060,165],{"class":161},[155,1062,430],{"class":179},[155,1064,165],{"class":161},[155,1066,435],{"class":161},[155,1068,165],{"class":161},[155,1070,440],{"class":168},[155,1072,165],{"class":161},[155,1074,445],{"class":161},[155,1076,165],{"class":161},[155,1078,1079],{"class":179},"b1f773f4cc2266c6",[155,1081,165],{"class":161},[155,1083,185],{"class":161},[155,1085,165],{"class":161},[155,1087,1088],{"class":179},"cce91928076adb23",[155,1090,165],{"class":161},[155,1092,185],{"class":161},[155,1094,165],{"class":161},[155,1096,1097],{"class":179},"d853a554ecd152b1",[155,1099,165],{"class":161},[155,1101,185],{"class":161},[155,1103,165],{"class":161},[155,1105,1106],{"class":179},"45628fb0ca0a4672",[155,1108,165],{"class":161},[155,1110,185],{"class":161},[155,1112,165],{"class":161},[155,1114,1115],{"class":179},"36ae627ad694fc09",[155,1117,165],{"class":161},[155,1119,185],{"class":161},[155,1121,165],{"class":161},[155,1123,1124],{"class":179},"69afd49e2ceb191b",[155,1126,165],{"class":161},[155,1128,185],{"class":161},[155,1130,165],{"class":161},[155,1132,1133],{"class":179},"808db5612ba1aedc",[155,1135,165],{"class":161},[155,1137,185],{"class":161},[155,1139,165],{"class":161},[155,1141,1142],{"class":179},"6dcd69acd5990793",[155,1144,165],{"class":161},[155,1146,518],{"class":161},[155,1148,165],{"class":161},[155,1150,523],{"class":168},[155,1152,165],{"class":161},[155,1154,174],{"class":161},[155,1156,1157],{"class":530},"34",[155,1159,185],{"class":161},[155,1161,165],{"class":161},[155,1163,538],{"class":168},[155,1165,165],{"class":161},[155,1167,174],{"class":161},[155,1169,1170],{"class":530},"479",[155,1172,185],{"class":161},[155,1174,165],{"class":161},[155,1176,552],{"class":168},[155,1178,165],{"class":161},[155,1180,174],{"class":161},[155,1182,1183],{"class":530},"1202",[155,1185,185],{"class":161},[155,1187,165],{"class":161},[155,1189,566],{"class":168},[155,1191,165],{"class":161},[155,1193,174],{"class":161},[155,1195,1196],{"class":530},"142",[155,1198,576],{"class":161},[155,1200,165],{"class":161},[155,1202,169],{"class":168},[155,1204,165],{"class":161},[155,1206,174],{"class":161},[155,1208,165],{"class":161},[155,1210,459],{"class":179},[155,1212,165],{"class":161},[155,1214,185],{"class":161},[155,1216,165],{"class":161},[155,1218,190],{"class":168},[155,1220,165],{"class":161},[155,1222,174],{"class":161},[155,1224,165],{"class":161},[155,1226,1227],{"class":179},"template",[155,1229,165],{"class":161},[155,1231,185],{"class":161},[155,1233,165],{"class":161},[155,1235,294],{"class":168},[155,1237,165],{"class":161},[155,1239,174],{"class":161},[155,1241,165],{"class":161},[155,1243,180],{"class":179},[155,1245,165],{"class":161},[155,1247,185],{"class":161},[155,1249,165],{"class":161},[155,1251,1252],{"class":168},"g",[155,1254,165],{"class":161},[155,1256,174],{"class":161},[155,1258,165],{"class":161},[155,1260,268],{"class":179},[155,1262,165],{"class":161},[155,1264,185],{"class":161},[155,1266,165],{"class":161},[155,1268,1269],{"class":168},"name",[155,1271,165],{"class":161},[155,1273,174],{"class":161},[155,1275,165],{"class":161},[155,1277,1278],{"class":179},"Create ProductionData table",[155,1280,165],{"class":161},[155,1282,185],{"class":161},[155,1284,165],{"class":161},[155,1286,1287],{"class":168},"field",[155,1289,165],{"class":161},[155,1291,174],{"class":161},[155,1293,165],{"class":161},[155,1295,1296],{"class":179},"topic",[155,1298,165],{"class":161},[155,1300,185],{"class":161},[155,1302,165],{"class":161},[155,1304,1305],{"class":168},"fieldType",[155,1307,165],{"class":161},[155,1309,174],{"class":161},[155,1311,165],{"class":161},[155,1313,1314],{"class":179},"msg",[155,1316,165],{"class":161},[155,1318,185],{"class":161},[155,1320,165],{"class":161},[155,1322,1323],{"class":168},"format",[155,1325,165],{"class":161},[155,1327,174],{"class":161},[155,1329,165],{"class":161},[155,1331,1332],{"class":179},"sql",[155,1334,165],{"class":161},[155,1336,185],{"class":161},[155,1338,165],{"class":161},[155,1340,1341],{"class":168},"syntax",[155,1343,165],{"class":161},[155,1345,174],{"class":161},[155,1347,165],{"class":161},[155,1349,1350],{"class":179},"mustache",[155,1352,165],{"class":161},[155,1354,185],{"class":161},[155,1356,165],{"class":161},[155,1358,1227],{"class":168},[155,1360,165],{"class":161},[155,1362,174],{"class":161},[155,1364,165],{"class":161},[155,1366,1367],{"class":179},"CREATE TABLE IF NOT EXISTS ProductionData (",[155,1369,1371],{"class":1370},"sTEyZ","\\n",[155,1373,1374],{"class":179},"    id INTEGER PRIMARY KEY AUTOINCREMENT,",[155,1376,1371],{"class":1370},[155,1378,1379],{"class":179},"    timestamp DATETIME NOT NULL,",[155,1381,1371],{"class":1370},[155,1383,1384],{"class":179},"    area VARCHAR(255) NOT NULL,",[155,1386,1371],{"class":1370},[155,1388,1389],{"class":179},"    line VARCHAR(100) NOT NULL,  ",[155,1391,1371],{"class":1370},[155,1393,1394],{"class":179},"    machine_name VARCHAR(255) NOT NULL,",[155,1396,1371],{"class":1370},[155,1398,1399],{"class":179},"    shift VARCHAR(50) NOT NULL,",[155,1401,1371],{"class":1370},[155,1403,1404],{"class":179},"    shift_duration DECIMAL(5,2) NOT NULL,",[155,1406,1371],{"class":1370},[155,1408,1409],{"class":179},"    good_units INT NOT NULL,",[155,1411,1371],{"class":1370},[155,1413,1414],{"class":179},"    defect_units INT NOT NULL,",[155,1416,1371],{"class":1370},[155,1418,1419],{"class":179},"    total_produced_units INT NOT NULL,",[155,1421,1371],{"class":1370},[155,1423,1424],{"class":179},"    cycle_time DECIMAL(5,2) NOT NULL,",[155,1426,1371],{"class":1370},[155,1428,1429],{"class":179},"    ideal_cycle_time DECIMAL(5,2) NOT NULL,",[155,1431,1371],{"class":1370},[155,1433,1434],{"class":179},"    target_output INT NOT NULL DEFAULT 0,",[155,1436,1371],{"class":1370},[155,1438,1439],{"class":179},"    operating_time INT NOT NULL",[155,1441,1371],{"class":1370},[155,1443,1444],{"class":179},");",[155,1446,1371],{"class":1370},[155,1448,165],{"class":161},[155,1450,185],{"class":161},[155,1452,165],{"class":161},[155,1454,1455],{"class":168},"output",[155,1457,165],{"class":161},[155,1459,174],{"class":161},[155,1461,165],{"class":161},[155,1463,1464],{"class":179},"str",[155,1466,165],{"class":161},[155,1468,185],{"class":161},[155,1470,165],{"class":161},[155,1472,523],{"class":168},[155,1474,165],{"class":161},[155,1476,174],{"class":161},[155,1478,1479],{"class":530},"500",[155,1481,185],{"class":161},[155,1483,165],{"class":161},[155,1485,538],{"class":168},[155,1487,165],{"class":161},[155,1489,174],{"class":161},[155,1491,1492],{"class":530},"140",[155,1494,185],{"class":161},[155,1496,165],{"class":161},[155,1498,1499],{"class":168},"wires",[155,1501,165],{"class":161},[155,1503,1504],{"class":161},":[[",[155,1506,165],{"class":161},[155,1508,450],{"class":179},[155,1510,165],{"class":161},[155,1512,1513],{"class":161},"]]},{",[155,1515,165],{"class":161},[155,1517,169],{"class":168},[155,1519,165],{"class":161},[155,1521,174],{"class":161},[155,1523,165],{"class":161},[155,1525,468],{"class":179},[155,1527,165],{"class":161},[155,1529,185],{"class":161},[155,1531,165],{"class":161},[155,1533,190],{"class":168},[155,1535,165],{"class":161},[155,1537,174],{"class":161},[155,1539,165],{"class":161},[155,1541,1542],{"class":179},"inject",[155,1544,165],{"class":161},[155,1546,185],{"class":161},[155,1548,165],{"class":161},[155,1550,294],{"class":168},[155,1552,165],{"class":161},[155,1554,174],{"class":161},[155,1556,165],{"class":161},[155,1558,180],{"class":179},[155,1560,165],{"class":161},[155,1562,185],{"class":161},[155,1564,165],{"class":161},[155,1566,1252],{"class":168},[155,1568,165],{"class":161},[155,1570,174],{"class":161},[155,1572,165],{"class":161},[155,1574,268],{"class":179},[155,1576,165],{"class":161},[155,1578,185],{"class":161},[155,1580,165],{"class":161},[155,1582,1269],{"class":168},[155,1584,165],{"class":161},[155,1586,174],{"class":161},[155,1588,243],{"class":161},[155,1590,185],{"class":161},[155,1592,165],{"class":161},[155,1594,1595],{"class":168},"props",[155,1597,165],{"class":161},[155,1599,1600],{"class":161},":[{",[155,1602,165],{"class":161},[155,1604,12],{"class":321},[155,1606,165],{"class":161},[155,1608,174],{"class":161},[155,1610,165],{"class":161},[155,1612,1613],{"class":179},"payload",[155,1615,165],{"class":161},[155,1617,576],{"class":161},[155,1619,165],{"class":161},[155,1621,12],{"class":321},[155,1623,165],{"class":161},[155,1625,174],{"class":161},[155,1627,165],{"class":161},[155,1629,1296],{"class":179},[155,1631,165],{"class":161},[155,1633,185],{"class":161},[155,1635,165],{"class":161},[155,1637,1638],{"class":321},"vt",[155,1640,165],{"class":161},[155,1642,174],{"class":161},[155,1644,165],{"class":161},[155,1646,1464],{"class":179},[155,1648,165],{"class":161},[155,1650,1651],{"class":161},"}],",[155,1653,165],{"class":161},[155,1655,1656],{"class":168},"repeat",[155,1658,165],{"class":161},[155,1660,174],{"class":161},[155,1662,243],{"class":161},[155,1664,185],{"class":161},[155,1666,165],{"class":161},[155,1668,1669],{"class":168},"crontab",[155,1671,165],{"class":161},[155,1673,174],{"class":161},[155,1675,243],{"class":161},[155,1677,185],{"class":161},[155,1679,165],{"class":161},[155,1681,1682],{"class":168},"once",[155,1684,165],{"class":161},[155,1686,398],{"class":161},[155,1688,165],{"class":161},[155,1690,1691],{"class":168},"onceDelay",[155,1693,165],{"class":161},[155,1695,174],{"class":161},[155,1697,1698],{"class":530},"0.1",[155,1700,185],{"class":161},[155,1702,165],{"class":161},[155,1704,1296],{"class":168},[155,1706,165],{"class":161},[155,1708,174],{"class":161},[155,1710,243],{"class":161},[155,1712,185],{"class":161},[155,1714,165],{"class":161},[155,1716,1613],{"class":168},[155,1718,165],{"class":161},[155,1720,174],{"class":161},[155,1722,243],{"class":161},[155,1724,185],{"class":161},[155,1726,165],{"class":161},[155,1728,1729],{"class":168},"payloadType",[155,1731,165],{"class":161},[155,1733,174],{"class":161},[155,1735,165],{"class":161},[155,1737,1738],{"class":179},"date",[155,1740,165],{"class":161},[155,1742,185],{"class":161},[155,1744,165],{"class":161},[155,1746,523],{"class":168},[155,1748,165],{"class":161},[155,1750,174],{"class":161},[155,1752,1753],{"class":530},"150",[155,1755,185],{"class":161},[155,1757,165],{"class":161},[155,1759,538],{"class":168},[155,1761,165],{"class":161},[155,1763,174],{"class":161},[155,1765,1492],{"class":530},[155,1767,185],{"class":161},[155,1769,165],{"class":161},[155,1771,1499],{"class":168},[155,1773,165],{"class":161},[155,1775,1504],{"class":161},[155,1777,165],{"class":161},[155,1779,459],{"class":179},[155,1781,165],{"class":161},[155,1783,1513],{"class":161},[155,1785,165],{"class":161},[155,1787,169],{"class":168},[155,1789,165],{"class":161},[155,1791,174],{"class":161},[155,1793,165],{"class":161},[155,1795,477],{"class":179},[155,1797,165],{"class":161},[155,1799,185],{"class":161},[155,1801,165],{"class":161},[155,1803,190],{"class":168},[155,1805,165],{"class":161},[155,1807,174],{"class":161},[155,1809,165],{"class":161},[155,1811,1812],{"class":179},"debug",[155,1814,165],{"class":161},[155,1816,185],{"class":161},[155,1818,165],{"class":161},[155,1820,294],{"class":168},[155,1822,165],{"class":161},[155,1824,174],{"class":161},[155,1826,165],{"class":161},[155,1828,180],{"class":179},[155,1830,165],{"class":161},[155,1832,185],{"class":161},[155,1834,165],{"class":161},[155,1836,1252],{"class":168},[155,1838,165],{"class":161},[155,1840,174],{"class":161},[155,1842,165],{"class":161},[155,1844,268],{"class":179},[155,1846,165],{"class":161},[155,1848,185],{"class":161},[155,1850,165],{"class":161},[155,1852,1269],{"class":168},[155,1854,165],{"class":161},[155,1856,174],{"class":161},[155,1858,165],{"class":161},[155,1860,1861],{"class":179},"debug 1",[155,1863,165],{"class":161},[155,1865,185],{"class":161},[155,1867,165],{"class":161},[155,1869,1870],{"class":168},"active",[155,1872,165],{"class":161},[155,1874,231],{"class":161},[155,1876,165],{"class":161},[155,1878,1879],{"class":168},"tosidebar",[155,1881,165],{"class":161},[155,1883,398],{"class":161},[155,1885,165],{"class":161},[155,1887,1888],{"class":168},"console",[155,1890,165],{"class":161},[155,1892,231],{"class":161},[155,1894,165],{"class":161},[155,1896,1897],{"class":168},"tostatus",[155,1899,165],{"class":161},[155,1901,231],{"class":161},[155,1903,165],{"class":161},[155,1905,1906],{"class":168},"complete",[155,1908,165],{"class":161},[155,1910,174],{"class":161},[155,1912,165],{"class":161},[155,1914,1915],{"class":179},"false",[155,1917,165],{"class":161},[155,1919,185],{"class":161},[155,1921,165],{"class":161},[155,1923,1924],{"class":168},"statusVal",[155,1926,165],{"class":161},[155,1928,174],{"class":161},[155,1930,243],{"class":161},[155,1932,185],{"class":161},[155,1934,165],{"class":161},[155,1936,1937],{"class":168},"statusType",[155,1939,165],{"class":161},[155,1941,174],{"class":161},[155,1943,165],{"class":161},[155,1945,1946],{"class":179},"auto",[155,1948,165],{"class":161},[155,1950,185],{"class":161},[155,1952,165],{"class":161},[155,1954,523],{"class":168},[155,1956,165],{"class":161},[155,1958,174],{"class":161},[155,1960,1961],{"class":530},"1050",[155,1963,185],{"class":161},[155,1965,165],{"class":161},[155,1967,538],{"class":168},[155,1969,165],{"class":161},[155,1971,174],{"class":161},[155,1973,1492],{"class":530},[155,1975,185],{"class":161},[155,1977,165],{"class":161},[155,1979,1499],{"class":168},[155,1981,165],{"class":161},[155,1983,255],{"class":161},[155,1985,165],{"class":161},[155,1987,169],{"class":168},[155,1989,165],{"class":161},[155,1991,174],{"class":161},[155,1993,165],{"class":161},[155,1995,495],{"class":179},[155,1997,165],{"class":161},[155,1999,185],{"class":161},[155,2001,165],{"class":161},[155,2003,190],{"class":168},[155,2005,165],{"class":161},[155,2007,174],{"class":161},[155,2009,165],{"class":161},[155,2011,1227],{"class":179},[155,2013,165],{"class":161},[155,2015,185],{"class":161},[155,2017,165],{"class":161},[155,2019,294],{"class":168},[155,2021,165],{"class":161},[155,2023,174],{"class":161},[155,2025,165],{"class":161},[155,2027,180],{"class":179},[155,2029,165],{"class":161},[155,2031,185],{"class":161},[155,2033,165],{"class":161},[155,2035,1252],{"class":168},[155,2037,165],{"class":161},[155,2039,174],{"class":161},[155,2041,165],{"class":161},[155,2043,268],{"class":179},[155,2045,165],{"class":161},[155,2047,185],{"class":161},[155,2049,165],{"class":161},[155,2051,1269],{"class":168},[155,2053,165],{"class":161},[155,2055,174],{"class":161},[155,2057,165],{"class":161},[155,2059,2060],{"class":179},"Create Downtime table",[155,2062,165],{"class":161},[155,2064,185],{"class":161},[155,2066,165],{"class":161},[155,2068,1287],{"class":168},[155,2070,165],{"class":161},[155,2072,174],{"class":161},[155,2074,165],{"class":161},[155,2076,1296],{"class":179},[155,2078,165],{"class":161},[155,2080,185],{"class":161},[155,2082,165],{"class":161},[155,2084,1305],{"class":168},[155,2086,165],{"class":161},[155,2088,174],{"class":161},[155,2090,165],{"class":161},[155,2092,1314],{"class":179},[155,2094,165],{"class":161},[155,2096,185],{"class":161},[155,2098,165],{"class":161},[155,2100,1323],{"class":168},[155,2102,165],{"class":161},[155,2104,174],{"class":161},[155,2106,165],{"class":161},[155,2108,1332],{"class":179},[155,2110,165],{"class":161},[155,2112,185],{"class":161},[155,2114,165],{"class":161},[155,2116,1341],{"class":168},[155,2118,165],{"class":161},[155,2120,174],{"class":161},[155,2122,165],{"class":161},[155,2124,1350],{"class":179},[155,2126,165],{"class":161},[155,2128,185],{"class":161},[155,2130,165],{"class":161},[155,2132,1227],{"class":168},[155,2134,165],{"class":161},[155,2136,174],{"class":161},[155,2138,165],{"class":161},[155,2140,2141],{"class":179},"CREATE TABLE IF NOT EXISTS DowntimeData (",[155,2143,1371],{"class":1370},[155,2145,1374],{"class":179},[155,2147,1371],{"class":1370},[155,2149,1379],{"class":179},[155,2151,1371],{"class":1370},[155,2153,1384],{"class":179},[155,2155,1371],{"class":1370},[155,2157,1389],{"class":179},[155,2159,1371],{"class":1370},[155,2161,1394],{"class":179},[155,2163,1371],{"class":1370},[155,2165,1399],{"class":179},[155,2167,1371],{"class":1370},[155,2169,2170],{"class":179},"    downtime_start DATETIME NOT NULL,",[155,2172,1371],{"class":1370},[155,2174,2175],{"class":179},"    downtime_end DATETIME NOT NULL,",[155,2177,1371],{"class":1370},[155,2179,2180],{"class":179},"    downtime_duration_minutes INTEGER NOT NULL,",[155,2182,1371],{"class":1370},[155,2184,2185],{"class":179},"    downtime_type VARCHAR(50) NOT NULL CHECK (downtime_type IN ('Planned', 'Unplanned')),",[155,2187,1371],{"class":1370},[155,2189,2190],{"class":179},"    downtime_reason TEXT NOT NULL",[155,2192,1371],{"class":1370},[155,2194,1444],{"class":179},[155,2196,1371],{"class":1370},[155,2198,165],{"class":161},[155,2200,185],{"class":161},[155,2202,165],{"class":161},[155,2204,1455],{"class":168},[155,2206,165],{"class":161},[155,2208,174],{"class":161},[155,2210,165],{"class":161},[155,2212,1464],{"class":179},[155,2214,165],{"class":161},[155,2216,185],{"class":161},[155,2218,165],{"class":161},[155,2220,523],{"class":168},[155,2222,165],{"class":161},[155,2224,174],{"class":161},[155,2226,2227],{"class":530},"440",[155,2229,185],{"class":161},[155,2231,165],{"class":161},[155,2233,538],{"class":168},[155,2235,165],{"class":161},[155,2237,174],{"class":161},[155,2239,2240],{"class":530},"240",[155,2242,185],{"class":161},[155,2244,165],{"class":161},[155,2246,1499],{"class":168},[155,2248,165],{"class":161},[155,2250,1504],{"class":161},[155,2252,165],{"class":161},[155,2254,486],{"class":179},[155,2256,165],{"class":161},[155,2258,1513],{"class":161},[155,2260,165],{"class":161},[155,2262,169],{"class":168},[155,2264,165],{"class":161},[155,2266,174],{"class":161},[155,2268,165],{"class":161},[155,2270,504],{"class":179},[155,2272,165],{"class":161},[155,2274,185],{"class":161},[155,2276,165],{"class":161},[155,2278,190],{"class":168},[155,2280,165],{"class":161},[155,2282,174],{"class":161},[155,2284,165],{"class":161},[155,2286,1542],{"class":179},[155,2288,165],{"class":161},[155,2290,185],{"class":161},[155,2292,165],{"class":161},[155,2294,294],{"class":168},[155,2296,165],{"class":161},[155,2298,174],{"class":161},[155,2300,165],{"class":161},[155,2302,180],{"class":179},[155,2304,165],{"class":161},[155,2306,185],{"class":161},[155,2308,165],{"class":161},[155,2310,1252],{"class":168},[155,2312,165],{"class":161},[155,2314,174],{"class":161},[155,2316,165],{"class":161},[155,2318,268],{"class":179},[155,2320,165],{"class":161},[155,2322,185],{"class":161},[155,2324,165],{"class":161},[155,2326,1269],{"class":168},[155,2328,165],{"class":161},[155,2330,174],{"class":161},[155,2332,243],{"class":161},[155,2334,185],{"class":161},[155,2336,165],{"class":161},[155,2338,1595],{"class":168},[155,2340,165],{"class":161},[155,2342,1600],{"class":161},[155,2344,165],{"class":161},[155,2346,12],{"class":321},[155,2348,165],{"class":161},[155,2350,174],{"class":161},[155,2352,165],{"class":161},[155,2354,1613],{"class":179},[155,2356,165],{"class":161},[155,2358,576],{"class":161},[155,2360,165],{"class":161},[155,2362,12],{"class":321},[155,2364,165],{"class":161},[155,2366,174],{"class":161},[155,2368,165],{"class":161},[155,2370,1296],{"class":179},[155,2372,165],{"class":161},[155,2374,185],{"class":161},[155,2376,165],{"class":161},[155,2378,1638],{"class":321},[155,2380,165],{"class":161},[155,2382,174],{"class":161},[155,2384,165],{"class":161},[155,2386,1464],{"class":179},[155,2388,165],{"class":161},[155,2390,1651],{"class":161},[155,2392,165],{"class":161},[155,2394,1656],{"class":168},[155,2396,165],{"class":161},[155,2398,174],{"class":161},[155,2400,243],{"class":161},[155,2402,185],{"class":161},[155,2404,165],{"class":161},[155,2406,1669],{"class":168},[155,2408,165],{"class":161},[155,2410,174],{"class":161},[155,2412,243],{"class":161},[155,2414,185],{"class":161},[155,2416,165],{"class":161},[155,2418,1682],{"class":168},[155,2420,165],{"class":161},[155,2422,398],{"class":161},[155,2424,165],{"class":161},[155,2426,1691],{"class":168},[155,2428,165],{"class":161},[155,2430,174],{"class":161},[155,2432,1698],{"class":530},[155,2434,185],{"class":161},[155,2436,165],{"class":161},[155,2438,1296],{"class":168},[155,2440,165],{"class":161},[155,2442,174],{"class":161},[155,2444,243],{"class":161},[155,2446,185],{"class":161},[155,2448,165],{"class":161},[155,2450,1613],{"class":168},[155,2452,165],{"class":161},[155,2454,174],{"class":161},[155,2456,243],{"class":161},[155,2458,185],{"class":161},[155,2460,165],{"class":161},[155,2462,1729],{"class":168},[155,2464,165],{"class":161},[155,2466,174],{"class":161},[155,2468,165],{"class":161},[155,2470,1738],{"class":179},[155,2472,165],{"class":161},[155,2474,185],{"class":161},[155,2476,165],{"class":161},[155,2478,523],{"class":168},[155,2480,165],{"class":161},[155,2482,174],{"class":161},[155,2484,1753],{"class":530},[155,2486,185],{"class":161},[155,2488,165],{"class":161},[155,2490,538],{"class":168},[155,2492,165],{"class":161},[155,2494,174],{"class":161},[155,2496,2240],{"class":530},[155,2498,185],{"class":161},[155,2500,165],{"class":161},[155,2502,1499],{"class":168},[155,2504,165],{"class":161},[155,2506,1504],{"class":161},[155,2508,165],{"class":161},[155,2510,495],{"class":179},[155,2512,165],{"class":161},[155,2514,1513],{"class":161},[155,2516,165],{"class":161},[155,2518,169],{"class":168},[155,2520,165],{"class":161},[155,2522,174],{"class":161},[155,2524,165],{"class":161},[155,2526,513],{"class":179},[155,2528,165],{"class":161},[155,2530,185],{"class":161},[155,2532,165],{"class":161},[155,2534,190],{"class":168},[155,2536,165],{"class":161},[155,2538,174],{"class":161},[155,2540,165],{"class":161},[155,2542,1812],{"class":179},[155,2544,165],{"class":161},[155,2546,185],{"class":161},[155,2548,165],{"class":161},[155,2550,294],{"class":168},[155,2552,165],{"class":161},[155,2554,174],{"class":161},[155,2556,165],{"class":161},[155,2558,180],{"class":179},[155,2560,165],{"class":161},[155,2562,185],{"class":161},[155,2564,165],{"class":161},[155,2566,1252],{"class":168},[155,2568,165],{"class":161},[155,2570,174],{"class":161},[155,2572,165],{"class":161},[155,2574,268],{"class":179},[155,2576,165],{"class":161},[155,2578,185],{"class":161},[155,2580,165],{"class":161},[155,2582,1269],{"class":168},[155,2584,165],{"class":161},[155,2586,174],{"class":161},[155,2588,165],{"class":161},[155,2590,2591],{"class":179},"debug 2",[155,2593,165],{"class":161},[155,2595,185],{"class":161},[155,2597,165],{"class":161},[155,2599,1870],{"class":168},[155,2601,165],{"class":161},[155,2603,231],{"class":161},[155,2605,165],{"class":161},[155,2607,1879],{"class":168},[155,2609,165],{"class":161},[155,2611,398],{"class":161},[155,2613,165],{"class":161},[155,2615,1888],{"class":168},[155,2617,165],{"class":161},[155,2619,231],{"class":161},[155,2621,165],{"class":161},[155,2623,1897],{"class":168},[155,2625,165],{"class":161},[155,2627,231],{"class":161},[155,2629,165],{"class":161},[155,2631,1906],{"class":168},[155,2633,165],{"class":161},[155,2635,174],{"class":161},[155,2637,165],{"class":161},[155,2639,1915],{"class":179},[155,2641,165],{"class":161},[155,2643,185],{"class":161},[155,2645,165],{"class":161},[155,2647,1924],{"class":168},[155,2649,165],{"class":161},[155,2651,174],{"class":161},[155,2653,243],{"class":161},[155,2655,185],{"class":161},[155,2657,165],{"class":161},[155,2659,1937],{"class":168},[155,2661,165],{"class":161},[155,2663,174],{"class":161},[155,2665,165],{"class":161},[155,2667,1946],{"class":179},[155,2669,165],{"class":161},[155,2671,185],{"class":161},[155,2673,165],{"class":161},[155,2675,523],{"class":168},[155,2677,165],{"class":161},[155,2679,174],{"class":161},[155,2681,1961],{"class":530},[155,2683,185],{"class":161},[155,2685,165],{"class":161},[155,2687,538],{"class":168},[155,2689,165],{"class":161},[155,2691,174],{"class":161},[155,2693,2240],{"class":530},[155,2695,185],{"class":161},[155,2697,165],{"class":161},[155,2699,1499],{"class":168},[155,2701,165],{"class":161},[155,2703,255],{"class":161},[155,2705,165],{"class":161},[155,2707,169],{"class":168},[155,2709,165],{"class":161},[155,2711,174],{"class":161},[155,2713,165],{"class":161},[155,2715,759],{"class":179},[155,2717,165],{"class":161},[155,2719,185],{"class":161},[155,2721,165],{"class":161},[155,2723,190],{"class":168},[155,2725,165],{"class":161},[155,2727,174],{"class":161},[155,2729,165],{"class":161},[155,2731,1227],{"class":179},[155,2733,165],{"class":161},[155,2735,185],{"class":161},[155,2737,165],{"class":161},[155,2739,294],{"class":168},[155,2741,165],{"class":161},[155,2743,174],{"class":161},[155,2745,165],{"class":161},[155,2747,180],{"class":179},[155,2749,165],{"class":161},[155,2751,185],{"class":161},[155,2753,165],{"class":161},[155,2755,1252],{"class":168},[155,2757,165],{"class":161},[155,2759,174],{"class":161},[155,2761,165],{"class":161},[155,2763,589],{"class":179},[155,2765,165],{"class":161},[155,2767,185],{"class":161},[155,2769,165],{"class":161},[155,2771,1269],{"class":168},[155,2773,165],{"class":161},[155,2775,174],{"class":161},[155,2777,165],{"class":161},[155,2779,2780],{"class":179},"Insert production data record",[155,2782,165],{"class":161},[155,2784,185],{"class":161},[155,2786,165],{"class":161},[155,2788,1287],{"class":168},[155,2790,165],{"class":161},[155,2792,174],{"class":161},[155,2794,165],{"class":161},[155,2796,1296],{"class":179},[155,2798,165],{"class":161},[155,2800,185],{"class":161},[155,2802,165],{"class":161},[155,2804,1305],{"class":168},[155,2806,165],{"class":161},[155,2808,174],{"class":161},[155,2810,165],{"class":161},[155,2812,1314],{"class":179},[155,2814,165],{"class":161},[155,2816,185],{"class":161},[155,2818,165],{"class":161},[155,2820,1323],{"class":168},[155,2822,165],{"class":161},[155,2824,174],{"class":161},[155,2826,165],{"class":161},[155,2828,2829],{"class":179},"handlebars",[155,2831,165],{"class":161},[155,2833,185],{"class":161},[155,2835,165],{"class":161},[155,2837,1341],{"class":168},[155,2839,165],{"class":161},[155,2841,174],{"class":161},[155,2843,165],{"class":161},[155,2845,1350],{"class":179},[155,2847,165],{"class":161},[155,2849,185],{"class":161},[155,2851,165],{"class":161},[155,2853,1227],{"class":168},[155,2855,165],{"class":161},[155,2857,174],{"class":161},[155,2859,165],{"class":161},[155,2861,2862],{"class":179},"INSERT INTO ProductionData (",[155,2864,1371],{"class":1370},[155,2866,2867],{"class":179},"    timestamp, ",[155,2869,1371],{"class":1370},[155,2871,2872],{"class":179},"    area, ",[155,2874,1371],{"class":1370},[155,2876,2877],{"class":179},"    line, ",[155,2879,1371],{"class":1370},[155,2881,2882],{"class":179},"    machine_name, ",[155,2884,1371],{"class":1370},[155,2886,2887],{"class":179},"    shift, ",[155,2889,1371],{"class":1370},[155,2891,2892],{"class":179},"    shift_duration, ",[155,2894,1371],{"class":1370},[155,2896,2897],{"class":179},"    good_units, ",[155,2899,1371],{"class":1370},[155,2901,2902],{"class":179},"    defect_units, ",[155,2904,1371],{"class":1370},[155,2906,2907],{"class":179},"    total_produced_units, ",[155,2909,1371],{"class":1370},[155,2911,2912],{"class":179},"    cycle_time, ",[155,2914,1371],{"class":1370},[155,2916,2917],{"class":179},"    ideal_cycle_time,  ",[155,2919,1371],{"class":1370},[155,2921,2922],{"class":179},"    target_output,",[155,2924,1371],{"class":1370},[155,2926,2927],{"class":179},"    operating_time  ",[155,2929,1371],{"class":1370},[155,2931,2932],{"class":179},") ",[155,2934,1371],{"class":1370},[155,2936,2937],{"class":179},"VALUES (",[155,2939,1371],{"class":1370},[155,2941,2942],{"class":179},"    '{{payload.timestamp}}', ",[155,2944,1371],{"class":1370},[155,2946,2947],{"class":179},"    '{{payload.area}}', ",[155,2949,1371],{"class":1370},[155,2951,2952],{"class":179},"    '{{payload.line}}', ",[155,2954,1371],{"class":1370},[155,2956,2957],{"class":179},"    '{{payload.machine_name}}', ",[155,2959,1371],{"class":1370},[155,2961,2962],{"class":179},"    '{{payload.shift}}', ",[155,2964,1371],{"class":1370},[155,2966,2967],{"class":179},"    '{{payload.shift_duration}}',  ",[155,2969,1371],{"class":1370},[155,2971,2972],{"class":179},"    '{{payload.good_units}}',  ",[155,2974,1371],{"class":1370},[155,2976,2977],{"class":179},"    '{{payload.defect_units}}',  ",[155,2979,1371],{"class":1370},[155,2981,2982],{"class":179},"    '{{payload.total_produced_units}}',  ",[155,2984,1371],{"class":1370},[155,2986,2987],{"class":179},"    '{{payload.cycle_time}}',  ",[155,2989,1371],{"class":1370},[155,2991,2992],{"class":179},"    '{{payload.ideal_cycle_time}}',  ",[155,2994,1371],{"class":1370},[155,2996,2997],{"class":179},"    '{{payload.target_output}}',  ",[155,2999,1371],{"class":1370},[155,3001,3002],{"class":179},"    '{{payload.operating_time}}'  ",[155,3004,1371],{"class":1370},[155,3006,1444],{"class":179},[155,3008,1371],{"class":1370},[155,3010,165],{"class":161},[155,3012,185],{"class":161},[155,3014,165],{"class":161},[155,3016,1455],{"class":168},[155,3018,165],{"class":161},[155,3020,174],{"class":161},[155,3022,165],{"class":161},[155,3024,1464],{"class":179},[155,3026,165],{"class":161},[155,3028,185],{"class":161},[155,3030,165],{"class":161},[155,3032,523],{"class":168},[155,3034,165],{"class":161},[155,3036,174],{"class":161},[155,3038,3039],{"class":530},"1550",[155,3041,185],{"class":161},[155,3043,165],{"class":161},[155,3045,538],{"class":168},[155,3047,165],{"class":161},[155,3049,174],{"class":161},[155,3051,3052],{"class":530},"340",[155,3054,185],{"class":161},[155,3056,165],{"class":161},[155,3058,1499],{"class":168},[155,3060,165],{"class":161},[155,3062,1504],{"class":161},[155,3064,165],{"class":161},[155,3066,750],{"class":179},[155,3068,165],{"class":161},[155,3070,1513],{"class":161},[155,3072,165],{"class":161},[155,3074,169],{"class":168},[155,3076,165],{"class":161},[155,3078,174],{"class":161},[155,3080,165],{"class":161},[155,3082,768],{"class":179},[155,3084,165],{"class":161},[155,3086,185],{"class":161},[155,3088,165],{"class":161},[155,3090,190],{"class":168},[155,3092,165],{"class":161},[155,3094,174],{"class":161},[155,3096,165],{"class":161},[155,3098,1812],{"class":179},[155,3100,165],{"class":161},[155,3102,185],{"class":161},[155,3104,165],{"class":161},[155,3106,294],{"class":168},[155,3108,165],{"class":161},[155,3110,174],{"class":161},[155,3112,165],{"class":161},[155,3114,180],{"class":179},[155,3116,165],{"class":161},[155,3118,185],{"class":161},[155,3120,165],{"class":161},[155,3122,1252],{"class":168},[155,3124,165],{"class":161},[155,3126,174],{"class":161},[155,3128,165],{"class":161},[155,3130,589],{"class":179},[155,3132,165],{"class":161},[155,3134,185],{"class":161},[155,3136,165],{"class":161},[155,3138,1269],{"class":168},[155,3140,165],{"class":161},[155,3142,174],{"class":161},[155,3144,165],{"class":161},[155,3146,3147],{"class":179},"debug 3",[155,3149,165],{"class":161},[155,3151,185],{"class":161},[155,3153,165],{"class":161},[155,3155,1870],{"class":168},[155,3157,165],{"class":161},[155,3159,231],{"class":161},[155,3161,165],{"class":161},[155,3163,1879],{"class":168},[155,3165,165],{"class":161},[155,3167,398],{"class":161},[155,3169,165],{"class":161},[155,3171,1888],{"class":168},[155,3173,165],{"class":161},[155,3175,231],{"class":161},[155,3177,165],{"class":161},[155,3179,1897],{"class":168},[155,3181,165],{"class":161},[155,3183,231],{"class":161},[155,3185,165],{"class":161},[155,3187,1906],{"class":168},[155,3189,165],{"class":161},[155,3191,174],{"class":161},[155,3193,165],{"class":161},[155,3195,1915],{"class":179},[155,3197,165],{"class":161},[155,3199,185],{"class":161},[155,3201,165],{"class":161},[155,3203,1924],{"class":168},[155,3205,165],{"class":161},[155,3207,174],{"class":161},[155,3209,243],{"class":161},[155,3211,185],{"class":161},[155,3213,165],{"class":161},[155,3215,1937],{"class":168},[155,3217,165],{"class":161},[155,3219,174],{"class":161},[155,3221,165],{"class":161},[155,3223,1946],{"class":179},[155,3225,165],{"class":161},[155,3227,185],{"class":161},[155,3229,165],{"class":161},[155,3231,523],{"class":168},[155,3233,165],{"class":161},[155,3235,174],{"class":161},[155,3237,3238],{"class":530},"1970",[155,3240,185],{"class":161},[155,3242,165],{"class":161},[155,3244,538],{"class":168},[155,3246,165],{"class":161},[155,3248,174],{"class":161},[155,3250,3052],{"class":530},[155,3252,185],{"class":161},[155,3254,165],{"class":161},[155,3256,1499],{"class":168},[155,3258,165],{"class":161},[155,3260,255],{"class":161},[155,3262,165],{"class":161},[155,3264,169],{"class":168},[155,3266,165],{"class":161},[155,3268,174],{"class":161},[155,3270,165],{"class":161},[155,3272,1088],{"class":179},[155,3274,165],{"class":161},[155,3276,185],{"class":161},[155,3278,165],{"class":161},[155,3280,190],{"class":168},[155,3282,165],{"class":161},[155,3284,174],{"class":161},[155,3286,165],{"class":161},[155,3288,1227],{"class":179},[155,3290,165],{"class":161},[155,3292,185],{"class":161},[155,3294,165],{"class":161},[155,3296,294],{"class":168},[155,3298,165],{"class":161},[155,3300,174],{"class":161},[155,3302,165],{"class":161},[155,3304,180],{"class":179},[155,3306,165],{"class":161},[155,3308,185],{"class":161},[155,3310,165],{"class":161},[155,3312,1252],{"class":168},[155,3314,165],{"class":161},[155,3316,174],{"class":161},[155,3318,165],{"class":161},[155,3320,918],{"class":179},[155,3322,165],{"class":161},[155,3324,185],{"class":161},[155,3326,165],{"class":161},[155,3328,1269],{"class":168},[155,3330,165],{"class":161},[155,3332,174],{"class":161},[155,3334,165],{"class":161},[155,3336,3337],{"class":179},"Drop demo downtime data",[155,3339,165],{"class":161},[155,3341,185],{"class":161},[155,3343,165],{"class":161},[155,3345,1287],{"class":168},[155,3347,165],{"class":161},[155,3349,174],{"class":161},[155,3351,165],{"class":161},[155,3353,1296],{"class":179},[155,3355,165],{"class":161},[155,3357,185],{"class":161},[155,3359,165],{"class":161},[155,3361,1305],{"class":168},[155,3363,165],{"class":161},[155,3365,174],{"class":161},[155,3367,165],{"class":161},[155,3369,1314],{"class":179},[155,3371,165],{"class":161},[155,3373,185],{"class":161},[155,3375,165],{"class":161},[155,3377,1323],{"class":168},[155,3379,165],{"class":161},[155,3381,174],{"class":161},[155,3383,165],{"class":161},[155,3385,1332],{"class":179},[155,3387,165],{"class":161},[155,3389,185],{"class":161},[155,3391,165],{"class":161},[155,3393,1341],{"class":168},[155,3395,165],{"class":161},[155,3397,174],{"class":161},[155,3399,165],{"class":161},[155,3401,1350],{"class":179},[155,3403,165],{"class":161},[155,3405,185],{"class":161},[155,3407,165],{"class":161},[155,3409,1227],{"class":168},[155,3411,165],{"class":161},[155,3413,174],{"class":161},[155,3415,165],{"class":161},[155,3417,3418],{"class":179},"Drop table DowntimeData;",[155,3420,165],{"class":161},[155,3422,185],{"class":161},[155,3424,165],{"class":161},[155,3426,1455],{"class":168},[155,3428,165],{"class":161},[155,3430,174],{"class":161},[155,3432,165],{"class":161},[155,3434,1464],{"class":179},[155,3436,165],{"class":161},[155,3438,185],{"class":161},[155,3440,165],{"class":161},[155,3442,523],{"class":168},[155,3444,165],{"class":161},[155,3446,174],{"class":161},[155,3448,3449],{"class":530},"480",[155,3451,185],{"class":161},[155,3453,165],{"class":161},[155,3455,538],{"class":168},[155,3457,165],{"class":161},[155,3459,174],{"class":161},[155,3461,3462],{"class":530},"580",[155,3464,185],{"class":161},[155,3466,165],{"class":161},[155,3468,1499],{"class":168},[155,3470,165],{"class":161},[155,3472,1504],{"class":161},[155,3474,165],{"class":161},[155,3476,1079],{"class":179},[155,3478,165],{"class":161},[155,3480,1513],{"class":161},[155,3482,165],{"class":161},[155,3484,169],{"class":168},[155,3486,165],{"class":161},[155,3488,174],{"class":161},[155,3490,165],{"class":161},[155,3492,1097],{"class":179},[155,3494,165],{"class":161},[155,3496,185],{"class":161},[155,3498,165],{"class":161},[155,3500,190],{"class":168},[155,3502,165],{"class":161},[155,3504,174],{"class":161},[155,3506,165],{"class":161},[155,3508,1542],{"class":179},[155,3510,165],{"class":161},[155,3512,185],{"class":161},[155,3514,165],{"class":161},[155,3516,294],{"class":168},[155,3518,165],{"class":161},[155,3520,174],{"class":161},[155,3522,165],{"class":161},[155,3524,180],{"class":179},[155,3526,165],{"class":161},[155,3528,185],{"class":161},[155,3530,165],{"class":161},[155,3532,1252],{"class":168},[155,3534,165],{"class":161},[155,3536,174],{"class":161},[155,3538,165],{"class":161},[155,3540,918],{"class":179},[155,3542,165],{"class":161},[155,3544,185],{"class":161},[155,3546,165],{"class":161},[155,3548,1269],{"class":168},[155,3550,165],{"class":161},[155,3552,174],{"class":161},[155,3554,243],{"class":161},[155,3556,185],{"class":161},[155,3558,165],{"class":161},[155,3560,1595],{"class":168},[155,3562,165],{"class":161},[155,3564,1600],{"class":161},[155,3566,165],{"class":161},[155,3568,12],{"class":321},[155,3570,165],{"class":161},[155,3572,174],{"class":161},[155,3574,165],{"class":161},[155,3576,1613],{"class":179},[155,3578,165],{"class":161},[155,3580,576],{"class":161},[155,3582,165],{"class":161},[155,3584,12],{"class":321},[155,3586,165],{"class":161},[155,3588,174],{"class":161},[155,3590,165],{"class":161},[155,3592,1296],{"class":179},[155,3594,165],{"class":161},[155,3596,185],{"class":161},[155,3598,165],{"class":161},[155,3600,1638],{"class":321},[155,3602,165],{"class":161},[155,3604,174],{"class":161},[155,3606,165],{"class":161},[155,3608,1464],{"class":179},[155,3610,165],{"class":161},[155,3612,1651],{"class":161},[155,3614,165],{"class":161},[155,3616,1656],{"class":168},[155,3618,165],{"class":161},[155,3620,174],{"class":161},[155,3622,243],{"class":161},[155,3624,185],{"class":161},[155,3626,165],{"class":161},[155,3628,1669],{"class":168},[155,3630,165],{"class":161},[155,3632,174],{"class":161},[155,3634,243],{"class":161},[155,3636,185],{"class":161},[155,3638,165],{"class":161},[155,3640,1682],{"class":168},[155,3642,165],{"class":161},[155,3644,231],{"class":161},[155,3646,165],{"class":161},[155,3648,1691],{"class":168},[155,3650,165],{"class":161},[155,3652,174],{"class":161},[155,3654,1698],{"class":530},[155,3656,185],{"class":161},[155,3658,165],{"class":161},[155,3660,1296],{"class":168},[155,3662,165],{"class":161},[155,3664,174],{"class":161},[155,3666,243],{"class":161},[155,3668,185],{"class":161},[155,3670,165],{"class":161},[155,3672,1613],{"class":168},[155,3674,165],{"class":161},[155,3676,174],{"class":161},[155,3678,243],{"class":161},[155,3680,185],{"class":161},[155,3682,165],{"class":161},[155,3684,1729],{"class":168},[155,3686,165],{"class":161},[155,3688,174],{"class":161},[155,3690,165],{"class":161},[155,3692,1738],{"class":179},[155,3694,165],{"class":161},[155,3696,185],{"class":161},[155,3698,165],{"class":161},[155,3700,523],{"class":168},[155,3702,165],{"class":161},[155,3704,174],{"class":161},[155,3706,1753],{"class":530},[155,3708,185],{"class":161},[155,3710,165],{"class":161},[155,3712,538],{"class":168},[155,3714,165],{"class":161},[155,3716,174],{"class":161},[155,3718,3462],{"class":530},[155,3720,185],{"class":161},[155,3722,165],{"class":161},[155,3724,1499],{"class":168},[155,3726,165],{"class":161},[155,3728,1504],{"class":161},[155,3730,165],{"class":161},[155,3732,1088],{"class":179},[155,3734,165],{"class":161},[155,3736,1513],{"class":161},[155,3738,165],{"class":161},[155,3740,169],{"class":168},[155,3742,165],{"class":161},[155,3744,174],{"class":161},[155,3746,165],{"class":161},[155,3748,1106],{"class":179},[155,3750,165],{"class":161},[155,3752,185],{"class":161},[155,3754,165],{"class":161},[155,3756,190],{"class":168},[155,3758,165],{"class":161},[155,3760,174],{"class":161},[155,3762,165],{"class":161},[155,3764,1812],{"class":179},[155,3766,165],{"class":161},[155,3768,185],{"class":161},[155,3770,165],{"class":161},[155,3772,294],{"class":168},[155,3774,165],{"class":161},[155,3776,174],{"class":161},[155,3778,165],{"class":161},[155,3780,180],{"class":179},[155,3782,165],{"class":161},[155,3784,185],{"class":161},[155,3786,165],{"class":161},[155,3788,1252],{"class":168},[155,3790,165],{"class":161},[155,3792,174],{"class":161},[155,3794,165],{"class":161},[155,3796,918],{"class":179},[155,3798,165],{"class":161},[155,3800,185],{"class":161},[155,3802,165],{"class":161},[155,3804,1269],{"class":168},[155,3806,165],{"class":161},[155,3808,174],{"class":161},[155,3810,165],{"class":161},[155,3812,3813],{"class":179},"debug 5",[155,3815,165],{"class":161},[155,3817,185],{"class":161},[155,3819,165],{"class":161},[155,3821,1870],{"class":168},[155,3823,165],{"class":161},[155,3825,231],{"class":161},[155,3827,165],{"class":161},[155,3829,1879],{"class":168},[155,3831,165],{"class":161},[155,3833,398],{"class":161},[155,3835,165],{"class":161},[155,3837,1888],{"class":168},[155,3839,165],{"class":161},[155,3841,231],{"class":161},[155,3843,165],{"class":161},[155,3845,1897],{"class":168},[155,3847,165],{"class":161},[155,3849,231],{"class":161},[155,3851,165],{"class":161},[155,3853,1906],{"class":168},[155,3855,165],{"class":161},[155,3857,174],{"class":161},[155,3859,165],{"class":161},[155,3861,1915],{"class":179},[155,3863,165],{"class":161},[155,3865,185],{"class":161},[155,3867,165],{"class":161},[155,3869,1924],{"class":168},[155,3871,165],{"class":161},[155,3873,174],{"class":161},[155,3875,243],{"class":161},[155,3877,185],{"class":161},[155,3879,165],{"class":161},[155,3881,1937],{"class":168},[155,3883,165],{"class":161},[155,3885,174],{"class":161},[155,3887,165],{"class":161},[155,3889,1946],{"class":179},[155,3891,165],{"class":161},[155,3893,185],{"class":161},[155,3895,165],{"class":161},[155,3897,523],{"class":168},[155,3899,165],{"class":161},[155,3901,174],{"class":161},[155,3903,3904],{"class":530},"1120",[155,3906,185],{"class":161},[155,3908,165],{"class":161},[155,3910,538],{"class":168},[155,3912,165],{"class":161},[155,3914,174],{"class":161},[155,3916,3462],{"class":530},[155,3918,185],{"class":161},[155,3920,165],{"class":161},[155,3922,1499],{"class":168},[155,3924,165],{"class":161},[155,3926,255],{"class":161},[155,3928,165],{"class":161},[155,3930,169],{"class":168},[155,3932,165],{"class":161},[155,3934,174],{"class":161},[155,3936,165],{"class":161},[155,3938,777],{"class":179},[155,3940,165],{"class":161},[155,3942,185],{"class":161},[155,3944,165],{"class":161},[155,3946,190],{"class":168},[155,3948,165],{"class":161},[155,3950,174],{"class":161},[155,3952,165],{"class":161},[155,3954,1542],{"class":179},[155,3956,165],{"class":161},[155,3958,185],{"class":161},[155,3960,165],{"class":161},[155,3962,294],{"class":168},[155,3964,165],{"class":161},[155,3966,174],{"class":161},[155,3968,165],{"class":161},[155,3970,180],{"class":179},[155,3972,165],{"class":161},[155,3974,185],{"class":161},[155,3976,165],{"class":161},[155,3978,1252],{"class":168},[155,3980,165],{"class":161},[155,3982,174],{"class":161},[155,3984,165],{"class":161},[155,3986,589],{"class":179},[155,3988,165],{"class":161},[155,3990,185],{"class":161},[155,3992,165],{"class":161},[155,3994,1269],{"class":168},[155,3996,165],{"class":161},[155,3998,174],{"class":161},[155,4000,165],{"class":161},[155,4002,4003],{"class":179},"Click to generate and insert demo data.",[155,4005,165],{"class":161},[155,4007,185],{"class":161},[155,4009,165],{"class":161},[155,4011,1595],{"class":168},[155,4013,165],{"class":161},[155,4015,1600],{"class":161},[155,4017,165],{"class":161},[155,4019,12],{"class":321},[155,4021,165],{"class":161},[155,4023,174],{"class":161},[155,4025,165],{"class":161},[155,4027,1613],{"class":179},[155,4029,165],{"class":161},[155,4031,576],{"class":161},[155,4033,165],{"class":161},[155,4035,12],{"class":321},[155,4037,165],{"class":161},[155,4039,174],{"class":161},[155,4041,165],{"class":161},[155,4043,1296],{"class":179},[155,4045,165],{"class":161},[155,4047,185],{"class":161},[155,4049,165],{"class":161},[155,4051,1638],{"class":321},[155,4053,165],{"class":161},[155,4055,174],{"class":161},[155,4057,165],{"class":161},[155,4059,1464],{"class":179},[155,4061,165],{"class":161},[155,4063,1651],{"class":161},[155,4065,165],{"class":161},[155,4067,1656],{"class":168},[155,4069,165],{"class":161},[155,4071,174],{"class":161},[155,4073,243],{"class":161},[155,4075,185],{"class":161},[155,4077,165],{"class":161},[155,4079,1669],{"class":168},[155,4081,165],{"class":161},[155,4083,174],{"class":161},[155,4085,243],{"class":161},[155,4087,185],{"class":161},[155,4089,165],{"class":161},[155,4091,1682],{"class":168},[155,4093,165],{"class":161},[155,4095,231],{"class":161},[155,4097,165],{"class":161},[155,4099,1691],{"class":168},[155,4101,165],{"class":161},[155,4103,174],{"class":161},[155,4105,165],{"class":161},[155,4107,385],{"class":179},[155,4109,165],{"class":161},[155,4111,185],{"class":161},[155,4113,165],{"class":161},[155,4115,1296],{"class":168},[155,4117,165],{"class":161},[155,4119,174],{"class":161},[155,4121,243],{"class":161},[155,4123,185],{"class":161},[155,4125,165],{"class":161},[155,4127,1613],{"class":168},[155,4129,165],{"class":161},[155,4131,174],{"class":161},[155,4133,243],{"class":161},[155,4135,185],{"class":161},[155,4137,165],{"class":161},[155,4139,1729],{"class":168},[155,4141,165],{"class":161},[155,4143,174],{"class":161},[155,4145,165],{"class":161},[155,4147,1738],{"class":179},[155,4149,165],{"class":161},[155,4151,185],{"class":161},[155,4153,165],{"class":161},[155,4155,523],{"class":168},[155,4157,165],{"class":161},[155,4159,174],{"class":161},[155,4161,4162],{"class":530},"230",[155,4164,185],{"class":161},[155,4166,165],{"class":161},[155,4168,538],{"class":168},[155,4170,165],{"class":161},[155,4172,174],{"class":161},[155,4174,4175],{"class":530},"380",[155,4177,185],{"class":161},[155,4179,165],{"class":161},[155,4181,1499],{"class":168},[155,4183,165],{"class":161},[155,4185,1504],{"class":161},[155,4187,165],{"class":161},[155,4189,786],{"class":179},[155,4191,165],{"class":161},[155,4193,1513],{"class":161},[155,4195,165],{"class":161},[155,4197,169],{"class":168},[155,4199,165],{"class":161},[155,4201,174],{"class":161},[155,4203,165],{"class":161},[155,4205,786],{"class":179},[155,4207,165],{"class":161},[155,4209,185],{"class":161},[155,4211,165],{"class":161},[155,4213,190],{"class":168},[155,4215,165],{"class":161},[155,4217,174],{"class":161},[155,4219,165],{"class":161},[155,4221,4222],{"class":179},"function",[155,4224,165],{"class":161},[155,4226,185],{"class":161},[155,4228,165],{"class":161},[155,4230,294],{"class":168},[155,4232,165],{"class":161},[155,4234,174],{"class":161},[155,4236,165],{"class":161},[155,4238,180],{"class":179},[155,4240,165],{"class":161},[155,4242,185],{"class":161},[155,4244,165],{"class":161},[155,4246,1252],{"class":168},[155,4248,165],{"class":161},[155,4250,174],{"class":161},[155,4252,165],{"class":161},[155,4254,589],{"class":179},[155,4256,165],{"class":161},[155,4258,185],{"class":161},[155,4260,165],{"class":161},[155,4262,1269],{"class":168},[155,4264,165],{"class":161},[155,4266,174],{"class":161},[155,4268,165],{"class":161},[155,4270,4271],{"class":179},"Generate simulated production and downtime data",[155,4273,165],{"class":161},[155,4275,185],{"class":161},[155,4277,165],{"class":161},[155,4279,4280],{"class":168},"func",[155,4282,165],{"class":161},[155,4284,174],{"class":161},[155,4286,165],{"class":161},[155,4288,4289],{"class":179},"function generateProductionData() {",[155,4291,1371],{"class":1370},[155,4293,4294],{"class":179},"    const areas = {",[155,4296,1371],{"class":1370},[155,4298,4299],{"class":1370},"        \\\"",[155,4301,4302],{"class":179},"Pressing",[155,4304,4305],{"class":1370},"\\\"",[155,4307,4308],{"class":179},": [",[155,4310,4305],{"class":1370},[155,4312,4313],{"class":179},"Hydraulic Press",[155,4315,4305],{"class":1370},[155,4317,4318],{"class":179},", ",[155,4320,4305],{"class":1370},[155,4322,4323],{"class":179},"CNC Press Brake",[155,4325,4305],{"class":1370},[155,4327,4318],{"class":179},[155,4329,4305],{"class":1370},[155,4331,4332],{"class":179},"Stamping Press",[155,4334,4305],{"class":1370},[155,4336,4318],{"class":179},[155,4338,4305],{"class":1370},[155,4340,4341],{"class":179},"Power Press",[155,4343,4305],{"class":1370},[155,4345,518],{"class":179},[155,4347,1371],{"class":1370},[155,4349,4299],{"class":1370},[155,4351,4352],{"class":179},"Assembly",[155,4354,4305],{"class":1370},[155,4356,4308],{"class":179},[155,4358,4305],{"class":1370},[155,4360,4361],{"class":179},"Robotic Arm",[155,4363,4305],{"class":1370},[155,4365,4318],{"class":179},[155,4367,4305],{"class":1370},[155,4369,4370],{"class":179},"Screw Insertion Machine",[155,4372,4305],{"class":1370},[155,4374,4318],{"class":179},[155,4376,4305],{"class":1370},[155,4378,4379],{"class":179},"Pick-and-Place Machine",[155,4381,4305],{"class":1370},[155,4383,518],{"class":179},[155,4385,1371],{"class":1370},[155,4387,4299],{"class":1370},[155,4389,4390],{"class":179},"Packaging",[155,4392,4305],{"class":1370},[155,4394,4308],{"class":179},[155,4396,4305],{"class":1370},[155,4398,4399],{"class":179},"Carton Sealing Machine",[155,4401,4305],{"class":1370},[155,4403,4318],{"class":179},[155,4405,4305],{"class":1370},[155,4407,4408],{"class":179},"Shrink Wrapping Machine",[155,4410,4305],{"class":1370},[155,4412,4318],{"class":179},[155,4414,4305],{"class":1370},[155,4416,4417],{"class":179},"Bottle Filling and Capping Machine",[155,4419,4305],{"class":1370},[155,4421,4318],{"class":179},[155,4423,4305],{"class":1370},[155,4425,4426],{"class":179},"Flow Wrapper",[155,4428,4305],{"class":1370},[155,4430,4431],{"class":179},"]",[155,4433,1371],{"class":1370},[155,4435,4436],{"class":179},"    };",[155,4438,4439],{"class":1370},"\\n\\n",[155,4441,4442],{"class":179},"    const shifts = [",[155,4444,4305],{"class":1370},[155,4446,4447],{"class":179},"Shift 1",[155,4449,4305],{"class":1370},[155,4451,4318],{"class":179},[155,4453,4305],{"class":1370},[155,4455,4456],{"class":179},"Shift 2",[155,4458,4305],{"class":1370},[155,4460,4318],{"class":179},[155,4462,4305],{"class":1370},[155,4464,4465],{"class":179},"Shift 3",[155,4467,4305],{"class":1370},[155,4469,4470],{"class":179},"];",[155,4472,1371],{"class":1370},[155,4474,4475],{"class":179},"    const shiftStartTimes = {",[155,4477,1371],{"class":1370},[155,4479,4299],{"class":1370},[155,4481,4447],{"class":179},[155,4483,4305],{"class":1370},[155,4485,4486],{"class":179},": ",[155,4488,4305],{"class":1370},[155,4490,4491],{"class":179},"00:00:00",[155,4493,4305],{"class":1370},[155,4495,185],{"class":179},[155,4497,1371],{"class":1370},[155,4499,4299],{"class":1370},[155,4501,4456],{"class":179},[155,4503,4305],{"class":1370},[155,4505,4486],{"class":179},[155,4507,4305],{"class":1370},[155,4509,4510],{"class":179},"08:00:00",[155,4512,4305],{"class":1370},[155,4514,185],{"class":179},[155,4516,1371],{"class":1370},[155,4518,4299],{"class":1370},[155,4520,4465],{"class":179},[155,4522,4305],{"class":1370},[155,4524,4486],{"class":179},[155,4526,4305],{"class":1370},[155,4528,4529],{"class":179},"16:00:00",[155,4531,4532],{"class":1370},"\\\"\\n",[155,4534,4436],{"class":179},[155,4536,4439],{"class":1370},[155,4538,4539],{"class":179},"    const uniqueShortCodes = {",[155,4541,1371],{"class":1370},[155,4543,4299],{"class":1370},[155,4545,4302],{"class":179},[155,4547,4305],{"class":1370},[155,4549,4308],{"class":179},[155,4551,4305],{"class":1370},[155,4553,4554],{"class":179},"HP",[155,4556,4305],{"class":1370},[155,4558,4318],{"class":179},[155,4560,4305],{"class":1370},[155,4562,4563],{"class":179},"PB",[155,4565,4305],{"class":1370},[155,4567,4318],{"class":179},[155,4569,4305],{"class":1370},[155,4571,4572],{"class":179},"SP",[155,4574,4305],{"class":1370},[155,4576,4318],{"class":179},[155,4578,4305],{"class":1370},[155,4580,4581],{"class":179},"PP",[155,4583,4305],{"class":1370},[155,4585,518],{"class":179},[155,4587,1371],{"class":1370},[155,4589,4299],{"class":1370},[155,4591,4352],{"class":179},[155,4593,4305],{"class":1370},[155,4595,4308],{"class":179},[155,4597,4305],{"class":1370},[155,4599,4600],{"class":179},"RA",[155,4602,4305],{"class":1370},[155,4604,4318],{"class":179},[155,4606,4305],{"class":1370},[155,4608,4609],{"class":179},"SIM",[155,4611,4305],{"class":1370},[155,4613,4318],{"class":179},[155,4615,4305],{"class":1370},[155,4617,4618],{"class":179},"P and P",[155,4620,4305],{"class":1370},[155,4622,518],{"class":179},[155,4624,1371],{"class":1370},[155,4626,4299],{"class":1370},[155,4628,4390],{"class":179},[155,4630,4305],{"class":1370},[155,4632,4308],{"class":179},[155,4634,4305],{"class":1370},[155,4636,4637],{"class":179},"CSM",[155,4639,4305],{"class":1370},[155,4641,4318],{"class":179},[155,4643,4305],{"class":1370},[155,4645,4646],{"class":179},"SWM",[155,4648,4305],{"class":1370},[155,4650,4318],{"class":179},[155,4652,4305],{"class":1370},[155,4654,4655],{"class":179},"BFCM",[155,4657,4305],{"class":1370},[155,4659,4318],{"class":179},[155,4661,4305],{"class":1370},[155,4663,4664],{"class":179},"FW",[155,4666,4305],{"class":1370},[155,4668,4431],{"class":179},[155,4670,1371],{"class":1370},[155,4672,4436],{"class":179},[155,4674,4439],{"class":1370},[155,4676,4677],{"class":179},"    const downtimeTypes = [",[155,4679,4305],{"class":1370},[155,4681,4682],{"class":179},"Planned",[155,4684,4305],{"class":1370},[155,4686,4318],{"class":179},[155,4688,4305],{"class":1370},[155,4690,4691],{"class":179},"Unplanned",[155,4693,4305],{"class":1370},[155,4695,4470],{"class":179},[155,4697,1371],{"class":1370},[155,4699,4700],{"class":179},"    const plannedDowntimeReasons = [",[155,4702,1371],{"class":1370},[155,4704,4299],{"class":1370},[155,4706,4707],{"class":179},"Scheduled Maintenance",[155,4709,4305],{"class":1370},[155,4711,4318],{"class":179},[155,4713,4305],{"class":1370},[155,4715,4716],{"class":179},"Equipment Upgrades",[155,4718,4305],{"class":1370},[155,4720,4318],{"class":179},[155,4722,4305],{"class":1370},[155,4724,4725],{"class":179},"Shift Changeover",[155,4727,4305],{"class":1370},[155,4729,185],{"class":179},[155,4731,1371],{"class":1370},[155,4733,4299],{"class":1370},[155,4735,4736],{"class":179},"Tool Changeover",[155,4738,4305],{"class":1370},[155,4740,4318],{"class":179},[155,4742,4305],{"class":1370},[155,4744,4745],{"class":179},"Calibration and Quality Checks",[155,4747,4305],{"class":1370},[155,4749,4318],{"class":179},[155,4751,4305],{"class":1370},[155,4753,4754],{"class":179},"Cleaning and Sanitation",[155,4756,4305],{"class":1370},[155,4758,4318],{"class":179},[155,4760,4305],{"class":1370},[155,4762,4763],{"class":179},"Planned Power Outage",[155,4765,4532],{"class":1370},[155,4767,4768],{"class":179},"    ];",[155,4770,1371],{"class":1370},[155,4772,4773],{"class":179},"    const unplannedDowntimeReasons = [",[155,4775,1371],{"class":1370},[155,4777,4299],{"class":1370},[155,4779,4780],{"class":179},"Power Failure",[155,4782,4305],{"class":1370},[155,4784,4318],{"class":179},[155,4786,4305],{"class":1370},[155,4788,4789],{"class":179},"Material Shortage",[155,4791,4305],{"class":1370},[155,4793,4318],{"class":179},[155,4795,4305],{"class":1370},[155,4797,4798],{"class":179},"Technical Fault",[155,4800,4305],{"class":1370},[155,4802,4318],{"class":179},[155,4804,4305],{"class":1370},[155,4806,4807],{"class":179},"Operator Unavailable",[155,4809,4532],{"class":1370},[155,4811,4768],{"class":179},[155,4813,4439],{"class":1370},[155,4815,4816],{"class":179},"    const data = [];",[155,4818,1371],{"class":1370},[155,4820,4821],{"class":179},"    const downtimeData = [];",[155,4823,1371],{"class":1370},[155,4825,4826],{"class":179},"    const now = new Date();",[155,4828,4439],{"class":1370},[155,4830,4831],{"class":179},"    const normalizeTimestamp = (timestamp) => timestamp.toISOString().split(",[155,4833,4305],{"class":1370},[155,4835,4836],{"class":179},"T",[155,4838,4305],{"class":1370},[155,4840,4841],{"class":179},").join(",[155,4843,4305],{"class":1370},[155,4845,4846],{"class":1370}," \\\"",[155,4848,4849],{"class":179},").slice(0, 19);",[155,4851,4439],{"class":1370},[155,4853,4854],{"class":179},"    for (let i = 0; i \u003C 30; i++) {",[155,4856,1371],{"class":1370},[155,4858,4859],{"class":179},"        const date = new Date();",[155,4861,1371],{"class":1370},[155,4863,4864],{"class":179},"        date.setDate(now.getDate() - i);",[155,4866,1371],{"class":1370},[155,4868,4869],{"class":179},"        const formattedDate = date.toISOString().split(",[155,4871,4305],{"class":1370},[155,4873,4836],{"class":179},[155,4875,4305],{"class":1370},[155,4877,4878],{"class":179},")[0];",[155,4880,4439],{"class":1370},[155,4882,4883],{"class":179},"        shifts.forEach(shift => {",[155,4885,1371],{"class":1370},[155,4887,4888],{"class":179},"            const shiftStart = shiftStartTimes[shift];",[155,4890,1371],{"class":1370},[155,4892,4893],{"class":179},"            const shiftTimestamp = new Date(`${formattedDate}T${shiftStart}`);",[155,4895,4439],{"class":1370},[155,4897,4898],{"class":179},"            Object.entries(areas).forEach(([area, machines]) => {",[155,4900,1371],{"class":1370},[155,4902,4903],{"class":179},"                machines.forEach((_, index) => {",[155,4905,1371],{"class":1370},[155,4907,4908],{"class":179},"                    const randomCode = uniqueShortCodes[area][Math.floor(Math.random() * uniqueShortCodes[area].length)];",[155,4910,1371],{"class":1370},[155,4912,4913],{"class":179},"                    const uniqueID = Math.floor(10000 + Math.random() * 90000);",[155,4915,1371],{"class":1370},[155,4917,4918],{"class":179},"                    const shortMachineName = `${randomCode}-${uniqueID}`;",[155,4920,4439],{"class":1370},[155,4922,4923],{"class":179},"                    const shiftDuration = 8;",[155,4925,1371],{"class":1370},[155,4927,4928],{"class":179},"                    let totalDowntimeMinutes = 0;",[155,4930,1371],{"class":1370},[155,4932,4933],{"class":179},"                    let downtimeEvents = [];",[155,4935,4439],{"class":1370},[155,4937,4938],{"class":179},"                    \u002F\u002F Increase downtime frequency (up to 4 events per shift)",[155,4940,1371],{"class":1370},[155,4942,4943],{"class":179},"                    const numDowntimes = Math.floor(Math.random() * 4) + 1;",[155,4945,4439],{"class":1370},[155,4947,4948],{"class":179},"                    for (let d = 0; d \u003C numDowntimes; d++) {",[155,4950,1371],{"class":1370},[155,4952,4953],{"class":179},"                        if (Math.random() \u003C 0.75) {  \u002F\u002F Increase probability of downtime",[155,4955,1371],{"class":1370},[155,4957,4958],{"class":179},"                            let downtimeMinutes = Math.floor(5 + Math.random() * 10); \u002F\u002F Shorter downtimes (5-15 mins)",[155,4960,1371],{"class":1370},[155,4962,4963],{"class":179},"                            totalDowntimeMinutes += downtimeMinutes;",[155,4965,4439],{"class":1370},[155,4967,4968],{"class":179},"                            const downtimeStartMinutes = Math.floor(Math.random() * (shiftDuration * 60 - downtimeMinutes));",[155,4970,1371],{"class":1370},[155,4972,4973],{"class":179},"                            const downtimeStart = new Date(shiftTimestamp);",[155,4975,1371],{"class":1370},[155,4977,4978],{"class":179},"                            downtimeStart.setMinutes(downtimeStart.getMinutes() + downtimeStartMinutes);",[155,4980,4439],{"class":1370},[155,4982,4983],{"class":179},"                            const downtimeEnd = new Date(downtimeStart);",[155,4985,1371],{"class":1370},[155,4987,4988],{"class":179},"                            downtimeEnd.setMinutes(downtimeEnd.getMinutes() + downtimeMinutes);",[155,4990,4439],{"class":1370},[155,4992,4993],{"class":179},"                            const downtimeType = downtimeTypes[Math.floor(Math.random() * downtimeTypes.length)];",[155,4995,1371],{"class":1370},[155,4997,4998],{"class":179},"                            const downtimeReason = downtimeType === ",[155,5000,4305],{"class":1370},[155,5002,4682],{"class":179},[155,5004,4532],{"class":1370},[155,5006,5007],{"class":179},"                                ? plannedDowntimeReasons[Math.floor(Math.random() * plannedDowntimeReasons.length)]",[155,5009,1371],{"class":1370},[155,5011,5012],{"class":179},"                                : unplannedDowntimeReasons[Math.floor(Math.random() * unplannedDowntimeReasons.length)];",[155,5014,4439],{"class":1370},[155,5016,5017],{"class":179},"                            downtimeEvents.push({",[155,5019,1371],{"class":1370},[155,5021,5022],{"class":179},"                                timestamp: normalizeTimestamp(shiftTimestamp),",[155,5024,1371],{"class":1370},[155,5026,5027],{"class":179},"                                area,",[155,5029,1371],{"class":1370},[155,5031,5032],{"class":179},"                                machine_name: shortMachineName,",[155,5034,1371],{"class":1370},[155,5036,5037],{"class":179},"                                shift,",[155,5039,1371],{"class":1370},[155,5041,5042],{"class":179},"                                downtime_start: normalizeTimestamp(downtimeStart),",[155,5044,1371],{"class":1370},[155,5046,5047],{"class":179},"                                downtime_end: normalizeTimestamp(downtimeEnd),",[155,5049,1371],{"class":1370},[155,5051,5052],{"class":179},"                                downtime_duration_minutes: downtimeMinutes,",[155,5054,1371],{"class":1370},[155,5056,5057],{"class":179},"                                downtime_reason: downtimeReason,",[155,5059,1371],{"class":1370},[155,5061,5062],{"class":179},"                                downtime_type: downtimeType,",[155,5064,1371],{"class":1370},[155,5066,5067],{"class":179},"                                line: `Line-${index + 1}`",[155,5069,1371],{"class":1370},[155,5071,5072],{"class":179},"                            });",[155,5074,1371],{"class":1370},[155,5076,5077],{"class":179},"                        }",[155,5079,1371],{"class":1370},[155,5081,5082],{"class":179},"                    }",[155,5084,4439],{"class":1370},[155,5086,5087],{"class":179},"                    const operatingTime = (shiftDuration * 60 - totalDowntimeMinutes) * 60;",[155,5089,1371],{"class":1370},[155,5091,5092],{"class":179},"                    let efficiency = Math.random() * 0.2 + 0.75;",[155,5094,1371],{"class":1370},[155,5096,5097],{"class":179},"                    let targetOutput = Math.floor(operatingTime \u002F 3) || 1;",[155,5099,1371],{"class":1370},[155,5101,5102],{"class":179},"                    let totalProduced = Math.floor(targetOutput * efficiency);",[155,5104,1371],{"class":1370},[155,5106,5107],{"class":179},"                    totalProduced = Math.min(totalProduced, targetOutput);",[155,5109,4439],{"class":1370},[155,5111,5112],{"class":179},"                    const defectRate = Math.random() * 0.02 + 0.01;",[155,5114,1371],{"class":1370},[155,5116,5117],{"class":179},"                    const defectUnits = Math.floor(totalProduced * defectRate);",[155,5119,1371],{"class":1370},[155,5121,5122],{"class":179},"                    const goodUnits = totalProduced - defectUnits;",[155,5124,4439],{"class":1370},[155,5126,5127],{"class":179},"                    data.push({",[155,5129,1371],{"class":1370},[155,5131,5132],{"class":179},"                        timestamp: normalizeTimestamp(shiftTimestamp),",[155,5134,1371],{"class":1370},[155,5136,5137],{"class":179},"                        area,",[155,5139,1371],{"class":1370},[155,5141,5142],{"class":179},"                        machine_name: shortMachineName,",[155,5144,1371],{"class":1370},[155,5146,5147],{"class":179},"                        shift,",[155,5149,1371],{"class":1370},[155,5151,5152],{"class":179},"                        shift_duration: shiftDuration,",[155,5154,1371],{"class":1370},[155,5156,5157],{"class":179},"                        operating_time: operatingTime - totalDowntimeMinutes * 60,",[155,5159,1371],{"class":1370},[155,5161,5162],{"class":179},"                        good_units: goodUnits,",[155,5164,1371],{"class":1370},[155,5166,5167],{"class":179},"                        defect_units: defectUnits,",[155,5169,1371],{"class":1370},[155,5171,5172],{"class":179},"                        total_produced_units: totalProduced,",[155,5174,1371],{"class":1370},[155,5176,5177],{"class":179},"                        target_output: targetOutput,",[155,5179,1371],{"class":1370},[155,5181,5182],{"class":179},"                        line: `Line-${index + 1}`",[155,5184,1371],{"class":1370},[155,5186,5187],{"class":179},"                    });",[155,5189,4439],{"class":1370},[155,5191,5192],{"class":179},"                    downtimeData.push(...downtimeEvents);",[155,5194,1371],{"class":1370},[155,5196,5197],{"class":179},"                });",[155,5199,1371],{"class":1370},[155,5201,5202],{"class":179},"            });",[155,5204,1371],{"class":1370},[155,5206,5207],{"class":179},"        });",[155,5209,1371],{"class":1370},[155,5211,5212],{"class":179},"    }",[155,5214,4439],{"class":1370},[155,5216,5217],{"class":179},"    return [",[155,5219,1371],{"class":1370},[155,5221,5222],{"class":179},"        { payload: data },",[155,5224,1371],{"class":1370},[155,5226,5227],{"class":179},"        { payload: downtimeData }",[155,5229,1371],{"class":1370},[155,5231,4768],{"class":179},[155,5233,1371],{"class":1370},[155,5235,5236],{"class":179},"}",[155,5238,4439],{"class":1370},[155,5240,5241],{"class":179},"const productionDataSet = generateProductionData();",[155,5243,4439],{"class":1370},[155,5245,5246],{"class":179},"return [",[155,5248,1371],{"class":1370},[155,5250,5251],{"class":179},"    { payload: productionDataSet[0].payload },",[155,5253,1371],{"class":1370},[155,5255,5256],{"class":179},"    { payload: productionDataSet[1].payload }",[155,5258,1371],{"class":1370},[155,5260,4470],{"class":179},[155,5262,1371],{"class":1370},[155,5264,165],{"class":161},[155,5266,185],{"class":161},[155,5268,165],{"class":161},[155,5270,5271],{"class":168},"outputs",[155,5273,165],{"class":161},[155,5275,174],{"class":161},[155,5277,5278],{"class":530},"2",[155,5280,185],{"class":161},[155,5282,165],{"class":161},[155,5284,5285],{"class":168},"timeout",[155,5287,165],{"class":161},[155,5289,174],{"class":161},[155,5291,5292],{"class":530},"0",[155,5294,185],{"class":161},[155,5296,165],{"class":161},[155,5298,5299],{"class":168},"noerr",[155,5301,165],{"class":161},[155,5303,174],{"class":161},[155,5305,5292],{"class":530},[155,5307,185],{"class":161},[155,5309,165],{"class":161},[155,5311,5312],{"class":168},"initialize",[155,5314,165],{"class":161},[155,5316,174],{"class":161},[155,5318,243],{"class":161},[155,5320,185],{"class":161},[155,5322,165],{"class":161},[155,5324,5325],{"class":168},"finalize",[155,5327,165],{"class":161},[155,5329,174],{"class":161},[155,5331,243],{"class":161},[155,5333,185],{"class":161},[155,5335,165],{"class":161},[155,5337,5338],{"class":168},"libs",[155,5340,165],{"class":161},[155,5342,5343],{"class":161},":[],",[155,5345,165],{"class":161},[155,5347,523],{"class":168},[155,5349,165],{"class":161},[155,5351,174],{"class":161},[155,5353,5354],{"class":530},"690",[155,5356,185],{"class":161},[155,5358,165],{"class":161},[155,5360,538],{"class":168},[155,5362,165],{"class":161},[155,5364,174],{"class":161},[155,5366,4175],{"class":530},[155,5368,185],{"class":161},[155,5370,165],{"class":161},[155,5372,1499],{"class":168},[155,5374,165],{"class":161},[155,5376,1504],{"class":161},[155,5378,165],{"class":161},[155,5380,795],{"class":179},[155,5382,165],{"class":161},[155,5384,5385],{"class":161},"],[",[155,5387,165],{"class":161},[155,5389,840],{"class":179},[155,5391,165],{"class":161},[155,5393,1513],{"class":161},[155,5395,165],{"class":161},[155,5397,169],{"class":168},[155,5399,165],{"class":161},[155,5401,174],{"class":161},[155,5403,165],{"class":161},[155,5405,795],{"class":179},[155,5407,165],{"class":161},[155,5409,185],{"class":161},[155,5411,165],{"class":161},[155,5413,190],{"class":168},[155,5415,165],{"class":161},[155,5417,174],{"class":161},[155,5419,165],{"class":161},[155,5421,5422],{"class":179},"split",[155,5424,165],{"class":161},[155,5426,185],{"class":161},[155,5428,165],{"class":161},[155,5430,294],{"class":168},[155,5432,165],{"class":161},[155,5434,174],{"class":161},[155,5436,165],{"class":161},[155,5438,180],{"class":179},[155,5440,165],{"class":161},[155,5442,185],{"class":161},[155,5444,165],{"class":161},[155,5446,1252],{"class":168},[155,5448,165],{"class":161},[155,5450,174],{"class":161},[155,5452,165],{"class":161},[155,5454,589],{"class":179},[155,5456,165],{"class":161},[155,5458,185],{"class":161},[155,5460,165],{"class":161},[155,5462,1269],{"class":168},[155,5464,165],{"class":161},[155,5466,174],{"class":161},[155,5468,243],{"class":161},[155,5470,185],{"class":161},[155,5472,165],{"class":161},[155,5474,5475],{"class":168},"splt",[155,5477,165],{"class":161},[155,5479,174],{"class":161},[155,5481,165],{"class":161},[155,5483,5484],{"class":1370},"\\\\",[155,5486,5487],{"class":179},"n",[155,5489,165],{"class":161},[155,5491,185],{"class":161},[155,5493,165],{"class":161},[155,5495,5496],{"class":168},"spltType",[155,5498,165],{"class":161},[155,5500,174],{"class":161},[155,5502,165],{"class":161},[155,5504,1464],{"class":179},[155,5506,165],{"class":161},[155,5508,185],{"class":161},[155,5510,165],{"class":161},[155,5512,5513],{"class":168},"arraySplt",[155,5515,165],{"class":161},[155,5517,174],{"class":161},[155,5519,349],{"class":530},[155,5521,185],{"class":161},[155,5523,165],{"class":161},[155,5525,5526],{"class":168},"arraySpltType",[155,5528,165],{"class":161},[155,5530,174],{"class":161},[155,5532,165],{"class":161},[155,5534,5535],{"class":179},"len",[155,5537,165],{"class":161},[155,5539,185],{"class":161},[155,5541,165],{"class":161},[155,5543,5544],{"class":168},"stream",[155,5546,165],{"class":161},[155,5548,231],{"class":161},[155,5550,165],{"class":161},[155,5552,5553],{"class":168},"addname",[155,5555,165],{"class":161},[155,5557,174],{"class":161},[155,5559,243],{"class":161},[155,5561,185],{"class":161},[155,5563,165],{"class":161},[155,5565,523],{"class":168},[155,5567,165],{"class":161},[155,5569,174],{"class":161},[155,5571,5572],{"class":530},"1060",[155,5574,185],{"class":161},[155,5576,165],{"class":161},[155,5578,538],{"class":168},[155,5580,165],{"class":161},[155,5582,174],{"class":161},[155,5584,3052],{"class":530},[155,5586,185],{"class":161},[155,5588,165],{"class":161},[155,5590,1499],{"class":168},[155,5592,165],{"class":161},[155,5594,1504],{"class":161},[155,5596,165],{"class":161},[155,5598,804],{"class":179},[155,5600,165],{"class":161},[155,5602,1513],{"class":161},[155,5604,165],{"class":161},[155,5606,169],{"class":168},[155,5608,165],{"class":161},[155,5610,174],{"class":161},[155,5612,165],{"class":161},[155,5614,804],{"class":179},[155,5616,165],{"class":161},[155,5618,185],{"class":161},[155,5620,165],{"class":161},[155,5622,190],{"class":168},[155,5624,165],{"class":161},[155,5626,174],{"class":161},[155,5628,165],{"class":161},[155,5630,5631],{"class":179},"delay",[155,5633,165],{"class":161},[155,5635,185],{"class":161},[155,5637,165],{"class":161},[155,5639,294],{"class":168},[155,5641,165],{"class":161},[155,5643,174],{"class":161},[155,5645,165],{"class":161},[155,5647,180],{"class":179},[155,5649,165],{"class":161},[155,5651,185],{"class":161},[155,5653,165],{"class":161},[155,5655,1252],{"class":168},[155,5657,165],{"class":161},[155,5659,174],{"class":161},[155,5661,165],{"class":161},[155,5663,589],{"class":179},[155,5665,165],{"class":161},[155,5667,185],{"class":161},[155,5669,165],{"class":161},[155,5671,1269],{"class":168},[155,5673,165],{"class":161},[155,5675,174],{"class":161},[155,5677,165],{"class":161},[155,5679,5680],{"class":179},"10 msg\u002Fs",[155,5682,165],{"class":161},[155,5684,185],{"class":161},[155,5686,165],{"class":161},[155,5688,5689],{"class":168},"pauseType",[155,5691,165],{"class":161},[155,5693,174],{"class":161},[155,5695,165],{"class":161},[155,5697,5698],{"class":179},"rate",[155,5700,165],{"class":161},[155,5702,185],{"class":161},[155,5704,165],{"class":161},[155,5706,5285],{"class":168},[155,5708,165],{"class":161},[155,5710,174],{"class":161},[155,5712,165],{"class":161},[155,5714,5715],{"class":179},"5",[155,5717,165],{"class":161},[155,5719,185],{"class":161},[155,5721,165],{"class":161},[155,5723,5724],{"class":168},"timeoutUnits",[155,5726,165],{"class":161},[155,5728,174],{"class":161},[155,5730,165],{"class":161},[155,5732,5733],{"class":179},"seconds",[155,5735,165],{"class":161},[155,5737,185],{"class":161},[155,5739,165],{"class":161},[155,5741,5698],{"class":168},[155,5743,165],{"class":161},[155,5745,174],{"class":161},[155,5747,165],{"class":161},[155,5749,5750],{"class":179},"10",[155,5752,165],{"class":161},[155,5754,185],{"class":161},[155,5756,165],{"class":161},[155,5758,5759],{"class":168},"nbRateUnits",[155,5761,165],{"class":161},[155,5763,174],{"class":161},[155,5765,165],{"class":161},[155,5767,349],{"class":179},[155,5769,165],{"class":161},[155,5771,185],{"class":161},[155,5773,165],{"class":161},[155,5775,5776],{"class":168},"rateUnits",[155,5778,165],{"class":161},[155,5780,174],{"class":161},[155,5782,165],{"class":161},[155,5784,5785],{"class":179},"second",[155,5787,165],{"class":161},[155,5789,185],{"class":161},[155,5791,165],{"class":161},[155,5793,5794],{"class":168},"randomFirst",[155,5796,165],{"class":161},[155,5798,174],{"class":161},[155,5800,165],{"class":161},[155,5802,349],{"class":179},[155,5804,165],{"class":161},[155,5806,185],{"class":161},[155,5808,165],{"class":161},[155,5810,5811],{"class":168},"randomLast",[155,5813,165],{"class":161},[155,5815,174],{"class":161},[155,5817,165],{"class":161},[155,5819,5715],{"class":179},[155,5821,165],{"class":161},[155,5823,185],{"class":161},[155,5825,165],{"class":161},[155,5827,5828],{"class":168},"randomUnits",[155,5830,165],{"class":161},[155,5832,174],{"class":161},[155,5834,165],{"class":161},[155,5836,5733],{"class":179},[155,5838,165],{"class":161},[155,5840,185],{"class":161},[155,5842,165],{"class":161},[155,5844,5845],{"class":168},"drop",[155,5847,165],{"class":161},[155,5849,231],{"class":161},[155,5851,165],{"class":161},[155,5853,5854],{"class":168},"allowrate",[155,5856,165],{"class":161},[155,5858,231],{"class":161},[155,5860,165],{"class":161},[155,5862,5271],{"class":168},[155,5864,165],{"class":161},[155,5866,174],{"class":161},[155,5868,349],{"class":530},[155,5870,185],{"class":161},[155,5872,165],{"class":161},[155,5874,523],{"class":168},[155,5876,165],{"class":161},[155,5878,174],{"class":161},[155,5880,5881],{"class":530},"1280",[155,5883,185],{"class":161},[155,5885,165],{"class":161},[155,5887,538],{"class":168},[155,5889,165],{"class":161},[155,5891,174],{"class":161},[155,5893,3052],{"class":530},[155,5895,185],{"class":161},[155,5897,165],{"class":161},[155,5899,1499],{"class":168},[155,5901,165],{"class":161},[155,5903,1504],{"class":161},[155,5905,165],{"class":161},[155,5907,759],{"class":179},[155,5909,165],{"class":161},[155,5911,1513],{"class":161},[155,5913,165],{"class":161},[155,5915,169],{"class":168},[155,5917,165],{"class":161},[155,5919,174],{"class":161},[155,5921,165],{"class":161},[155,5923,822],{"class":179},[155,5925,165],{"class":161},[155,5927,185],{"class":161},[155,5929,165],{"class":161},[155,5931,190],{"class":168},[155,5933,165],{"class":161},[155,5935,174],{"class":161},[155,5937,165],{"class":161},[155,5939,1227],{"class":179},[155,5941,165],{"class":161},[155,5943,185],{"class":161},[155,5945,165],{"class":161},[155,5947,294],{"class":168},[155,5949,165],{"class":161},[155,5951,174],{"class":161},[155,5953,165],{"class":161},[155,5955,180],{"class":179},[155,5957,165],{"class":161},[155,5959,185],{"class":161},[155,5961,165],{"class":161},[155,5963,1252],{"class":168},[155,5965,165],{"class":161},[155,5967,174],{"class":161},[155,5969,165],{"class":161},[155,5971,589],{"class":179},[155,5973,165],{"class":161},[155,5975,185],{"class":161},[155,5977,165],{"class":161},[155,5979,1269],{"class":168},[155,5981,165],{"class":161},[155,5983,174],{"class":161},[155,5985,165],{"class":161},[155,5987,5988],{"class":179},"Insert downtime data record",[155,5990,165],{"class":161},[155,5992,185],{"class":161},[155,5994,165],{"class":161},[155,5996,1287],{"class":168},[155,5998,165],{"class":161},[155,6000,174],{"class":161},[155,6002,165],{"class":161},[155,6004,1296],{"class":179},[155,6006,165],{"class":161},[155,6008,185],{"class":161},[155,6010,165],{"class":161},[155,6012,1305],{"class":168},[155,6014,165],{"class":161},[155,6016,174],{"class":161},[155,6018,165],{"class":161},[155,6020,1314],{"class":179},[155,6022,165],{"class":161},[155,6024,185],{"class":161},[155,6026,165],{"class":161},[155,6028,1323],{"class":168},[155,6030,165],{"class":161},[155,6032,174],{"class":161},[155,6034,165],{"class":161},[155,6036,2829],{"class":179},[155,6038,165],{"class":161},[155,6040,185],{"class":161},[155,6042,165],{"class":161},[155,6044,1341],{"class":168},[155,6046,165],{"class":161},[155,6048,174],{"class":161},[155,6050,165],{"class":161},[155,6052,1350],{"class":179},[155,6054,165],{"class":161},[155,6056,185],{"class":161},[155,6058,165],{"class":161},[155,6060,1227],{"class":168},[155,6062,165],{"class":161},[155,6064,174],{"class":161},[155,6066,165],{"class":161},[155,6068,6069],{"class":179},"INSERT INTO DowntimeData ( timestamp, area, line, machine_name, shift, ",[155,6071,1371],{"class":1370},[155,6073,6074],{"class":179},"    downtime_start, downtime_end, downtime_duration_minutes, ",[155,6076,1371],{"class":1370},[155,6078,6079],{"class":179},"    downtime_type, downtime_reason",[155,6081,1371],{"class":1370},[155,6083,6084],{"class":179},")  ",[155,6086,1371],{"class":1370},[155,6088,2937],{"class":179},[155,6090,1371],{"class":1370},[155,6092,6093],{"class":179},"    '{{payload.timestamp}}',  ",[155,6095,1371],{"class":1370},[155,6097,2947],{"class":179},[155,6099,1371],{"class":1370},[155,6101,2952],{"class":179},[155,6103,1371],{"class":1370},[155,6105,2957],{"class":179},[155,6107,1371],{"class":1370},[155,6109,2962],{"class":179},[155,6111,1371],{"class":1370},[155,6113,6114],{"class":179},"    '{{payload.downtime_start}}',",[155,6116,1371],{"class":1370},[155,6118,6119],{"class":179},"    '{{payload.downtime_end}}',  ",[155,6121,1371],{"class":1370},[155,6123,6124],{"class":179},"    {{payload.downtime_duration_minutes}},  ",[155,6126,1371],{"class":1370},[155,6128,6129],{"class":179},"    '{{payload.downtime_type}}',  ",[155,6131,1371],{"class":1370},[155,6133,6134],{"class":179},"    '{{payload.downtime_reason}}'  ",[155,6136,1371],{"class":1370},[155,6138,1444],{"class":179},[155,6140,1371],{"class":1370},[155,6142,165],{"class":161},[155,6144,185],{"class":161},[155,6146,165],{"class":161},[155,6148,1455],{"class":168},[155,6150,165],{"class":161},[155,6152,174],{"class":161},[155,6154,165],{"class":161},[155,6156,1464],{"class":179},[155,6158,165],{"class":161},[155,6160,185],{"class":161},[155,6162,165],{"class":161},[155,6164,523],{"class":168},[155,6166,165],{"class":161},[155,6168,174],{"class":161},[155,6170,3039],{"class":530},[155,6172,185],{"class":161},[155,6174,165],{"class":161},[155,6176,538],{"class":168},[155,6178,165],{"class":161},[155,6180,174],{"class":161},[155,6182,6183],{"class":530},"420",[155,6185,185],{"class":161},[155,6187,165],{"class":161},[155,6189,1499],{"class":168},[155,6191,165],{"class":161},[155,6193,1504],{"class":161},[155,6195,165],{"class":161},[155,6197,813],{"class":179},[155,6199,165],{"class":161},[155,6201,1513],{"class":161},[155,6203,165],{"class":161},[155,6205,169],{"class":168},[155,6207,165],{"class":161},[155,6209,174],{"class":161},[155,6211,165],{"class":161},[155,6213,831],{"class":179},[155,6215,165],{"class":161},[155,6217,185],{"class":161},[155,6219,165],{"class":161},[155,6221,190],{"class":168},[155,6223,165],{"class":161},[155,6225,174],{"class":161},[155,6227,165],{"class":161},[155,6229,1812],{"class":179},[155,6231,165],{"class":161},[155,6233,185],{"class":161},[155,6235,165],{"class":161},[155,6237,294],{"class":168},[155,6239,165],{"class":161},[155,6241,174],{"class":161},[155,6243,165],{"class":161},[155,6245,180],{"class":179},[155,6247,165],{"class":161},[155,6249,185],{"class":161},[155,6251,165],{"class":161},[155,6253,1252],{"class":168},[155,6255,165],{"class":161},[155,6257,174],{"class":161},[155,6259,165],{"class":161},[155,6261,589],{"class":179},[155,6263,165],{"class":161},[155,6265,185],{"class":161},[155,6267,165],{"class":161},[155,6269,1269],{"class":168},[155,6271,165],{"class":161},[155,6273,174],{"class":161},[155,6275,165],{"class":161},[155,6277,6278],{"class":179},"debug 8",[155,6280,165],{"class":161},[155,6282,185],{"class":161},[155,6284,165],{"class":161},[155,6286,1870],{"class":168},[155,6288,165],{"class":161},[155,6290,231],{"class":161},[155,6292,165],{"class":161},[155,6294,1879],{"class":168},[155,6296,165],{"class":161},[155,6298,398],{"class":161},[155,6300,165],{"class":161},[155,6302,1888],{"class":168},[155,6304,165],{"class":161},[155,6306,231],{"class":161},[155,6308,165],{"class":161},[155,6310,1897],{"class":168},[155,6312,165],{"class":161},[155,6314,231],{"class":161},[155,6316,165],{"class":161},[155,6318,1906],{"class":168},[155,6320,165],{"class":161},[155,6322,174],{"class":161},[155,6324,165],{"class":161},[155,6326,1915],{"class":179},[155,6328,165],{"class":161},[155,6330,185],{"class":161},[155,6332,165],{"class":161},[155,6334,1924],{"class":168},[155,6336,165],{"class":161},[155,6338,174],{"class":161},[155,6340,243],{"class":161},[155,6342,185],{"class":161},[155,6344,165],{"class":161},[155,6346,1937],{"class":168},[155,6348,165],{"class":161},[155,6350,174],{"class":161},[155,6352,165],{"class":161},[155,6354,1946],{"class":179},[155,6356,165],{"class":161},[155,6358,185],{"class":161},[155,6360,165],{"class":161},[155,6362,523],{"class":168},[155,6364,165],{"class":161},[155,6366,174],{"class":161},[155,6368,3238],{"class":530},[155,6370,185],{"class":161},[155,6372,165],{"class":161},[155,6374,538],{"class":168},[155,6376,165],{"class":161},[155,6378,174],{"class":161},[155,6380,6183],{"class":530},[155,6382,185],{"class":161},[155,6384,165],{"class":161},[155,6386,1499],{"class":168},[155,6388,165],{"class":161},[155,6390,255],{"class":161},[155,6392,165],{"class":161},[155,6394,169],{"class":168},[155,6396,165],{"class":161},[155,6398,174],{"class":161},[155,6400,165],{"class":161},[155,6402,840],{"class":179},[155,6404,165],{"class":161},[155,6406,185],{"class":161},[155,6408,165],{"class":161},[155,6410,190],{"class":168},[155,6412,165],{"class":161},[155,6414,174],{"class":161},[155,6416,165],{"class":161},[155,6418,5422],{"class":179},[155,6420,165],{"class":161},[155,6422,185],{"class":161},[155,6424,165],{"class":161},[155,6426,294],{"class":168},[155,6428,165],{"class":161},[155,6430,174],{"class":161},[155,6432,165],{"class":161},[155,6434,180],{"class":179},[155,6436,165],{"class":161},[155,6438,185],{"class":161},[155,6440,165],{"class":161},[155,6442,1252],{"class":168},[155,6444,165],{"class":161},[155,6446,174],{"class":161},[155,6448,165],{"class":161},[155,6450,589],{"class":179},[155,6452,165],{"class":161},[155,6454,185],{"class":161},[155,6456,165],{"class":161},[155,6458,1269],{"class":168},[155,6460,165],{"class":161},[155,6462,174],{"class":161},[155,6464,243],{"class":161},[155,6466,185],{"class":161},[155,6468,165],{"class":161},[155,6470,5475],{"class":168},[155,6472,165],{"class":161},[155,6474,174],{"class":161},[155,6476,165],{"class":161},[155,6478,5484],{"class":1370},[155,6480,5487],{"class":179},[155,6482,165],{"class":161},[155,6484,185],{"class":161},[155,6486,165],{"class":161},[155,6488,5496],{"class":168},[155,6490,165],{"class":161},[155,6492,174],{"class":161},[155,6494,165],{"class":161},[155,6496,1464],{"class":179},[155,6498,165],{"class":161},[155,6500,185],{"class":161},[155,6502,165],{"class":161},[155,6504,5513],{"class":168},[155,6506,165],{"class":161},[155,6508,174],{"class":161},[155,6510,349],{"class":530},[155,6512,185],{"class":161},[155,6514,165],{"class":161},[155,6516,5526],{"class":168},[155,6518,165],{"class":161},[155,6520,174],{"class":161},[155,6522,165],{"class":161},[155,6524,5535],{"class":179},[155,6526,165],{"class":161},[155,6528,185],{"class":161},[155,6530,165],{"class":161},[155,6532,5544],{"class":168},[155,6534,165],{"class":161},[155,6536,231],{"class":161},[155,6538,165],{"class":161},[155,6540,5553],{"class":168},[155,6542,165],{"class":161},[155,6544,174],{"class":161},[155,6546,243],{"class":161},[155,6548,185],{"class":161},[155,6550,165],{"class":161},[155,6552,523],{"class":168},[155,6554,165],{"class":161},[155,6556,174],{"class":161},[155,6558,5572],{"class":530},[155,6560,185],{"class":161},[155,6562,165],{"class":161},[155,6564,538],{"class":168},[155,6566,165],{"class":161},[155,6568,174],{"class":161},[155,6570,6183],{"class":530},[155,6572,185],{"class":161},[155,6574,165],{"class":161},[155,6576,1499],{"class":168},[155,6578,165],{"class":161},[155,6580,1504],{"class":161},[155,6582,165],{"class":161},[155,6584,849],{"class":179},[155,6586,165],{"class":161},[155,6588,1513],{"class":161},[155,6590,165],{"class":161},[155,6592,169],{"class":168},[155,6594,165],{"class":161},[155,6596,174],{"class":161},[155,6598,165],{"class":161},[155,6600,849],{"class":179},[155,6602,165],{"class":161},[155,6604,185],{"class":161},[155,6606,165],{"class":161},[155,6608,190],{"class":168},[155,6610,165],{"class":161},[155,6612,174],{"class":161},[155,6614,165],{"class":161},[155,6616,5631],{"class":179},[155,6618,165],{"class":161},[155,6620,185],{"class":161},[155,6622,165],{"class":161},[155,6624,294],{"class":168},[155,6626,165],{"class":161},[155,6628,174],{"class":161},[155,6630,165],{"class":161},[155,6632,180],{"class":179},[155,6634,165],{"class":161},[155,6636,185],{"class":161},[155,6638,165],{"class":161},[155,6640,1252],{"class":168},[155,6642,165],{"class":161},[155,6644,174],{"class":161},[155,6646,165],{"class":161},[155,6648,589],{"class":179},[155,6650,165],{"class":161},[155,6652,185],{"class":161},[155,6654,165],{"class":161},[155,6656,1269],{"class":168},[155,6658,165],{"class":161},[155,6660,174],{"class":161},[155,6662,165],{"class":161},[155,6664,5680],{"class":179},[155,6666,165],{"class":161},[155,6668,185],{"class":161},[155,6670,165],{"class":161},[155,6672,5689],{"class":168},[155,6674,165],{"class":161},[155,6676,174],{"class":161},[155,6678,165],{"class":161},[155,6680,5698],{"class":179},[155,6682,165],{"class":161},[155,6684,185],{"class":161},[155,6686,165],{"class":161},[155,6688,5285],{"class":168},[155,6690,165],{"class":161},[155,6692,174],{"class":161},[155,6694,165],{"class":161},[155,6696,5715],{"class":179},[155,6698,165],{"class":161},[155,6700,185],{"class":161},[155,6702,165],{"class":161},[155,6704,5724],{"class":168},[155,6706,165],{"class":161},[155,6708,174],{"class":161},[155,6710,165],{"class":161},[155,6712,5733],{"class":179},[155,6714,165],{"class":161},[155,6716,185],{"class":161},[155,6718,165],{"class":161},[155,6720,5698],{"class":168},[155,6722,165],{"class":161},[155,6724,174],{"class":161},[155,6726,165],{"class":161},[155,6728,5750],{"class":179},[155,6730,165],{"class":161},[155,6732,185],{"class":161},[155,6734,165],{"class":161},[155,6736,5759],{"class":168},[155,6738,165],{"class":161},[155,6740,174],{"class":161},[155,6742,165],{"class":161},[155,6744,349],{"class":179},[155,6746,165],{"class":161},[155,6748,185],{"class":161},[155,6750,165],{"class":161},[155,6752,5776],{"class":168},[155,6754,165],{"class":161},[155,6756,174],{"class":161},[155,6758,165],{"class":161},[155,6760,5785],{"class":179},[155,6762,165],{"class":161},[155,6764,185],{"class":161},[155,6766,165],{"class":161},[155,6768,5794],{"class":168},[155,6770,165],{"class":161},[155,6772,174],{"class":161},[155,6774,165],{"class":161},[155,6776,349],{"class":179},[155,6778,165],{"class":161},[155,6780,185],{"class":161},[155,6782,165],{"class":161},[155,6784,5811],{"class":168},[155,6786,165],{"class":161},[155,6788,174],{"class":161},[155,6790,165],{"class":161},[155,6792,5715],{"class":179},[155,6794,165],{"class":161},[155,6796,185],{"class":161},[155,6798,165],{"class":161},[155,6800,5828],{"class":168},[155,6802,165],{"class":161},[155,6804,174],{"class":161},[155,6806,165],{"class":161},[155,6808,5733],{"class":179},[155,6810,165],{"class":161},[155,6812,185],{"class":161},[155,6814,165],{"class":161},[155,6816,5845],{"class":168},[155,6818,165],{"class":161},[155,6820,231],{"class":161},[155,6822,165],{"class":161},[155,6824,5854],{"class":168},[155,6826,165],{"class":161},[155,6828,231],{"class":161},[155,6830,165],{"class":161},[155,6832,5271],{"class":168},[155,6834,165],{"class":161},[155,6836,174],{"class":161},[155,6838,349],{"class":530},[155,6840,185],{"class":161},[155,6842,165],{"class":161},[155,6844,523],{"class":168},[155,6846,165],{"class":161},[155,6848,174],{"class":161},[155,6850,5881],{"class":530},[155,6852,185],{"class":161},[155,6854,165],{"class":161},[155,6856,538],{"class":168},[155,6858,165],{"class":161},[155,6860,174],{"class":161},[155,6862,6183],{"class":530},[155,6864,185],{"class":161},[155,6866,165],{"class":161},[155,6868,1499],{"class":168},[155,6870,165],{"class":161},[155,6872,1504],{"class":161},[155,6874,165],{"class":161},[155,6876,822],{"class":179},[155,6878,165],{"class":161},[155,6880,1513],{"class":161},[155,6882,165],{"class":161},[155,6884,169],{"class":168},[155,6886,165],{"class":161},[155,6888,174],{"class":161},[155,6890,165],{"class":161},[155,6892,1124],{"class":179},[155,6894,165],{"class":161},[155,6896,185],{"class":161},[155,6898,165],{"class":161},[155,6900,190],{"class":168},[155,6902,165],{"class":161},[155,6904,174],{"class":161},[155,6906,165],{"class":161},[155,6908,1227],{"class":179},[155,6910,165],{"class":161},[155,6912,185],{"class":161},[155,6914,165],{"class":161},[155,6916,294],{"class":168},[155,6918,165],{"class":161},[155,6920,174],{"class":161},[155,6922,165],{"class":161},[155,6924,180],{"class":179},[155,6926,165],{"class":161},[155,6928,185],{"class":161},[155,6930,165],{"class":161},[155,6932,1252],{"class":168},[155,6934,165],{"class":161},[155,6936,174],{"class":161},[155,6938,165],{"class":161},[155,6940,918],{"class":179},[155,6942,165],{"class":161},[155,6944,185],{"class":161},[155,6946,165],{"class":161},[155,6948,1269],{"class":168},[155,6950,165],{"class":161},[155,6952,174],{"class":161},[155,6954,165],{"class":161},[155,6956,6957],{"class":179},"Drop demo production data",[155,6959,165],{"class":161},[155,6961,185],{"class":161},[155,6963,165],{"class":161},[155,6965,1287],{"class":168},[155,6967,165],{"class":161},[155,6969,174],{"class":161},[155,6971,165],{"class":161},[155,6973,1296],{"class":179},[155,6975,165],{"class":161},[155,6977,185],{"class":161},[155,6979,165],{"class":161},[155,6981,1305],{"class":168},[155,6983,165],{"class":161},[155,6985,174],{"class":161},[155,6987,165],{"class":161},[155,6989,1314],{"class":179},[155,6991,165],{"class":161},[155,6993,185],{"class":161},[155,6995,165],{"class":161},[155,6997,1323],{"class":168},[155,6999,165],{"class":161},[155,7001,174],{"class":161},[155,7003,165],{"class":161},[155,7005,1332],{"class":179},[155,7007,165],{"class":161},[155,7009,185],{"class":161},[155,7011,165],{"class":161},[155,7013,1341],{"class":168},[155,7015,165],{"class":161},[155,7017,174],{"class":161},[155,7019,165],{"class":161},[155,7021,1350],{"class":179},[155,7023,165],{"class":161},[155,7025,185],{"class":161},[155,7027,165],{"class":161},[155,7029,1227],{"class":168},[155,7031,165],{"class":161},[155,7033,174],{"class":161},[155,7035,165],{"class":161},[155,7037,7038],{"class":179},"Drop table ProductionData;",[155,7040,165],{"class":161},[155,7042,185],{"class":161},[155,7044,165],{"class":161},[155,7046,1455],{"class":168},[155,7048,165],{"class":161},[155,7050,174],{"class":161},[155,7052,165],{"class":161},[155,7054,1464],{"class":179},[155,7056,165],{"class":161},[155,7058,185],{"class":161},[155,7060,165],{"class":161},[155,7062,523],{"class":168},[155,7064,165],{"class":161},[155,7066,174],{"class":161},[155,7068,3449],{"class":530},[155,7070,185],{"class":161},[155,7072,165],{"class":161},[155,7074,538],{"class":168},[155,7076,165],{"class":161},[155,7078,174],{"class":161},[155,7080,7081],{"class":530},"520",[155,7083,185],{"class":161},[155,7085,165],{"class":161},[155,7087,1499],{"class":168},[155,7089,165],{"class":161},[155,7091,1504],{"class":161},[155,7093,165],{"class":161},[155,7095,1115],{"class":179},[155,7097,165],{"class":161},[155,7099,1513],{"class":161},[155,7101,165],{"class":161},[155,7103,169],{"class":168},[155,7105,165],{"class":161},[155,7107,174],{"class":161},[155,7109,165],{"class":161},[155,7111,1133],{"class":179},[155,7113,165],{"class":161},[155,7115,185],{"class":161},[155,7117,165],{"class":161},[155,7119,190],{"class":168},[155,7121,165],{"class":161},[155,7123,174],{"class":161},[155,7125,165],{"class":161},[155,7127,1542],{"class":179},[155,7129,165],{"class":161},[155,7131,185],{"class":161},[155,7133,165],{"class":161},[155,7135,294],{"class":168},[155,7137,165],{"class":161},[155,7139,174],{"class":161},[155,7141,165],{"class":161},[155,7143,180],{"class":179},[155,7145,165],{"class":161},[155,7147,185],{"class":161},[155,7149,165],{"class":161},[155,7151,1252],{"class":168},[155,7153,165],{"class":161},[155,7155,174],{"class":161},[155,7157,165],{"class":161},[155,7159,918],{"class":179},[155,7161,165],{"class":161},[155,7163,185],{"class":161},[155,7165,165],{"class":161},[155,7167,1269],{"class":168},[155,7169,165],{"class":161},[155,7171,174],{"class":161},[155,7173,243],{"class":161},[155,7175,185],{"class":161},[155,7177,165],{"class":161},[155,7179,1595],{"class":168},[155,7181,165],{"class":161},[155,7183,1600],{"class":161},[155,7185,165],{"class":161},[155,7187,12],{"class":321},[155,7189,165],{"class":161},[155,7191,174],{"class":161},[155,7193,165],{"class":161},[155,7195,1613],{"class":179},[155,7197,165],{"class":161},[155,7199,576],{"class":161},[155,7201,165],{"class":161},[155,7203,12],{"class":321},[155,7205,165],{"class":161},[155,7207,174],{"class":161},[155,7209,165],{"class":161},[155,7211,1296],{"class":179},[155,7213,165],{"class":161},[155,7215,185],{"class":161},[155,7217,165],{"class":161},[155,7219,1638],{"class":321},[155,7221,165],{"class":161},[155,7223,174],{"class":161},[155,7225,165],{"class":161},[155,7227,1464],{"class":179},[155,7229,165],{"class":161},[155,7231,1651],{"class":161},[155,7233,165],{"class":161},[155,7235,1656],{"class":168},[155,7237,165],{"class":161},[155,7239,174],{"class":161},[155,7241,243],{"class":161},[155,7243,185],{"class":161},[155,7245,165],{"class":161},[155,7247,1669],{"class":168},[155,7249,165],{"class":161},[155,7251,174],{"class":161},[155,7253,243],{"class":161},[155,7255,185],{"class":161},[155,7257,165],{"class":161},[155,7259,1682],{"class":168},[155,7261,165],{"class":161},[155,7263,231],{"class":161},[155,7265,165],{"class":161},[155,7267,1691],{"class":168},[155,7269,165],{"class":161},[155,7271,174],{"class":161},[155,7273,1698],{"class":530},[155,7275,185],{"class":161},[155,7277,165],{"class":161},[155,7279,1296],{"class":168},[155,7281,165],{"class":161},[155,7283,174],{"class":161},[155,7285,243],{"class":161},[155,7287,185],{"class":161},[155,7289,165],{"class":161},[155,7291,1613],{"class":168},[155,7293,165],{"class":161},[155,7295,174],{"class":161},[155,7297,243],{"class":161},[155,7299,185],{"class":161},[155,7301,165],{"class":161},[155,7303,1729],{"class":168},[155,7305,165],{"class":161},[155,7307,174],{"class":161},[155,7309,165],{"class":161},[155,7311,1738],{"class":179},[155,7313,165],{"class":161},[155,7315,185],{"class":161},[155,7317,165],{"class":161},[155,7319,523],{"class":168},[155,7321,165],{"class":161},[155,7323,174],{"class":161},[155,7325,1753],{"class":530},[155,7327,185],{"class":161},[155,7329,165],{"class":161},[155,7331,538],{"class":168},[155,7333,165],{"class":161},[155,7335,174],{"class":161},[155,7337,7081],{"class":530},[155,7339,185],{"class":161},[155,7341,165],{"class":161},[155,7343,1499],{"class":168},[155,7345,165],{"class":161},[155,7347,1504],{"class":161},[155,7349,165],{"class":161},[155,7351,1124],{"class":179},[155,7353,165],{"class":161},[155,7355,1513],{"class":161},[155,7357,165],{"class":161},[155,7359,169],{"class":168},[155,7361,165],{"class":161},[155,7363,174],{"class":161},[155,7365,165],{"class":161},[155,7367,1142],{"class":179},[155,7369,165],{"class":161},[155,7371,185],{"class":161},[155,7373,165],{"class":161},[155,7375,190],{"class":168},[155,7377,165],{"class":161},[155,7379,174],{"class":161},[155,7381,165],{"class":161},[155,7383,1812],{"class":179},[155,7385,165],{"class":161},[155,7387,185],{"class":161},[155,7389,165],{"class":161},[155,7391,294],{"class":168},[155,7393,165],{"class":161},[155,7395,174],{"class":161},[155,7397,165],{"class":161},[155,7399,180],{"class":179},[155,7401,165],{"class":161},[155,7403,185],{"class":161},[155,7405,165],{"class":161},[155,7407,1252],{"class":168},[155,7409,165],{"class":161},[155,7411,174],{"class":161},[155,7413,165],{"class":161},[155,7415,918],{"class":179},[155,7417,165],{"class":161},[155,7419,185],{"class":161},[155,7421,165],{"class":161},[155,7423,1269],{"class":168},[155,7425,165],{"class":161},[155,7427,174],{"class":161},[155,7429,165],{"class":161},[155,7431,7432],{"class":179},"debug 4",[155,7434,165],{"class":161},[155,7436,185],{"class":161},[155,7438,165],{"class":161},[155,7440,1870],{"class":168},[155,7442,165],{"class":161},[155,7444,231],{"class":161},[155,7446,165],{"class":161},[155,7448,1879],{"class":168},[155,7450,165],{"class":161},[155,7452,398],{"class":161},[155,7454,165],{"class":161},[155,7456,1888],{"class":168},[155,7458,165],{"class":161},[155,7460,231],{"class":161},[155,7462,165],{"class":161},[155,7464,1897],{"class":168},[155,7466,165],{"class":161},[155,7468,231],{"class":161},[155,7470,165],{"class":161},[155,7472,1906],{"class":168},[155,7474,165],{"class":161},[155,7476,174],{"class":161},[155,7478,165],{"class":161},[155,7480,1915],{"class":179},[155,7482,165],{"class":161},[155,7484,185],{"class":161},[155,7486,165],{"class":161},[155,7488,1924],{"class":168},[155,7490,165],{"class":161},[155,7492,174],{"class":161},[155,7494,243],{"class":161},[155,7496,185],{"class":161},[155,7498,165],{"class":161},[155,7500,1937],{"class":168},[155,7502,165],{"class":161},[155,7504,174],{"class":161},[155,7506,165],{"class":161},[155,7508,1946],{"class":179},[155,7510,165],{"class":161},[155,7512,185],{"class":161},[155,7514,165],{"class":161},[155,7516,523],{"class":168},[155,7518,165],{"class":161},[155,7520,174],{"class":161},[155,7522,3904],{"class":530},[155,7524,185],{"class":161},[155,7526,165],{"class":161},[155,7528,538],{"class":168},[155,7530,165],{"class":161},[155,7532,174],{"class":161},[155,7534,7081],{"class":530},[155,7536,185],{"class":161},[155,7538,165],{"class":161},[155,7540,1499],{"class":168},[155,7542,165],{"class":161},[155,7544,255],{"class":161},[155,7546,165],{"class":161},[155,7548,169],{"class":168},[155,7550,165],{"class":161},[155,7552,174],{"class":161},[155,7554,165],{"class":161},[155,7556,450],{"class":179},[155,7558,165],{"class":161},[155,7560,185],{"class":161},[155,7562,165],{"class":161},[155,7564,190],{"class":168},[155,7566,165],{"class":161},[155,7568,174],{"class":161},[155,7570,165],{"class":161},[155,7572,7573],{"class":179},"sqlite",[155,7575,165],{"class":161},[155,7577,185],{"class":161},[155,7579,165],{"class":161},[155,7581,294],{"class":168},[155,7583,165],{"class":161},[155,7585,174],{"class":161},[155,7587,165],{"class":161},[155,7589,180],{"class":179},[155,7591,165],{"class":161},[155,7593,185],{"class":161},[155,7595,165],{"class":161},[155,7597,1252],{"class":168},[155,7599,165],{"class":161},[155,7601,174],{"class":161},[155,7603,165],{"class":161},[155,7605,268],{"class":179},[155,7607,165],{"class":161},[155,7609,185],{"class":161},[155,7611,165],{"class":161},[155,7613,7614],{"class":168},"mydb",[155,7616,165],{"class":161},[155,7618,174],{"class":161},[155,7620,165],{"class":161},[155,7622,7623],{"class":179},"1ae6d7f7fdb60191",[155,7625,165],{"class":161},[155,7627,185],{"class":161},[155,7629,165],{"class":161},[155,7631,7632],{"class":168},"sqlquery",[155,7634,165],{"class":161},[155,7636,174],{"class":161},[155,7638,165],{"class":161},[155,7640,7641],{"class":179},"msg.topic",[155,7643,165],{"class":161},[155,7645,185],{"class":161},[155,7647,165],{"class":161},[155,7649,1332],{"class":168},[155,7651,165],{"class":161},[155,7653,174],{"class":161},[155,7655,243],{"class":161},[155,7657,185],{"class":161},[155,7659,165],{"class":161},[155,7661,1269],{"class":168},[155,7663,165],{"class":161},[155,7665,174],{"class":161},[155,7667,243],{"class":161},[155,7669,185],{"class":161},[155,7671,165],{"class":161},[155,7673,523],{"class":168},[155,7675,165],{"class":161},[155,7677,174],{"class":161},[155,7679,7680],{"class":530},"720",[155,7682,185],{"class":161},[155,7684,165],{"class":161},[155,7686,538],{"class":168},[155,7688,165],{"class":161},[155,7690,174],{"class":161},[155,7692,1492],{"class":530},[155,7694,185],{"class":161},[155,7696,165],{"class":161},[155,7698,1499],{"class":168},[155,7700,165],{"class":161},[155,7702,1504],{"class":161},[155,7704,165],{"class":161},[155,7706,477],{"class":179},[155,7708,165],{"class":161},[155,7710,1513],{"class":161},[155,7712,165],{"class":161},[155,7714,169],{"class":168},[155,7716,165],{"class":161},[155,7718,174],{"class":161},[155,7720,165],{"class":161},[155,7722,486],{"class":179},[155,7724,165],{"class":161},[155,7726,185],{"class":161},[155,7728,165],{"class":161},[155,7730,190],{"class":168},[155,7732,165],{"class":161},[155,7734,174],{"class":161},[155,7736,165],{"class":161},[155,7738,7573],{"class":179},[155,7740,165],{"class":161},[155,7742,185],{"class":161},[155,7744,165],{"class":161},[155,7746,294],{"class":168},[155,7748,165],{"class":161},[155,7750,174],{"class":161},[155,7752,165],{"class":161},[155,7754,180],{"class":179},[155,7756,165],{"class":161},[155,7758,185],{"class":161},[155,7760,165],{"class":161},[155,7762,1252],{"class":168},[155,7764,165],{"class":161},[155,7766,174],{"class":161},[155,7768,165],{"class":161},[155,7770,268],{"class":179},[155,7772,165],{"class":161},[155,7774,185],{"class":161},[155,7776,165],{"class":161},[155,7778,7614],{"class":168},[155,7780,165],{"class":161},[155,7782,174],{"class":161},[155,7784,165],{"class":161},[155,7786,7623],{"class":179},[155,7788,165],{"class":161},[155,7790,185],{"class":161},[155,7792,165],{"class":161},[155,7794,7632],{"class":168},[155,7796,165],{"class":161},[155,7798,174],{"class":161},[155,7800,165],{"class":161},[155,7802,7641],{"class":179},[155,7804,165],{"class":161},[155,7806,185],{"class":161},[155,7808,165],{"class":161},[155,7810,1332],{"class":168},[155,7812,165],{"class":161},[155,7814,174],{"class":161},[155,7816,243],{"class":161},[155,7818,185],{"class":161},[155,7820,165],{"class":161},[155,7822,1269],{"class":168},[155,7824,165],{"class":161},[155,7826,174],{"class":161},[155,7828,243],{"class":161},[155,7830,185],{"class":161},[155,7832,165],{"class":161},[155,7834,523],{"class":168},[155,7836,165],{"class":161},[155,7838,174],{"class":161},[155,7840,7680],{"class":530},[155,7842,185],{"class":161},[155,7844,165],{"class":161},[155,7846,538],{"class":168},[155,7848,165],{"class":161},[155,7850,174],{"class":161},[155,7852,2240],{"class":530},[155,7854,185],{"class":161},[155,7856,165],{"class":161},[155,7858,1499],{"class":168},[155,7860,165],{"class":161},[155,7862,1504],{"class":161},[155,7864,165],{"class":161},[155,7866,513],{"class":179},[155,7868,165],{"class":161},[155,7870,1513],{"class":161},[155,7872,165],{"class":161},[155,7874,169],{"class":168},[155,7876,165],{"class":161},[155,7878,174],{"class":161},[155,7880,165],{"class":161},[155,7882,750],{"class":179},[155,7884,165],{"class":161},[155,7886,185],{"class":161},[155,7888,165],{"class":161},[155,7890,190],{"class":168},[155,7892,165],{"class":161},[155,7894,174],{"class":161},[155,7896,165],{"class":161},[155,7898,7573],{"class":179},[155,7900,165],{"class":161},[155,7902,185],{"class":161},[155,7904,165],{"class":161},[155,7906,294],{"class":168},[155,7908,165],{"class":161},[155,7910,174],{"class":161},[155,7912,165],{"class":161},[155,7914,180],{"class":179},[155,7916,165],{"class":161},[155,7918,185],{"class":161},[155,7920,165],{"class":161},[155,7922,1252],{"class":168},[155,7924,165],{"class":161},[155,7926,174],{"class":161},[155,7928,165],{"class":161},[155,7930,589],{"class":179},[155,7932,165],{"class":161},[155,7934,185],{"class":161},[155,7936,165],{"class":161},[155,7938,7614],{"class":168},[155,7940,165],{"class":161},[155,7942,174],{"class":161},[155,7944,165],{"class":161},[155,7946,7623],{"class":179},[155,7948,165],{"class":161},[155,7950,185],{"class":161},[155,7952,165],{"class":161},[155,7954,7632],{"class":168},[155,7956,165],{"class":161},[155,7958,174],{"class":161},[155,7960,165],{"class":161},[155,7962,7641],{"class":179},[155,7964,165],{"class":161},[155,7966,185],{"class":161},[155,7968,165],{"class":161},[155,7970,1332],{"class":168},[155,7972,165],{"class":161},[155,7974,174],{"class":161},[155,7976,243],{"class":161},[155,7978,185],{"class":161},[155,7980,165],{"class":161},[155,7982,1269],{"class":168},[155,7984,165],{"class":161},[155,7986,174],{"class":161},[155,7988,243],{"class":161},[155,7990,185],{"class":161},[155,7992,165],{"class":161},[155,7994,523],{"class":168},[155,7996,165],{"class":161},[155,7998,174],{"class":161},[155,8000,8001],{"class":530},"1780",[155,8003,185],{"class":161},[155,8005,165],{"class":161},[155,8007,538],{"class":168},[155,8009,165],{"class":161},[155,8011,174],{"class":161},[155,8013,3052],{"class":530},[155,8015,185],{"class":161},[155,8017,165],{"class":161},[155,8019,1499],{"class":168},[155,8021,165],{"class":161},[155,8023,1504],{"class":161},[155,8025,165],{"class":161},[155,8027,768],{"class":179},[155,8029,165],{"class":161},[155,8031,1513],{"class":161},[155,8033,165],{"class":161},[155,8035,169],{"class":168},[155,8037,165],{"class":161},[155,8039,174],{"class":161},[155,8041,165],{"class":161},[155,8043,1079],{"class":179},[155,8045,165],{"class":161},[155,8047,185],{"class":161},[155,8049,165],{"class":161},[155,8051,190],{"class":168},[155,8053,165],{"class":161},[155,8055,174],{"class":161},[155,8057,165],{"class":161},[155,8059,7573],{"class":179},[155,8061,165],{"class":161},[155,8063,185],{"class":161},[155,8065,165],{"class":161},[155,8067,294],{"class":168},[155,8069,165],{"class":161},[155,8071,174],{"class":161},[155,8073,165],{"class":161},[155,8075,180],{"class":179},[155,8077,165],{"class":161},[155,8079,185],{"class":161},[155,8081,165],{"class":161},[155,8083,1252],{"class":168},[155,8085,165],{"class":161},[155,8087,174],{"class":161},[155,8089,165],{"class":161},[155,8091,918],{"class":179},[155,8093,165],{"class":161},[155,8095,185],{"class":161},[155,8097,165],{"class":161},[155,8099,7614],{"class":168},[155,8101,165],{"class":161},[155,8103,174],{"class":161},[155,8105,165],{"class":161},[155,8107,7623],{"class":179},[155,8109,165],{"class":161},[155,8111,185],{"class":161},[155,8113,165],{"class":161},[155,8115,7632],{"class":168},[155,8117,165],{"class":161},[155,8119,174],{"class":161},[155,8121,165],{"class":161},[155,8123,7641],{"class":179},[155,8125,165],{"class":161},[155,8127,185],{"class":161},[155,8129,165],{"class":161},[155,8131,1332],{"class":168},[155,8133,165],{"class":161},[155,8135,174],{"class":161},[155,8137,243],{"class":161},[155,8139,185],{"class":161},[155,8141,165],{"class":161},[155,8143,1269],{"class":168},[155,8145,165],{"class":161},[155,8147,174],{"class":161},[155,8149,243],{"class":161},[155,8151,185],{"class":161},[155,8153,165],{"class":161},[155,8155,523],{"class":168},[155,8157,165],{"class":161},[155,8159,174],{"class":161},[155,8161,8162],{"class":530},"730",[155,8164,185],{"class":161},[155,8166,165],{"class":161},[155,8168,538],{"class":168},[155,8170,165],{"class":161},[155,8172,174],{"class":161},[155,8174,3462],{"class":530},[155,8176,185],{"class":161},[155,8178,165],{"class":161},[155,8180,1499],{"class":168},[155,8182,165],{"class":161},[155,8184,1504],{"class":161},[155,8186,165],{"class":161},[155,8188,1106],{"class":179},[155,8190,165],{"class":161},[155,8192,1513],{"class":161},[155,8194,165],{"class":161},[155,8196,169],{"class":168},[155,8198,165],{"class":161},[155,8200,174],{"class":161},[155,8202,165],{"class":161},[155,8204,813],{"class":179},[155,8206,165],{"class":161},[155,8208,185],{"class":161},[155,8210,165],{"class":161},[155,8212,190],{"class":168},[155,8214,165],{"class":161},[155,8216,174],{"class":161},[155,8218,165],{"class":161},[155,8220,7573],{"class":179},[155,8222,165],{"class":161},[155,8224,185],{"class":161},[155,8226,165],{"class":161},[155,8228,294],{"class":168},[155,8230,165],{"class":161},[155,8232,174],{"class":161},[155,8234,165],{"class":161},[155,8236,180],{"class":179},[155,8238,165],{"class":161},[155,8240,185],{"class":161},[155,8242,165],{"class":161},[155,8244,1252],{"class":168},[155,8246,165],{"class":161},[155,8248,174],{"class":161},[155,8250,165],{"class":161},[155,8252,589],{"class":179},[155,8254,165],{"class":161},[155,8256,185],{"class":161},[155,8258,165],{"class":161},[155,8260,7614],{"class":168},[155,8262,165],{"class":161},[155,8264,174],{"class":161},[155,8266,165],{"class":161},[155,8268,7623],{"class":179},[155,8270,165],{"class":161},[155,8272,185],{"class":161},[155,8274,165],{"class":161},[155,8276,7632],{"class":168},[155,8278,165],{"class":161},[155,8280,174],{"class":161},[155,8282,165],{"class":161},[155,8284,7641],{"class":179},[155,8286,165],{"class":161},[155,8288,185],{"class":161},[155,8290,165],{"class":161},[155,8292,1332],{"class":168},[155,8294,165],{"class":161},[155,8296,174],{"class":161},[155,8298,243],{"class":161},[155,8300,185],{"class":161},[155,8302,165],{"class":161},[155,8304,1269],{"class":168},[155,8306,165],{"class":161},[155,8308,174],{"class":161},[155,8310,243],{"class":161},[155,8312,185],{"class":161},[155,8314,165],{"class":161},[155,8316,523],{"class":168},[155,8318,165],{"class":161},[155,8320,174],{"class":161},[155,8322,8001],{"class":530},[155,8324,185],{"class":161},[155,8326,165],{"class":161},[155,8328,538],{"class":168},[155,8330,165],{"class":161},[155,8332,174],{"class":161},[155,8334,6183],{"class":530},[155,8336,185],{"class":161},[155,8338,165],{"class":161},[155,8340,1499],{"class":168},[155,8342,165],{"class":161},[155,8344,1504],{"class":161},[155,8346,165],{"class":161},[155,8348,831],{"class":179},[155,8350,165],{"class":161},[155,8352,1513],{"class":161},[155,8354,165],{"class":161},[155,8356,169],{"class":168},[155,8358,165],{"class":161},[155,8360,174],{"class":161},[155,8362,165],{"class":161},[155,8364,1115],{"class":179},[155,8366,165],{"class":161},[155,8368,185],{"class":161},[155,8370,165],{"class":161},[155,8372,190],{"class":168},[155,8374,165],{"class":161},[155,8376,174],{"class":161},[155,8378,165],{"class":161},[155,8380,7573],{"class":179},[155,8382,165],{"class":161},[155,8384,185],{"class":161},[155,8386,165],{"class":161},[155,8388,294],{"class":168},[155,8390,165],{"class":161},[155,8392,174],{"class":161},[155,8394,165],{"class":161},[155,8396,180],{"class":179},[155,8398,165],{"class":161},[155,8400,185],{"class":161},[155,8402,165],{"class":161},[155,8404,1252],{"class":168},[155,8406,165],{"class":161},[155,8408,174],{"class":161},[155,8410,165],{"class":161},[155,8412,918],{"class":179},[155,8414,165],{"class":161},[155,8416,185],{"class":161},[155,8418,165],{"class":161},[155,8420,7614],{"class":168},[155,8422,165],{"class":161},[155,8424,174],{"class":161},[155,8426,165],{"class":161},[155,8428,7623],{"class":179},[155,8430,165],{"class":161},[155,8432,185],{"class":161},[155,8434,165],{"class":161},[155,8436,7632],{"class":168},[155,8438,165],{"class":161},[155,8440,174],{"class":161},[155,8442,165],{"class":161},[155,8444,7641],{"class":179},[155,8446,165],{"class":161},[155,8448,185],{"class":161},[155,8450,165],{"class":161},[155,8452,1332],{"class":168},[155,8454,165],{"class":161},[155,8456,174],{"class":161},[155,8458,243],{"class":161},[155,8460,185],{"class":161},[155,8462,165],{"class":161},[155,8464,1269],{"class":168},[155,8466,165],{"class":161},[155,8468,174],{"class":161},[155,8470,243],{"class":161},[155,8472,185],{"class":161},[155,8474,165],{"class":161},[155,8476,523],{"class":168},[155,8478,165],{"class":161},[155,8480,174],{"class":161},[155,8482,8162],{"class":530},[155,8484,185],{"class":161},[155,8486,165],{"class":161},[155,8488,538],{"class":168},[155,8490,165],{"class":161},[155,8492,174],{"class":161},[155,8494,7081],{"class":530},[155,8496,185],{"class":161},[155,8498,165],{"class":161},[155,8500,1499],{"class":168},[155,8502,165],{"class":161},[155,8504,1504],{"class":161},[155,8506,165],{"class":161},[155,8508,1142],{"class":179},[155,8510,165],{"class":161},[155,8512,1513],{"class":161},[155,8514,165],{"class":161},[155,8516,169],{"class":168},[155,8518,165],{"class":161},[155,8520,174],{"class":161},[155,8522,165],{"class":161},[155,8524,7623],{"class":179},[155,8526,165],{"class":161},[155,8528,185],{"class":161},[155,8530,165],{"class":161},[155,8532,190],{"class":168},[155,8534,165],{"class":161},[155,8536,174],{"class":161},[155,8538,165],{"class":161},[155,8540,8541],{"class":179},"sqlitedb",[155,8543,165],{"class":161},[155,8545,185],{"class":161},[155,8547,165],{"class":161},[155,8549,8550],{"class":168},"db",[155,8552,165],{"class":161},[155,8554,174],{"class":161},[155,8556,165],{"class":161},[155,8558,8559],{"class":179},"sqllite",[155,8561,165],{"class":161},[155,8563,185],{"class":161},[155,8565,165],{"class":161},[155,8567,8568],{"class":168},"mode",[155,8570,165],{"class":161},[155,8572,174],{"class":161},[155,8574,165],{"class":161},[155,8576,8577],{"class":179},"RWC",[155,8579,165],{"class":161},[155,8581,8582],{"class":161},"}]\n",[42,8584,8585,8588,8595,8605,8616],{},[45,8586,8587],{},"Import the provided flow for data generation.",[45,8589,8590,8591,8594],{},"Click the ",[86,8592,8593],{},"Deploy"," button to activate the flow.",[45,8596,8597,8598,8601,8602,68],{},"On deployment, it will create two SQLite tables: ",[152,8599,8600],{},"ProductionData"," and ",[152,8603,8604],{},"DowntimeData",[45,8606,8607,8608,8611,8612,68],{},"Find the ",[86,8609,8610],{},"Inject node"," labeled ",[8613,8614,8615],"em",{},"Click to generate and insert demo data",[45,8617,8618],{},"Click the inject node to trigger data generation.",[12,8620,8621],{},"The flow will generate data with the following fields:",[12,8623,8624,8629],{},[8625,8626],"img",{"alt":8627,"dataZoomable":150,"src":8628},"Demo Production and Downtime data object","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fdemo-data-props.png",[8613,8630,8627],{},[73,8632,8634],{"id":8633},"collecting-and-configuring-data","Collecting and Configuring Data",[12,8636,8637],{},"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.",[8639,8640,8642],"h4",{"id":8641},"adding-flow-to-configure-settings","Adding flow to configure settings:",[42,8644,8645,8652,8658,8692,8705],{},[45,8646,8647,8648,8651],{},"Click on the ",[86,8649,8650],{},"\"+\""," to create a new flow.",[45,8653,8654,8655,68],{},"Name the newly created flow to ",[86,8656,8657],{},"OEE Dashboard for Line-1",[45,8659,8660,8661,8664,8665],{},"Drag a ",[86,8662,8663],{},"Change node"," onto the canvas, double-click it, and add the following elements:",[81,8666,8667,8677,8685],{},[45,8668,8669,8670,8673,8674],{},"Set ",[152,8671,8672],{},"flow.line"," to ",[152,8675,8676],{},"\"Line-1\"",[45,8678,8669,8679,8673,8682],{},[152,8680,8681],{},"flow.shift_duration",[152,8683,8684],{},"12",[45,8686,8669,8687,8673,8690],{},[152,8688,8689],{},"flow.shiftDuration24h",[152,8691,531],{},[45,8693,8694,8695,8697,8698,8701,8702,8704],{},"Drag an ",[86,8696,8610],{},", set it to trigger on deploy by enabling ",[86,8699,8700],{},"Inject once after X seconds"," (set delay to ",[152,8703,1698],{}," seconds).",[45,8706,8707,8708,8710],{},"Click ",[86,8709,8593],{}," to apply changes.",[12,8712,8713,8714,8717,8718,8721,8722,8725],{},"In this flow, we are configuring the production line based on the demo data, specifically for ",[86,8715,8716],{},"Line-1",", as we are building the OEE dashboard for this line. The settings define the shift duration for the last ",[86,8719,8720],{},"X"," hours used in OEE calculations and the total shift duration within a ",[86,8723,8724],{},"24-hour"," period.",[12,8727,8728,8732],{},[8625,8729],{"alt":8730,"dataZoomable":150,"src":8731},"Flow to set basic configuration settings that will be used across the OEE dashboard flow for calculations.","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fconfiguration-flow.png",[8613,8733,8730],{},[8639,8735,8737],{"id":8736},"retrieving-data-from-sqlite","Retrieving Data from SQLite:",[42,8739,8740,8745,8783,8812,8825,8828,8852,8863,8866],{},[45,8741,8694,8742,8744],{},[86,8743,8610],{}," and configure it to trigger at regular intervals.",[45,8746,8660,8747,8749,8750],{},[86,8748,8663],{}," and add following elements:",[81,8751,8752,8760,8768,8776],{},[45,8753,8669,8754,8673,8757],{},[152,8755,8756],{},"msg.params",[152,8758,8759],{},"{}",[45,8761,8669,8762,8673,8765],{},[152,8763,8764],{},"msg.params.$startTime",[152,8766,8767],{},"$moment($millis() - ($number($flowContext('shift_duration')) * 60 * 60 * 1000)).format('YYYY-MM-DD HH:mm:ss')",[45,8769,8669,8770,8673,8773],{},[152,8771,8772],{},"msg.params.$endTime",[152,8774,8775],{},"$moment($millis()).format('YYYY-MM-DD HH:mm:ss')",[45,8777,8669,8778,8673,8781],{},[152,8779,8780],{},"msg.params.$line",[152,8782,8672],{},[45,8784,8694,8785,8788,8789],{},[86,8786,8787],{},"SQLite node"," and insert the following query:",[145,8790,8793],{"className":8791,"code":8792,"language":1332,"meta":150,"style":150},"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",[152,8794,8795,8800,8806],{"__ignoreMap":150},[155,8796,8797],{"class":157,"line":158},[155,8798,8799],{},"SELECT timestamp, machine_name, area, line, total_produced_units, good_units, defect_units, target_output\n",[155,8801,8803],{"class":157,"line":8802},2,[155,8804,8805],{},"FROM ProductionData\n",[155,8807,8809],{"class":157,"line":8808},3,[155,8810,8811],{},"WHERE timestamp BETWEEN $startTime AND $endTime AND line = $line;\n",[45,8813,8814,8815],{},"Drag a Change node onto the canvas and set the following element to store the retrived production data result as new property:",[81,8816,8817],{},[45,8818,8669,8819,8673,8822],{},[152,8820,8821],{},"msg.payload",[152,8823,8824],{},"msg.productionData",[45,8826,8827],{},"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,8829,8830,8831,8788,8833],{},"Drag another ",[86,8832,8787],{},[145,8834,8836],{"className":8791,"code":8835,"language":1332,"meta":150,"style":150},"SELECT timestamp, machine_name, downtime_start, downtime_duration_minutes, downtime_reason\nFROM DowntimeData\nWHERE timestamp BETWEEN $startTime AND $endTime AND line = $line;\n",[152,8837,8838,8843,8848],{"__ignoreMap":150},[155,8839,8840],{"class":157,"line":158},[155,8841,8842],{},"SELECT timestamp, machine_name, downtime_start, downtime_duration_minutes, downtime_reason\n",[155,8844,8845],{"class":157,"line":8802},[155,8846,8847],{},"FROM DowntimeData\n",[155,8849,8850],{"class":157,"line":8808},[155,8851,8811],{},[45,8853,8814,8854],{},[81,8855,8856],{},[45,8857,8669,8858,8673,8860],{},[152,8859,8821],{},[152,8861,8862],{},"msg.downtimeData",[45,8864,8865],{},"Connect the SQLite node’s output to the input of last change node we added.",[45,8867,8868],{},"Now, drag the Link Out node onto the canvas and connect it to the last Change node.",[12,8870,8871,8875],{},[8625,8872],{"alt":8873,"dataZoomable":150,"src":8874},"Flow that retrives the data from the sqlite table","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fsqlite-flow.png",[8613,8876,8873],{},[73,8878,8880],{"id":8879},"preparing-data-for-oee-calculations","Preparing Data for OEE Calculations",[12,8882,8883],{},"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,8885,8886,8896,8925,8945,8972,8995,9002,9025,9047,9054,9060,9081,9100],{},[45,8887,8888,8889,8892,8893,68],{},"Drag the ",[86,8890,8891],{},"link in node"," onto the canvas and connect it to the ",[86,8894,8895],{},"link out node",[45,8897,8898,8899,8902,8903,8906,8907],{},"Drag two ",[86,8900,8901],{},"Change nodes"," onto the canvas and connect them to the ",[86,8904,8905],{},"Link In"," node.",[81,8908,8909,8917],{},[45,8910,8911,8912,8673,8914,68],{},"In the first Change node, set ",[152,8913,8821],{},[152,8915,8916],{},"production_data",[45,8918,8919,8920,8673,8922,68],{},"In the second Change node, set ",[152,8921,8821],{},[152,8923,8924],{},"downtime_data",[45,8926,8660,8927,8930,8931,8933,8934,8936,8937,8939,8940,8942,8943,68],{},[86,8928,8929],{},"Split node"," onto the canvas and connect it to the first ",[86,8932,8663],{},", the one setting ",[152,8935,8916],{},". Configure the ",[86,8938,8929],{}," so that ",[152,8941,8821],{}," is assigned to ",[152,8944,8916],{},[45,8946,8947,8948,8902,8951,8953,8954,8957,8958],{},"Drag three ",[86,8949,8950],{},"Join nodes",[86,8952,8929],{}," to sum individual data points. Configure each ",[86,8955,8956],{},"Join node"," with the following settings:",[81,8959,8960,8963,8966],{},[45,8961,8962],{},"Mode: Reduce Sequence",[45,8964,8965],{},"Initial Value: 0",[45,8967,8968,8969],{},"Fix-up Expression: ",[152,8970,8971],{},"$A",[45,8973,8974,8975],{},"Set the reduce expressions as follows:",[81,8976,8977,8983,8989],{},[45,8978,8979,8980],{},"First Join Node: ",[152,8981,8982],{},"$A + msg.payload.total_produced_units",[45,8984,8985,8986],{},"Second Join Node: ",[152,8987,8988],{},"$A + msg.payload.good_units",[45,8990,8991,8992],{},"Third Join Node: ",[152,8993,8994],{},"$A + msg.payload.target_output",[45,8996,8947,8997,8999,9000,68],{},[86,8998,8901],{}," onto the canvas and connect each to a ",[86,9001,8956],{},[45,9003,9004,9005,9007,9008],{},"Configure these ",[86,9006,8901],{}," to store the summed values using the following variables to flow context:",[81,9009,9010,9015,9020],{},[45,9011,9012],{},[152,9013,9014],{},"total_produced_units",[45,9016,9017],{},[152,9018,9019],{},"total_good_units",[45,9021,9022],{},[152,9023,9024],{},"total_target_output",[45,9026,8660,9027,8892,9030,9032,9033,9035,9036,9038,9039],{},[86,9028,9029],{},"Switch node",[86,9031,8663],{}," that sets the retrieved downtime data to ",[152,9034,8821],{},", for switch node set the Property to ",[152,9037,8821],{}," and add the following conditions:",[81,9040,9041,9044],{},[45,9042,9043],{},"is not empty.",[45,9045,9046],{},"Otherwise.",[45,9048,8660,9049,9051,9052,68],{},[86,9050,8929],{}," onto the canvas and connect it to the first output of the ",[86,9053,9029],{},[45,9055,8660,9056,8892,9058,68],{},[86,9057,8956],{},[86,9059,8929],{},[45,9061,9062,9063,8957,9065],{},"Configure the ",[86,9064,8956],{},[81,9066,9067,9069,9071,9075],{},[45,9068,8962],{},[45,9070,8965],{},[45,9072,8968,9073],{},[152,9074,8971],{},[45,9076,9077,9078],{},"Reduce Expression: ",[152,9079,9080],{},"$A + payload.downtime_duration_minutes",[45,9082,8660,9083,8892,9085,9087,9088,9090,9091],{},[86,9084,8663],{},[86,9086,8956],{},", Configure this ",[86,9089,8663],{}," to store the total downtime duration in the flow context with following element:",[81,9092,9093],{},[45,9094,8669,9095,8673,9098],{},[152,9096,9097],{},"flow.total_downtime",[152,9099,8821],{},[45,9101,9102],{},"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,9104,9105],{},[45,9106,8669,9107,9109],{},[152,9108,9097],{}," to 0",[42,9111,9113],{"start":9112},14,[45,9114,8660,9115,9118],{},[86,9116,9117],{},"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,9120,9121,9125],{},[8625,9122],{"alt":9123,"dataZoomable":150,"src":9124},"Flow to prepare the data necessary to calculate OEE and all its three components.","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Fpreparing-data-flow.png",[8613,9126,9123],{},[73,9128,9130],{"id":9129},"calculating-oee-and-key-metrics","Calculating OEE and Key Metrics",[12,9132,9133],{},"Now that we have all the necessary pieces, we can calculate the key metrics for OEE: Availability, Performance, and Quality and later OEE.",[42,9135,9136,9141,9347,9355,9364],{},[45,9137,8660,9138,68],{},[86,9139,9140],{},"Link In node",[45,9142,8660,9143,9145,9146,9208],{},[86,9144,8663],{}," and add element as following:",[81,9147,9148,9157,9165,9173,9181,9189,9196,9203],{},[45,9149,8669,9150,8673,9153,9156],{},[152,9151,9152],{},"msg.quality",[152,9154,9155],{},"($flowContext('total_good_units') \u002F $flowContext('total_produced_units')) * 100"," as JSONata expression.",[45,9158,8669,9159,8673,9162,9156],{},[152,9160,9161],{},"msg.availability",[152,9163,9164],{},"(($flowContext('shift_duration') - $flowContext('total_downtime')) \u002F $flowContext('shift_duration')) * 100",[45,9166,8669,9167,8673,9170,9156],{},[152,9168,9169],{},"msg.performance",[152,9171,9172],{},"($flowContext('total_produced_units') \u002F $flowContext('target_output')) * 100",[45,9174,8669,9175,8673,9178,9156],{},[152,9176,9177],{},"msg.oee",[152,9179,9180],{},"$round(((msg.availability \u002F 100) * (msg.performance \u002F 100) * (msg.quality \u002F 100)) * 100, 2)",[45,9182,8669,9183,9185,9186],{},[152,9184,9152],{},"to ",[152,9187,9188],{},"$round(msg.quality, 2)",[45,9190,8669,9191,8673,9193],{},[152,9192,9161],{},[152,9194,9195],{},"$round(msg.availability, 2)",[45,9197,8669,9198,8673,9200],{},[152,9199,9169],{},[152,9201,9202],{},"$round(msg.performance, 2)",[45,9204,8669,9205,9207],{},[152,9206,8824],{}," to JSONata expression:",[145,9209,9211],{"className":147,"code":9210,"language":149,"meta":150,"style":150},"[\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",[152,9212,9213,9218,9223,9246,9270,9276,9282,9303,9335,9341],{"__ignoreMap":150},[155,9214,9215],{"class":157,"line":158},[155,9216,9217],{"class":161},"[\n",[155,9219,9220],{"class":157,"line":8802},[155,9221,9222],{"class":161},"{\n",[155,9224,9225,9228,9231,9233,9235,9238,9241,9243],{"class":157,"line":8808},[155,9226,9227],{"class":161},"    \"",[155,9229,9230],{"class":168},"reason",[155,9232,165],{"class":161},[155,9234,174],{"class":161},[155,9236,9237],{"class":161}," \"",[155,9239,9240],{"class":179},"Total Good Units Produced",[155,9242,165],{"class":161},[155,9244,9245],{"class":161},",\n",[155,9247,9249,9251,9254,9256,9258,9261,9263,9265,9267],{"class":157,"line":9248},4,[155,9250,9227],{"class":161},[155,9252,9253],{"class":168},"units",[155,9255,165],{"class":161},[155,9257,174],{"class":161},[155,9259,9260],{"class":1370}," $flowContext(",[155,9262,165],{"class":161},[155,9264,9019],{"class":179},[155,9266,165],{"class":161},[155,9268,9269],{"class":1370},")\n",[155,9271,9273],{"class":157,"line":9272},5,[155,9274,9275],{"class":161},"  },\n",[155,9277,9279],{"class":157,"line":9278},6,[155,9280,9281],{"class":161},"  {\n",[155,9283,9285,9287,9290,9292,9294,9296,9299,9301],{"class":157,"line":9284},7,[155,9286,9227],{"class":161},[155,9288,9289],{"class":168},"series",[155,9291,165],{"class":161},[155,9293,174],{"class":161},[155,9295,9237],{"class":161},[155,9297,9298],{"class":179},"Total Defective Units Produced",[155,9300,165],{"class":161},[155,9302,9245],{"class":161},[155,9304,9306,9308,9310,9312,9314,9317,9319,9321,9323,9326,9328,9330,9332],{"class":157,"line":9305},8,[155,9307,9227],{"class":161},[155,9309,9253],{"class":168},[155,9311,165],{"class":161},[155,9313,174],{"class":161},[155,9315,9316],{"class":1370}," $number($flowContext(",[155,9318,165],{"class":161},[155,9320,9014],{"class":179},[155,9322,165],{"class":161},[155,9324,9325],{"class":1370},")) - $number($flowContext(",[155,9327,165],{"class":161},[155,9329,9019],{"class":179},[155,9331,165],{"class":161},[155,9333,9334],{"class":1370},"))\n",[155,9336,9338],{"class":157,"line":9337},9,[155,9339,9340],{"class":161},"  }\n",[155,9342,9344],{"class":157,"line":9343},10,[155,9345,9346],{"class":161},"]\n",[45,9348,8660,9349,9352,9353,68],{},[86,9350,9351],{},"Link Out node"," and connect it to the ",[86,9354,8663],{},[45,9356,9357,9358,9360,9361,9363],{},"Drag a separate ",[86,9359,8905],{}," node for visualization and keep it in a separate flow. This will be the ",[86,9362,8905],{}," node where all the calculated final data for visualization will be stored.",[45,9365,9366,9367,9370,9371,8906],{},"Connect ",[86,9368,9369],{},"link out"," node to this ",[86,9372,9373],{},"link in",[12,9375,9376,9380],{},[8625,9377],{"alt":9378,"dataZoomable":150,"src":9379},"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",[8613,9381,9378],{},[73,9383,9385],{"id":9384},"detailed-breakdown-of-oee-data","Detailed Breakdown of OEE Data",[12,9387,9388],{},"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,9390,9391],{},"Let’s do that.",[42,9393,9394,9403],{},[45,9395,8888,9396,8892,9398,9400,9401,68],{},[86,9397,8891],{},[86,9399,8895],{}," that is part of the SQLite flow, which is also connected to the change node that sets the retrieved downtime result to ",[152,9402,8821],{},[45,9404,8660,9405,9408,9409,68],{},[86,9406,9407],{},"change node"," onto the canvas and set the following element: ",[152,9410,9411],{},"Set msg.downtime_data to msg.payload",[8639,9413,9415],{"id":9414},"downtime-summary","Downtime Summary",[42,9417,9418],{},[45,9419,8660,9420,9423],{},[86,9421,9422],{},"function node"," onto the canvas and add the following JavaScript to calculate the downtime summary:",[145,9425,9429],{"className":9426,"code":9427,"language":9428,"meta":150,"style":150},"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",[152,9430,9431,9452,9500,9514,9519,9533,9564,9606,9615,9660,9672,9683,9693,9699,9726],{"__ignoreMap":150},[155,9432,9433,9435,9439,9442,9446,9449],{"class":157,"line":158},[155,9434,4222],{"class":168},[155,9436,9438],{"class":9437},"s2Zo4"," calculateDowntimeByReason",[155,9440,9441],{"class":161},"(",[155,9443,9445],{"class":9444},"sHdIc","downtimeData",[155,9447,9448],{"class":161},")",[155,9450,9451],{"class":161}," {\n",[155,9453,9454,9458,9462,9465,9468,9470,9473,9475,9477,9479,9482,9485,9487,9490,9493,9496,9498],{"class":157,"line":8802},[155,9455,9457],{"class":9456},"s7zQu","   if",[155,9459,9461],{"class":9460},"swJcz"," (",[155,9463,9464],{"class":161},"!",[155,9466,9467],{"class":1370},"Array",[155,9469,68],{"class":161},[155,9471,9472],{"class":9437},"isArray",[155,9474,9441],{"class":9460},[155,9476,9445],{"class":1370},[155,9478,2932],{"class":9460},[155,9480,9481],{"class":161},"||",[155,9483,9484],{"class":1370}," downtimeData",[155,9486,68],{"class":161},[155,9488,9489],{"class":1370},"length",[155,9491,9492],{"class":161}," ===",[155,9494,9495],{"class":530}," 0",[155,9497,2932],{"class":9460},[155,9499,9222],{"class":161},[155,9501,9502,9505,9508,9511],{"class":157,"line":8808},[155,9503,9504],{"class":9456},"       return",[155,9506,9507],{"class":9460}," []",[155,9509,9510],{"class":161},";",[155,9512,9513],{"class":1370}," f\n",[155,9515,9516],{"class":157,"line":9248},[155,9517,9518],{"class":161},"   }\n",[155,9520,9521,9524,9527,9530],{"class":157,"line":9272},[155,9522,9523],{"class":168},"   const",[155,9525,9526],{"class":1370}," summary",[155,9528,9529],{"class":161}," =",[155,9531,9532],{"class":161}," {};\n",[155,9534,9535,9538,9540,9543,9545,9548,9551,9553,9556,9559,9562],{"class":157,"line":9278},[155,9536,9537],{"class":1370},"   downtimeData",[155,9539,68],{"class":161},[155,9541,9542],{"class":9437},"forEach",[155,9544,9441],{"class":9460},[155,9546,9547],{"class":161},"({",[155,9549,9550],{"class":9444}," downtime_reason",[155,9552,185],{"class":161},[155,9554,9555],{"class":9444}," downtime_duration_minutes",[155,9557,9558],{"class":161}," })",[155,9560,9561],{"class":168}," =>",[155,9563,9451],{"class":161},[155,9565,9566,9569,9572,9575,9578,9581,9583,9586,9588,9590,9592,9594,9596,9598,9601,9603],{"class":157,"line":9284},[155,9567,9568],{"class":1370},"       summary",[155,9570,9571],{"class":9460},"[",[155,9573,9574],{"class":1370},"downtime_reason",[155,9576,9577],{"class":9460},"] ",[155,9579,9580],{"class":161},"=",[155,9582,9461],{"class":9460},[155,9584,9585],{"class":1370},"summary",[155,9587,9571],{"class":9460},[155,9589,9574],{"class":1370},[155,9591,9577],{"class":9460},[155,9593,9481],{"class":161},[155,9595,9495],{"class":530},[155,9597,2932],{"class":9460},[155,9599,9600],{"class":161},"+",[155,9602,9555],{"class":1370},[155,9604,9605],{"class":161},";\n",[155,9607,9608,9611,9613],{"class":157,"line":9305},[155,9609,9610],{"class":161},"   }",[155,9612,9448],{"class":9460},[155,9614,9605],{"class":161},[155,9616,9617,9620,9623,9625,9628,9630,9632,9634,9636,9639,9641,9644,9646,9648,9651,9654,9656,9658],{"class":157,"line":9337},[155,9618,9619],{"class":9456},"   return",[155,9621,9622],{"class":1370}," Object",[155,9624,68],{"class":161},[155,9626,9627],{"class":9437},"entries",[155,9629,9441],{"class":9460},[155,9631,9585],{"class":1370},[155,9633,9448],{"class":9460},[155,9635,68],{"class":161},[155,9637,9638],{"class":9437},"map",[155,9640,9441],{"class":9460},[155,9642,9643],{"class":161},"([",[155,9645,9230],{"class":9444},[155,9647,185],{"class":161},[155,9649,9650],{"class":9444}," duration",[155,9652,9653],{"class":161},"])",[155,9655,9561],{"class":168},[155,9657,9461],{"class":9460},[155,9659,9222],{"class":161},[155,9661,9662,9665,9667,9670],{"class":157,"line":9343},[155,9663,9664],{"class":9460},"       downtime_reason",[155,9666,174],{"class":161},[155,9668,9669],{"class":1370}," reason",[155,9671,9245],{"class":161},[155,9673,9675,9678,9680],{"class":157,"line":9674},11,[155,9676,9677],{"class":9460},"       downtime_duration_minutes",[155,9679,174],{"class":161},[155,9681,9682],{"class":1370}," duration\n",[155,9684,9686,9688,9691],{"class":157,"line":9685},12,[155,9687,9610],{"class":161},[155,9689,9690],{"class":9460},"))",[155,9692,9605],{"class":161},[155,9694,9696],{"class":157,"line":9695},13,[155,9697,9698],{"class":161},"}\n",[155,9700,9701,9703,9705,9708,9710,9712,9715,9717,9720,9722,9724],{"class":157,"line":9112},[155,9702,1314],{"class":1370},[155,9704,68],{"class":161},[155,9706,9707],{"class":1370},"payload ",[155,9709,9580],{"class":161},[155,9711,9438],{"class":9437},[155,9713,9714],{"class":1370},"(msg",[155,9716,68],{"class":161},[155,9718,9719],{"class":1370},"payload) ",[155,9721,9481],{"class":161},[155,9723,9507],{"class":1370},[155,9725,9605],{"class":161},[155,9727,9729,9732,9735],{"class":157,"line":9728},15,[155,9730,9731],{"class":9456},"return",[155,9733,9734],{"class":1370}," msg",[155,9736,9605],{"class":161},[42,9738,9739,9753,9763],{"start":8802},[45,9740,8660,9741,9743,9744],{},[86,9742,9407],{}," onto the canvas and set:",[81,9745,9746],{},[45,9747,8669,9748,8673,9750,68],{},[152,9749,8821],{},[152,9751,9752],{},"msg.downtimeSummary",[45,9754,8660,9755,9757,9758,8673,9761,68],{},[86,9756,9369],{}," node and connect it to the change node that sets ",[152,9759,9760],{},"msg.downtime_data",[152,9762,8821],{},[45,9764,9765,9766,9768,9769,9771],{},"Connect this ",[86,9767,8895],{}," to the ",[86,9770,8891],{}," that we added earlier to receive all the calculated metrics for visualization.",[8639,9773,9775],{"id":9774},"recent-downtime","Recent Downtime",[42,9777,9778,9799,9811,9837,9849,9868],{},[45,9779,8660,9780,9783,9784,9786,9787],{},[86,9781,9782],{},"Switch"," node onto the canvas and set the property to ",[86,9785,8821],{},". Add the following condition:",[81,9788,9789,9794],{},[45,9790,9791],{},[86,9792,9793],{},"is not empty",[45,9795,9796],{},[86,9797,9798],{},"otherwise",[45,9800,8660,9801,9804,9805,9808,9809,8906],{},[86,9802,9803],{},"Split"," node onto the canvas and connect it to the ",[86,9806,9807],{},"first output"," of the ",[86,9810,9782],{},[45,9812,8660,9813,9804,9816,9818,9819,9822,9823,9828,9829,9832,9833,9836],{},[86,9814,9815],{},"Sort",[86,9817,9803],{}," node. Set the sort to ",[86,9820,9821],{},"\"message sequence\"",", key to ",[86,9824,9825],{},[152,9826,9827],{},"msg.payload.downtime_start",", and order to ",[86,9830,9831],{},"\"descending.\""," This will sort the downtime data from ",[86,9834,9835],{},"most recent to oldest"," based on its start time.",[45,9838,8660,9839,9842,9843,9846,9847,8906],{},[86,9840,9841],{},"Join"," node onto the canvas and set the mode to ",[86,9844,9845],{},"automatic",", then connect it to the ",[86,9848,9815],{},[45,9850,8660,9851,9854,9855],{},[86,9852,9853],{},"Change"," node onto the canvas and set the following element:",[81,9856,9857],{},[45,9858,9859],{},[86,9860,8669,9861,8673,9864,9867],{},[152,9862,9863],{},"msg.recentDowntime",[152,9865,9866],{},"payload^(10)"," as a JSONata expression.",[45,9869,9870,9871,9873,9874,9876],{},"Connect the ",[86,9872,9853],{}," node to the ",[86,9875,9117],{}," node that was added before.",[8639,9878,9880],{"id":9879},"top-underperforming-machines","Top Underperforming Machines",[42,9882,9883,9894],{},[45,9884,8660,9885,9804,9888,9890,9891,68],{},[86,9886,9887],{},"Function",[86,9889,8905],{}," node that is receiving the ",[86,9892,9893],{},"SQLite result",[45,9895,9896,9897,9900,9901,9903],{},"Add the following ",[86,9898,9899],{},"JavaScript"," code to the ",[86,9902,9887],{}," node:",[145,9905,9907],{"className":9426,"code":9906,"language":9428,"meta":150,"style":150},"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",[152,9908,9909,9927,9944,9992,9998,10003,10015,10033,10059,10078,10089,10100,10111,10122,10140,10145,10151,10182,10212,10242,10268,10277,10282,10315,10336,10341,10382,10387,10409,10431,10477,10483,10488,10522,10566,10578,10583,10612,10653,10658,10701,10742,10747,10769,10774,10782,10819,10852,10885,10916,10921,10926,10931,10955,10960,10968,10980,10996,11011,11017,11026,11031,11037,11080,11085],{"__ignoreMap":150},[155,9910,9911,9914,9917,9919,9921,9923,9925],{"class":157,"line":158},[155,9912,9913],{"class":168},"const",[155,9915,9916],{"class":1370}," productionData ",[155,9918,9580],{"class":161},[155,9920,9734],{"class":1370},[155,9922,68],{"class":161},[155,9924,8916],{"class":1370},[155,9926,9605],{"class":161},[155,9928,9929,9931,9934,9936,9938,9940,9942],{"class":157,"line":8802},[155,9930,9913],{"class":168},[155,9932,9933],{"class":1370}," downtimeEvents ",[155,9935,9580],{"class":161},[155,9937,9734],{"class":1370},[155,9939,68],{"class":161},[155,9941,8924],{"class":1370},[155,9943,9605],{"class":161},[155,9945,9946,9948,9951,9953,9956,9958,9961,9963,9966,9969,9971,9973,9975,9978,9980,9983,9986,9988],{"class":157,"line":8808},[155,9947,9913],{"class":168},[155,9949,9950],{"class":1370}," shiftDuration ",[155,9952,9580],{"class":161},[155,9954,9955],{"class":1370}," (flow",[155,9957,68],{"class":161},[155,9959,9960],{"class":9437},"get",[155,9962,9441],{"class":1370},[155,9964,9965],{"class":161},"'",[155,9967,9968],{"class":179},"shift_duration",[155,9970,9965],{"class":161},[155,9972,2932],{"class":1370},[155,9974,9481],{"class":161},[155,9976,9977],{"class":530}," 1",[155,9979,2932],{"class":1370},[155,9981,9982],{"class":161},"*",[155,9984,9985],{"class":530}," 60",[155,9987,9510],{"class":161},[155,9989,9991],{"class":9990},"sHwdD"," \u002F\u002F Convert hours to minutes\n",[155,9993,9994],{"class":157,"line":9248},[155,9995,9997],{"emptyLinePlaceholder":9996},true,"\n",[155,9999,10000],{"class":157,"line":9272},[155,10001,10002],{"class":9990},"\u002F\u002F Group production data by machine (including area)\n",[155,10004,10005,10008,10011,10013],{"class":157,"line":9278},[155,10006,10007],{"class":168},"let",[155,10009,10010],{"class":1370}," machineData ",[155,10012,9580],{"class":161},[155,10014,9532],{"class":161},[155,10016,10017,10020,10022,10024,10026,10029,10031],{"class":157,"line":9284},[155,10018,10019],{"class":1370},"productionData",[155,10021,68],{"class":161},[155,10023,9542],{"class":9437},[155,10025,9441],{"class":1370},[155,10027,10028],{"class":9444},"data",[155,10030,9561],{"class":168},[155,10032,9451],{"class":161},[155,10034,10035,10038,10040,10042,10045,10047,10049,10051,10054,10057],{"class":157,"line":9305},[155,10036,10037],{"class":9456},"    if",[155,10039,9461],{"class":9460},[155,10041,9464],{"class":161},[155,10043,10044],{"class":1370},"machineData",[155,10046,9571],{"class":9460},[155,10048,10028],{"class":1370},[155,10050,68],{"class":161},[155,10052,10053],{"class":1370},"machine_name",[155,10055,10056],{"class":9460},"]) ",[155,10058,9222],{"class":161},[155,10060,10061,10064,10066,10068,10070,10072,10074,10076],{"class":157,"line":9337},[155,10062,10063],{"class":1370},"        machineData",[155,10065,9571],{"class":9460},[155,10067,10028],{"class":1370},[155,10069,68],{"class":161},[155,10071,10053],{"class":1370},[155,10073,9577],{"class":9460},[155,10075,9580],{"class":161},[155,10077,9451],{"class":161},[155,10079,10080,10083,10085,10087],{"class":157,"line":9343},[155,10081,10082],{"class":9460},"            total_produced_units",[155,10084,174],{"class":161},[155,10086,9495],{"class":530},[155,10088,9245],{"class":161},[155,10090,10091,10094,10096,10098],{"class":157,"line":9674},[155,10092,10093],{"class":9460},"            good_units",[155,10095,174],{"class":161},[155,10097,9495],{"class":530},[155,10099,9245],{"class":161},[155,10101,10102,10105,10107,10109],{"class":157,"line":9685},[155,10103,10104],{"class":9460},"            target_output",[155,10106,174],{"class":161},[155,10108,9495],{"class":530},[155,10110,9245],{"class":161},[155,10112,10113,10116,10118,10120],{"class":157,"line":9695},[155,10114,10115],{"class":9460},"            count",[155,10117,174],{"class":161},[155,10119,9495],{"class":530},[155,10121,9245],{"class":161},[155,10123,10124,10127,10129,10132,10134,10137],{"class":157,"line":9112},[155,10125,10126],{"class":9460},"            area",[155,10128,174],{"class":161},[155,10130,10131],{"class":1370}," data",[155,10133,68],{"class":161},[155,10135,10136],{"class":1370},"area",[155,10138,10139],{"class":9990}," \u002F\u002F Store area\n",[155,10141,10142],{"class":157,"line":9728},[155,10143,10144],{"class":161},"        };\n",[155,10146,10148],{"class":157,"line":10147},16,[155,10149,10150],{"class":161},"    }\n",[155,10152,10154,10157,10159,10161,10163,10165,10167,10169,10171,10174,10176,10178,10180],{"class":157,"line":10153},17,[155,10155,10156],{"class":1370},"    machineData",[155,10158,9571],{"class":9460},[155,10160,10028],{"class":1370},[155,10162,68],{"class":161},[155,10164,10053],{"class":1370},[155,10166,4431],{"class":9460},[155,10168,68],{"class":161},[155,10170,9014],{"class":1370},[155,10172,10173],{"class":161}," +=",[155,10175,10131],{"class":1370},[155,10177,68],{"class":161},[155,10179,9014],{"class":1370},[155,10181,9605],{"class":161},[155,10183,10185,10187,10189,10191,10193,10195,10197,10199,10202,10204,10206,10208,10210],{"class":157,"line":10184},18,[155,10186,10156],{"class":1370},[155,10188,9571],{"class":9460},[155,10190,10028],{"class":1370},[155,10192,68],{"class":161},[155,10194,10053],{"class":1370},[155,10196,4431],{"class":9460},[155,10198,68],{"class":161},[155,10200,10201],{"class":1370},"good_units",[155,10203,10173],{"class":161},[155,10205,10131],{"class":1370},[155,10207,68],{"class":161},[155,10209,10201],{"class":1370},[155,10211,9605],{"class":161},[155,10213,10215,10217,10219,10221,10223,10225,10227,10229,10232,10234,10236,10238,10240],{"class":157,"line":10214},19,[155,10216,10156],{"class":1370},[155,10218,9571],{"class":9460},[155,10220,10028],{"class":1370},[155,10222,68],{"class":161},[155,10224,10053],{"class":1370},[155,10226,4431],{"class":9460},[155,10228,68],{"class":161},[155,10230,10231],{"class":1370},"target_output",[155,10233,10173],{"class":161},[155,10235,10131],{"class":1370},[155,10237,68],{"class":161},[155,10239,10231],{"class":1370},[155,10241,9605],{"class":161},[155,10243,10245,10247,10249,10251,10253,10255,10257,10259,10262,10264,10266],{"class":157,"line":10244},20,[155,10246,10156],{"class":1370},[155,10248,9571],{"class":9460},[155,10250,10028],{"class":1370},[155,10252,68],{"class":161},[155,10254,10053],{"class":1370},[155,10256,4431],{"class":9460},[155,10258,68],{"class":161},[155,10260,10261],{"class":1370},"count",[155,10263,10173],{"class":161},[155,10265,9977],{"class":530},[155,10267,9605],{"class":161},[155,10269,10271,10273,10275],{"class":157,"line":10270},21,[155,10272,5236],{"class":161},[155,10274,9448],{"class":1370},[155,10276,9605],{"class":161},[155,10278,10280],{"class":157,"line":10279},22,[155,10281,9997],{"emptyLinePlaceholder":9996},[155,10283,10285,10287,10290,10292,10294,10296,10299,10302,10304,10306,10308,10311,10313],{"class":157,"line":10284},23,[155,10286,10007],{"class":168},[155,10288,10289],{"class":1370}," oeeResults ",[155,10291,9580],{"class":161},[155,10293,9622],{"class":1370},[155,10295,68],{"class":161},[155,10297,10298],{"class":9437},"keys",[155,10300,10301],{"class":1370},"(machineData)",[155,10303,68],{"class":161},[155,10305,9638],{"class":9437},[155,10307,9441],{"class":1370},[155,10309,10310],{"class":9444},"machineName",[155,10312,9561],{"class":168},[155,10314,9451],{"class":161},[155,10316,10318,10321,10323,10325,10328,10330,10332,10334],{"class":157,"line":10317},24,[155,10319,10320],{"class":168},"    let",[155,10322,10131],{"class":1370},[155,10324,9529],{"class":161},[155,10326,10327],{"class":1370}," machineData",[155,10329,9571],{"class":9460},[155,10331,10310],{"class":1370},[155,10333,4431],{"class":9460},[155,10335,9605],{"class":161},[155,10337,10339],{"class":157,"line":10338},25,[155,10340,9997],{"emptyLinePlaceholder":9996},[155,10342,10344,10346,10349,10351,10354,10356,10359,10361,10364,10366,10369,10371,10373,10375,10378,10380],{"class":157,"line":10343},26,[155,10345,10320],{"class":168},[155,10347,10348],{"class":1370}," machineDowntime",[155,10350,9529],{"class":161},[155,10352,10353],{"class":1370}," downtimeEvents",[155,10355,68],{"class":161},[155,10357,10358],{"class":9437},"filter",[155,10360,9441],{"class":9460},[155,10362,10363],{"class":9444},"event",[155,10365,9561],{"class":168},[155,10367,10368],{"class":1370}," event",[155,10370,68],{"class":161},[155,10372,10053],{"class":1370},[155,10374,9492],{"class":161},[155,10376,10377],{"class":1370}," machineName",[155,10379,9448],{"class":9460},[155,10381,9605],{"class":161},[155,10383,10385],{"class":157,"line":10384},27,[155,10386,9997],{"emptyLinePlaceholder":9996},[155,10388,10390,10393,10396,10398,10400,10402,10405,10407],{"class":157,"line":10389},28,[155,10391,10392],{"class":168},"    function",[155,10394,10395],{"class":9437}," calculateOEE",[155,10397,9441],{"class":161},[155,10399,10028],{"class":9444},[155,10401,185],{"class":161},[155,10403,10404],{"class":9444}," downtime",[155,10406,9448],{"class":161},[155,10408,9451],{"class":161},[155,10410,10412,10415,10417,10419,10421,10423,10425,10427,10429],{"class":157,"line":10411},29,[155,10413,10414],{"class":9456},"        if",[155,10416,9461],{"class":9460},[155,10418,10028],{"class":1370},[155,10420,68],{"class":161},[155,10422,10231],{"class":1370},[155,10424,9492],{"class":161},[155,10426,9495],{"class":530},[155,10428,2932],{"class":9460},[155,10430,9222],{"class":161},[155,10432,10434,10437,10440,10443,10445,10447,10449,10452,10454,10456,10458,10461,10463,10465,10467,10470,10472,10474],{"class":157,"line":10433},30,[155,10435,10436],{"class":9456},"            return",[155,10438,10439],{"class":161}," {",[155,10441,10442],{"class":9460}," availability",[155,10444,174],{"class":161},[155,10446,9495],{"class":530},[155,10448,185],{"class":161},[155,10450,10451],{"class":9460}," performance",[155,10453,174],{"class":161},[155,10455,9495],{"class":530},[155,10457,185],{"class":161},[155,10459,10460],{"class":9460}," quality",[155,10462,174],{"class":161},[155,10464,9495],{"class":530},[155,10466,185],{"class":161},[155,10468,10469],{"class":9460}," oee",[155,10471,174],{"class":161},[155,10473,9495],{"class":530},[155,10475,10476],{"class":161}," };\n",[155,10478,10480],{"class":157,"line":10479},31,[155,10481,10482],{"class":161},"        }\n",[155,10484,10486],{"class":157,"line":10485},32,[155,10487,9997],{"emptyLinePlaceholder":9996},[155,10489,10491,10494,10497,10499,10501,10503,10506,10508,10510,10513,10515,10517,10519],{"class":157,"line":10490},33,[155,10492,10493],{"class":168},"        let",[155,10495,10496],{"class":1370}," totalDowntime",[155,10498,9529],{"class":161},[155,10500,10404],{"class":1370},[155,10502,68],{"class":161},[155,10504,10505],{"class":9437},"reduce",[155,10507,9441],{"class":9460},[155,10509,9441],{"class":161},[155,10511,10512],{"class":9444},"acc",[155,10514,185],{"class":161},[155,10516,10368],{"class":9444},[155,10518,9448],{"class":161},[155,10520,10521],{"class":168}," =>\n",[155,10523,10525,10528,10530,10532,10535,10537,10540,10543,10545,10548,10551,10554,10556,10558,10560,10563],{"class":157,"line":10524},34,[155,10526,10527],{"class":161},"            typeof",[155,10529,10368],{"class":1370},[155,10531,68],{"class":161},[155,10533,10534],{"class":1370},"downtime_duration_minutes",[155,10536,9492],{"class":161},[155,10538,10539],{"class":161}," '",[155,10541,10542],{"class":179},"number",[155,10544,9965],{"class":161},[155,10546,10547],{"class":161}," ?",[155,10549,10550],{"class":1370}," acc",[155,10552,10553],{"class":161}," +",[155,10555,10368],{"class":1370},[155,10557,68],{"class":161},[155,10559,10534],{"class":1370},[155,10561,10562],{"class":161}," :",[155,10564,10565],{"class":1370}," acc\n",[155,10567,10569,10572,10574,10576],{"class":157,"line":10568},35,[155,10570,10571],{"class":161},"            ,",[155,10573,9495],{"class":530},[155,10575,9448],{"class":9460},[155,10577,9605],{"class":161},[155,10579,10581],{"class":157,"line":10580},36,[155,10582,9997],{"emptyLinePlaceholder":9996},[155,10584,10586,10588,10590,10592,10594,10597,10600,10602,10604,10607,10610],{"class":157,"line":10585},37,[155,10587,10493],{"class":168},[155,10589,10442],{"class":1370},[155,10591,9529],{"class":161},[155,10593,9461],{"class":9460},[155,10595,10596],{"class":1370},"shiftDuration",[155,10598,10599],{"class":161}," -",[155,10601,10496],{"class":1370},[155,10603,2932],{"class":9460},[155,10605,10606],{"class":161},"\u002F",[155,10608,10609],{"class":1370}," shiftDuration",[155,10611,9605],{"class":161},[155,10613,10615,10618,10620,10623,10625,10628,10630,10632,10634,10636,10638,10641,10643,10645,10647,10649,10651],{"class":157,"line":10614},38,[155,10616,10617],{"class":1370},"        availability",[155,10619,9529],{"class":161},[155,10621,10622],{"class":1370}," Math",[155,10624,68],{"class":161},[155,10626,10627],{"class":9437},"max",[155,10629,9441],{"class":9460},[155,10631,5292],{"class":530},[155,10633,185],{"class":161},[155,10635,10622],{"class":1370},[155,10637,68],{"class":161},[155,10639,10640],{"class":9437},"min",[155,10642,9441],{"class":9460},[155,10644,349],{"class":530},[155,10646,185],{"class":161},[155,10648,10442],{"class":1370},[155,10650,9690],{"class":9460},[155,10652,9605],{"class":161},[155,10654,10656],{"class":157,"line":10655},39,[155,10657,9997],{"emptyLinePlaceholder":9996},[155,10659,10661,10663,10665,10667,10669,10671,10673,10676,10678,10680,10682,10684,10686,10689,10691,10693,10695,10697,10699],{"class":157,"line":10660},40,[155,10662,10493],{"class":168},[155,10664,10451],{"class":1370},[155,10666,9529],{"class":161},[155,10668,10131],{"class":1370},[155,10670,68],{"class":161},[155,10672,10231],{"class":1370},[155,10674,10675],{"class":161}," >",[155,10677,9495],{"class":530},[155,10679,10547],{"class":161},[155,10681,10131],{"class":1370},[155,10683,68],{"class":161},[155,10685,9014],{"class":1370},[155,10687,10688],{"class":161}," \u002F",[155,10690,10131],{"class":1370},[155,10692,68],{"class":161},[155,10694,10231],{"class":1370},[155,10696,10562],{"class":161},[155,10698,9495],{"class":530},[155,10700,9605],{"class":161},[155,10702,10704,10706,10708,10710,10712,10714,10716,10718,10720,10722,10724,10726,10728,10730,10732,10734,10736,10738,10740],{"class":157,"line":10703},41,[155,10705,10493],{"class":168},[155,10707,10460],{"class":1370},[155,10709,9529],{"class":161},[155,10711,10131],{"class":1370},[155,10713,68],{"class":161},[155,10715,9014],{"class":1370},[155,10717,10675],{"class":161},[155,10719,9495],{"class":530},[155,10721,10547],{"class":161},[155,10723,10131],{"class":1370},[155,10725,68],{"class":161},[155,10727,10201],{"class":1370},[155,10729,10688],{"class":161},[155,10731,10131],{"class":1370},[155,10733,68],{"class":161},[155,10735,9014],{"class":1370},[155,10737,10562],{"class":161},[155,10739,9495],{"class":530},[155,10741,9605],{"class":161},[155,10743,10745],{"class":157,"line":10744},42,[155,10746,9997],{"emptyLinePlaceholder":9996},[155,10748,10750,10752,10754,10756,10758,10761,10763,10765,10767],{"class":157,"line":10749},43,[155,10751,10493],{"class":168},[155,10753,10469],{"class":1370},[155,10755,9529],{"class":161},[155,10757,10442],{"class":1370},[155,10759,10760],{"class":161}," *",[155,10762,10451],{"class":1370},[155,10764,10760],{"class":161},[155,10766,10460],{"class":1370},[155,10768,9605],{"class":161},[155,10770,10772],{"class":157,"line":10771},44,[155,10773,9997],{"emptyLinePlaceholder":9996},[155,10775,10777,10780],{"class":157,"line":10776},45,[155,10778,10779],{"class":9456},"        return",[155,10781,9451],{"class":161},[155,10783,10785,10788,10790,10793,10796,10799,10801,10804,10806,10808,10811,10813,10815,10817],{"class":157,"line":10784},46,[155,10786,10787],{"class":9460},"            availability",[155,10789,174],{"class":161},[155,10791,10792],{"class":9437}," parseFloat",[155,10794,10795],{"class":9460},"((",[155,10797,10798],{"class":1370},"availability",[155,10800,10760],{"class":161},[155,10802,10803],{"class":530}," 100",[155,10805,9448],{"class":9460},[155,10807,68],{"class":161},[155,10809,10810],{"class":9437},"toFixed",[155,10812,9441],{"class":9460},[155,10814,5278],{"class":530},[155,10816,9690],{"class":9460},[155,10818,9245],{"class":161},[155,10820,10822,10825,10827,10829,10831,10834,10836,10838,10840,10842,10844,10846,10848,10850],{"class":157,"line":10821},47,[155,10823,10824],{"class":9460},"            performance",[155,10826,174],{"class":161},[155,10828,10792],{"class":9437},[155,10830,10795],{"class":9460},[155,10832,10833],{"class":1370},"performance",[155,10835,10760],{"class":161},[155,10837,10803],{"class":530},[155,10839,9448],{"class":9460},[155,10841,68],{"class":161},[155,10843,10810],{"class":9437},[155,10845,9441],{"class":9460},[155,10847,5278],{"class":530},[155,10849,9690],{"class":9460},[155,10851,9245],{"class":161},[155,10853,10855,10858,10860,10862,10864,10867,10869,10871,10873,10875,10877,10879,10881,10883],{"class":157,"line":10854},48,[155,10856,10857],{"class":9460},"            quality",[155,10859,174],{"class":161},[155,10861,10792],{"class":9437},[155,10863,10795],{"class":9460},[155,10865,10866],{"class":1370},"quality",[155,10868,10760],{"class":161},[155,10870,10803],{"class":530},[155,10872,9448],{"class":9460},[155,10874,68],{"class":161},[155,10876,10810],{"class":9437},[155,10878,9441],{"class":9460},[155,10880,5278],{"class":530},[155,10882,9690],{"class":9460},[155,10884,9245],{"class":161},[155,10886,10888,10891,10893,10895,10897,10900,10902,10904,10906,10908,10910,10912,10914],{"class":157,"line":10887},49,[155,10889,10890],{"class":9460},"            oee",[155,10892,174],{"class":161},[155,10894,10792],{"class":9437},[155,10896,10795],{"class":9460},[155,10898,10899],{"class":1370},"oee",[155,10901,10760],{"class":161},[155,10903,10803],{"class":530},[155,10905,9448],{"class":9460},[155,10907,68],{"class":161},[155,10909,10810],{"class":9437},[155,10911,9441],{"class":9460},[155,10913,5278],{"class":530},[155,10915,9334],{"class":9460},[155,10917,10919],{"class":157,"line":10918},50,[155,10920,10144],{"class":161},[155,10922,10924],{"class":157,"line":10923},51,[155,10925,10150],{"class":161},[155,10927,10929],{"class":157,"line":10928},52,[155,10930,9997],{"emptyLinePlaceholder":9996},[155,10932,10934,10936,10939,10941,10943,10945,10947,10949,10951,10953],{"class":157,"line":10933},53,[155,10935,10320],{"class":168},[155,10937,10938],{"class":1370}," metrics",[155,10940,9529],{"class":161},[155,10942,10395],{"class":9437},[155,10944,9441],{"class":9460},[155,10946,10028],{"class":1370},[155,10948,185],{"class":161},[155,10950,10348],{"class":1370},[155,10952,9448],{"class":9460},[155,10954,9605],{"class":161},[155,10956,10958],{"class":157,"line":10957},54,[155,10959,9997],{"emptyLinePlaceholder":9996},[155,10961,10963,10966],{"class":157,"line":10962},55,[155,10964,10965],{"class":9456},"    return",[155,10967,9451],{"class":161},[155,10969,10971,10974,10976,10978],{"class":157,"line":10970},56,[155,10972,10973],{"class":9460},"        machine_name",[155,10975,174],{"class":161},[155,10977,10377],{"class":1370},[155,10979,9245],{"class":161},[155,10981,10983,10986,10988,10990,10992,10994],{"class":157,"line":10982},57,[155,10984,10985],{"class":9460},"        area",[155,10987,174],{"class":161},[155,10989,10131],{"class":1370},[155,10991,68],{"class":161},[155,10993,10136],{"class":1370},[155,10995,9245],{"class":161},[155,10997,10999,11002,11004,11006,11008],{"class":157,"line":10998},58,[155,11000,11001],{"class":9460},"        oee",[155,11003,174],{"class":161},[155,11005,10938],{"class":1370},[155,11007,68],{"class":161},[155,11009,11010],{"class":1370},"oee\n",[155,11012,11014],{"class":157,"line":11013},59,[155,11015,11016],{"class":161},"    };\n",[155,11018,11020,11022,11024],{"class":157,"line":11019},60,[155,11021,5236],{"class":161},[155,11023,9448],{"class":1370},[155,11025,9605],{"class":161},[155,11027,11029],{"class":157,"line":11028},61,[155,11030,9997],{"emptyLinePlaceholder":9996},[155,11032,11034],{"class":157,"line":11033},62,[155,11035,11036],{"class":9990},"\u002F\u002F Filter only machines with OEE \u003C 85\n",[155,11038,11040,11042,11044,11046,11048,11051,11053,11055,11057,11060,11062,11065,11067,11070,11073,11076,11078],{"class":157,"line":11039},63,[155,11041,1314],{"class":1370},[155,11043,68],{"class":161},[155,11045,9707],{"class":1370},[155,11047,9580],{"class":161},[155,11049,11050],{"class":1370}," oeeResults",[155,11052,68],{"class":161},[155,11054,10358],{"class":9437},[155,11056,9441],{"class":1370},[155,11058,11059],{"class":9444},"machine",[155,11061,9561],{"class":168},[155,11063,11064],{"class":1370}," machine",[155,11066,68],{"class":161},[155,11068,11069],{"class":1370},"oee ",[155,11071,11072],{"class":161},"\u003C",[155,11074,11075],{"class":530}," 85",[155,11077,9448],{"class":1370},[155,11079,9605],{"class":161},[155,11081,11083],{"class":157,"line":11082},64,[155,11084,9997],{"emptyLinePlaceholder":9996},[155,11086,11088,11090,11092],{"class":157,"line":11087},65,[155,11089,9731],{"class":9456},[155,11091,9734],{"class":1370},[155,11093,9605],{"class":161},[12,11095,11096,11100],{},[8625,11097],{"alt":11098,"dataZoomable":150,"src":11099},"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",[8613,11101,11102],{},"Flow that prepares the Recent Downtime, Downtime Summary, and Top Underperforming Machines (OEE-wise)",[8639,11104,11106],{"id":11105},"oee-trend-for-the-last-30-days","OEE Trend for the Last 30 Days",[12,11108,11109],{},"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.",[11111,11112,11114],"h5",{"id":11113},"retrieving-production-and-downtime-data-for-the-last-30-days","Retrieving Production and Downtime Data for the Last 30 Days",[42,11116,11117,11131,11136],{},[45,11118,11119,11120,11123,11124,9768,11126,11128,11129,68],{},"Copy the existing ",[86,11121,11122],{},"SQLite flow"," from the ",[86,11125,8610],{},[86,11127,8663],{}," that sets the retrieved downtime result to ",[152,11130,8821],{},[45,11132,8647,11133,11135],{},[86,11134,8663],{}," that sets the parameters for the SQL query, keep only the element setting the line parameter, and remove the rest.",[45,11137,11138],{},"Modify the first SQLite node's SQL query to the following:",[145,11140,11142],{"className":8791,"code":11141,"language":1332,"meta":150,"style":150},"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",[152,11143,11144,11149,11154,11159,11164,11169,11174,11179,11184,11189,11193,11198],{"__ignoreMap":150},[155,11145,11146],{"class":157,"line":158},[155,11147,11148],{},"SELECT\n",[155,11150,11151],{"class":157,"line":8802},[155,11152,11153],{},"    timestamp AS timestamp,\n",[155,11155,11156],{"class":157,"line":8808},[155,11157,11158],{},"    machine_name AS machine_name,\n",[155,11160,11161],{"class":157,"line":9248},[155,11162,11163],{},"    area AS area,\n",[155,11165,11166],{"class":157,"line":9272},[155,11167,11168],{},"    line AS line,\n",[155,11170,11171],{"class":157,"line":9278},[155,11172,11173],{},"    total_produced_units AS total_produced_units,\n",[155,11175,11176],{"class":157,"line":9284},[155,11177,11178],{},"    good_units AS good_units,\n",[155,11180,11181],{"class":157,"line":9305},[155,11182,11183],{},"    defect_units AS defect_units,\n",[155,11185,11186],{"class":157,"line":9337},[155,11187,11188],{},"    target_output AS target_output\n",[155,11190,11191],{"class":157,"line":9343},[155,11192,8805],{},[155,11194,11195],{"class":157,"line":9674},[155,11196,11197],{},"WHERE line = $line\n",[155,11199,11200],{"class":157,"line":9685},[155,11201,11202],{},"  AND timestamp >= datetime('now', '-30 days');\n",[42,11204,11205],{"start":9248},[45,11206,11207],{},"Modify the second SQLite node's SQL query to the following:",[145,11209,11211],{"className":8791,"code":11210,"language":1332,"meta":150,"style":150},"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",[152,11212,11213,11217,11221,11225,11230,11235,11240,11244,11249,11254],{"__ignoreMap":150},[155,11214,11215],{"class":157,"line":158},[155,11216,11148],{},[155,11218,11219],{"class":157,"line":8802},[155,11220,11153],{},[155,11222,11223],{"class":157,"line":8808},[155,11224,11158],{},[155,11226,11227],{"class":157,"line":9248},[155,11228,11229],{},"    downtime_start AS downtime_start,\n",[155,11231,11232],{"class":157,"line":9272},[155,11233,11234],{},"    downtime_duration_minutes AS downtime_duration_minutes,\n",[155,11236,11237],{"class":157,"line":9278},[155,11238,11239],{},"    downtime_reason AS downtime_reason\n",[155,11241,11242],{"class":157,"line":9284},[155,11243,8847],{},[155,11245,11246],{"class":157,"line":9305},[155,11247,11248],{},"WHERE\n",[155,11250,11251],{"class":157,"line":9337},[155,11252,11253],{},"    timestamp BETWEEN $startTime AND $endTime\n",[155,11255,11256],{"class":157,"line":9343},[155,11257,11258],{},"    AND line = $line;\n",[11111,11260,11262],{"id":11261},"calculating-last-30d-days-oee","Calculating last 30d days OEE",[42,11264,11265,11273,11279],{},[45,11266,8888,11267,11269,11270,11272],{},[86,11268,9351],{}," onto the canvas and connect it to the last ",[86,11271,8663],{}," of the SQLite flow.",[45,11274,8888,11275,11269,11277,68],{},[86,11276,9140],{},[86,11278,9351],{},[45,11280,8888,11281,11284,11285,174],{},[86,11282,11283],{},"Function node"," onto the canvas, add the following JavaScript, and connect the Function node to the ",[86,11286,9140],{},[145,11288,11290],{"className":9426,"code":11289,"language":9428,"meta":150,"style":150},"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",[152,11291,11292,11308,11325,11353,11385,11389,11400,11404,11421,11442,11478,11482,11501,11516,11527,11538,11549,11560,11571,11582,11593,11607,11612,11616,11620,11646,11671,11697,11715,11740,11744,11752,11756,11773,11793,11825,11841,11870,11874,11878,11886,11890,11927,11968,11994,12014,12054,12094,12132,12136,12175,12183,12187,12192,12262,12276],{"__ignoreMap":150},[155,11293,11294,11296,11298,11300,11302,11304,11306],{"class":157,"line":158},[155,11295,10007],{"class":168},[155,11297,9916],{"class":1370},[155,11299,9580],{"class":161},[155,11301,9734],{"class":1370},[155,11303,68],{"class":161},[155,11305,8916],{"class":1370},[155,11307,9605],{"class":161},[155,11309,11310,11312,11315,11317,11319,11321,11323],{"class":157,"line":8802},[155,11311,10007],{"class":168},[155,11313,11314],{"class":1370}," downtimeData ",[155,11316,9580],{"class":161},[155,11318,9734],{"class":1370},[155,11320,68],{"class":161},[155,11322,8924],{"class":1370},[155,11324,9605],{"class":161},[155,11326,11327,11329,11332,11334,11337,11339,11341,11343,11345,11347,11349,11351],{"class":157,"line":8808},[155,11328,10007],{"class":168},[155,11330,11331],{"class":1370}," line ",[155,11333,9580],{"class":161},[155,11335,11336],{"class":1370}," flow",[155,11338,68],{"class":161},[155,11340,9960],{"class":9437},[155,11342,9441],{"class":1370},[155,11344,9965],{"class":161},[155,11346,157],{"class":179},[155,11348,9965],{"class":161},[155,11350,9448],{"class":1370},[155,11352,9605],{"class":161},[155,11354,11355,11357,11359,11361,11363,11365,11367,11369,11371,11374,11376,11378,11380,11383],{"class":157,"line":9248},[155,11356,10007],{"class":168},[155,11358,9950],{"class":1370},[155,11360,9580],{"class":161},[155,11362,11336],{"class":1370},[155,11364,68],{"class":161},[155,11366,9960],{"class":9437},[155,11368,9441],{"class":1370},[155,11370,9965],{"class":161},[155,11372,11373],{"class":179},"shiftDuration24h",[155,11375,9965],{"class":161},[155,11377,2932],{"class":1370},[155,11379,9982],{"class":161},[155,11381,11382],{"class":530}," 3600",[155,11384,9605],{"class":161},[155,11386,11387],{"class":157,"line":9272},[155,11388,9997],{"emptyLinePlaceholder":9996},[155,11390,11391,11393,11396,11398],{"class":157,"line":9278},[155,11392,10007],{"class":168},[155,11394,11395],{"class":1370}," groupedData ",[155,11397,9580],{"class":161},[155,11399,9532],{"class":161},[155,11401,11402],{"class":157,"line":9284},[155,11403,9997],{"emptyLinePlaceholder":9996},[155,11405,11406,11408,11410,11412,11414,11417,11419],{"class":157,"line":9305},[155,11407,10019],{"class":1370},[155,11409,68],{"class":161},[155,11411,9542],{"class":9437},[155,11413,9441],{"class":1370},[155,11415,11416],{"class":9444},"entry",[155,11418,9561],{"class":168},[155,11420,9451],{"class":161},[155,11422,11423,11425,11427,11429,11431,11433,11435,11438,11440],{"class":157,"line":9337},[155,11424,10037],{"class":9456},[155,11426,9461],{"class":9460},[155,11428,11416],{"class":1370},[155,11430,68],{"class":161},[155,11432,157],{"class":1370},[155,11434,9492],{"class":161},[155,11436,11437],{"class":1370}," line",[155,11439,2932],{"class":9460},[155,11441,9222],{"class":161},[155,11443,11444,11446,11449,11451,11454,11456,11459,11461,11463,11465,11467,11469,11472,11474,11476],{"class":157,"line":9343},[155,11445,10493],{"class":168},[155,11447,11448],{"class":1370}," date",[155,11450,9529],{"class":161},[155,11452,11453],{"class":1370}," entry",[155,11455,68],{"class":161},[155,11457,11458],{"class":1370},"timestamp",[155,11460,68],{"class":161},[155,11462,5422],{"class":9437},[155,11464,9441],{"class":9460},[155,11466,165],{"class":161},[155,11468,9237],{"class":161},[155,11470,11471],{"class":9460},")[",[155,11473,5292],{"class":530},[155,11475,4431],{"class":9460},[155,11477,9605],{"class":161},[155,11479,11480],{"class":157,"line":9674},[155,11481,9997],{"emptyLinePlaceholder":9996},[155,11483,11484,11486,11488,11490,11493,11495,11497,11499],{"class":157,"line":9685},[155,11485,10414],{"class":9456},[155,11487,9461],{"class":9460},[155,11489,9464],{"class":161},[155,11491,11492],{"class":1370},"groupedData",[155,11494,9571],{"class":9460},[155,11496,1738],{"class":1370},[155,11498,10056],{"class":9460},[155,11500,9222],{"class":161},[155,11502,11503,11506,11508,11510,11512,11514],{"class":157,"line":9695},[155,11504,11505],{"class":1370},"            groupedData",[155,11507,9571],{"class":9460},[155,11509,1738],{"class":1370},[155,11511,9577],{"class":9460},[155,11513,9580],{"class":161},[155,11515,9451],{"class":161},[155,11517,11518,11521,11523,11525],{"class":157,"line":9112},[155,11519,11520],{"class":9460},"                totalShiftDuration",[155,11522,174],{"class":161},[155,11524,10609],{"class":1370},[155,11526,9245],{"class":161},[155,11528,11529,11532,11534,11536],{"class":157,"line":9728},[155,11530,11531],{"class":9460},"                totalGoodUnits",[155,11533,174],{"class":161},[155,11535,9495],{"class":530},[155,11537,9245],{"class":161},[155,11539,11540,11543,11545,11547],{"class":157,"line":10147},[155,11541,11542],{"class":9460},"                totalProducedUnits",[155,11544,174],{"class":161},[155,11546,9495],{"class":530},[155,11548,9245],{"class":161},[155,11550,11551,11554,11556,11558],{"class":157,"line":10153},[155,11552,11553],{"class":9460},"                totalDowntimeSeconds",[155,11555,174],{"class":161},[155,11557,9495],{"class":530},[155,11559,9245],{"class":161},[155,11561,11562,11565,11567,11569],{"class":157,"line":10184},[155,11563,11564],{"class":9460},"                totalCycleTime",[155,11566,174],{"class":161},[155,11568,9495],{"class":530},[155,11570,9245],{"class":161},[155,11572,11573,11576,11578,11580],{"class":157,"line":10214},[155,11574,11575],{"class":9460},"                cycleCount",[155,11577,174],{"class":161},[155,11579,9495],{"class":530},[155,11581,9245],{"class":161},[155,11583,11584,11587,11589,11591],{"class":157,"line":10244},[155,11585,11586],{"class":9460},"                totalTargetOutput",[155,11588,174],{"class":161},[155,11590,9495],{"class":530},[155,11592,9245],{"class":161},[155,11594,11595,11598,11600,11602,11604],{"class":157,"line":10270},[155,11596,11597],{"class":9460},"                timestamp",[155,11599,174],{"class":161},[155,11601,11453],{"class":1370},[155,11603,68],{"class":161},[155,11605,11606],{"class":1370},"timestamp\n",[155,11608,11609],{"class":157,"line":10279},[155,11610,11611],{"class":161},"            };\n",[155,11613,11614],{"class":157,"line":10284},[155,11615,10482],{"class":161},[155,11617,11618],{"class":157,"line":10317},[155,11619,9997],{"emptyLinePlaceholder":9996},[155,11621,11622,11625,11627,11629,11631,11633,11636,11638,11640,11642,11644],{"class":157,"line":10338},[155,11623,11624],{"class":1370},"        groupedData",[155,11626,9571],{"class":9460},[155,11628,1738],{"class":1370},[155,11630,4431],{"class":9460},[155,11632,68],{"class":161},[155,11634,11635],{"class":1370},"totalGoodUnits",[155,11637,10173],{"class":161},[155,11639,11453],{"class":1370},[155,11641,68],{"class":161},[155,11643,10201],{"class":1370},[155,11645,9605],{"class":161},[155,11647,11648,11650,11652,11654,11656,11658,11661,11663,11665,11667,11669],{"class":157,"line":10343},[155,11649,11624],{"class":1370},[155,11651,9571],{"class":9460},[155,11653,1738],{"class":1370},[155,11655,4431],{"class":9460},[155,11657,68],{"class":161},[155,11659,11660],{"class":1370},"totalProducedUnits",[155,11662,10173],{"class":161},[155,11664,11453],{"class":1370},[155,11666,68],{"class":161},[155,11668,9014],{"class":1370},[155,11670,9605],{"class":161},[155,11672,11673,11675,11677,11679,11681,11683,11686,11688,11690,11692,11695],{"class":157,"line":10384},[155,11674,11624],{"class":1370},[155,11676,9571],{"class":9460},[155,11678,1738],{"class":1370},[155,11680,4431],{"class":9460},[155,11682,68],{"class":161},[155,11684,11685],{"class":1370},"totalCycleTime",[155,11687,10173],{"class":161},[155,11689,11453],{"class":1370},[155,11691,68],{"class":161},[155,11693,11694],{"class":1370},"cycle_time",[155,11696,9605],{"class":161},[155,11698,11699,11701,11703,11705,11707,11709,11712],{"class":157,"line":10389},[155,11700,11624],{"class":1370},[155,11702,9571],{"class":9460},[155,11704,1738],{"class":1370},[155,11706,4431],{"class":9460},[155,11708,68],{"class":161},[155,11710,11711],{"class":1370},"cycleCount",[155,11713,11714],{"class":161},"++;\n",[155,11716,11717,11719,11721,11723,11725,11727,11730,11732,11734,11736,11738],{"class":157,"line":10411},[155,11718,11624],{"class":1370},[155,11720,9571],{"class":9460},[155,11722,1738],{"class":1370},[155,11724,4431],{"class":9460},[155,11726,68],{"class":161},[155,11728,11729],{"class":1370},"totalTargetOutput",[155,11731,10173],{"class":161},[155,11733,11453],{"class":1370},[155,11735,68],{"class":161},[155,11737,10231],{"class":1370},[155,11739,9605],{"class":161},[155,11741,11742],{"class":157,"line":10433},[155,11743,10150],{"class":161},[155,11745,11746,11748,11750],{"class":157,"line":10479},[155,11747,5236],{"class":161},[155,11749,9448],{"class":1370},[155,11751,9605],{"class":161},[155,11753,11754],{"class":157,"line":10485},[155,11755,9997],{"emptyLinePlaceholder":9996},[155,11757,11758,11760,11762,11764,11766,11769,11771],{"class":157,"line":10490},[155,11759,9445],{"class":1370},[155,11761,68],{"class":161},[155,11763,9542],{"class":9437},[155,11765,9441],{"class":1370},[155,11767,11768],{"class":9444},"downtime",[155,11770,9561],{"class":168},[155,11772,9451],{"class":161},[155,11774,11775,11777,11779,11781,11783,11785,11787,11789,11791],{"class":157,"line":10524},[155,11776,10037],{"class":9456},[155,11778,9461],{"class":9460},[155,11780,11768],{"class":1370},[155,11782,68],{"class":161},[155,11784,157],{"class":1370},[155,11786,9492],{"class":161},[155,11788,11437],{"class":1370},[155,11790,2932],{"class":9460},[155,11792,9222],{"class":161},[155,11794,11795,11797,11799,11801,11803,11805,11807,11809,11811,11813,11815,11817,11819,11821,11823],{"class":157,"line":10568},[155,11796,10493],{"class":168},[155,11798,11448],{"class":1370},[155,11800,9529],{"class":161},[155,11802,10404],{"class":1370},[155,11804,68],{"class":161},[155,11806,11458],{"class":1370},[155,11808,68],{"class":161},[155,11810,5422],{"class":9437},[155,11812,9441],{"class":9460},[155,11814,165],{"class":161},[155,11816,9237],{"class":161},[155,11818,11471],{"class":9460},[155,11820,5292],{"class":530},[155,11822,4431],{"class":9460},[155,11824,9605],{"class":161},[155,11826,11827,11829,11831,11833,11835,11837,11839],{"class":157,"line":10580},[155,11828,10414],{"class":9456},[155,11830,9461],{"class":9460},[155,11832,11492],{"class":1370},[155,11834,9571],{"class":9460},[155,11836,1738],{"class":1370},[155,11838,10056],{"class":9460},[155,11840,9222],{"class":161},[155,11842,11843,11845,11847,11849,11851,11853,11856,11858,11860,11862,11864,11866,11868],{"class":157,"line":10585},[155,11844,11505],{"class":1370},[155,11846,9571],{"class":9460},[155,11848,1738],{"class":1370},[155,11850,4431],{"class":9460},[155,11852,68],{"class":161},[155,11854,11855],{"class":1370},"totalDowntimeSeconds",[155,11857,10173],{"class":161},[155,11859,10404],{"class":1370},[155,11861,68],{"class":161},[155,11863,10534],{"class":1370},[155,11865,10760],{"class":161},[155,11867,9985],{"class":530},[155,11869,9605],{"class":161},[155,11871,11872],{"class":157,"line":10614},[155,11873,10482],{"class":161},[155,11875,11876],{"class":157,"line":10655},[155,11877,10150],{"class":161},[155,11879,11880,11882,11884],{"class":157,"line":10660},[155,11881,5236],{"class":161},[155,11883,9448],{"class":1370},[155,11885,9605],{"class":161},[155,11887,11888],{"class":157,"line":10703},[155,11889,9997],{"emptyLinePlaceholder":9996},[155,11891,11892,11894,11896,11898,11900,11902,11904,11907,11909,11911,11913,11915,11917,11919,11921,11923,11925],{"class":157,"line":10744},[155,11893,10007],{"class":168},[155,11895,10289],{"class":1370},[155,11897,9580],{"class":161},[155,11899,9622],{"class":1370},[155,11901,68],{"class":161},[155,11903,9627],{"class":9437},[155,11905,11906],{"class":1370},"(groupedData)",[155,11908,68],{"class":161},[155,11910,9638],{"class":9437},[155,11912,9441],{"class":1370},[155,11914,9643],{"class":161},[155,11916,1738],{"class":9444},[155,11918,185],{"class":161},[155,11920,10131],{"class":9444},[155,11922,9653],{"class":161},[155,11924,9561],{"class":168},[155,11926,9451],{"class":161},[155,11928,11929,11931,11934,11936,11938,11940,11942,11944,11946,11948,11950,11952,11954,11956,11958,11960,11962,11964,11966],{"class":157,"line":10749},[155,11930,10320],{"class":168},[155,11932,11933],{"class":1370}," avgCycleTime",[155,11935,9529],{"class":161},[155,11937,10131],{"class":1370},[155,11939,68],{"class":161},[155,11941,11711],{"class":1370},[155,11943,10675],{"class":161},[155,11945,9495],{"class":530},[155,11947,10547],{"class":161},[155,11949,10131],{"class":1370},[155,11951,68],{"class":161},[155,11953,11685],{"class":1370},[155,11955,10688],{"class":161},[155,11957,10131],{"class":1370},[155,11959,68],{"class":161},[155,11961,11711],{"class":1370},[155,11963,10562],{"class":161},[155,11965,9495],{"class":530},[155,11967,9605],{"class":161},[155,11969,11970,11972,11975,11977,11979,11981,11984,11986,11988,11990,11992],{"class":157,"line":10771},[155,11971,10320],{"class":168},[155,11973,11974],{"class":1370}," availableTime",[155,11976,9529],{"class":161},[155,11978,10131],{"class":1370},[155,11980,68],{"class":161},[155,11982,11983],{"class":1370},"totalShiftDuration",[155,11985,10599],{"class":161},[155,11987,10131],{"class":1370},[155,11989,68],{"class":161},[155,11991,11855],{"class":1370},[155,11993,9605],{"class":161},[155,11995,11996,11998,12000,12002,12004,12006,12008,12010,12012],{"class":157,"line":10776},[155,11997,10320],{"class":168},[155,11999,10442],{"class":1370},[155,12001,9529],{"class":161},[155,12003,11974],{"class":1370},[155,12005,10688],{"class":161},[155,12007,10131],{"class":1370},[155,12009,68],{"class":161},[155,12011,11983],{"class":1370},[155,12013,9605],{"class":161},[155,12015,12016,12018,12020,12022,12024,12026,12028,12030,12032,12034,12036,12038,12040,12042,12044,12046,12048,12050,12052],{"class":157,"line":10784},[155,12017,10320],{"class":168},[155,12019,10451],{"class":1370},[155,12021,9529],{"class":161},[155,12023,10131],{"class":1370},[155,12025,68],{"class":161},[155,12027,11729],{"class":1370},[155,12029,10675],{"class":161},[155,12031,9495],{"class":530},[155,12033,10547],{"class":161},[155,12035,10131],{"class":1370},[155,12037,68],{"class":161},[155,12039,11660],{"class":1370},[155,12041,10688],{"class":161},[155,12043,10131],{"class":1370},[155,12045,68],{"class":161},[155,12047,11729],{"class":1370},[155,12049,10562],{"class":161},[155,12051,9495],{"class":530},[155,12053,9605],{"class":161},[155,12055,12056,12058,12060,12062,12064,12066,12068,12070,12072,12074,12076,12078,12080,12082,12084,12086,12088,12090,12092],{"class":157,"line":10821},[155,12057,10320],{"class":168},[155,12059,10460],{"class":1370},[155,12061,9529],{"class":161},[155,12063,10131],{"class":1370},[155,12065,68],{"class":161},[155,12067,11660],{"class":1370},[155,12069,10675],{"class":161},[155,12071,9495],{"class":530},[155,12073,10547],{"class":161},[155,12075,10131],{"class":1370},[155,12077,68],{"class":161},[155,12079,11635],{"class":1370},[155,12081,10688],{"class":161},[155,12083,10131],{"class":1370},[155,12085,68],{"class":161},[155,12087,11660],{"class":1370},[155,12089,10562],{"class":161},[155,12091,9495],{"class":530},[155,12093,9605],{"class":161},[155,12095,12096,12098,12100,12102,12104,12106,12108,12110,12112,12114,12116,12118,12120,12122,12124,12126,12128,12130],{"class":157,"line":10854},[155,12097,10320],{"class":168},[155,12099,10469],{"class":1370},[155,12101,9529],{"class":161},[155,12103,9461],{"class":9460},[155,12105,10798],{"class":1370},[155,12107,10760],{"class":161},[155,12109,10451],{"class":1370},[155,12111,10760],{"class":161},[155,12113,10460],{"class":1370},[155,12115,10760],{"class":161},[155,12117,10803],{"class":530},[155,12119,9448],{"class":9460},[155,12121,68],{"class":161},[155,12123,10810],{"class":9437},[155,12125,9441],{"class":9460},[155,12127,5278],{"class":530},[155,12129,9448],{"class":9460},[155,12131,9605],{"class":161},[155,12133,12134],{"class":157,"line":10887},[155,12135,9997],{"emptyLinePlaceholder":9996},[155,12137,12138,12140,12142,12144,12146,12148,12150,12152,12154,12156,12158,12160,12162,12165,12167,12169,12171,12173],{"class":157,"line":10918},[155,12139,10965],{"class":9456},[155,12141,10439],{"class":161},[155,12143,11448],{"class":1370},[155,12145,185],{"class":161},[155,12147,10442],{"class":1370},[155,12149,185],{"class":161},[155,12151,10451],{"class":1370},[155,12153,185],{"class":161},[155,12155,10460],{"class":1370},[155,12157,185],{"class":161},[155,12159,10469],{"class":1370},[155,12161,185],{"class":161},[155,12163,12164],{"class":9460}," timestamp",[155,12166,174],{"class":161},[155,12168,10131],{"class":1370},[155,12170,68],{"class":161},[155,12172,11458],{"class":1370},[155,12174,10476],{"class":161},[155,12176,12177,12179,12181],{"class":157,"line":10923},[155,12178,5236],{"class":161},[155,12180,9448],{"class":1370},[155,12182,9605],{"class":161},[155,12184,12185],{"class":157,"line":10928},[155,12186,9997],{"emptyLinePlaceholder":9996},[155,12188,12189],{"class":157,"line":10933},[155,12190,12191],{"class":9990},"\u002F\u002F Sort data by timestamp (oldest to most recent)\n",[155,12193,12194,12197,12199,12202,12204,12206,12208,12210,12213,12215,12217,12220,12223,12226,12228,12231,12233,12236,12239,12242,12244,12246,12249,12251,12253,12255,12257,12260],{"class":157,"line":10957},[155,12195,12196],{"class":1370},"oeeResults",[155,12198,68],{"class":161},[155,12200,12201],{"class":9437},"sort",[155,12203,9441],{"class":1370},[155,12205,9441],{"class":161},[155,12207,16],{"class":9444},[155,12209,185],{"class":161},[155,12211,12212],{"class":9444}," b",[155,12214,9448],{"class":161},[155,12216,9561],{"class":168},[155,12218,12219],{"class":161}," new",[155,12221,12222],{"class":9437}," Date",[155,12224,12225],{"class":1370},"(a",[155,12227,68],{"class":161},[155,12229,12230],{"class":1370},"timestamp)",[155,12232,68],{"class":161},[155,12234,12235],{"class":9437},"valueOf",[155,12237,12238],{"class":1370},"() ",[155,12240,12241],{"class":161},"-",[155,12243,12219],{"class":161},[155,12245,12222],{"class":9437},[155,12247,12248],{"class":1370},"(b",[155,12250,68],{"class":161},[155,12252,12230],{"class":1370},[155,12254,68],{"class":161},[155,12256,12235],{"class":9437},[155,12258,12259],{"class":1370},"())",[155,12261,9605],{"class":161},[155,12263,12264,12266,12268,12270,12272,12274],{"class":157,"line":10962},[155,12265,1314],{"class":1370},[155,12267,68],{"class":161},[155,12269,9707],{"class":1370},[155,12271,9580],{"class":161},[155,12273,11050],{"class":1370},[155,12275,9605],{"class":161},[155,12277,12278,12280,12282],{"class":157,"line":10970},[155,12279,9731],{"class":9456},[155,12281,9734],{"class":1370},[155,12283,9605],{"class":161},[42,12285,12286,12296,12302],{"start":9248},[45,12287,8888,12288,12290,12291,8673,12293,68],{},[86,12289,8663],{}," onto the canvas and set ",[152,12292,8821],{},[152,12294,12295],{},"msg.oeeTrend",[45,12297,8888,12298,8892,12300,68],{},[86,12299,9351],{},[86,12301,8663],{},[45,12303,9765,12304,9768,12306,12308],{},[86,12305,9351],{},[86,12307,9140],{}," that was added earlier to receive all the calculated metrics for visualization.",[12,12310,12311,12315],{},[8625,12312],{"alt":12313,"dataZoomable":150,"src":12314},"Flows that calculate the OEE for each day over the last 30 days","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-trend.png",[8613,12316,12317],{},"Flows that calculate the OEE for each day over the last 30 days.",[73,12319,12321],{"id":12320},"building-the-oee-dashboard","Building the OEE Dashboard",[12,12323,12324],{},"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,12326,12327,12328,12332,12333,12337],{},"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. If you have not built a dashboard with it before, ",[16,12329,12331],{"href":12330},"\u002Fblog\u002F2024\u002F03\u002Fdashboard-getting-started\u002F","Getting Started with Dashboard 2.0"," covers the basics, and the ",[16,12334,12336],{"href":12335},"\u002Fblog\u002F2024\u002F05\u002Fnode-red-dashboard-2-layout-navigation-styling\u002F","comprehensive guide to layout, sidebar, and styling"," explains the grouping and page concepts used throughout this section.",[42,12339,12340,12351,12354,12401,12412,12426,12439,12466,12483,12517,12525,12545,12550,12583,12587],{},[45,12341,12342,12343,12345,12346],{},"Drag a Switch node onto the canvas, set the property to ",[152,12344,9177],{},", and add the condition:",[81,12347,12348],{},[45,12349,12350],{},"\"Is not null\".",[45,12352,12353],{},"Connect it to the Link-In node that receives calculated metrics.",[45,12355,12356,12357,8673,12359,12361,12362],{},"Drag a Change node, set ",[152,12358,9177],{},[152,12360,8821],{},", and connect it to a Gauge widget.",[81,12363,12364,12369,12383],{},[45,12365,12366,12367,68],{},"Create a new Group on a new page named ",[86,12368,8716],{},[45,12370,12371,12372,12375,12376,12379,12380,68],{},"Set the page layout to ",[86,12373,12374],{},"Grid",", adjust the range from ",[86,12377,12378],{},"0 to 100",", and label the gauge ",[86,12381,12382],{},"OEE",[45,12384,12385,12386,12389,12390,12393,12394,8601,12397,12400],{},"Choose ",[86,12387,12388],{},"Half Gauge"," as the type, set the style to ",[86,12391,12392],{},"Rounded",", and adjust the width and height to ",[86,12395,12396],{},"6",[86,12398,12399],{},"3"," for both the group and the widget.",[45,12402,12403,12404,4318,12406,12408,12409,12411],{},"Repeat these steps for ",[152,12405,9152],{},[152,12407,9161],{},", and ",[152,12410,9169],{},", ensuring each has a separate Group with the correct label.",[45,12413,12414,12415,12417,12418,8673,12420,174,12422],{},"Drag a Switch node for ",[152,12416,8824],{}," and connect it to a Change node setting ",[152,12419,8824],{},[152,12421,8821],{},[81,12423,12424],{},[45,12425,12350],{},[45,12427,12428,12429,4318,12431,4318,12433,12408,12436,12438],{},"Repeat this step for ",[152,12430,9752],{},[152,12432,9863],{},[152,12434,12435],{},"msg.topUnderPerformingMachines",[152,12437,12295],{},", ensuring each has a separate Switch node and Change node.",[45,12440,12441,12442,12444,12445,12448,12449,12452,12453,12456,12457,8601,12460,12463,12464,68],{},"Drag a Bar Chart widget, create a new Group, set the width to ",[86,12443,12396],{}," and height to ",[86,12446,12447],{},"8"," for both the group and widget, label it ",[86,12450,12451],{},"Production Data",", group data by ",[86,12454,12455],{},"Stacks",", and map ",[86,12458,12459],{},"X to series",[86,12461,12462],{},"Y to units",". Connect it to the node setting ",[152,12465,8824],{},[45,12467,12468,12469,12471,12472,8601,12475,12478,12479,8673,12481,68],{},"Duplicate the chart for ",[86,12470,9415],{},", mapping ",[86,12473,12474],{},"X to downtime_reason",[86,12476,12477],{},"Y to downtime_duration_minutes",", and connect it to the node setting ",[152,12480,9752],{},[152,12482,8821],{},[45,12484,12485,12486,12488,12489,12448,12491,12494,12495,12497,12498],{},"Drag a Table widget, create a new Group, set width ",[86,12487,12396],{}," and height ",[86,12490,5278],{},[86,12492,12493],{},"Recent Downtime Events",", set max rows to ",[86,12496,5715],{},", and add columns with keys:",[81,12499,12500,12504,12509,12513],{},[45,12501,12502],{},[152,12503,10053],{},[45,12505,12506],{},[152,12507,12508],{},"downtime_start",[45,12510,12511],{},[152,12512,10534],{},[45,12514,12515],{},[152,12516,9574],{},[45,12518,12519,12520,8673,12523,68],{},"Connect it to the node setting ",[152,12521,12522],{},"msg.recent_downtime",[152,12524,8821],{},[45,12526,12527,12528,12530,12531],{},"Duplicate the table for ",[86,12529,9880],{},", adding columns with keys:",[81,12532,12533,12537,12541],{},[45,12534,12535],{},[152,12536,10053],{},[45,12538,12539],{},[152,12540,10136],{},[45,12542,12543],{},[152,12544,10899],{},[45,12546,12547,12548,68],{},"Connect it to ",[152,12549,12435],{},[45,12551,12552,12553,12488,12555,12448,12557,12560,12561,12564,12565,12456,12568,8601,12573,12578,12579,8673,12581,68],{},"Drag a Line Chart widget, create a new Group, set width ",[86,12554,8684],{},[86,12556,5715],{},[86,12558,12559],{},"Daily OEE Trend Over 24 Hours",", set X-axis to ",[86,12562,12563],{},"Timescale",", format ",[86,12566,12567],{},"Y-l-d",[86,12569,12570,12571],{},"X to ",[152,12572,1738],{},[86,12574,12575,12576],{},"Y to ",[152,12577,10899],{},". Connect it to the Change node setting ",[152,12580,12295],{},[152,12582,8821],{},[45,12584,8707,12585,68],{},[86,12586,8593],{},[45,12588,12589],{},"Open the dashboard by clicking the Dashboard 2.0 button located at the top-right corner of the Dashboard 2.0 sidebar.",[12,12591,12592,12596],{},[8625,12593],{"alt":12594,"dataZoomable":150,"src":12595},"OEE Dashboard UI flow","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-dashboard.png",[8613,12597,12594],{},[12,12599,12600],{},"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,12602,12603,12607],{},[8625,12604],{"alt":12605,"dataZoomable":150,"src":12606},"OEE Dashboard results without proper theming and styling","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-dashboard-without-style.png",[8613,12608,12609],{},"OEE Dashboard results without proper theming and styling.",[12,12611,12612,12615],{},[8625,12613],{"alt":12605,"dataZoomable":150,"src":12614},"\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-dashboard-without-style-2.png",[8613,12616,12605],{},[12,12618,12619],{},"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,12621,12622],{},"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,12624,12626],{"id":12625},"what-next","What Next?",[12,12628,14,12629,12632,12633,12637,12638,68],{},[16,12630,12631],{"href":137},"Part 3, we design and scale the dashboard for factory screens",": theming it for the shop floor, making the layout responsive, connecting it to a real data source, and scaling 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,12634,12636],{"href":92,"rel":12635},[25],"Register for a FlowFuse account"," now and initiate your journey with our new effective, ready-made ",[16,12639,12641],{"href":12640},"\u002Fblueprints\u002Fmanufacturing\u002Foee-dashboard\u002F","OEE Dashboard Blueprint",[12,12643,12644,12645,12648,12649,68],{},"Missed the start? ",[16,12646,12647],{"href":18},"Part 1 explains what an OEE dashboard is and how to plan one",". And for the other views that belong on the shop floor alongside OEE, see our ",[16,12650,12652],{"href":12651},"\u002Fblog\u002F2026\u002F08\u002Fmanufacturing-dashboard-examples\u002F","manufacturing dashboard examples",[311,12654,12655],{},"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":150,"searchDepth":9248,"depth":9248,"links":12657},[12658,12678],{"id":36,"depth":8802,"text":37,"children":12659},[12660,12661,12662,12666,12667,12668,12677],{"id":75,"depth":8808,"text":76},{"id":130,"depth":8808,"text":131},{"id":8633,"depth":8808,"text":8634,"children":12663},[12664,12665],{"id":8641,"depth":9248,"text":8642},{"id":8736,"depth":9248,"text":8737},{"id":8879,"depth":8808,"text":8880},{"id":9129,"depth":8808,"text":9130},{"id":9384,"depth":8808,"text":9385,"children":12669},[12670,12671,12672,12673],{"id":9414,"depth":9248,"text":9415},{"id":9774,"depth":9248,"text":9775},{"id":9879,"depth":9248,"text":9880},{"id":11105,"depth":9248,"text":11106,"children":12674},[12675,12676],{"id":11113,"depth":9272,"text":11114},{"id":11261,"depth":9272,"text":11262},{"id":12320,"depth":8808,"text":12321},{"id":12625,"depth":8802,"text":12626},null,"2025-04-09","Build a manufacturing OEE dashboard step by step with FlowFuse. Covers collecting production and downtime data, calculating availability, performance, and quality, breaking OEE down by machine, and laying out the dashboard widgets.","md","\u002Fblog\u002F2025\u002F04\u002Fimages\u002Foee-dashboard-buildig-ff-2.png","2026-08-07",{"usecase":12686,"keywords":12688,"excerpt":12689},[12687],"production-monitoring","manufacturing oee dashboard, build oee dashboard, oee dashboard, machine oee dashboard, oee dashboard software, flowfuse oee dashboard",{"type":9,"value":12690},[12691],[12,12692,14,12693,20,12695,27,12698,32],{},[16,12694,19],{"href":18},[16,12696,26],{"href":23,"rel":12697},[25],[16,12699,31],{"href":30},"\u002Fblog\u002F2025\u002F04\u002Fbuild-manufacturing-oee-dashboard",{"title":5,"description":12681},{"loc":12700},"blog\u002F2025\u002F04\u002Fbuild-manufacturing-oee-dashboard","A step-by-step build - collecting production data, calculating availability, performance, and quality, and assembling the dashboard.",[12706],"flowfuse","Build a manufacturing OEE dashboard in FlowFuse: generate simulated production and downtime data in SQLite, aggregate it, calculate availability, performance, and quality to produce the OEE score, break it down by machine with downtime summaries and a 30-day trend, and wire it all to FlowFuse Dashboard widgets.","qDnuIJi_6i9KZ9GJtX4D9MU81cqivX5sf_0arwPjYPk",[],1786117157457]