The one major issue I see is in the line
pred, hidden = self.rnn(x, None)

You give hidden=None to the rnn which means that the rnn starts each batch with a new blank hidden state full of zeros. This means that when it sees the first reading of the day, the model has no memory of what happened yesterday. This will seriously limit its predictive ability.