The smoke smell comes from the tar that condenses out of the smoke onto surfaces. You can cover it up for a bit using stuff like Febreze or baking soda, which absorb odors, but unless you keep applying it, the smoke will always return. What you have to do is remove the tar. For that you need a solvent that will dissolve it. Water will not work. Alcohol will get some of it. Mineral spirits (or kerosene) applied with a cloth and then scrubbed with a brush, and wiped off with clean mineral spirits (repeat until clear) will get it all. It may also remove some of the stain finish on the wood. Slate is porous, but I don't think mineral spirits will harm slate. Best to check on the underside first, though. It won't harm unfinished metal. New cloth, and then you are permanently rid of the smoke. (BTW, I smoke). If you need to get all the mineral spirits absolutely off a surface, use brake cleaner.
Do all this outside.