note that I do not have the problem so can you maybe share more details regarding your configuration ? I use url with only one fieldn=v in the url and do not get nulls for other fields in the channel. maybe the url is not correct ?
I am updating a thingspeak channel with temperature readings from various sources. The readings change seldom, and when a certain temperature changes and fires the update, the others usually do not.
If I read my entire channel via:
https://thingspeak.com/channels/62180/feeds?days=1&api_key=<myapikey>, I get something like:
{"channel":{"id":62180,"name":"UpUp","field1":"Main Temp","field2":"Main Setpoint","field3":"Kids Temp","field4":"Kids Setpoint","field5":"Master Temp","field6":"Master Setpoint","field7":"Outside Temp","created_at":"2015-10-24T18:09:28-07:00","updated_at":"2015-12-09T13:56:15-08:00","last_entry_id":5447},"feeds":[{"created_at":"2015-12-08T16:10:33-08:00","entry_id":5144,"field1":null,"field2":"55.01","field3":null,"field4":null,"field5":null,"field6":null,"field7":null},{"created_at":"2015-12-08T16:10:52-08:00","entry_id":5145,"field1":null,"field2":"55.01111","field3":null,"field4":null,"field5":null,"field6":null,"field7":null},{"created_at":"2015-12-08T16:11:28-08:00","entry_id":5146,"field1":null,"field2":"70.5","field3":null,"field4":null,"field5":null,"field6":null,"field7":null},{"created_at":"2015-12-08T16:12:23-08:00","entry_id":5147,"field1":null,"field2":"70","field3":null,"field4":null,"field5":null,"field6":null,"field7":null},{"created_at":"2015-12-08T16:16:34-08:00","entry_id":5148,"field1":"56","field2":null,"field3":null,"field4":null,"field5":null,"field6":null,"field7":null},{"created_at":"2015-12-08T16:21:24-..... and so on
If I read an individual field via
https://thingspeak.com/channels/62180/field/1?days=1&api_key=<myapikey>, I get something like:
{"channel":{"id":62180,"name":"UpUp","field1":"Main Temp","field2":"Main Setpoint","field3":"Kids Temp","field4":"Kids Setpoint","field5":"Master Temp","field6":"Master Setpoint","field7":"Outside Temp","created_at":"2015-10-24T18:09:28-07:00","updated_at":"2015-12-09T11:56:15-08:00","last_entry_id":5438},"feeds":[{"created_at":"2015-12-08T14:18:40-08:00","entry_id":5140,"field1":"54"},{"created_at":"2015-12-08T14:22:28-08:00","entry_id":5141,"field1":"55"},{"created_at":"2015-12-08T14:26:16-08:00","entry_id":5142,"field1":"56"},{"created_at":"2015-12-08T14:33:07-08:00","entry_id":5143,"field1":"55"},{"created_at":"2015-12-08T16:10:33-08:00","entry_id":5144,"field1":null},{"created_at":"2015-12-08T16:10:52-08:00","entry_id":5145,"field1":null},{"created_at":"2015-12-08T16:11:28-08:00","entry_id":5146,"field1":null},{"created_at":"2015-12-08T16:12:23-08:00","entry_id":5147,"field1":null},{"created_at":"2015-12-08T16:16:34-08:00","entry_id":5148,"field1":"56"},{"created_at":"2015-12-08T16:21:24-08:00","entry_id":5149,"field1":null},{"created_at":"2015-12-08T16:21:54-08:00","entry_id":5150,"field1":null},{"created_at":"2015-12-08T16:24:56-08:00","entry_id":5151,"field1":"57"},{"created_at":"2015-12-08T16:30:16-08:00","entry_id":5152,"field1":"58"},{"created_at":"2015-12-08T16:35:35-08:00","entry_id":5153,"field1":"59"},{"created_at":"2015-12-08T16:40:55-08:00","entry_id":5154,"field1":"60"},{"created_at":"2015-12-08T16:47:00-... and so on.
If I'm not mistaken, wherever a field is uploaded TO thinkspeak, a record is created for ALL the fields in the channel, and thus will be NULL unless the fields are specified.
Thingspeak impose a thresholding of 15s between calls. if you are unlucky a call could be ignored if several watches result in calls to thingspeak happening within the 15s threshold.
That explains things. I guess there's not much to do about it unless it's possible to maintain an internal timer to hold looking for variable changes for 15 seconds after every write to thingspeak.