Design flaw in filters?

I have some temperature sensors that - for whatever reason - produce short spikes every other hour where the measured temperature is around 0.5 larger for a single measurement (they send values every 30 seconds). So I thought, let’s try out filters. I tried the outlier filter, which seems to be a perfect fit, and also the moving average filter. However it seems the previous values they take into account are not the previously reported values from the sensors but the previous values where the last change occurred. This means if I set the radius for the outlier filter to 0.4 and the number of samples to 3 this does not mean I uses the values from the previous 1.5 minutes, which were constant and thus the 0.5 degree spike is classified as an outlier. Instead values from much longer ago are used and since they are resulting from changes the radius of 0.4 isn’t appropriate any more. Basically the same problem arises with the moving average. Either I’m missing something here or there is a serious design flaw in how filters are implemented.