В настоящее время в вашем предложении есть ряд устройств, которые самостоятельно могут опрашивать внешние контроллеры по специфичным интерфейсам (например СИ-13NEW, M-BUS-1/2...). Опрос устройства "зашивается" в прошивку и с выходом новых устройств вам приходится добавлять поддержку в прошивки и выпускать их новые версии. Однако память в устройствах небезгранична и в какой то момент вам придется либо исключать какие то "старые" устройства, либо физически увеличивать память (что не всегда возможно). Но в случае исключения устройств возможен момент, что оно когда то понадобится...а его нет. Да и часто получается, что используются в текущем представлении для данного устройства лишь единицы вариантов опроса, а остальные висят в прошивке "мертвым" грузом. Выпускать кучу вариантов прошивок для разного набора поддерживаемых устройств тоже не вариант (ИМХО).
Вы не прорабатывали идею о предоставлении возможности самому клиенту формировать нужный пул поддерживаемых устройств путем "дозаписи" в прошивку кусков кода для необходимых контроллеров (счетчиков и т.п.)либо при помощи штатного конфигуратора либо специальной программы? Это позволило бы самому пользователю набирать из "кирпичиков" необходимый пул поддерживаемых устройств. Так была бы "основная" прошивка, пустая или с набором наиболее востребованных вариантов и ряд дозаписываемых "Кирпичиков".
Я понимаю, что это очень трудоемко да и скорее всего концепцию придется переделывать, но, возможно будущие преимущества перевесят

Хорошего дня!