I create a Raspberry Pi status report on twitter. Such as Temperature, CPU, RAM and Disk. I trigger to get data from raspberry pi specific period for each value. Temperature,CPU Load,Memory usage trigger value every 10 seconds. But Disk usage trigger every 10 minutes. I need to join all of the value and make a sentece for report status on twitter. But when I join them. Because of different time of trigger action. Value of Temperature CPU&RAM go to join node 2 times and make the report on twitter without Disk value in sentence. How to make join node waiting for specific payload to prevent join node get same payload and combine them. Thanks!
[{"id":"5833bee0.58dfd","type":"function","z":"8d8ea68a.944cc8","name":"Index setting (Disk)","func":"msg.payload = {\n \"disk\": msg.payload\n}\nreturn msg;","outputs":1,"noerr":0,"x":1250,"y":800,"wires":[["8b1cd29d.d34ab"]]},{"id":"e67b186.a181968","type":"inject","z":"8d8ea68a.944cc8","name":"Trigger every 10 sec","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":"","x":524.5,"y":548.25,"wires":[["863c6bee.e7758","e87ed1cb.21e148","ecc0eb24.c8724"]]},{"id":"28415a81.538026","type":"inject","z":"8d8ea68a.944cc8","name":"Trigger every 10 min","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":"","x":510,"y":780,"wires":[["d3ad4fa1.b4f79"]]},{"id":"d3ad4fa1.b4f79","type":"exec","z":"8d8ea68a.944cc8","command":"df -h","addpay":false,"append":"","useSpawn":"","timer":"","oldrc":false,"name":"Disk Usage","x":710,"y":780,"wires":[["e216e72a.da5db"],[],[]]},{"id":"ecc0eb24.c8724","type":"exec","z":"8d8ea68a.944cc8","command":"free | grep Mem | awk '{printf \"%2.1f\",$4/($2 /100.0)}'","addpay":false,"append":"","useSpawn":"","timer":"","oldrc":false,"name":"Memory Usage","x":710,"y":700,"wires":[["7ffa53be.b43374"],[],[]]},{"id":"e87ed1cb.21e148","type":"exec","z":"8d8ea68a.944cc8","command":"top -d 0.5 -b -n2 | grep \"Cpu(s)\"|tail -n 1 | awk '{print $2 + $4}'","addpay":false,"append":"","useSpawn":"","timer":"","oldrc":false,"name":"CPU Load","x":710,"y":620,"wires":[["bf725c4.50728a"],[],[]]},{"id":"863c6bee.e7758","type":"exec","z":"8d8ea68a.944cc8","command":"vcgencmd measure_temp","addpay":false,"append":"","useSpawn":"","timer":"","oldrc":false,"name":"RPi Temp.","x":710,"y":540,"wires":[["c85e2120.1b0788"],[],[]]},{"id":"c85e2120.1b0788","type":"function","z":"8d8ea68a.944cc8","name":"","func":"str = msg.payload\nmsg.payload = str.substring(5,9);\nreturn msg;","outputs":1,"noerr":0,"x":890,"y":540,"wires":[["3a46b4cf.5e5a6c"]]},{"id":"3a46b4cf.5e5a6c","type":"function","z":"8d8ea68a.944cc8","name":"Index setting (Temp)","func":"var i = msg.payload\nmsg.payload = {\n \"temp\": i\n}\nreturn msg;","outputs":1,"noerr":0,"x":1240,"y":580,"wires":[["794bc4ac.dd0bd4"]]},{"id":"e216e72a.da5db","type":"function","z":"8d8ea68a.944cc8","name":"","func":"var re = /([0-9]{2})%/\nvar idx = msg.payload.search(re);\nvar str = msg.payload;\nif (idx >=0) {\n str = msg.payload.substring(idx, idx + 2);\n}\nmsg.payload = str;\nreturn msg;","outputs":1,"noerr":0,"x":890,"y":780,"wires":[["5833bee0.58dfd"]]},{"id":"7ffa53be.b43374","type":"function","z":"8d8ea68a.944cc8","name":"Index setting (RAM)","func":"var i = msg.payload\nmsg.payload = {\n \"ram\": i\n}\nreturn msg;","outputs":1,"noerr":0,"x":1240,"y":700,"wires":[["794bc4ac.dd0bd4"]]},{"id":"bf725c4.50728a","type":"function","z":"8d8ea68a.944cc8","name":"Index setting (CPU)","func":"var i = msg.payload\nmsg.payload = {\n \"cpu\": i\n}\nreturn msg;","outputs":1,"noerr":0,"x":1240,"y":620,"wires":[["794bc4ac.dd0bd4"]]},{"id":"794bc4ac.dd0bd4","type":"join","z":"8d8ea68a.944cc8","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1460,"y":620,"wires":[["8b1cd29d.d34ab"]]},{"id":"8b1cd29d.d34ab","type":"join","z":"8d8ea68a.944cc8","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1630,"y":680,"wires":[["c619f4ba.e4bf5"]]},{"id":"c619f4ba.e4bf5","type":"function","z":"8d8ea68a.944cc8","name":"","func":"var t = msg.payload[0][0].temp\nvar c = msg.payload[0][2].cpu\nvar r = msg.payload[0][1].ram\nvar d = msg.payload[1].disk\nvar dt = Date(Date.now()); \nmsg.payload = \"My Home Pi temperature is \" + t +\"°C. CPU usage is \" + c + \" %. RAM usage is \" + r + \" %. Disk usage \" + d + \" % at \" + dt;\nreturn msg;","outputs":1,"noerr":0,"x":1790,"y":680,"wires":[["6f98fe78.c7c548"]]},{"id":"6f98fe78.c7c548","type":"delay","z":"8d8ea68a.944cc8","name":"Delay for TWEET!!","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":2030,"y":680,"wires":[[]]}]