Get average water flow for every 15min between 1am and 5am of each day

1 view (last 30 days)
I want to calculate the average water flow every 15 mins between 1am and 5am everyday on my channel data.
I need to know if a pump is running during these hour when it shouldn't be.
I have the average calculation working with code below but I cannot find how to only run this on data between 1am and 5am.
any help would be much appreciated.
waterFlow = thingSpeakRead(readChannelID,'Fields',WaterFlowFieldID,'NumMinutes',15,'ReadKey',readAPIKey);
avgwaterFlow = mean(waterFlow);
display(avgwaterFlow,'Average Water Flow');

Answers (2)

Andreas Bernatzky
Andreas Bernatzky on 17 Apr 2020
Hey Charles,
the easiest approach in my opinion is the following.
keep in mind this is pseudoCode (have no matlab at the moment to test):
actualTime = datestr(now,'HH:MM:SS.FFF'))
if(1 am < actualTime && 5am > actualTime)
% do something
I will send you the correct code implementation later.

Steven Lord
Steven Lord on 17 Apr 2020
Read in both the water flow data and the date and time data (perhaps by reading your data in as a timetable.) Call hour on the date and time data stored as a datetime array and use that to select the appropriate elements of your water flow data.
  1 Comment
CHARLES SANSON on 19 Apr 2020
Hi Steven,
Thanks for you reply.
I have created a timetable with the code below but I am having trouble with the second part of your suggestion. Would you be able to help with the code for the second part of your suggestion?
Sorry I am relativly new to this and seem to be going around in circles with the documentation.
data = thingSpeakRead(123456,'Fields',humidityFieldID, OutputFormat','TimeTable','ReadKey',readAPIKey)

Sign in to comment.


Find more on Oceanography and Hydrology in Help Center and File Exchange



Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by