"Grandmother has been sleeping since half past seven."
Translation:दादी साढ़े सात बजे से सो रही हैं।
It's a tense issue.
'Grandmother is sleeping since half-past seven' is incorrect English because you can't use starting times with the present continuous tense in English. Therefore, the present perfect continuous tense (which refers to actions that were started in the past but are still in progress in the present) has been used.
Technically, Hindi also requires the present perfect continuous here (दादी साढ़े सात बजे से सोती रही हैं।) but in most cases, we just use the present continuous tense in Hindi instead of the present perfect continuous when there is no ambiguity.
दादी साढ़े सात बजे से सो रही थी। would be 'Grandmother had been sleeping since half-past seven.' which is in the past perfect continuous tense. It means that the grandmother went to sleep at half-past seven and was still sleeping at some particular moment in the past about which we are talking about. (Here too, Hindi uses the past continuous tense instead of the past perfect continuous)
घंटा means 'hour'.
You can think of बजे as being similar to 'o'clock' in that it is used when you want to specify the time.
दो घंटों में आइए - Come in two hours
दो बजे को आइए - Come at two o'clock
अभी सिर्फ़ पाँच बजे है। मैं दो घंटे और सोऊँगा। (It's still five o'clock. I will sleep for two more hours'.)