DHT11 sensor providing -999 outputs
-999 means that it didn't get a result from the DHT.  You need to filter them out - which you are attempting to do, but wrongly.

Your line of code:

if((DHT.temperature || DHT.humidity) &gt; -25) {


is not doing what you thing it is.

If you start from the inner most brackets and "reduce", you get:

Is DHT.temperature or DHT.humidity?


That makes no real sense - except in C any number that isn't 0 is "true" and 0 is "false", so that really means:

Is DHT.temperature not 0 or DHT.humidity not 0?


And of course that will be "true" in 99.99999% of situations.  So insert that into the if again:

if (true &gt; -25) {


Is true more than -25? Well, the reverse of what I stated above is also true: "true" is 1 and "false" is 0.  So is 1 greater than -25? Yes. It is.

Instead you should be testing each value separately:

if ((DHT.temperature &gt; -25) &amp;&amp; (DHT.humidity &gt; -25)) {


Also your constraints are doing nothing.  constrain() doesn't modify (limit) the variable you pass to it. Instead it takes the value in that variable, constrains it, and returns the new constrained value to you for you to assign to a new variable.  So you should:

float temperature = constrain (DHT.temperature, -25, 70);     


And then you can use the temperature variable instead of DHT.temperature, and you can guarantee that it will be between -25 and +70.