@v.bay, я вам один раз напишу подробно. Но если опять будет реакция в стиле " я и без вас это все знаю", то больше никаких обсуждений не будет.
В библиотеке uRTClib, которую вы используете, все данные с RTC хранятся во внутренней структуре класса uRTCLib rtc. Весь обмен по i2c с модулем RTC происходит в функции refresh(), которая связывается с модулем и читает с него текущее значение времени, раскладывая его по внутренним переменным секунд, минут, часов, дней недели и тд.
Когда вы выполняете свои строки
hh = rtc.hour(); // грузим из rtc в рег-ы
mm = rtc.minute();
ss = rtc.second();
Week = rtc.dayOfWeek();
они, на самом деле, из RTC ничего не читают. Они просто копируют данные из переменных библиотеки, полученные при последнем обращении к функции refresh().
Таким образом, ваш код написан наоборот по сравнению с тем, как его надо было написать. Самая "тяжелая" функция работы с модулем часов - refresh() - вызывается при каждом входе в Loop(), в то время как обычное копирование данных из библиотеки в скетч - зачем то делается по условию.
То есть вы экономите не там. Вы там выше писали, что, чтобы уменьшить потребление, вы оформляли как функции 10-20 строк кода. А то что функция refresh(), в которой почти 300 строк и куча обращений к железу - у вас вызывается постоянно - вы не заметили.
============
Чтоб вам было понятнее, вот вам аналогия.
Допустим, у вас задача раз в сутки ставить в холодильник свежую бутылку пива. Для этого надо сходить в магазин, купить пиво, принести домой и поставить в холодильник.
Как написать это правильно, чтобы не делать лишнюю работу? - сначала проверить время, если прошли сутки - бежать в магазин. Если сутки не прошли - ничего не делать.
Как сделано у вас в программе -вы сначала бежите в магазин, покупаете пиво и приносите домой (это функция refresh()). А придя домой, смотрите на часы (функция миллис). Если сутки прошли - ставите бутылку в холодильник (это ваши строчки hh = rtc.hour()), а если еще нет - выкидываете эту бутылку и сразу бежите за новой.
В итоге ваша программа целые сутки бегает в магазин и обратно (опрашивает часы), хотя могла просто сидеть и ждать и купить бутылку только тогда, когда пришло время.