Skip to content

Instantly share code, notes, and snippets.

@darookee
Last active February 5, 2016 22:18
Show Gist options
  • Select an option

  • Save darookee/5dd4f81be6d0f6b634c6 to your computer and use it in GitHub Desktop.

Select an option

Save darookee/5dd4f81be6d0f6b634c6 to your computer and use it in GitHub Desktop.
MySensors Node-Red ID Manager
[{"id":"57cdcb97.a83234","type":"mqtt-broker","z":"bfd70105.4029","broker":"192.168.0.xx","port":"1883","clientid":"node-red","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"15","cleansession":true,"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":""},{"id":"4cbd172d.b342e8","type":"mqtt in","z":"bfd70105.4029","name":"reqid","topic":"mysensors-out/255/255/3/0/3","broker":"57cdcb97.a83234","x":90,"y":577,"wires":[["61691499.9e96ec"]]},{"id":"2efa24d9.d105dc","type":"mqtt out","z":"bfd70105.4029","name":"setid","topic":"mysensors-in/255/255/3/0/4","qos":"0","retain":"","broker":"57cdcb97.a83234","x":1058,"y":586,"wires":[]},{"id":"355817e1.caa7e8","type":"function","z":"bfd70105.4029","name":"generate-mysensor-id","func":"var id, ids = [], idsA = msg.payload, idMsg = {};\n\n// convert array of objects\n// to array\nfor(var i=0; i<idsA.length; i++) {\n ids.push(idsA[i].id);\n}\n\n// generate unique id until it is unique\ndo {\n id = Math.floor((Math.random() * 254) + 1); \n} while(ids.indexOf(id) > -1);\n\nidsA.push({\"id\": id});\n\nidMsg.payload = idsA;\n\nmsg.payload = 1;\nmsg.topic = 'mysensors-in/255/255/3/0/4';\n\nreturn [idMsg, msg];","outputs":"2","noerr":0,"x":680,"y":578,"wires":[["298d16c8.d672ea"],["2efa24d9.d105dc"]]},{"id":"61691499.9e96ec","type":"file in","z":"bfd70105.4029","name":"","filename":"/path/to/.mysensor.nodes.txt","format":"utf8","x":300,"y":577,"wires":[["c07da620.3f8258"]]},{"id":"c07da620.3f8258","type":"csv","z":"bfd70105.4029","name":"","sep":",","hdrin":"","hdrout":"","multi":"mult","ret":"\\n","temp":"id","x":504,"y":578,"wires":[["355817e1.caa7e8"]]},{"id":"298d16c8.d672ea","type":"csv","z":"bfd70105.4029","name":"","sep":",","hdrin":"","hdrout":"","multi":"mult","ret":"\\n","temp":"id","x":890,"y":537,"wires":[["b06f060a.4f90f8"]]},{"id":"b06f060a.4f90f8","type":"file","z":"bfd70105.4029","name":"write-ids","filename":"/path/to/.mysensor.nodes.txt","appendNewline":true,"createDir":false,"overwriteFile":"true","x":1049,"y":537,"wires":[]},{"id":"8745a094.78ba6","type":"comment","z":"bfd70105.4029","name":"MySensors MQTT reqID","info":"","x":146,"y":512,"wires":[]}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment