It's after eight, and he isn't here. At some time in the past--perhaps this morning--he said "I will be there at eight." You could express this directly as a quotation:
"This morning, he said to me 'I will be there at eight.'"
When he said it in the morning, he was talking about the future, so it wasn't true OR false yet.
Since he is not here now, the sentence "I will be there at eight" is now false, a broken promise.
The following sentence contains bad grammar. No English speaker would say it this way, not even carelessly. However every English speaker would understand it:
"He said he will be here at eight, but he is not."
You need to change the "will" to "would" to make it good English.
"He said he would be here at eight, but he is not."