[{"id":"ed19c70c.15e8c8","type":"mqtt in","z":"83556bd8.575568","name":"","topic":"tele/xxxxx/TELEMETRY","qos":"2","broker":"","x":300,"y":500,"wires":[["a90891e6.fa465","cb2040ad.20c9c"]]},{"id":"a90891e6.fa465","type":"function","z":"83556bd8.575568","name":"","func":"msg.payload=JSON.parse(msg.payload);\nmsg.payload=msg.payload.Temperature;\nmsg.topic = \"Temperature\";\ntry {msg.payload;\nnode.send (msg);\nnode.status({fill:\"blue\",shape:\"dot\",text:\"Status: \"+ msg.payload + \" Degrees Centigrade\"});\n}\ncatch(e) {}\n","outputs":1,"noerr":0,"x":550,"y":500,"wires":[[]]},{"id":"cb2040ad.20c9c","type":"json","z":"83556bd8.575568","name":"","x":500,"y":580,"wires":[["a9080b88.21a258"]]},{"id":"a9080b88.21a258","type":"debug","z":"83556bd8.575568","name":"","active":true,"console":"false","complete":"false","x":660,"y":580,"wires":[]}]
If you give that a go, just setup your MQTT details, change xxxx to the sonoff name and then attach a graph at the output.
you can feed more than one temperature reading into the graph, just change the msg.topic.
If you want to use it for humidity, change msg.payload.Temperature to msg.payload,Humidity. Also change the topic.
You can also have multiple functions attached to the one MQTT node to split out all of the data
The json node and msg.debug are not needed for this to work, but you can view the message output to see the json structure. Make sure you are on node-red v0.16 or above so you can use the debug node to view the structure easily.