Skip to content

Instantly share code, notes, and snippets.

@kumajaya
Last active September 19, 2020 06:41
Show Gist options
  • Save kumajaya/5b74dfbba11318fbdb3fdcd80604b221 to your computer and use it in GitHub Desktop.
Save kumajaya/5b74dfbba11318fbdb3fdcd80604b221 to your computer and use it in GitHub Desktop.
[
{
"id": "206e4002.73be3",
"type": "modbus-flex-getter",
"z": "5292141d.df2d7c",
"name": "pm810mg",
"showStatusActivities": false,
"showErrors": false,
"logIOActivities": false,
"server": "4a62a021.1525a",
"useIOFile": false,
"ioFile": "",
"useIOForPayload": false,
"emptyMsgOnFail": false,
"keepMsgProperties": false,
"x": 460,
"y": 280,
"wires": [
[
"a5a980a.ff91e8"
],
[]
]
},
{
"id": "6621f559.8e78cc",
"type": "function",
"z": "5292141d.df2d7c",
"name": "register",
"func": "let out = [];\nlet tmp;\n\ntmp = { topic:'pm810mg/office/current', payload:{ 'fc': 4, 'unitid': 1, 'address': 1099, 'quantity': 6 } };\nout.push(tmp);\ntmp = { topic:'pm810mg/office/voltage', payload:{ 'fc': 4, 'unitid': 1, 'address': 1119, 'quantity': 9 } };\nout.push(tmp);\ntmp = { topic:'pm810mg/office/power', payload:{ 'fc': 4, 'unitid': 1, 'address': 1139, 'quantity': 4 } };\nout.push(tmp);\ntmp = { topic:'pm810mg/office/frequency', payload:{ 'fc': 4, 'unitid': 1, 'address': 1179, 'quantity': 1 } };\nout.push(tmp);\n\nreturn [out];",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 280,
"y": 280,
"wires": [
[
"206e4002.73be3"
]
]
},
{
"id": "e35f0ed6.8ee8c",
"type": "inject",
"z": "5292141d.df2d7c",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "5",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 110,
"y": 280,
"wires": [
[
"6621f559.8e78cc"
]
]
},
{
"id": "ac28d86.b77a628",
"type": "function",
"z": "5292141d.df2d7c",
"name": "current",
"func": "function pad(num, size) {\n var s = \"00\" + num;\n return s.substr(s.length-size);\n}\n\nvar out = [];\nvar tmp;\n\n// pin 0..5 for Blynk\nfor (i = 0; i < msg.payload.length; i++) {\n tmp = { pin:i, topic:msg.topic + '-' + pad(i, 2), payload:msg.payload[i] };\n out.push(tmp);\n}\n\nreturn [out];",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 800,
"y": 260,
"wires": [
[
"4e6b4cf2.1d36d4",
"b13c429.b1ad7c",
"237940ac.fc7d5"
]
]
},
{
"id": "4e6b4cf2.1d36d4",
"type": "debug",
"z": "5292141d.df2d7c",
"name": "",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1010,
"y": 360,
"wires": []
},
{
"id": "b13c429.b1ad7c",
"type": "mqtt out",
"z": "5292141d.df2d7c",
"name": "",
"topic": "",
"qos": "0",
"retain": "false",
"broker": "186c13ea.75e17c",
"x": 990,
"y": 260,
"wires": []
},
{
"id": "2ed9a413.afff3c",
"type": "mqtt in",
"z": "5292141d.df2d7c",
"name": "",
"topic": "pm810mg/office/+",
"qos": "0",
"datatype": "auto",
"broker": "186c13ea.75e17c",
"x": 790,
"y": 420,
"wires": [
[
"7e272c10.c79074"
]
]
},
{
"id": "7e272c10.c79074",
"type": "debug",
"z": "5292141d.df2d7c",
"name": "",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1030,
"y": 420,
"wires": []
},
{
"id": "f3ca4055.0b9af",
"type": "function",
"z": "5292141d.df2d7c",
"name": "voltage",
"func": "function pad(num, size) {\n var s = \"00\" + num;\n return s.substr(s.length-size);\n}\n\nvar out = [];\nvar tmp;\n\n// pin 6..14 for Blynk\nfor (i = 0; i < msg.payload.length; i++) {\n tmp = { pin:i + 6, topic:msg.topic + '-' + pad(i, 2), payload:msg.payload[i] };\n out.push(tmp);\n}\n\nreturn [out];",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 800,
"y": 300,
"wires": [
[
"4e6b4cf2.1d36d4",
"b13c429.b1ad7c",
"237940ac.fc7d5"
]
]
},
{
"id": "a5a980a.ff91e8",
"type": "switch",
"z": "5292141d.df2d7c",
"name": "",
"property": "topic",
"propertyType": "msg",
"rules": [
{
"t": "cont",
"v": "current",
"vt": "str"
},
{
"t": "cont",
"v": "voltage",
"vt": "str"
},
{
"t": "cont",
"v": "power",
"vt": "str"
},
{
"t": "cont",
"v": "frequency",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 4,
"x": 630,
"y": 280,
"wires": [
[
"ac28d86.b77a628"
],
[
"f3ca4055.0b9af"
],
[
"8d3fd73e.69cb68"
],
[
"48d949a5.be6a28"
]
]
},
{
"id": "48d949a5.be6a28",
"type": "function",
"z": "5292141d.df2d7c",
"name": "frequency",
"func": "function scale(valueIn, baseMin, baseMax, limitMin, limitMax) {\n return ((limitMax - limitMin) * (valueIn - baseMin) / (baseMax - baseMin)) + limitMin;\n}\n\nvar out = [];\nvar tmp;\n\n// pin 19 for Blynk\ntmp = { pin:19, topic:msg.topic + '-00', payload:parseFloat(scale(msg.payload, -32767, 32767, 27.0, 67.0).toFixed(3)) };\nout.push(tmp);\n\nreturn [out];",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 800,
"y": 380,
"wires": [
[
"237940ac.fc7d5",
"b13c429.b1ad7c",
"4e6b4cf2.1d36d4"
]
]
},
{
"id": "8d3fd73e.69cb68",
"type": "function",
"z": "5292141d.df2d7c",
"name": "power",
"func": "function pad(num, size) {\n var s = \"00\" + num;\n return s.substr(s.length-size);\n}\n\nvar out = [];\nvar tmp;\n\n// pin 15..18 for Blynk\nfor (i = 0; i < msg.payload.length; i++) {\n tmp = { pin:i + 15, topic:msg.topic + '-' + pad(i, 2), payload:msg.payload[i] };\n out.push(tmp);\n}\n\nreturn [out];",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 790,
"y": 340,
"wires": [
[
"237940ac.fc7d5",
"b13c429.b1ad7c",
"4e6b4cf2.1d36d4"
]
]
},
{
"id": "4a62a021.1525a",
"type": "modbus-client",
"z": "",
"name": "PM810MG",
"clienttype": "serial",
"bufferCommands": true,
"stateLogEnabled": false,
"queueLogEnabled": false,
"tcpHost": "127.0.0.1",
"tcpPort": "502",
"tcpType": "DEFAULT",
"serialPort": "/dev/ttyADV0",
"serialType": "RTU",
"serialBaudrate": "9600",
"serialDatabits": "8",
"serialStopbits": "1",
"serialParity": "even",
"serialConnectionDelay": "100",
"unit_id": "1",
"commandDelay": "1",
"clientTimeout": "1000",
"reconnectOnTimeout": true,
"reconnectTimeout": "2000",
"parallelUnitIdsAllowed": true
},
{
"id": "186c13ea.75e17c",
"type": "mqtt-broker",
"z": "",
"name": "Mosquitto",
"broker": "localhost",
"port": "1883",
"clientid": "",
"usetls": false,
"compatmode": false,
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"willTopic": "",
"willQos": "0",
"willPayload": ""
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment