Грубыми мазками накидал схему пользовательского управления (на основе мануалов существующих решений), интересно узнать, устроила бы вас такая схема работы с абстрактным контроллером:
- Корневая сущность - это программы, например: "Газон Backyard", "Газон Frontyard", "Голубика", "Туи у беседки"
- В программу (запуска) добавляется одно или несколько расписаний: (каждый день в 6 утра, каждый день после заката)
- В расписание добавляется одна или несколько зон (клапанов), у каждой зоны отдельно настраивается продолжительность работы
Можно приостановить работу (suspend) сразу всех зон или какой-то конкретной (или отдельной программы), как вручную/API, например
автоматизацией из HA когда кто-то дома) или по сенсору (дождя, присутствия)
Можно принудительно запустить полив отдельной зоны или программы.
Контроллер может запускать одновременно в параллель 3 зоны (настраиваемый параметр, зависит от блока питания и давления в линии), далее зоны запускаются поочередно, после завершения работы предыдущей.
Программа вполне может быть такой.
Но когда я работал над проектом, то делал такой вариант.
Сценарий работы устройства (делал для инкубатора) пишется на ПК какой угодно.
Для этого используется некоторые правила описания сценария.
Нужный сценарий загружается в микроконтроллер пользователем.
При загрузке сценария контроллеру указывается график либо время связи с оператором.
Если все работает по сценарию, то контроллер отключает радио.
Для ESP8266 это снижает потребление с 70 мА до 12 мА (активном режиме) и 20 мкА в режиме сна (для полива это когда вода течет и все нормально).
Такое решение позволяет сам контроллер и его софт сделать универспльным и относительно простым.
Как вариант в него можно поставить VMLua и писать все на скриптом языке Lua.
Сценарии разрабатываются всеми желающими и могут либо продаваться , либо выкладываться в свободном доступе.
Сами устройства идентичные для любых домашних либо малого бизнеса хотелок.
-------------------
Например, для инкубатора для разных птиц существуют различные профили управления температурой, влажностью, поворотом.
Все их засунуть сразу невозможно и нет смысла.
Но любой желающий может загрузить в устройства, например, с нашего сайта нужный ему скрипт.
Аналогично и для полива различных растений в различные периоды их роста.
------------------
В итоге разработка и изготовление железа ничем или почти ничем не отличается для какой цели его делать.
А скрипты нарабатываются специалистами в области полива, инкубаторов , самогоноварения и т д