Did Hashem speak directly to Yehu?
Rashi (from Seder Olam): No. He spoke via Yonah.
Why did Hashem promise to him four generations?
Rashi: It is because Yehu wiped out Beis Achav, who ruled for four generations - Amri, Achav, Achazyahu and Yehoram. Radak - the generations from Yehu were Yeho'achaz, Yeho'ash, Yaravam and Zecharyah.
Here it says that that Hashem rewarded Yehu for killing Beis Achav. Hoshe'a 1:4 says that Beis Yehu will be punished for killing Beis Achav!
Alshich (Hoshe'a 1:4): He was rewarded for the action, which fulfilled Hashem's will, but punished because it was not l'Shem Shamayim, for also he sinned.
Metzudas David (Hoshe'a 1:4): Initially, Yehu killed them bi'Dvar Hashem, for worshipping the Ba'al. Later, Yehu sinned, and it was considered that he spilled innocent blood.