Плагин MegaD



  • @amgstone:

    @intrapro:

    @amgstone:

    тут все прекрасно написали, но есть ещо один вопрос, так мне долгим нажатием выключить вентилятор и свет когда 2 устройства находятся на разных мегах?

    Что конкретно вам не понятно?

    на какой меге вписать расширение что бы при долгом нажатии выключался вентилятор и свет.

    Расширение всегда там, откуда приходит входящее сообщение, то есть кнопка, которую нажимают

    По долгому нажатию запустите сценарий, который все выключит. Сценарию неважно, с каким железом связаны устройства.



  • @amgstone:

    как в меге должно прописано, если их 3: megad_1.php,megad_.php,megad_3.php или просто в 3 мег одинаково megad

    Script в настройках MegaD - это то, что будет подставлено перед знаком вопроса, когда MegaD передает сообщение (при нажатии кнопки, сработке датчика)

    /megad_1.php?pt=1 - для 1

    /megad_3.php?pt=1 - для 3

    Можете нажать на кнопку и посмотреть в отладчике

    Чтобы входящее сообщение в Расширении обработалось, оно должно совпадать с тем, что отправляет MegaD. Если напишете просто megad - работать не будет 😞



  • @intrapro:

    @amgstone:

    как в меге должно прописано, если их 3: megad_1.php,megad_.php,megad_3.php или просто в 3 мег одинаково megad

    Script в настройках MegaD - это то, что будет подставлено перед знаком вопроса, когда MegaD передает сообщение (при нажатии кнопки, сработке датчика)

    /megad_1.php?pt=1 - для 1

    /megad_3.php?pt=1 - для 3

    Можете нажать на кнопку и посмотреть в отладчике

    Чтобы входящее сообщение в Расширении обработалось, оно должно совпадать с тем, что отправляет MegaD. Если напишете просто megad - работать не будет 😞

    тойсть если у меня в отладчике пишет megad1,megad2,megad3 то мне так и вписывать в Script без .php?



  • В расширении должно быть прописано так, как прописано в поле Script

    Вот у вас на скриншоте в поле Script написано: megad_1.php

    Точно так надо писать и в Расширении.



  • Доброго времени суток!

    Возник вопрос по работе плагина с расширителем портов MCP23017.

    Повесил данный девайс на 32-33 порты MegaD.
    Maga p32.png
    Mega p32 ext.png
    Прописал каналы по аналогии с другими портами.
    каналы MegaD.png
    Проверил отладку. Мега по честному отдаёт состояния всех 16 портов.
    отладка.png
    Но устройства DD1 и DD2 на мнемосхеме, не реагируют на изменения состояния портов 32_1, 32_2.

    В какую сторону копать ? 😢



  • @MAMOHT:

    Доброго времени суток!

    Возник вопрос по работе плагина с расширителем портов MCP23017.

    Повесил данный девайс на 32-33 порты MegaD.

    Прописал каналы по аналогии с другими портами.

    Проверил отладку. Мега по честному отдаёт состояния всех 16 портов.

    Но устройства DD1 и DD2 на мнемосхеме, не реагируют на изменения состояния портов 32_1, 32_2.

    В какую сторону копать ? 😢

    Добрый день!

    Получается, данная возможность пока не реализована: в ответ на cmd=get для составных каналов ожидаются данные, разделенные /

    temp:10.75/press:728/hum:19.477  или 10.75/728/19.477
    
    

    Здесь подканалы разделены символом ";"

    Добавим, не проблема. А внутри запроса cmd=all как это работает? Покажите, пожалуйста, ответ на запрос cmd=all. Там видимо пусто для 32 порта?



  • @intrapro:

    @MAMOHT:

    В какую сторону копать ? 😢

    Добрый день!

    Получается, данная возможность пока не реализована: в ответ на cmd=get для составных каналов ожидаются данные, разделенные /

    > temp:10.75/press:728/hum:19.477  или 10.75/728/19.477
    > 
    

    Здесь подканалы разделены символом ";"

    Добавим, не проблема. А внутри запроса cmd=all как это работает? Покажите, пожалуйста, ответ на запрос cmd=all. Там видимо пусто для 32 порта?

    Ну, как то так.
    MegaD p32 cmd=all.png
    MegaD cmd=all.png



  • @MAMOHT:

    Ну, как то так.

    Да, вижу, пишет MCP. Спасибо 🙂



  • @MAMOHT:

    Но устройства DD1 и DD2 на мнемосхеме, не реагируют на изменения состояния портов 32_1, 32_2.

    Баг конечно правильный отметили. Но в разрезе "сработки" входов расширителя (без принудительного опроса состояния всех портов MCP) необходимо IntA/IntB подключить к порту MegaD и прописать его в настройках MCP, а в расширениях плагина MegaD прописать для каждого порта:

    /megad.php?pt=32&ext0=1         32_0=ON
    /megad.php?pt=32&ext0=0         32_0=OFF
    
    

    intrapro, ведь так (32_0=ON) состояние канала установится в iH уже сейчас? Единственное что будет, если сработает одновременно два канала расширителя и MegaD пришлет ?pt=32&ext0=1&ext1=1???

    И, да, подключив MCP к MegaD обнаружил интересную вещь, которой раньше не было - пока к порту расширителя, у которого в плагине стоит время опроса, но не привязано ни одно устройство плагин не опрашивает этот порт! Как только привязываю к порту устройство, так плагин начинает опрашивать порт. Чтобы было понятнее - вот так плагин не опрашивает порт, на котором висит MCP:
    MegaD_MCP_No_GET.png



  • @Alex_Jet:

    @MAMOHT:

    Но устройства DD1 и DD2 на мнемосхеме, не реагируют на изменения состояния портов 32_1, 32_2.

    Баг конечно правильный отметили. Но в разрезе "сработки" входов расширителя (без принудительного опроса состояния всех портов MCP) необходимо IntA/IntB подключить к порту MegaD и прописать его в настройках MCP, а в расширениях плагина MegaD прописать для каждого порта:

    То есть, берём либо IntA, либо IntB ? Цепляем на свободный порт Меги и пишем его здесь:
    MCP23017_INT.png



  • @MAMOHT:

    То есть, берём либо IntA, либо IntB ? Цепляем на свободный порт Меги и пишем его здесь:

    MCP23017_INT.png

    Оба берем и цепляем на вход MegaD. Почитайте тут - https://www.ab-log.ru/smart-house/ethernet/megad-2561



  • @Alex_Jet:

    @MAMOHT:

    То есть, берём либо IntA, либо IntB ? Цепляем на свободный порт Меги и пишем его здесь:

    MCP23017_INT.png

    Оба берем и цепляем на вход MegaD. Почитайте тут - https://www.ab-log.ru/smart-house/ethernet/megad-2561

    Спасибо, что ткнули носом в священный мануал. :oops: Поиски заняли 45 минут 🙂
    <quote>> В целях экономии портов контроллера, при подключении модулей на базе расширителя MCP23017 (16 дополнительных портов) линии INTA и INTB можно подключить к одному входу контроллера.



  • @MAMOHT:

    Спасибо, что ткнули носом в священный мануал. :oops: Поиски заняли 45 минут 🙂

    Да, мануал хороший. Жаль, что ссылок в нем нет на подразделы. Но я так понял, что он Вам оказался полезен:)



  • @Alex_Jet:

    @MAMOHT:

    Спасибо, что ткнули носом в священный мануал. :oops: Поиски заняли 45 минут 🙂

    Да, мануал хороший. Жаль, что ссылок в нем нет на подразделы. Но я так понял, что он Вам оказался полезен:)

    Ещё как полезен!

    Но теперь другая проблема, Мега на срабатывание порта расширителя отвечает не по феншую. 😉
    отладка 111.png



  • @MAMOHT:

    @Alex_Jet:

    @MAMOHT:

    Спасибо, что ткнули носом в священный мануал. :oops: Поиски заняли 45 минут 🙂

    Да, мануал хороший. Жаль, что ссылок в нем нет на подразделы. Но я так понял, что он Вам оказался полезен:)

    Ещё как полезен!

    Но теперь другая проблема, Мега на срабатывание порта расширителя отвечает не по феншую. 😉

    отладка 111.png

    Это нормально. CNT - это счетчик количества замыканий/размыканий контакта. В MegaD все входы работают так и на сервер отсылается сообщение с cnt. Вот почему iH это не обрабатывает? Вот это вопрос. Вы расширения прописали?

    Причем у вас в config контроллера получается (вижу по логу), что имя скрипта не задано. Значит расширение должно выглядеть как /?pt=30&ext0=1



  • @Alex_Jet:

    Это нормально. CNT - это счетчик количества замыканий/размыканий контакта. В MegaD все входы работают так и на сервер отсылается сообщение с cnt. Вот почему iH это не обрабатывает? Вот это вопрос. Вы расширения прописали?

    Причем у вас в config контроллера получается (вижу по логу), что имя скрипта не задано. Значит расширение должно выглядеть как /?pt=30&ext0=1

    Вроде всё так.
    расширения.png



  • @MAMOHT:

    Вроде всё так.

    расширения.png

    Значит вопрос к intrapro - почему нет iH get/set? Может все же дело в не числовых номерах портов?

    МАМОНТ, попробуйте задать номер порта числовой, например, 320,321,322 и т.д. И то же прописать в расширениях 320=ON/OFF.



  • @Alex_Jet:

    Может все же дело в не числовых номерах портов?

    Да, вы правы, здесь были предусмотрены только числовые порты :(. С числовыми все должно работать.

    Но если планируется получать данные и через опрос, то не нужно переделывать нумерацию каналов, поправим и добавим разбор при опросе

    @Alex_Jet:

    И, да, подключив MCP к MegaD обнаружил интересную вещь, которой раньше не было - пока к порту расширителя, у которого в плагине стоит время опроса, но не привязано ни одно устройство плагин не опрашивает этот порт! Как только привязываю к порту устройство, так плагин начинает опрашивать порт. Чтобы было понятнее - вот так плагин не опрашивает порт, на котором висит MCP:

    Да, это так. И относится не только к порту расширения, а к любому каналу - если нет привязки, порт не опрашивается. Для экономии 🙂

    @Alex_Jet:

    Единственное что будет, если сработает одновременно два канала расширителя и MegaD пришлет ?pt=32&ext0=1&ext1=1???

    А это возможный вариант? Если да, то нужно будет устанавливать флаг в расширении, что надо продолжать перебор входящих:

    /?pt=32&ext0=*    32_0=%ext0%   и продолжаем перебирать   
    /?pt=32&ext1=*    32_1=%ext1%
    ..
    /?pt=32&ext16=*    32_16=%ext16%
    
    
    


  • @intrapro:

    Да, это так. И относится не только к порту расширения, а к любому каналу - если нет привязки, порт не опрашивается. Для экономии 🙂

    С точки зрения отладки - не очень удобно. Проще время опроса обнулять чтобы не было опроса.

    @intrapro:

    А это возможный вариант? Если да, то нужно будет устанавливать флаг в расширении, что надо продолжать перебор входящих:

    > /?pt=32&ext0=*    32_0=%ext0%   и продолжаем перебирать   
    > /?pt=32&ext1=*    32_1=%ext1%
    > ..
    > /?pt=32&ext16=*    32_16=%ext16%
    > 
    > 
    

    Теоретически да. Например, сработка двух смежных датчиков движения. Больше примеров придумать не могу 🙂



  • @Alex_Jet:

    @MAMOHT:

    Вроде всё так.

    Значит вопрос к intrapro - почему нет iH get/set? Может все же дело в не числовых номерах портов?

    МАМОНТ, попробуйте задать номер порта числовой, например, 320,321,322 и т.д. И то же прописать в расширениях 320=ON/OFF.

    Опубликован новый релиз плагина v1.1.13

    1. Добавлен разбор подканалов в формате значений через символ ";" - для MCP

    Обратите внимание! Поскольку в других местах подканалы нумеруются с 1, здесь сохранен такой же подход: 32_1,…32_16

    То есть ext0 - это 32_1. Но можно переделать, если сильно неудобно 😉

    2. В расширениях в поле "Установить состояния каналов" принимаются нечисловые каналы: 32_1=ON работает

    Также, как и раньше, для сокращения строк можно использовать синтаксис присваивания с подстановкой:

    /?pt=32&ext0=* - принимается любое значение в параметр ext0
    32_1=%ext0% - значение будет подставлено в состояние канала
    
    

    3. Добавлено свойство ip в объект для передачи сценарию

    @Alex_Jet:

    Единственное что будет, если сработает одновременно два канала расширителя и MegaD пришлет ?pt=32&ext0=1&ext1=1???

    Этот вопрос пока не прорабатывался.


Авторизуйтесь, чтобы ответить