Не хочется разводить арифметику... Ломает считать время задержки старта чтобы финиш происходил в заданное время. Надо придумать изящней. Например, так.
Два варианта запуска - с прибора (кнопкой), или со странички - с компа или с телефона.
Если кнопкой - задержки нет. Можно только установить время, скажем, выбрать крутилкой одно из десяти заранее забитых значений. Старт - сразу после нажатия кнопки. Температура устанавливается той-же крутилкой, только уже после нажатия кнопки. Шаг выбора температуры - 1 градус (или 0.5?).
Отсчёт времени начинается когда фактическая температура приблизилась к заданию, когда осталось добавить ещё один градус. Или 2-3? Или когда температура достигнута?
Остановка нагрева происходит в одном из трёх случаев.
1. Вручную, при повторном нажатии кнопки.
2. Когда истекло заданное время.
3. Если температура вышла за допустимые пределы (какие?) и не возвращается 2-3-5минут (сколько?).
Причина остановки будет светиться на экране.
Насос включается при запуске нагрева и останавливается через 2-3-5 минут после окончания.
Противный звонок начинает гундосить при окончании времени, и сверлит мозг первую минуту непрерывно, потом только взвизгивает 2-3 раза в минуту.
Это была работа при запуске с кнопки.
При запуске с компа или с телефона будет иначе.
Нужно будет в соответствующих ячейках задать температуру, длительность нагрева и желаемое время окончания. Фактическое, текущее время будет подхвачено с телефона или компа автоматически.
Оповещения? В таком случае они не понадобятся. Можно будет поставить будильник на то же время, которое настроено для окончания.
Надо предусмотреть контроль арифметики. Если заданное время окажется больше, чем осталось до заданного окончания работы, браузер ругнется и скажет "Фиг вам. До пол-второго не успею. Окончу в без четверти четыре".
Блин, есть небольшие сложности. Надо учесть время выхода на заданную температуру. Наверное это время надо задавать, а не пускать на самотёк. Если мы за 3 минуты довели воду до 60 градусов, температура в толще продукта дойдет до этой величины наверное минут за 20. Значит надо стандартизировать время выхода на заданную температуру, скажем, минут 30... Или это лишнее?