@ifp-software/node-red-contrib-oee-ai-connector
Version:
Easily connect your production machines to oee.ai – The Industry 4.0 solution for OEE optimization.
1,230 lines • 34.5 kB
JSON
[
{
"id": "a58e1e6820201c49",
"type": "subflow",
"name": "Get Loss Reasons from MIP",
"info": "",
"category": "",
"in": [
{
"x": 40,
"y": 160,
"wires": [
{
"id": "07fc8c6b54dfd52b"
},
{
"id": "b6b14e515cc07c4f"
}
]
}
],
"out": [
{
"x": 1820,
"y": 180,
"wires": [
{
"id": "7103451a05d2216e",
"port": 0
},
{
"id": "b7973ee83f2ec2a7",
"port": 0
}
]
}
],
"env": [],
"meta": {},
"color": "#DDAA99"
},
{
"id": "7103451a05d2216e",
"type": "change",
"z": "a58e1e6820201c49",
"name": "Mapping loss reason attributes",
"rules": [
{
"t": "set",
"p": "title-de",
"pt": "msg",
"to": "payload.obj[\"reasontext.text\"]",
"tot": "msg"
},
{
"t": "set",
"p": "title-en",
"pt": "msg",
"to": "payload.obj[\"reasontext.text\"]",
"tot": "msg"
},
{
"t": "set",
"p": "title-it",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "title-ro",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "title-cz",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "valid-from",
"pt": "msg",
"to": "2021-01-01",
"tot": "str"
},
{
"t": "set",
"p": "classification",
"pt": "msg",
"to": "technical",
"tot": "str"
},
{
"t": "set",
"p": "tags",
"pt": "msg",
"to": "[]",
"tot": "json"
},
{
"t": "set",
"p": "color",
"pt": "msg",
"to": "purple",
"tot": "str"
},
{
"t": "set",
"p": "icon",
"pt": "msg",
"to": "alarm-exclamation",
"tot": "str"
},
{
"t": "set",
"p": "mode",
"pt": "msg",
"to": "quality",
"tot": "str"
},
{
"t": "set",
"p": "target-minutes",
"pt": "msg",
"to": "0",
"tot": "str"
},
{
"t": "set",
"p": "reduces-oee",
"pt": "msg",
"to": "true",
"tot": "bool"
},
{
"t": "set",
"p": "changes-product",
"pt": "msg",
"to": "false",
"tot": "bool"
},
{
"t": "set",
"p": "input-rejects",
"pt": "msg",
"to": "false",
"tot": "bool"
},
{
"t": "set",
"p": "ignore-units",
"pt": "msg",
"to": "false",
"tot": "bool"
},
{
"t": "set",
"p": "parent-loss-reason-title",
"pt": "msg",
"to": "",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1610,
"y": 120,
"wires": [
[]
]
},
{
"id": "31146f770a1e7a20",
"type": "http request",
"z": "a58e1e6820201c49",
"name": "service call to MIP",
"method": "POST",
"ret": "obj",
"paytoqs": "ignore",
"url": "",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 390,
"y": 120,
"wires": [
[
"6ed829c29834a705"
]
]
},
{
"id": "07fc8c6b54dfd52b",
"type": "function",
"z": "a58e1e6820201c49",
"name": "build request",
"func": "msg.payload = { \n \"params\": [], \n \"columns\": [ \n \"reason.id\", \n \"reason.article\", \n \"reason.type\",\n \"reasontext.text\",\n \"reason.workplace\",\n \"reason.textno\"], \n \"returnAsObject\": true,\n \"languageKey\": \"en\"\n}\n\nmsg.url = msg.baseUrl + \"/data/MDReason/list?X-Access-Id=\" + msg.xAccessId\n\nlet basic_encrypted = \"Basic \" + new Buffer(msg.user + ':' + msg.password).toString('base64')\n\nmsg.headers = { \n \"Content-Type\": \"application/json\",\n \"Authorization\": basic_encrypted\n}\n\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 190,
"y": 120,
"wires": [
[
"31146f770a1e7a20"
]
]
},
{
"id": "5eecf565f833ad95",
"type": "change",
"z": "a58e1e6820201c49",
"name": "Delete META data",
"rules": [
{
"t": "delete",
"p": "payload[0]",
"pt": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 870,
"y": 120,
"wires": [
[
"c0c472d5b2e729b6"
]
]
},
{
"id": "ae7ff7cfe6826128",
"type": "split",
"z": "a58e1e6820201c49",
"name": "split each reason",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "",
"x": 1310,
"y": 120,
"wires": [
[
"7103451a05d2216e"
]
]
},
{
"id": "c0c472d5b2e729b6",
"type": "function",
"z": "a58e1e6820201c49",
"name": "filter scrap reasons",
"func": "let filteredArray = msg.payload.filter(item => item.obj[\"reason.type\"] === \"A\");\nmsg.payload = filteredArray\n\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1090,
"y": 120,
"wires": [
[
"ae7ff7cfe6826128"
]
]
},
{
"id": "6ed829c29834a705",
"type": "change",
"z": "a58e1e6820201c49",
"name": "Clean up for next requests",
"rules": [
{
"t": "delete",
"p": "headers",
"pt": "msg"
},
{
"t": "delete",
"p": "url",
"pt": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 640,
"y": 120,
"wires": [
[
"5eecf565f833ad95"
]
]
},
{
"id": "25826e2142119889",
"type": "comment",
"z": "a58e1e6820201c49",
"name": "Quality Loss reasons",
"info": "",
"x": 210,
"y": 80,
"wires": []
},
{
"id": "c833ab2194264a89",
"type": "http request",
"z": "a58e1e6820201c49",
"name": "service call to MIP",
"method": "POST",
"ret": "obj",
"paytoqs": "ignore",
"url": "",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 390,
"y": 220,
"wires": [
[
"e95ce2ae229dc962"
]
]
},
{
"id": "b6b14e515cc07c4f",
"type": "function",
"z": "a58e1e6820201c49",
"name": "build request",
"func": "msg.payload = { \n \"params\": [], \n \"columns\": [], \n \"returnAsObject\": true,\n \"languageKey\": \"en\"\n}\n\nmsg.url = msg.baseUrl + \"/data/MDStatusText/list?X-Access-Id=\" + msg.xAccessId\n\nlet basic_encrypted = \"Basic \" + new Buffer(msg.user + ':' + msg.password).toString('base64')\n\nmsg.headers = { \n \"Content-Type\": \"application/json\",\n \"Authorization\": basic_encrypted\n}\n\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 190,
"y": 220,
"wires": [
[
"c833ab2194264a89"
]
]
},
{
"id": "e95ce2ae229dc962",
"type": "change",
"z": "a58e1e6820201c49",
"name": "Clean up for next requests",
"rules": [
{
"t": "delete",
"p": "headers",
"pt": "msg"
},
{
"t": "delete",
"p": "url",
"pt": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 640,
"y": 220,
"wires": [
[
"559fc5699b19c3d6"
]
]
},
{
"id": "559fc5699b19c3d6",
"type": "change",
"z": "a58e1e6820201c49",
"name": "Delete META data",
"rules": [
{
"t": "delete",
"p": "payload[0]",
"pt": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 870,
"y": 220,
"wires": [
[
"cb9b93773da7a82a"
]
]
},
{
"id": "d18b12c87c2aeb2d",
"type": "comment",
"z": "a58e1e6820201c49",
"name": "Availability Loss reasons StatusText?",
"info": "",
"x": 270,
"y": 180,
"wires": []
},
{
"id": "b7973ee83f2ec2a7",
"type": "change",
"z": "a58e1e6820201c49",
"name": "Mapping loss reason attributes",
"rules": [
{
"t": "set",
"p": "title-de",
"pt": "msg",
"to": "payload.obj[\"statustext.text\"]",
"tot": "msg"
},
{
"t": "set",
"p": "title-en",
"pt": "msg",
"to": "payload.obj[\"statustext.text\"]",
"tot": "msg"
},
{
"t": "set",
"p": "title-it",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "title-ro",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "title-cz",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "valid-from",
"pt": "msg",
"to": "2021-01-01",
"tot": "str"
},
{
"t": "set",
"p": "classification",
"pt": "msg",
"to": "technical",
"tot": "str"
},
{
"t": "set",
"p": "tags",
"pt": "msg",
"to": "[]",
"tot": "json"
},
{
"t": "set",
"p": "color",
"pt": "msg",
"to": "red",
"tot": "str"
},
{
"t": "set",
"p": "icon",
"pt": "msg",
"to": "alarm-exclamation",
"tot": "str"
},
{
"t": "set",
"p": "mode",
"pt": "msg",
"to": "availability",
"tot": "str"
},
{
"t": "set",
"p": "target-minutes",
"pt": "msg",
"to": "0",
"tot": "str"
},
{
"t": "set",
"p": "reduces-oee",
"pt": "msg",
"to": "true",
"tot": "bool"
},
{
"t": "set",
"p": "changes-product",
"pt": "msg",
"to": "false",
"tot": "bool"
},
{
"t": "set",
"p": "input-rejects",
"pt": "msg",
"to": "false",
"tot": "bool"
},
{
"t": "set",
"p": "ignore-units",
"pt": "msg",
"to": "false",
"tot": "bool"
},
{
"t": "set",
"p": "parent-loss-reason-title",
"pt": "msg",
"to": "",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1350,
"y": 220,
"wires": [
[]
]
},
{
"id": "cb9b93773da7a82a",
"type": "split",
"z": "a58e1e6820201c49",
"name": "split each reason",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "",
"x": 1090,
"y": 220,
"wires": [
[
"b7973ee83f2ec2a7"
]
]
},
{
"id": "87fc67442f9080e5",
"type": "subflow",
"name": "Patch loss reason",
"info": "",
"category": "",
"in": [
{
"x": 300,
"y": 260,
"wires": [
{
"id": "07058fae669a1665"
}
]
}
],
"out": [
{
"x": 1000,
"y": 260,
"wires": [
{
"id": "a2d7b0882820171f",
"port": 0
}
]
}
],
"env": [],
"meta": {},
"color": "#DDAA99"
},
{
"id": "a2d7b0882820171f",
"type": "http request",
"z": "87fc67442f9080e5",
"name": "Patch loss reason",
"method": "use",
"ret": "obj",
"paytoqs": "ignore",
"url": "https://api.oee.ai/loss-reasons/{{{oldLossReasonId}}}",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 770,
"y": 260,
"wires": [
[]
]
},
{
"id": "07058fae669a1665",
"type": "function",
"z": "87fc67442f9080e5",
"name": "Formatting json payload",
"func": "msg.headers = {\n \"Content-Type\": \"application/vnd.api+json\",\n \"Authorization\": \"Bearer \" + msg.bearerToken\n};\n\nmsg.method = \"PATCH\";\n\nmsg.payload = {\n \"data\": {\n \"type\": \"loss-reasons\",\n \"id\": msg.oldLossReasonId,\n \"attributes\": {\n \"title-de\": msg[\"title-de\"],\n \"title-en\": msg[\"title-en\"],\n \"title-it\": msg[\"title-it\"],\n \"title-ro\": msg[\"title-ro\"],\n \"title-cz\": msg[\"title-cz\"],\n \"valid-from\": msg[\"valid-from\"],\n \"valid-to\": msg[\"valid-to\"],\n \"classification\": msg.classification,\n \"tags\": msg.tags,\n \"color\": msg.color,\n \"icon\": msg.icon,\n \"mode\": msg.mode,\n \"target-minutes\": msg[\"target-minutes\"],\n \"reduces-oee\": msg[\"reduces-oee\"],\n \"changes-product\": msg[\"changes-product\"],\n \"input-rejects\": msg[\"input-rejects\"],\n \"ignore-units\": msg[\"ignore-units\"]\n },\n \"relationships\": {\n \"location\": {\n \"data\": {\n \"type\": \"locations\",\n \"id\": msg.location\n }\n },\n \"parent-loss-reason\":{\n \"data\": null\n }\n }\n }\n};\n\nif (msg[\"parent-loss-reason\"]) {\n msg.payload.data.relationships[\"parent-loss-reason\"].data = {\n \"type\": \"loss-reasons\",\n \"id\": msg[\"parent-loss-reason\"]\n };\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 530,
"y": 260,
"wires": [
[
"a2d7b0882820171f"
]
]
},
{
"id": "a312a6fc64b9406a",
"type": "subflow",
"name": "Post loss reason",
"info": "",
"category": "",
"in": [
{
"x": 400,
"y": 260,
"wires": [
{
"id": "b269a642d49879ba"
}
]
}
],
"out": [
{
"x": 900,
"y": 260,
"wires": [
{
"id": "3373fbee81df867c",
"port": 0
}
]
}
],
"env": [],
"meta": {},
"color": "#DDAA99"
},
{
"id": "b269a642d49879ba",
"type": "function",
"z": "a312a6fc64b9406a",
"name": "Formatting json payload",
"func": "msg.headers = {\n \"Authorization\": \"Bearer \" + msg.bearerToken,\n \"Content-Type\": \"application/vnd.api+json\"\n};\n\nmsg.payload = {\n \"data\": {\n \"type\": \"loss-reasons\",\n \"attributes\": {\n \"title-de\": msg[\"title-de\"],\n \"title-en\": msg[\"title-en\"],\n \"title-it\": msg[\"title-it\"],\n \"title-ro\": msg[\"title-ro\"],\n \"title-cz\": msg[\"title-cz\"],\n \"valid-from\": msg[\"valid-from\"],\n \"valid-to\": msg[\"valid-to\"],\n \"classification\": msg.classification,\n \"tags\": msg.tags,\n \"color\": msg.color,\n \"icon\": msg.icon,\n \"mode\": msg.mode,\n \"target-minutes\": msg[\"target-minutes\"],\n \"reduces-oee\": msg[\"reduces-oee\"],\n \"changes-product\": msg[\"changes-product\"],\n \"input-rejects\": msg[\"input-rejects\"],\n \"ignore-units\": msg[\"ignore-units\"]\n },\n \"relationships\": {\n \"location\": {\n \"data\": {\n \"type\": \"locations\",\n \"id\": msg.location\n }\n }\n }\n }\n};\n\nif (msg[\"parent-loss-reason\"]){\n msg.payload.data.relationships[\"parent-loss-reason\"] = {\n \"data\": {\n \"type\": \"loss-reasons\",\n \"id\": msg[\"parent-loss-reason\"]\n }\n };\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 550,
"y": 260,
"wires": [
[
"3373fbee81df867c"
]
]
},
{
"id": "3373fbee81df867c",
"type": "http request",
"z": "a312a6fc64b9406a",
"name": "POST loss reason",
"method": "POST",
"ret": "obj",
"paytoqs": "ignore",
"url": "https://api.oee.ai/loss-reasons",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 770,
"y": 260,
"wires": [
[]
]
},
{
"id": "184cc4064c28bc4e",
"type": "subflow",
"name": "Get all loss reasons",
"info": "",
"category": "",
"in": [
{
"x": 180,
"y": 280,
"wires": [
{
"id": "08143ffcbe9f937c"
}
]
}
],
"out": [
{
"x": 1620,
"y": 280,
"wires": [
{
"id": "f59336dfb3d4af2c",
"port": 0
}
]
}
],
"env": [],
"meta": {},
"color": "#DDAA99"
},
{
"id": "9a567b3c853a51ea",
"type": "change",
"z": "184cc4064c28bc4e",
"name": "Delete response header",
"rules": [
{
"t": "delete",
"p": "headers",
"pt": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1170,
"y": 280,
"wires": [
[
"f59336dfb3d4af2c"
]
]
},
{
"id": "08143ffcbe9f937c",
"type": "function",
"z": "184cc4064c28bc4e",
"name": "Set Authorization header",
"func": "msg.headers = {\n \"Authorization\": \"Bearer \" + msg.bearerToken\n};\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 330,
"y": 280,
"wires": [
[
"9be5407c3b0330ee"
]
]
},
{
"id": "1045703e96def829",
"type": "http request",
"z": "184cc4064c28bc4e",
"name": "GET all loss-reasons",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "https://api.oee.ai/loss-reasons?filter[location]={{{location}}}&filter[valid-at]={{{today}}}",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 920,
"y": 280,
"wires": [
[
"9a567b3c853a51ea"
]
]
},
{
"id": "f59336dfb3d4af2c",
"type": "change",
"z": "184cc4064c28bc4e",
"name": "Save all loss reasons",
"rules": [
{
"t": "set",
"p": "all-loss-reasons",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1440,
"y": 280,
"wires": [
[]
]
},
{
"id": "9be5407c3b0330ee",
"type": "function",
"z": "184cc4064c28bc4e",
"name": "Generate iso8601 date for today",
"func": "msg.today = new Date().toISOString();\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 610,
"y": 280,
"wires": [
[
"1045703e96def829"
]
]
},
{
"id": "3eaf2cca52ce5808",
"type": "subflow",
"name": "Send loss reasons to oee.ai",
"info": "",
"category": "",
"in": [
{
"x": 300,
"y": 360,
"wires": [
{
"id": "d8afcc01e4658d10"
}
]
}
],
"out": [],
"env": [],
"meta": {},
"color": "#DDAA99"
},
{
"id": "8807c315f7441134",
"type": "switch",
"z": "3eaf2cca52ce5808",
"name": "Has parent loss reason",
"property": "parent-loss-reason-title",
"propertyType": "msg",
"rules": [
{
"t": "nempty"
},
{
"t": "else"
}
],
"checkall": "false",
"repair": false,
"outputs": 2,
"x": 690,
"y": 360,
"wires": [
[
"3f83b636f48f77d9"
],
[
"6ec87b6a5061674a"
]
]
},
{
"id": "d8afcc01e4658d10",
"type": "subflow:184cc4064c28bc4e",
"z": "3eaf2cca52ce5808",
"name": "",
"x": 450,
"y": 360,
"wires": [
[
"8807c315f7441134"
]
]
},
{
"id": "17c1dc97ca31b6f8",
"type": "subflow:a312a6fc64b9406a",
"z": "3eaf2cca52ce5808",
"name": "",
"x": 1790,
"y": 380,
"wires": [
[
"cd8f592940a5dd61"
]
]
},
{
"id": "6ec87b6a5061674a",
"type": "function",
"z": "3eaf2cca52ce5808",
"name": "Check if loss reason already exists",
"func": "// replace data=null if there is no parent loss reason with an id attribute of null\nlet match = msg[\"all-loss-reasons\"].data.find(({ relationships, attributes }) => {\n const parentId = relationships[\"parent-loss-reason\"].data?.id;\n // trim whitespaces in the middle and on the end just like oee.ai does\n const isMatchingTitle = [\"title-de\", \"title-en\", \"title-it\", \"title-ro\", \"title-cz\"].some(lang => attributes[lang] === msg[lang].replace(/\\s+/g,' ').trim());\n return parentId === msg[\"parent-loss-reason\"] && isMatchingTitle;\n});\n\n\nfunction compareProperties(a, b, properties) {\n return properties.every(prop => {\n if (prop == 'target-minutes'){\n if (parseFloat(a[prop]) == parseFloat(b[prop])){\n return true;\n }else{\n return false;\n }\n }else{\n if(a[prop] == b[prop]){\n return true;\n }else{\n return false;\n }\n \n }});\n}\n\nif (match){\n let propertiesToCompare = [\n 'classification',\n 'color',\n 'icon',\n 'mode',\n 'target-minutes',\n 'reduces-oee',\n 'changes-product',\n 'input-rejects',\n 'ignore-units',\n ];\n\n if (!compareProperties(match[\"attributes\"], msg, propertiesToCompare)) {\n return [msg, null];\n }else{\n return null;\n }\n}\n\nreturn [null, msg];\n\n",
"outputs": 2,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1380,
"y": 360,
"wires": [
[
"e36450a6aa0fe7e7"
],
[
"17c1dc97ca31b6f8"
]
]
},
{
"id": "e36450a6aa0fe7e7",
"type": "subflow:87fc67442f9080e5",
"z": "3eaf2cca52ce5808",
"name": "",
"x": 1790,
"y": 300,
"wires": [
[
"b7ae663e1a23236a"
]
]
},
{
"id": "b7ae663e1a23236a",
"type": "debug",
"z": "3eaf2cca52ce5808",
"name": "Response from oee.ai",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 2100,
"y": 340,
"wires": []
},
{
"id": "3f83b636f48f77d9",
"type": "function",
"z": "3eaf2cca52ce5808",
"name": "Check if parent loss reason title exists",
"func": "let parent = msg[\"all-loss-reasons\"].data.find(reason => reason.attributes.title == msg[\"parent-loss-reason-title\"]);\n\nif (parent){\n msg[\"parent-loss-reason\"] = parent.id\n return msg;\n}\n\nnode.warn(\"Parent loss reason with title \" + msg[\"parent-loss-reason-title\"] + \" does not exist.\");\nreturn null;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 1050,
"y": 300,
"wires": [
[
"6ec87b6a5061674a"
]
]
},
{
"id": "cd8f592940a5dd61",
"type": "debug",
"z": "3eaf2cca52ce5808",
"name": "Post Loss Reason",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 2070,
"y": 420,
"wires": []
},
{
"id": "0246bd7e4768a9e3",
"type": "tab",
"label": "MIP synchronizing loss reasons",
"disabled": false,
"info": "",
"env": []
},
{
"id": "a0cc0d031958f91a",
"type": "change",
"z": "0246bd7e4768a9e3",
"name": "Set API Token",
"rules": [
{
"t": "set",
"p": "bearerToken",
"pt": "msg",
"to": "",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 980,
"y": 140,
"wires": [
[
"28ac72dee746f85c"
]
]
},
{
"id": "28ac72dee746f85c",
"type": "subflow:3eaf2cca52ce5808",
"z": "0246bd7e4768a9e3",
"name": "",
"x": 1200,
"y": 140,
"wires": []
},
{
"id": "9229733eddddf7ef",
"type": "inject",
"z": "0246bd7e4768a9e3",
"name": "Once a day",
"props": [],
"repeat": "86400",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 150,
"y": 140,
"wires": [
[
"c83e4c0b9cc703b6"
]
]
},
{
"id": "c83e4c0b9cc703b6",
"type": "change",
"z": "0246bd7e4768a9e3",
"name": "set settings",
"rules": [
{
"t": "set",
"p": "baseUrl",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "user",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "password",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "xAccessId",
"pt": "msg",
"to": "",
"tot": "str"
},
{
"t": "set",
"p": "languageKey",
"pt": "msg",
"to": "en",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 330,
"y": 140,
"wires": [
[
"7c09544a0baa8860"
]
]
},
{
"id": "7c09544a0baa8860",
"type": "subflow:a58e1e6820201c49",
"z": "0246bd7e4768a9e3",
"name": "",
"x": 540,
"y": 140,
"wires": [
[
"156ecf2c5d1cfd4e"
]
]
},
{
"id": "156ecf2c5d1cfd4e",
"type": "change",
"z": "0246bd7e4768a9e3",
"name": "Set location id",
"rules": [
{
"t": "set",
"p": "location",
"pt": "msg",
"to": "",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 780,
"y": 140,
"wires": [
[
"a0cc0d031958f91a"
]
]
},
{
"id": "25214bd5b523c7fa",
"type": "comment",
"z": "0246bd7e4768a9e3",
"name": "^^ configure settings",
"info": "",
"x": 360,
"y": 180,
"wires": []
},
{
"id": "8fabe22331d6cba2",
"type": "comment",
"z": "0246bd7e4768a9e3",
"name": "^^ set location id",
"info": "",
"x": 780,
"y": 180,
"wires": []
},
{
"id": "1a792319f951ab60",
"type": "comment",
"z": "0246bd7e4768a9e3",
"name": "^^ enter your oee.ai API token",
"info": "",
"x": 1020,
"y": 180,
"wires": []
}
]