It is intentionally designed (I think) to go up and down quite a bit, around the set temperature, so you can get a long enough period of time when the heating element is on that it will ignite the smoking chips. If it instead kept the temperature to within 1-2 degrees of the set temp, it would go on for 10-15 seconds, then turn off again, and would never get hot enough to get the chips smoking.
One "solution" is to build a PID controller and use that to the control the temperature, and then use an
AMNPS, internally mounted or put into an external "mailbox mod," to generate the smoke.
I did the second part of that (generate the smoke with a mailbox mod), but chose to simply live with the 20-30 degree variations. In the end, I don't think the food really cares about having the temperature perfectly constant.
Finally, if you are finding that the average temperature, between the high and low point, is not what you set, then simply change the setting on the MES. Unfortunately, like others, I have found that I cannot rely on using the "calibration offset" I used for the last smoke, because the darn thing doesn't always act the same. I think it probably has something to do with the amount of food in there. The more food, the more even the temperature.
Also, I probably have contributed to the problem because I have followed the advice of many in this forum and no longer put water in the water pan. There is a huge unresolved debate as to whether the moisture from this pan does good things for the smoke absorbtion, but almost everyone agrees that it does help to moderate the temperature swings. Some people fill it with sand in order to get some "thermal mass" that will keep the temps from moving around too much.