Thanks, I have found a couple of issues - one me, the other a result of the data sent.
If you have missing values in history, then for example Ecowitt send "-" rather than null (The fact that Ecowitt send numerics as strings is poor anyway).
The JSON parser is expecting a number (integer in this case) or null and curls its toes up at the string "-" so no history for that sensor gets loaded
I'll have to pre-massage the JSON text that Ecowitt send and replace all "-" with null before trying to parse it as JSON.
Ecowitt do not send the 24hr average values for the Combo PM values in the historic data (they do in the current data

), currently they default to zero during catch-up. Not sure what else I can do other than maybe set them to the current value, but then it isn't an average. I think leaving them at zero is best as it is obvious there is missing data.