Пользователь @Alex_Jet написал в Плагин MegaD:
Пользователь @intrapro написал в Плагин MegaD:
Помнится мне, что парсинг ON/OFF, temp/hum и прочее происходил "по умолчанию" только у каналов, у которых ID=0...37, либо X_1/X_2? А вот если канал имеет какое-нибудь отличное от числа значение, то этот парсинг не выполняется? Или это было с чем-то другим связано?
Числовой номер канала нужен только для извлечения данных из строки all
Или уже нет смысла переписывать код плагина поскольку в версии 5 все будет совсем по другому?
Планируется, что все плагины и сценарии из v4 будут работать в v5
Вообще, код плагина MegaD просто ужасен... по мне так легче все заново написать. Было бы время и знания по API iH....
С прагматичной точки зрения, код плохой, если:
- программа работает нестабильно: зависает или вылетает, игнорирует ошибки
- требует постоянной поддержки, так как нестандартные ситуации не обрабатывает или реагирует неадекватно
- хорошо работает на компьютере разработчика, но при установке в мало-мальски другое окружение нужны ритульные пляски и сакральные знания
- при необходимости доработки нужно не забыть внести изменения в несколько мест (искать всюду 37 канал, например
Про плагин MegaD ничего такого сказать нельзя. Он работает стабильно, надежно уже несколько лет.
Вопросы от пользователей и доработки связаны с расширением функционала - (MCP, _A и _B,.. Плюс эпопеи с контроллером, но это другая история)
Есть также плюс, который не очевиден для людей, любящих покодить - порог вхождения при использовании плагина MegaD очень низкий, простой функционал настраивается очень просто.
Также можно рассмотреть вариант, предлагаемый во многих системах - нет плагина MegaD, вот вам http-клиент, дальше сами.
Эта возможность в IH тоже есть, даже 2 варианта:
- создавать сниппеты для каждого устройства и запускать их периодически;
- использовать плагин http
Для чтения CNT, кстати, это тоже решение (но не забыть при этом обрабатывать ошибки связи, если хочется сделать не поделку, которая работает при демонстрации, а реально работающий проект). И если на MegaD идет одновременно очень много независимых запросов, помнится, тоже были проблемы. Ну и по поводу CNT для счетчика - просто интересно, как решается вопрос, когда контроллер при потере питания сбрасывает значение?
Если порт заявляется как счетчик, он IMHO должен хранить значение при отключении питания. Например в оборудовании KernelChip счетчик - это счетчик, ему можно доверять.
С позиции чистого искусства - да, соглашусь, код выглядит несовременно и не очень консистентно, API v4 работы с плагинами не используется. Также выглядит не очень понятно работа с входящими сообщениями.
Хорошо бы все переписать на ES6 и с применением API. И придумать понятный механизм. И чтобы любая новинка MegaD сразу была реализована И чтобы этим занимался специалист по MegaD.
В v5 мы планируем предложить сообществу активнее разрабатывать плагины. Со стороны системы будет обеспечено:
- открытое API для создания плагинов;
- возможность декларативного описания настройки каналов и свойств, в том числе древовидные структуры
- простой механизм подключения плагина к системе и отладка;
- продвижение плагинов сторонних разработчиков через портал
И пусть каждый желающий напишет плагин своей мечты