Created
May 6, 2023 17:45
-
-
Save WolfwithSword/45dd17ba5250cee94136759e9923e2bb to your computer and use it in GitHub Desktop.
Bambu Advanced Mesh Visualize Setup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [ | |
| { | |
| "id": "791d26fa232ad922", | |
| "type": "group", | |
| "z": "fbda6ab16491b918", | |
| "name": "Bed Mesh Parser Advanced", | |
| "style": { | |
| "stroke": "#92d04f", | |
| "fill": "#001f60", | |
| "fill-opacity": "0.76", | |
| "label": true, | |
| "color": "#92d04f" | |
| }, | |
| "nodes": [ | |
| "2a0ba80bf37d170c", | |
| "8b88223358dd69df", | |
| "8e185cdb9a8932af", | |
| "4451d030e6418f49", | |
| "8978c1243f654011", | |
| "c4d7905e3406300d", | |
| "fd4369e8c6dd7280", | |
| "060fe49fc21270c4", | |
| "5db05dca795db972", | |
| "c0b73094bf3797c7", | |
| "71b429a70f0549b8", | |
| "d4d9c0c56451621b", | |
| "ef37102da33be23c", | |
| "8eb3dcb17a44e25b", | |
| "47a0f2d5e094174c", | |
| "32821e386ab7692c", | |
| "0843c63919f7f6c1", | |
| "3dfcb98c18f19d78", | |
| "005f9d4dc018dbcf", | |
| "3ab2585a83ed5e83", | |
| "ba7c30e3c166b7b0", | |
| "91b4cf7e3ba9798d", | |
| "6796f76272d2b69b" | |
| ], | |
| "x": 1694, | |
| "y": 2339, | |
| "w": 1072, | |
| "h": 342 | |
| }, | |
| { | |
| "id": "2a0ba80bf37d170c", | |
| "type": "mqtt in", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Bambu X1C {PRINTER_NAME}", | |
| "topic": "device/{PRINTER_SERIAL}/report", | |
| "qos": "2", | |
| "datatype": "json", | |
| "broker": "{GENERATED_PRINTER_MQTT_ID}", | |
| "nl": false, | |
| "rap": true, | |
| "rh": 0, | |
| "inputs": 0, | |
| "x": 1850, | |
| "y": 2560, | |
| "wires": [ | |
| [ | |
| "8b88223358dd69df" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "8b88223358dd69df", | |
| "type": "json", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "payload.print", | |
| "action": "obj", | |
| "pretty": false, | |
| "x": 2030, | |
| "y": 2560, | |
| "wires": [ | |
| [ | |
| "8e185cdb9a8932af" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "8e185cdb9a8932af", | |
| "type": "function", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Inject Machine Details", | |
| "func": "let machine_name = \"{PRINTER_NAME}\";\nlet machine_serial = \"{PRINTER_SERIAL}\";\nlet manufacturer = \"Bambu Labs\";\nlet model = \"X1 Carbon\"\n\n\nif(msg.payload.mc_print != undefined) {\n msg.payload.mc_print.machine_name = machine_name;\n msg.payload.mc_print.machine_serial = machine_serial;\n msg.payload.mc_print.manufacturer = manufacturer;\n if(msg.payload.mc_print.param.includes(\"[AMS]\")) {\n msg.payload.mc_print.model = \"AMS\";\n }\n else {\n msg.payload.mc_print.model = model;\n node.send(msg);\n }\n}\n", | |
| "outputs": 1, | |
| "noerr": 0, | |
| "initialize": "", | |
| "finalize": "", | |
| "libs": [], | |
| "x": 1840, | |
| "y": 2600, | |
| "wires": [ | |
| [ | |
| "4451d030e6418f49" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "4451d030e6418f49", | |
| "type": "function", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Cull Fail Msg", | |
| "func": "if(msg.payload != undefined && Object.keys(msg.payload).length > 0){\n node.send(msg);\n}", | |
| "outputs": 1, | |
| "noerr": 0, | |
| "initialize": "", | |
| "finalize": "", | |
| "libs": [], | |
| "x": 2030, | |
| "y": 2600, | |
| "wires": [ | |
| [ | |
| "8978c1243f654011" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "8978c1243f654011", | |
| "type": "switch", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "payload.mc_print.param", | |
| "propertyType": "msg", | |
| "rules": [ | |
| { | |
| "t": "regex", | |
| "v": "\\[BMC\\] X\\d+\\.\\d+ Y\\d+\\.\\d+,z_c=", | |
| "vt": "str", | |
| "case": false | |
| } | |
| ], | |
| "checkall": "true", | |
| "repair": false, | |
| "outputs": 1, | |
| "x": 1790, | |
| "y": 2640, | |
| "wires": [ | |
| [ | |
| "c4d7905e3406300d" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "c4d7905e3406300d", | |
| "type": "function", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Parse coord", | |
| "func": "let param = msg.payload.mc_print.param;\nlet x = param.match(/X(\\d+\\.\\d+)/)[1];\nlet y = param.match(/Y(\\d+\\.\\d+)/)[1];\nlet z = param.match(/z_c=\\s+(-?\\d+\\.\\d+)/)[1];\nlet coords = [x, y, z];\nmsg.payload = {\"coord\": {\"x\": parseFloat(x), \"y\":parseFloat(y), \"z\":parseFloat(z)}};\n\nlet abl = flow.get('abl2');\nabl.push(msg.payload);\nnode.send(msg);\n", | |
| "outputs": 1, | |
| "noerr": 0, | |
| "initialize": "", | |
| "finalize": "", | |
| "libs": [], | |
| "x": 1930, | |
| "y": 2640, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "fd4369e8c6dd7280", | |
| "type": "mqtt in", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "HomeAssistant In", | |
| "topic": "homeassistant/sensor/X1C_{PRINTER_NAME}/stage/state", | |
| "qos": "2", | |
| "datatype": "utf8", | |
| "broker": "489094618c340eef", | |
| "nl": false, | |
| "rap": true, | |
| "rh": 0, | |
| "inputs": 0, | |
| "x": 1820, | |
| "y": 2520, | |
| "wires": [ | |
| [ | |
| "5db05dca795db972" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "060fe49fc21270c4", | |
| "type": "switch", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "payload", | |
| "propertyType": "msg", | |
| "rules": [ | |
| { | |
| "t": "eq", | |
| "v": "Auto bed leveling", | |
| "vt": "str" | |
| }, | |
| { | |
| "t": "eq", | |
| "v": "Offline", | |
| "vt": "str" | |
| }, | |
| { | |
| "t": "eq", | |
| "v": "Idle", | |
| "vt": "str" | |
| }, | |
| { | |
| "t": "eq", | |
| "v": "Printing", | |
| "vt": "str" | |
| } | |
| ], | |
| "checkall": "true", | |
| "repair": false, | |
| "outputs": 4, | |
| "x": 2090, | |
| "y": 2500, | |
| "wires": [ | |
| [ | |
| "c0b73094bf3797c7" | |
| ], | |
| [ | |
| "c0b73094bf3797c7" | |
| ], | |
| [ | |
| "91b4cf7e3ba9798d" | |
| ], | |
| [ | |
| "0843c63919f7f6c1" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "5db05dca795db972", | |
| "type": "rbe", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "func": "rbe", | |
| "gap": "", | |
| "start": "", | |
| "inout": "out", | |
| "septopics": true, | |
| "property": "payload", | |
| "topi": "topic", | |
| "x": 1970, | |
| "y": 2520, | |
| "wires": [ | |
| [ | |
| "060fe49fc21270c4" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "c0b73094bf3797c7", | |
| "type": "change", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "rules": [ | |
| { | |
| "t": "set", | |
| "p": "abl2", | |
| "pt": "flow", | |
| "to": "[]", | |
| "tot": "json" | |
| } | |
| ], | |
| "action": "", | |
| "property": "", | |
| "from": "", | |
| "to": "", | |
| "reg": false, | |
| "x": 2370, | |
| "y": 2460, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "71b429a70f0549b8", | |
| "type": "delay", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "pauseType": "delay", | |
| "timeout": "1", | |
| "timeoutUnits": "seconds", | |
| "rate": "1", | |
| "nbRateUnits": "1", | |
| "rateUnits": "second", | |
| "randomFirst": "1", | |
| "randomLast": "5", | |
| "randomUnits": "seconds", | |
| "drop": false, | |
| "allowrate": false, | |
| "outputs": 1, | |
| "x": 2320, | |
| "y": 2580, | |
| "wires": [ | |
| [ | |
| "ef37102da33be23c" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "d4d9c0c56451621b", | |
| "type": "inject", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Init", | |
| "props": [ | |
| { | |
| "p": "topic", | |
| "vt": "str" | |
| }, | |
| { | |
| "p": "payload" | |
| } | |
| ], | |
| "repeat": "", | |
| "crontab": "", | |
| "once": true, | |
| "onceDelay": 0.1, | |
| "topic": "bed_mesh_data", | |
| "payload": "None", | |
| "payloadType": "str", | |
| "x": 2090, | |
| "y": 2440, | |
| "wires": [ | |
| [ | |
| "c0b73094bf3797c7", | |
| "005f9d4dc018dbcf" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "ef37102da33be23c", | |
| "type": "function", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Create Matrix", | |
| "func": "let abl = flow.get('abl2');\nif (abl.length > 0) {\n let setX = new Set();\n let setY = new Set();\n for (let c of abl) {\n setX.add(c.coord.x);\n setY.add(c.coord.y);\n }\n let xs = Array.from(setX).sort(function (a, b) {\n return a - b;\n });\n let ys = Array.from(setY).sort(function (a, b) {\n return a - b;\n });\n\n\n let data = new Array(ys.length).fill(0).map(() => new Array(xs.length).fill(0));\n for (var c of abl) {\n let coord = c.coord;\n let x = xs.indexOf(coord.x);\n let y = ys.indexOf(coord.y);\n data[y][x] = coord.z;\n }\n let strdata = JSON.stringify(data).replaceAll(\"[\", \"{\");\n strdata = strdata.replaceAll(\"]\", \"}\");\n msg.values = {\n \"data\": strdata,\n \"printer\": \"{PRINTER_NAME}\",\n \"printer_serial\": \"{PRINTER_SERIAL}\"\n }\n node.send(msg);\n}", | |
| "outputs": 1, | |
| "noerr": 0, | |
| "initialize": "", | |
| "finalize": "", | |
| "libs": [], | |
| "x": 2320, | |
| "y": 2620, | |
| "wires": [ | |
| [ | |
| "ba7c30e3c166b7b0" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "8eb3dcb17a44e25b", | |
| "type": "junction", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "x": 2500, | |
| "y": 2420, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "47a0f2d5e094174c", | |
| "type": "junction", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "x": 2740, | |
| "y": 2460, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "32821e386ab7692c", | |
| "type": "comment", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Bed Mesh Flow Advanced: REV A-1", | |
| "info": "Rev A-1: 2023-05-06\n- Initial Creation for Advanced version", | |
| "x": 1860, | |
| "y": 2380, | |
| "wires": [] | |
| }, | |
| { | |
| "id": "0843c63919f7f6c1", | |
| "type": "switch", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "abl2", | |
| "propertyType": "flow", | |
| "rules": [ | |
| { | |
| "t": "nempty" | |
| } | |
| ], | |
| "checkall": "true", | |
| "repair": false, | |
| "outputs": 1, | |
| "x": 2390, | |
| "y": 2540, | |
| "wires": [ | |
| [ | |
| "71b429a70f0549b8" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "3dfcb98c18f19d78", | |
| "type": "junction", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "x": 2480, | |
| "y": 2440, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "005f9d4dc018dbcf", | |
| "type": "postgrestor", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Initialize", | |
| "query": "CREATE TABLE IF NOT EXISTS bed_mesh (\n id SERIAL,\n printer varchar(25) NOT NULL,\n printer_serial varchar(20) NOT NULL,\n scan_timestamp timestamp DEFAULT (now() at time zone 'utc'),\n data float[][]\n);", | |
| "postgresDB": "79ce3199b8eeaa1c", | |
| "output": true, | |
| "outputs": 1, | |
| "x": 2380, | |
| "y": 2420, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "3ab2585a83ed5e83", | |
| "type": "postgrestor", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Insert Bed Mesh Data", | |
| "query": "INSERT INTO bed_mesh (\n printer,\n printer_serial,\n data\n) VALUES (\n '{{msg.values.printer}}',\n '{{msg.values.printer_serial}}',\n '{{msg.values.data}}'\n);", | |
| "postgresDB": "79ce3199b8eeaa1c", | |
| "output": true, | |
| "outputs": 1, | |
| "x": 2600, | |
| "y": 2620, | |
| "wires": [ | |
| [ | |
| "6796f76272d2b69b" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "ba7c30e3c166b7b0", | |
| "type": "switch", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "values.data", | |
| "propertyType": "msg", | |
| "rules": [ | |
| { | |
| "t": "nempty" | |
| } | |
| ], | |
| "checkall": "true", | |
| "repair": false, | |
| "outputs": 1, | |
| "x": 2550, | |
| "y": 2580, | |
| "wires": [ | |
| [ | |
| "3ab2585a83ed5e83" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "91b4cf7e3ba9798d", | |
| "type": "delay", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "pauseType": "delay", | |
| "timeout": "2", | |
| "timeoutUnits": "seconds", | |
| "rate": "1", | |
| "nbRateUnits": "1", | |
| "rateUnits": "second", | |
| "randomFirst": "1", | |
| "randomLast": "5", | |
| "randomUnits": "seconds", | |
| "drop": false, | |
| "allowrate": false, | |
| "outputs": 1, | |
| "x": 2280, | |
| "y": 2500, | |
| "wires": [ | |
| [ | |
| "0843c63919f7f6c1" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "6796f76272d2b69b", | |
| "type": "delay", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "pauseType": "delay", | |
| "timeout": "100", | |
| "timeoutUnits": "milliseconds", | |
| "rate": "1", | |
| "nbRateUnits": "1", | |
| "rateUnits": "second", | |
| "randomFirst": "1", | |
| "randomLast": "5", | |
| "randomUnits": "seconds", | |
| "drop": false, | |
| "allowrate": false, | |
| "outputs": 1, | |
| "x": 2630, | |
| "y": 2520, | |
| "wires": [ | |
| [ | |
| "c0b73094bf3797c7" | |
| ] | |
| ] | |
| } | |
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [ | |
| { | |
| "id": "791d26fa232ad922", | |
| "type": "group", | |
| "z": "fbda6ab16491b918", | |
| "name": "Bed Mesh Parser Advanced", | |
| "style": { | |
| "stroke": "#92d04f", | |
| "fill": "#001f60", | |
| "fill-opacity": "0.76", | |
| "label": true, | |
| "color": "#92d04f" | |
| }, | |
| "nodes": [ | |
| "2a0ba80bf37d170c", | |
| "8b88223358dd69df", | |
| "8e185cdb9a8932af", | |
| "4451d030e6418f49", | |
| "8978c1243f654011", | |
| "c4d7905e3406300d", | |
| "fd4369e8c6dd7280", | |
| "060fe49fc21270c4", | |
| "5db05dca795db972", | |
| "c0b73094bf3797c7", | |
| "71b429a70f0549b8", | |
| "d4d9c0c56451621b", | |
| "ef37102da33be23c", | |
| "8eb3dcb17a44e25b", | |
| "47a0f2d5e094174c", | |
| "32821e386ab7692c", | |
| "0843c63919f7f6c1", | |
| "3dfcb98c18f19d78", | |
| "005f9d4dc018dbcf", | |
| "3ab2585a83ed5e83", | |
| "ba7c30e3c166b7b0", | |
| "91b4cf7e3ba9798d", | |
| "6796f76272d2b69b" | |
| ], | |
| "x": 1694, | |
| "y": 2339, | |
| "w": 1072, | |
| "h": 342 | |
| }, | |
| { | |
| "id": "2a0ba80bf37d170c", | |
| "type": "mqtt in", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Bambu X1C {PRINTER_NAME}", | |
| "topic": "device/{PRINTER_SERIAL}/report", | |
| "qos": "2", | |
| "datatype": "json", | |
| "broker": "{GENERATED_PRINTER_MQTT_ID}", | |
| "nl": false, | |
| "rap": true, | |
| "rh": 0, | |
| "inputs": 0, | |
| "x": 1850, | |
| "y": 2560, | |
| "wires": [ | |
| [ | |
| "8b88223358dd69df" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "8b88223358dd69df", | |
| "type": "json", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "payload.print", | |
| "action": "obj", | |
| "pretty": false, | |
| "x": 2030, | |
| "y": 2560, | |
| "wires": [ | |
| [ | |
| "8e185cdb9a8932af" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "8e185cdb9a8932af", | |
| "type": "function", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Inject Machine Details", | |
| "func": "let machine_name = \"{PRINTER_NAME}\";\nlet machine_serial = \"{PRINTER_SERIAL}\";\nlet manufacturer = \"Bambu Labs\";\nlet model = \"X1 Carbon\"\n\n\nif(msg.payload.mc_print != undefined) {\n msg.payload.mc_print.machine_name = machine_name;\n msg.payload.mc_print.machine_serial = machine_serial;\n msg.payload.mc_print.manufacturer = manufacturer;\n if(msg.payload.mc_print.param.includes(\"[AMS]\")) {\n msg.payload.mc_print.model = \"AMS\";\n }\n else {\n msg.payload.mc_print.model = model;\n node.send(msg);\n }\n}\n", | |
| "outputs": 1, | |
| "noerr": 0, | |
| "initialize": "", | |
| "finalize": "", | |
| "libs": [], | |
| "x": 1840, | |
| "y": 2600, | |
| "wires": [ | |
| [ | |
| "4451d030e6418f49" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "4451d030e6418f49", | |
| "type": "function", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Cull Fail Msg", | |
| "func": "if(msg.payload != undefined && Object.keys(msg.payload).length > 0){\n node.send(msg);\n}", | |
| "outputs": 1, | |
| "noerr": 0, | |
| "initialize": "", | |
| "finalize": "", | |
| "libs": [], | |
| "x": 2030, | |
| "y": 2600, | |
| "wires": [ | |
| [ | |
| "8978c1243f654011" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "8978c1243f654011", | |
| "type": "switch", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "payload.mc_print.param", | |
| "propertyType": "msg", | |
| "rules": [ | |
| { | |
| "t": "regex", | |
| "v": "\\[BMC\\] X\\d+\\.\\d+ Y\\d+\\.\\d+,z_c=", | |
| "vt": "str", | |
| "case": false | |
| } | |
| ], | |
| "checkall": "true", | |
| "repair": false, | |
| "outputs": 1, | |
| "x": 1790, | |
| "y": 2640, | |
| "wires": [ | |
| [ | |
| "c4d7905e3406300d" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "c4d7905e3406300d", | |
| "type": "function", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Parse coord", | |
| "func": "let param = msg.payload.mc_print.param;\nlet x = param.match(/X(\\d+\\.\\d+)/)[1];\nlet y = param.match(/Y(\\d+\\.\\d+)/)[1];\nlet z = param.match(/z_c=\\s+(-?\\d+\\.\\d+)/)[1];\nlet coords = [x, y, z];\nmsg.payload = {\"coord\": {\"x\": parseFloat(x), \"y\":parseFloat(y), \"z\":parseFloat(z)}};\n\nlet abl = flow.get('abl2');\nabl.push(msg.payload);\nnode.send(msg);\n", | |
| "outputs": 1, | |
| "noerr": 0, | |
| "initialize": "", | |
| "finalize": "", | |
| "libs": [], | |
| "x": 1930, | |
| "y": 2640, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "fd4369e8c6dd7280", | |
| "type": "mqtt in", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "HomeAssistant In", | |
| "topic": "homeassistant/sensor/X1C_{PRINTER_NAME}/stage/state", | |
| "qos": "2", | |
| "datatype": "utf8", | |
| "broker": "489094618c340eef", | |
| "nl": false, | |
| "rap": true, | |
| "rh": 0, | |
| "inputs": 0, | |
| "x": 1820, | |
| "y": 2520, | |
| "wires": [ | |
| [ | |
| "5db05dca795db972" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "060fe49fc21270c4", | |
| "type": "switch", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "payload", | |
| "propertyType": "msg", | |
| "rules": [ | |
| { | |
| "t": "eq", | |
| "v": "Auto bed leveling", | |
| "vt": "str" | |
| }, | |
| { | |
| "t": "eq", | |
| "v": "Offline", | |
| "vt": "str" | |
| }, | |
| { | |
| "t": "eq", | |
| "v": "Idle", | |
| "vt": "str" | |
| }, | |
| { | |
| "t": "eq", | |
| "v": "Printing", | |
| "vt": "str" | |
| } | |
| ], | |
| "checkall": "true", | |
| "repair": false, | |
| "outputs": 4, | |
| "x": 2090, | |
| "y": 2500, | |
| "wires": [ | |
| [ | |
| "c0b73094bf3797c7" | |
| ], | |
| [ | |
| "c0b73094bf3797c7" | |
| ], | |
| [ | |
| "91b4cf7e3ba9798d" | |
| ], | |
| [ | |
| "0843c63919f7f6c1" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "5db05dca795db972", | |
| "type": "rbe", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "func": "rbe", | |
| "gap": "", | |
| "start": "", | |
| "inout": "out", | |
| "septopics": true, | |
| "property": "payload", | |
| "topi": "topic", | |
| "x": 1970, | |
| "y": 2520, | |
| "wires": [ | |
| [ | |
| "060fe49fc21270c4" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "c0b73094bf3797c7", | |
| "type": "change", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "rules": [ | |
| { | |
| "t": "set", | |
| "p": "abl2", | |
| "pt": "flow", | |
| "to": "[]", | |
| "tot": "json" | |
| } | |
| ], | |
| "action": "", | |
| "property": "", | |
| "from": "", | |
| "to": "", | |
| "reg": false, | |
| "x": 2370, | |
| "y": 2460, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "71b429a70f0549b8", | |
| "type": "delay", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "pauseType": "delay", | |
| "timeout": "1", | |
| "timeoutUnits": "seconds", | |
| "rate": "1", | |
| "nbRateUnits": "1", | |
| "rateUnits": "second", | |
| "randomFirst": "1", | |
| "randomLast": "5", | |
| "randomUnits": "seconds", | |
| "drop": false, | |
| "allowrate": false, | |
| "outputs": 1, | |
| "x": 2320, | |
| "y": 2580, | |
| "wires": [ | |
| [ | |
| "ef37102da33be23c" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "d4d9c0c56451621b", | |
| "type": "inject", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Init", | |
| "props": [ | |
| { | |
| "p": "topic", | |
| "vt": "str" | |
| }, | |
| { | |
| "p": "payload" | |
| } | |
| ], | |
| "repeat": "", | |
| "crontab": "", | |
| "once": true, | |
| "onceDelay": 0.1, | |
| "topic": "bed_mesh_data", | |
| "payload": "None", | |
| "payloadType": "str", | |
| "x": 2090, | |
| "y": 2440, | |
| "wires": [ | |
| [ | |
| "c0b73094bf3797c7", | |
| "005f9d4dc018dbcf" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "ef37102da33be23c", | |
| "type": "function", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Create Matrix", | |
| "func": "let abl = flow.get('abl2');\nif (abl.length > 0) {\n let setX = new Set();\n let setY = new Set();\n for (let c of abl) {\n setX.add(c.coord.x);\n setY.add(c.coord.y);\n }\n let xs = Array.from(setX).sort(function (a, b) {\n return a - b;\n });\n let ys = Array.from(setY).sort(function (a, b) {\n return a - b;\n });\n\n\n let data = new Array(ys.length).fill(0).map(() => new Array(xs.length).fill(0));\n for (var c of abl) {\n let coord = c.coord;\n let x = xs.indexOf(coord.x);\n let y = ys.indexOf(coord.y);\n data[y][x] = coord.z;\n }\n let strdata = JSON.stringify(data).replaceAll(\"[\", \"{\");\n strdata = strdata.replaceAll(\"]\", \"}\");\n msg.values = {\n \"data\": strdata,\n \"printer\": \"{PRINTER_NAME}\",\n \"printer_serial\": \"{PRINTER_SERIAL}\"\n }\n node.send(msg);\n}", | |
| "outputs": 1, | |
| "noerr": 0, | |
| "initialize": "", | |
| "finalize": "", | |
| "libs": [], | |
| "x": 2320, | |
| "y": 2620, | |
| "wires": [ | |
| [ | |
| "ba7c30e3c166b7b0" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "8eb3dcb17a44e25b", | |
| "type": "junction", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "x": 2500, | |
| "y": 2420, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "47a0f2d5e094174c", | |
| "type": "junction", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "x": 2740, | |
| "y": 2460, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "32821e386ab7692c", | |
| "type": "comment", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Bed Mesh Flow Advanced: REV A-1", | |
| "info": "Rev A-1: 2023-05-06\n- Initial Creation for Advanced version", | |
| "x": 1860, | |
| "y": 2380, | |
| "wires": [] | |
| }, | |
| { | |
| "id": "0843c63919f7f6c1", | |
| "type": "switch", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "abl2", | |
| "propertyType": "flow", | |
| "rules": [ | |
| { | |
| "t": "nempty" | |
| } | |
| ], | |
| "checkall": "true", | |
| "repair": false, | |
| "outputs": 1, | |
| "x": 2390, | |
| "y": 2540, | |
| "wires": [ | |
| [ | |
| "71b429a70f0549b8" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "3dfcb98c18f19d78", | |
| "type": "junction", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "x": 2480, | |
| "y": 2440, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "005f9d4dc018dbcf", | |
| "type": "postgrestor", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Initialize", | |
| "query": "CREATE TABLE IF NOT EXISTS bed_mesh (\n id SERIAL,\n printer varchar(25) NOT NULL,\n printer_serial varchar(20) NOT NULL,\n scan_timestamp timestamp DEFAULT (now() at time zone 'utc'),\n data float[][]\n);", | |
| "postgresDB": "79ce3199b8eeaa1c", | |
| "output": true, | |
| "outputs": 1, | |
| "x": 2380, | |
| "y": 2420, | |
| "wires": [ | |
| [] | |
| ] | |
| }, | |
| { | |
| "id": "3ab2585a83ed5e83", | |
| "type": "postgrestor", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "Insert Bed Mesh Data", | |
| "query": "INSERT INTO bed_mesh (\n printer,\n printer_serial,\n data\n) VALUES (\n '{{msg.values.printer}}',\n '{{msg.values.printer_serial}}',\n '{{msg.values.data}}'\n);", | |
| "postgresDB": "79ce3199b8eeaa1c", | |
| "output": true, | |
| "outputs": 1, | |
| "x": 2600, | |
| "y": 2620, | |
| "wires": [ | |
| [ | |
| "6796f76272d2b69b" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "ba7c30e3c166b7b0", | |
| "type": "switch", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "property": "values.data", | |
| "propertyType": "msg", | |
| "rules": [ | |
| { | |
| "t": "nempty" | |
| } | |
| ], | |
| "checkall": "true", | |
| "repair": false, | |
| "outputs": 1, | |
| "x": 2550, | |
| "y": 2580, | |
| "wires": [ | |
| [ | |
| "3ab2585a83ed5e83" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "91b4cf7e3ba9798d", | |
| "type": "delay", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "pauseType": "delay", | |
| "timeout": "2", | |
| "timeoutUnits": "seconds", | |
| "rate": "1", | |
| "nbRateUnits": "1", | |
| "rateUnits": "second", | |
| "randomFirst": "1", | |
| "randomLast": "5", | |
| "randomUnits": "seconds", | |
| "drop": false, | |
| "allowrate": false, | |
| "outputs": 1, | |
| "x": 2280, | |
| "y": 2500, | |
| "wires": [ | |
| [ | |
| "0843c63919f7f6c1" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "6796f76272d2b69b", | |
| "type": "delay", | |
| "z": "fbda6ab16491b918", | |
| "g": "791d26fa232ad922", | |
| "name": "", | |
| "pauseType": "delay", | |
| "timeout": "100", | |
| "timeoutUnits": "milliseconds", | |
| "rate": "1", | |
| "nbRateUnits": "1", | |
| "rateUnits": "second", | |
| "randomFirst": "1", | |
| "randomLast": "5", | |
| "randomUnits": "seconds", | |
| "drop": false, | |
| "allowrate": false, | |
| "outputs": 1, | |
| "x": 2630, | |
| "y": 2520, | |
| "wires": [ | |
| [ | |
| "c0b73094bf3797c7" | |
| ] | |
| ] | |
| }, | |
| { | |
| "id": "79ce3199b8eeaa1c", | |
| "type": "postgresDB", | |
| "name": "3DPrint DB (PG13)", | |
| "host": "{POSTGRES_DB_HOST}", | |
| "hostFieldType": "str", | |
| "port": "{POSTGRES_DB_PORT}", | |
| "portFieldType": "num", | |
| "database": "{POSTGRES_DB_DBNAME}", | |
| "databaseFieldType": "str", | |
| "ssl": "false", | |
| "sslFieldType": "bool", | |
| "max": "10", | |
| "maxFieldType": "num", | |
| "min": "1", | |
| "minFieldType": "num", | |
| "idle": "1000", | |
| "idleFieldType": "num", | |
| "connectionTimeout": "10000", | |
| "connectionTimeoutFieldType": "num", | |
| "user": "{POSTGRES_DB_USER}", | |
| "userFieldType": "str", | |
| "password":"{POSTGRES_DB_PASSWORD}", | |
| "passwordFieldType": "str" | |
| } | |
| ] |
cweed710
commented
Nov 29, 2024
via email
I sent you a friend request in discord if it would be easier to chat on
there. My setup is HA running in VMware and I have pgadmin installed on
there but I have no clue how to set it up lol and I have been following
your website
…On Thu, Nov 28, 2024, 8:24 PM WolfwithSword ***@***.***> wrote:
***@***.**** commented on this gist.
------------------------------
I am having issues creating a postgres database and was wondering if you
could help me with this to get this up and running
What's your setup like for setting up postgres?
Also note - these gists are severely out of date. If you could instead follow
the guide on my website
<https://www.wolfwithsword.com/bambu-advanced-bed-mesh-configurator/>
instead which is always up to date, and pulls from the proper repository
<https://github.com/WolfwithSword/Bambu-HomeAssistant-Flows>, it might
help a few things out.
—
Reply to this email directly, view it on GitHub
<https://gist.github.com/WolfwithSword/45dd17ba5250cee94136759e9923e2bb#gistcomment-5307223>
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AE5QIILRYIDLEXURVBQL4Q32C6635BFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTEMRSHE4TGNJQU52HE2LHM5SXFJTDOJSWC5DF>
.
You are receiving this email because you commented on the thread.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment