Tulip/Banner Sensors: S15
This flow can be used as a template for the integration of Banner Modbus-based Sensors with the Tulip no-code app building platform. The flow is currently designed for use with the S15S-TH Temperature and Humidity sensor, but can be altered for use with the S15S-T Temperature Sensor, the S15C-PS150C Pressure Sensor, the S15C-CT20A Current Clamp, as well as other Banner sensors. In order to use the flow for a different device, the Modbus register addresses may need to be changed. Refer to the Tulip Knowledge Base for more information.
Note that the "Threshold Range" section is only used by certain sensors, such as the S15C-PS150C Pressure Sensor and the S15C-CT20A Current Clamp.
[{"id":"5b395f406ae3b163","type":"tab","label":"S15S-TH-MQ (Temperature & Humidity Sensor)","disabled":true,"info":"","env":[]},{"id":"cebf1805cad87f00","type":"group","z":"5b395f406ae3b163","name":"Read Temperature & Humidity","style":{"label":true},"nodes":["ae796a9edd9c85a1","e2e0c4df9302750c","7c5572d76ffcf3d7","84e0e581b6b08cb6","c7ec61269ef77d98","18d0b73ff2e6ca4f","08b036570c247960","562cd2b30e945183","e8713f28624b2293","ef866f3299310aca","8cab21cdfc835746","bafe57a91b216fe9","f7d6e5a2f235a8f2","3b2a789d21f63ae5","19a7bb644d4de106","1ac7c3b4f1b8c52e"],"x":14,"y":39,"w":632,"h":482},{"id":"54880149a61b1c59","type":"group","z":"5b395f406ae3b163","g":"c79a9960d6591df1","name":"Option 1) Machine Data","style":{"stroke":"#addb7b","fill":"#c8e7a7","label":true,"color":"#000000"},"nodes":["b10620dada799de5","b6738780b696aa22","a2b90488ce05ee76"],"x":694,"y":59,"w":432,"h":122},{"id":"a79dd4ecfbb27162","type":"group","z":"5b395f406ae3b163","g":"c79a9960d6591df1","name":"Option 2) Connector Function","style":{"label":true,"stroke":"#ffC000","color":"#000000","fill":"#ffdf7f"},"nodes":["4399f58e1d59bdda","ba2ac9337a6961a5","3fdf299875770aa5","705be0d7984b8efe","0187679cb834a654","d39479fe81f50c0b"],"x":694,"y":199,"w":612,"h":162},{"id":"c79a9960d6591df1","type":"group","z":"5b395f406ae3b163","name":"Send to Tulip","style":{"stroke":"#ff3f3f","label":true,"color":"#000000","fill":"#ffbfbf"},"nodes":["54880149a61b1c59","a79dd4ecfbb27162"],"x":668,"y":33,"w":664,"h":354},{"id":"416f4957cb2b8a3f","type":"group","z":"5b395f406ae3b163","name":"Threshold Range - Not used by all sensors","style":{"label":true,"stroke":"#ffC000","fill":"#ffefbf","color":"#000000"},"nodes":["84c95eba6504a54e","9b76fd1a2360e5a4","2a97a9fe6ec7bb90","0e5f11a41c9fcf19","1555cb8df60a9f5f","dd8917e95406300c"],"x":668,"y":413,"w":698,"h":488},{"id":"1555cb8df60a9f5f","type":"group","z":"5b395f406ae3b163","g":"416f4957cb2b8a3f","name":"Minimum Value","style":{"label":true},"nodes":["af6dacd9f2a84e96","238a4cb704bcbc71","dce30a65351840fc","cfe5ddd648eb49b7","7f6fc13b737498c8","c5e063f3731b559b"],"x":694,"y":439,"w":632,"h":162},{"id":"dd8917e95406300c","type":"group","z":"5b395f406ae3b163","g":"416f4957cb2b8a3f","name":"Maximum Value","style":{"label":true},"nodes":["968c5f23a0e186db","fa2935d05c83d175","9eb67fd543be0dfa","dff503445cedc921","b981b525464c0a41","810b41fba2b8db0d"],"x":694,"y":619,"w":632,"h":162},{"id":"ae796a9edd9c85a1","type":"modbus-write","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"Write_Mode","showStatusActivities":false,"showErrors":false,"showWarnings":true,"unitid":"1","dataType":"HoldingRegister","adr":"40003","quantity":"1","server":"352955bb.be6e6a","emptyMsgOnFail":false,"keepMsgProperties":false,"delayOnStart":false,"startDelayTime":"","x":330,"y":460,"wires":[["84e0e581b6b08cb6"],["e2e0c4df9302750c"]]},{"id":"e2e0c4df9302750c","type":"modbus-response","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","registerShowMax":20,"x":530,"y":480,"wires":[]},{"id":"7c5572d76ffcf3d7","type":"inject","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"Turn On GPIO","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":150,"y":460,"wires":[["ae796a9edd9c85a1"]]},{"id":"84e0e581b6b08cb6","type":"debug","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":510,"y":440,"wires":[]},{"id":"c7ec61269ef77d98","type":"modbus-response","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","registerShowMax":20,"x":310,"y":360,"wires":[]},{"id":"18d0b73ff2e6ca4f","type":"debug","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":470,"y":320,"wires":[]},{"id":"08b036570c247960","type":"modbus-read","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"Temp Read","topic":"Temp Read","showStatusActivities":false,"logIOActivities":false,"showErrors":true,"showWarnings":false,"unitid":"1","dataType":"HoldingRegister","adr":"3","quantity":"1","rate":"1","rateUnit":"s","delayOnStart":true,"startDelayTime":"1","server":"352955bb.be6e6a","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":130,"y":360,"wires":[["3b2a789d21f63ae5"],["c7ec61269ef77d98"]]},{"id":"562cd2b30e945183","type":"modbus-read","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"Hum Read","topic":"Hum Read","showStatusActivities":false,"logIOActivities":false,"showErrors":true,"showWarnings":false,"unitid":"1","dataType":"HoldingRegister","adr":"1","quantity":"1","rate":"1","rateUnit":"s","delayOnStart":true,"startDelayTime":"1","server":"352955bb.be6e6a","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":140,"y":120,"wires":[["1ac7c3b4f1b8c52e","3fdf299875770aa5","b6738780b696aa22"],["e8713f28624b2293"]]},{"id":"e8713f28624b2293","type":"modbus-response","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","registerShowMax":20,"x":310,"y":120,"wires":[]},{"id":"ef866f3299310aca","type":"debug","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":470,"y":80,"wires":[]},{"id":"8cab21cdfc835746","type":"modbus-read","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"Dew Point Read","topic":"Dew Point Read","showStatusActivities":false,"logIOActivities":false,"showErrors":true,"showWarnings":false,"unitid":"1","dataType":"HoldingRegister","adr":"5","quantity":"1","rate":"1","rateUnit":"s","delayOnStart":true,"startDelayTime":"1","server":"352955bb.be6e6a","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":160,"y":240,"wires":[["19a7bb644d4de106"],["bafe57a91b216fe9"]]},{"id":"bafe57a91b216fe9","type":"modbus-response","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","registerShowMax":20,"x":350,"y":240,"wires":[]},{"id":"f7d6e5a2f235a8f2","type":"debug","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":510,"y":200,"wires":[]},{"id":"3b2a789d21f63ae5","type":"change","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(msg.payload[0])/20","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":300,"y":320,"wires":[["18d0b73ff2e6ca4f"]]},{"id":"19a7bb644d4de106","type":"change","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(msg.payload[0])/100","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":200,"wires":[["f7d6e5a2f235a8f2"]]},{"id":"1ac7c3b4f1b8c52e","type":"change","z":"5b395f406ae3b163","g":"cebf1805cad87f00","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(msg.payload[0])/100","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":300,"y":80,"wires":[["ef866f3299310aca"]]},{"id":"b10620dada799de5","type":"tulip-tag","z":"5b395f406ae3b163","g":"54880149a61b1c59","name":"","tagList":"67cd2ce160a4177f","staticTag":true,"tagId":"S15S_TH","retainMsgProps":true,"x":1000,"y":100,"wires":[[]]},{"id":"b6738780b696aa22","type":"change","z":"5b395f406ae3b163","g":"54880149a61b1c59","name":"Extract Data","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload[0]","tot":"msg","dc":true}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":100,"wires":[["b10620dada799de5"]]},{"id":"a2b90488ce05ee76","type":"comment","z":"5b395f406ae3b163","g":"54880149a61b1c59","name":"Option 1) Continuously send data to Tulip Machine","info":"","x":910,"y":140,"wires":[]},{"id":"4399f58e1d59bdda","type":"http in","z":"5b395f406ae3b163","g":"a79dd4ecfbb27162","name":"/S15S-TH/1","url":"/S15S-TH/1","method":"get","upload":false,"swaggerDoc":"","x":790,"y":280,"wires":[["0187679cb834a654"]]},{"id":"ba2ac9337a6961a5","type":"http response","z":"5b395f406ae3b163","g":"a79dd4ecfbb27162","name":"","statusCode":"200","headers":{"content-type":"text/plain"},"x":1160,"y":240,"wires":[]},{"id":"3fdf299875770aa5","type":"change","z":"5b395f406ae3b163","g":"a79dd4ecfbb27162","name":"","rules":[{"t":"set","p":"data","pt":"flow","to":"payload[0]","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":240,"wires":[[]]},{"id":"705be0d7984b8efe","type":"debug","z":"5b395f406ae3b163","g":"a79dd4ecfbb27162","name":"Returned Req","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1180,"y":280,"wires":[]},{"id":"0187679cb834a654","type":"change","z":"5b395f406ae3b163","g":"a79dd4ecfbb27162","name":"","rules":[{"t":"set","p":"payload.data","pt":"msg","to":"data","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":280,"wires":[["ba2ac9337a6961a5","705be0d7984b8efe"]]},{"id":"d39479fe81f50c0b","type":"comment","z":"5b395f406ae3b163","g":"a79dd4ecfbb27162","name":"Option 2) Use a connector in a Tulip Trigger to poll this flow for the data","info":"","x":970,"y":320,"wires":[]},{"id":"84c95eba6504a54e","type":"modbus-read","z":"5b395f406ae3b163","g":"416f4957cb2b8a3f","name":"Alarm State (b/w min and max)","topic":"Alarm State","showStatusActivities":false,"logIOActivities":false,"showErrors":true,"showWarnings":false,"unitid":"1","dataType":"HoldingRegister","adr":"1","quantity":"1","rate":"1","rateUnit":"s","delayOnStart":true,"startDelayTime":"1","server":"352955bb.be6e6a","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":870,"y":840,"wires":[["2a97a9fe6ec7bb90"],["9b76fd1a2360e5a4"]]},{"id":"9b76fd1a2360e5a4","type":"modbus-response","z":"5b395f406ae3b163","g":"416f4957cb2b8a3f","name":"","registerShowMax":20,"x":1130,"y":860,"wires":[]},{"id":"2a97a9fe6ec7bb90","type":"debug","z":"5b395f406ae3b163","g":"416f4957cb2b8a3f","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload[0]","targetType":"msg","statusVal":"","statusType":"auto","x":1120,"y":820,"wires":[]},{"id":"0e5f11a41c9fcf19","type":"comment","z":"5b395f406ae3b163","g":"416f4957cb2b8a3f","name":"desc","info":"0 = within threshold range\n1 = outside threshold range","x":1290,"y":820,"wires":[]},{"id":"af6dacd9f2a84e96","type":"modbus-read","z":"5b395f406ae3b163","g":"1555cb8df60a9f5f","name":"Read Minimum Value","topic":"Minimum Value","showStatusActivities":false,"logIOActivities":false,"showErrors":true,"showWarnings":false,"unitid":"1","dataType":"HoldingRegister","adr":"1203","quantity":"1","rate":"1","rateUnit":"s","delayOnStart":true,"startDelayTime":"1","server":"352955bb.be6e6a","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":980,"y":560,"wires":[[],["238a4cb704bcbc71"]]},{"id":"238a4cb704bcbc71","type":"modbus-response","z":"5b395f406ae3b163","g":"1555cb8df60a9f5f","name":"","registerShowMax":20,"x":1210,"y":560,"wires":[]},{"id":"dce30a65351840fc","type":"modbus-write","z":"5b395f406ae3b163","g":"1555cb8df60a9f5f","name":"Write Minimum Value","showStatusActivities":false,"showErrors":false,"showWarnings":true,"unitid":"","dataType":"HoldingRegister","adr":"1203","quantity":"1","server":"352955bb.be6e6a","emptyMsgOnFail":false,"keepMsgProperties":false,"delayOnStart":false,"startDelayTime":"","x":980,"y":500,"wires":[[],["cfe5ddd648eb49b7"]]},{"id":"cfe5ddd648eb49b7","type":"modbus-response","z":"5b395f406ae3b163","g":"1555cb8df60a9f5f","name":"","registerShowMax":20,"x":1210,"y":500,"wires":[]},{"id":"7f6fc13b737498c8","type":"inject","z":"5b395f406ae3b163","g":"1555cb8df60a9f5f","name":"5","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"5","payloadType":"num","x":790,"y":520,"wires":[["dce30a65351840fc"]]},{"id":"c5e063f3731b559b","type":"inject","z":"5b395f406ae3b163","g":"1555cb8df60a9f5f","name":"0","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":790,"y":480,"wires":[["dce30a65351840fc"]]},{"id":"968c5f23a0e186db","type":"modbus-read","z":"5b395f406ae3b163","g":"dd8917e95406300c","name":"Read MaximumValue","topic":"Maximum Value","showStatusActivities":false,"logIOActivities":false,"showErrors":true,"showWarnings":false,"unitid":"1","dataType":"HoldingRegister","adr":"1204","quantity":"1","rate":"1","rateUnit":"s","delayOnStart":true,"startDelayTime":"1","server":"352955bb.be6e6a","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":980,"y":740,"wires":[[],["fa2935d05c83d175"]]},{"id":"fa2935d05c83d175","type":"modbus-response","z":"5b395f406ae3b163","g":"dd8917e95406300c","name":"","registerShowMax":20,"x":1210,"y":740,"wires":[]},{"id":"9eb67fd543be0dfa","type":"modbus-write","z":"5b395f406ae3b163","g":"dd8917e95406300c","name":"Write Maximum Value","showStatusActivities":false,"showErrors":false,"showWarnings":true,"unitid":"","dataType":"HoldingRegister","adr":"1204","quantity":"1","server":"352955bb.be6e6a","emptyMsgOnFail":false,"keepMsgProperties":false,"delayOnStart":false,"startDelayTime":"","x":980,"y":680,"wires":[[],["dff503445cedc921"]]},{"id":"dff503445cedc921","type":"modbus-response","z":"5b395f406ae3b163","g":"dd8917e95406300c","name":"","registerShowMax":20,"x":1210,"y":680,"wires":[]},{"id":"b981b525464c0a41","type":"inject","z":"5b395f406ae3b163","g":"dd8917e95406300c","name":"25","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"25","payloadType":"num","x":790,"y":700,"wires":[["9eb67fd543be0dfa"]]},{"id":"810b41fba2b8db0d","type":"inject","z":"5b395f406ae3b163","g":"dd8917e95406300c","name":"20","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"20","payloadType":"num","x":790,"y":660,"wires":[["9eb67fd543be0dfa"]]},{"id":"352955bb.be6e6a","type":"modbus-client","name":"Modbus Server","clienttype":"serial","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"failureLogEnabled":false,"tcpHost":"127.0.0.1","tcpPort":"14502","tcpType":"DEFAULT","serialPort":"/dev/ttyS2","serialType":"RTU-BUFFERD","serialBaudrate":"19200","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"50","serialAsciiResponseStartDelimiter":"","unit_id":"1","commandDelay":"2","clientTimeout":"50","reconnectOnTimeout":true,"reconnectTimeout":"100","parallelUnitIdsAllowed":false},{"id":"67cd2ce160a4177f","type":"tulip-tag-list","name":"main-tag-list","tags":[{"id":"K50PFF100SQ","label":"K50PFF100SQ","type":"boolean"},{"id":"K50PTCD4SQ","label":"K50PTCD4SQ","type":"boolean"},{"id":"S15S_TH","label":"S15S-TH","type":"float"}]}]