It works ok for me. Feed in a noisy value in msg.payload and the output is the smoothed value of the input. Try this flow for example.
[{"id":"4b8d1f71.bf6e88","type":"function","z":"d7ff0732.2f81d8","name":"10 sec RC","func":"// Applies a simple RC low pass filter to incoming payload values\nvar tc = 10*1000; // time constant in milliseconds\n\nvar lastValue = context.get('lastValue');\nif (typeof lastValue == \"undefined\") lastValue = msg.payload;\nvar lastTime = context.get('lastTime') || null;\nvar now = new Date();\nvar currentValue = msg.payload;\nif (lastTime === null) {\n // first time through\n newValue = currentValue;\n} else {\n var dt = now - lastTime;\n var newValue;\n \n if (dt > 0) {\n var dtotc = dt / tc;\n newValue = lastValue * (1 - dtotc) + currentValue * dtotc;\n } else {\n // no time has elapsed leave output the same as last time\n newValue = lastValue;\n }\n}\ncontext.set('lastValue', newValue);\ncontext.set('lastTime', now);\n\nmsg.payload = newValue;\nreturn msg;","outputs":1,"noerr":0,"x":598,"y":518,"wires":[["7f6ad735.aaf668"]]},{"id":"aa742e9.bf7365","type":"function","z":"d7ff0732.2f81d8","name":"Random numbers 7.5 to 12.5","func":"// return random number between 0 and 1\nvar rand = Math.random( );\n// offset it so it is between 7.5 and 12.5\nmsg.payload = 7.5 + rand*5\nreturn msg;","outputs":1,"noerr":0,"x":356.5,"y":522,"wires":[["4b8d1f71.bf6e88","19a8e088.9240b7"]]},{"id":"b9bf92ef.bddf7","type":"inject","z":"d7ff0732.2f81d8","name":"1 second kick","topic":"","payload":"","payloadType":"date","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":117,"y":522,"wires":[["aa742e9.bf7365"]]},{"id":"e19dadc9.2c8368","type":"ui_chart","z":"d7ff0732.2f81d8","name":"","group":"1d60c1ef.f5bb16","order":5,"width":0,"height":0,"label":"chart","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"0","ymax":"20","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":656.5,"y":661,"wires":[[],[]]},{"id":"19a8e088.9240b7","type":"change","z":"d7ff0732.2f81d8","name":"Topic: Input","rules":[{"t":"set","p":"topic","pt":"msg","to":"Input","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":435.5,"y":662,"wires":[["e19dadc9.2c8368"]]},{"id":"7f6ad735.aaf668","type":"change","z":"d7ff0732.2f81d8","name":"Topic: Output","rules":[{"t":"set","p":"topic","pt":"msg","to":"Output","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":619,"y":597,"wires":[["e19dadc9.2c8368"]]},{"id":"1d60c1ef.f5bb16","type":"ui_group","z":"","name":"Default","tab":"317df29b.5649b6","disp":true,"width":"12","collapse":false},{"id":"317df29b.5649b6","type":"ui_tab","z":"","name":"List","icon":"dashboard"}]