NEWS
MegaD 328
-
Визуально в настройках меги ничего криминального не было, но
после того как я почистил eeprom и залил туда конфигурацию сохраненную в драйвере iobroker.megad, шебуршание прекратилось
Огромное спасибо, за дистантную диагностику и указание направления куда копать. :oops:
Но вот еще какое дело, на этом и погорел.
Дело в том, что расположение портов в написанном вами драйвере остается таким, только в стоковом варианте (от автора)
А у многих имеются вариации этого устройства где порядок портов может быть изменен. Т.е P0-P13,A6,A7 или A6,P0-P4,A7,P5-P13
или в моем случае P0-P14,A6. В этом плане была достаточно удобна одна из предидущих компоновок драйвера. Так название портов с ШИМ может тоже варьироваться. Может можно каким либо образом добавить полную конфигурабельность портов. Т.е ставим где нибудь крыжик и после этого у всех портов с OUT появляется возможность выбора ШИМ. Вариант Advanced настроек.? :roll:
-
Bluefox, в новой прошивке Андрей доработал следующее:
> Если порт настроен для работы с датчиком DS18B20 (DSen/1W), но сам датчик не подключен, то вместо температуры устройство отображает 'NA'.
-
Поползал по настройкам драйвера и появилось много вопросов.
1. Зацепил новую мегу, сконфигурировал на ней порты, установил еще один драйвер, считал настройки с портов в драйвер
при этом в колонке комната для порта P14 сразу появилось значение Гараж, хотя я еще там ничего не менял. Возможно это значение я выставлял этому порту во время предыдущих экспериментов. Т.е драйвер не полностью подчищает за собой историю во время удаления и при новом создании ее использует.
Нажал кнопу сохранить и выйти, при этом создались объекты
однако при последующем входе в настройки драйвера колонка комната пуста.
2. Не совсем понимаю смысл кнопки добавить порт. Создаю порт P16, выбираю тип Inernal Sensor -> сохранить выйти, нового объекта не создается. Соответственно контролировать его значение я не могу.3. Как называется левая колонка в окошке драйвера как менять ее значения и как ей пользоваться
Это значение ни где не фигурирует, в частности порт A6-P14 в драйвере а в списке объектов p14_P14 -
Вот еще какая штука выявилась
Простой скрипт при замыкании P7 инвертирует P6
var request = require('request'); var url = 'http://192.168.88.12/sec/?pt=0&cmd=6:2'; on('megad.0.p7_P7', function (obj) { log((new Date()).toString() + " " + JSON.stringify(obj.newState)); if (obj.newState.val === 'true' || obj.newState.val === true) { request(url); } });
Однако работает это следующим образом: вначале скрипт отрабатывает как надо, но затем когда происходит плановый опрос все повторяется опять. (Я так понял)
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p7_P7
! javascript.0 2015-11-07 13:42:56 info javascript.0 script.js.Mega_script_p7: Sat Nov 07 2015 13:42:56 GMT+0600 (NOVT) {"val":false,"ts":1446882176,"ack":true,"lc":1446882176,"from":"system.adapter.megad.0"}
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p15_A7
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p14_A6
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p13_P13
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p7_P7
! megad.0 2015-11-07 13:42:56 debug megad.0 detected new value on port [15]: 25, calc state 25
! megad.0 2015-11-07 13:42:56 debug megad.0 detected new value on port [14]: 31, calc state 31
! megad.0 2015-11-07 13:42:56 debug megad.0 reported new state for port 7 - 0
! megad.0 2015-11-07 13:42:56 debug megad.0 detected new state on port [7]: 0
! megad.0 2015-11-07 13:42:56 debug megad.0 Response for 192.168.88.12[all]: OFF;OFF;;;;;OFF;OFF/31;OFF/3;;;;;;31;25
! javascript.0 2015-11-07 13:42:56 info javascript.0 script.js.Mega_script_p7: Sat Nov 07 2015 13:42:56 GMT+0600 (NOVT) {"val":true,"ts":1446882176,"ack":true,"lc":1446882176,"from":"system.adapter.megad.0"}
! megad.0 2015-11-07 13:42:56 debug megad.0 getPortState http://192.168.88.12/sec/?cmd=all
! megad.0 2015-11-07 13:42:38 debug inMem message megad.0.* megad.0.p7_P7
! javascript.0 2015-11-07 13:42:38 info javascript.0 script.js.Mega_script_p7: Sat Nov 07 2015 13:42:38 GMT+0600 (NOVT) {"val":false,"ts":1446882158,"ack":true,"lc":1446882158,"from":"system.adapter.megad.0"}
! megad.0 2015-11-07 13:42:37 debug inMem message megad.0.* megad.0.p7_P7
! megad.0 2015-11-07 13:42:37 debug megad.0 reported new state for port 7 - true
! javascript.0 2015-11-07 13:42:37 info javascript.0 script.js.Mega_script_p7: Sat Nov 07 2015 13:42:37 GMT+0600 (NOVT) {"val":true,"ts":1446882158,"ack":true,"lc":1446882158,"from":"system.adapter.megad.0"}
! megad.0 2015-11-07 13:42:37 debug megad.0 detected new state on port [7]: true -
Какие настройки порта 7?
-
-
Пытался разобраться, что происходит.
Вначале поменял скрипт на управление объектом (P6) ioBroker, а не портом меги. Не помогло.
Потом отключил полностью порт 7(NC) на меге. И скрипт стал запускаться каждый раз при плановом опросе меги.
Выключил порт 7 (не используется) в настройках драйвера. Скрипт перестал запускаться.
Включил порт 7 (IN) на меге. - без изменений
Включил порт 7 (Циф.вход) в настройках драйвера. Сохранил (сохранить и выйти)
Скрипт не запускается вообще, объекта megad.0.p7_P7 не создалось.
Остановился в экспериментах.
09.11.2015 Продолжил
Поменял управляющий порт на 8. Та же самая петрушка.
Удалил полностью все драйвера меги, перепрошил мегу со стиранием настроек. Настроил заново мегу, поставил драйвер, считал с меги настройки, сохранил. Все как было так и осталось. В момент планового опроса меги происходит повторный вызов скрипта. ППЦ.
-
@kID:Поползал по настройкам драйвера и появилось много вопросов.
1. Зацепил новую мегу, сконфигурировал на ней порты, установил еще один драйвер, считал настройки с портов в драйвер
при этом в колонке комната для порта P14 сразу появилось значение Гараж, хотя я еще там ничего не менял. Возможно это значение я выставлял этому порту во время предыдущих экспериментов. Т.е драйвер не полностью подчищает за собой историю во время удаления и при новом создании ее использует.
Нажал кнопу сохранить и выйти, при этом создались объекты filename="Скриншот 2015-11-07 12.25.27_1.jpg" index="3">~~
однако при последующем входе в настройки драйвера колонка комната пуста. filename="Скриншот 2015-11-07 12.38.41.jpg" index="2">~~ `
Судя по всему это баг. Но не страшный.@kID:2. Не совсем понимаю смысл кнопки добавить порт. Создаю порт P16, выбираю тип Inernal Sensor -> сохранить выйти, нового объекта не создается. Соответственно контролировать его значение я не могу. `
Не могу воспроизвести
После того, как закрыл и открыл снов
@kID:3. Как называется левая колонка в окошке драйвера как менять ее значения и как ей пользоваться filename="Скриншот 2015-11-07 12.38.41_1.jpg" index="1">~~ `
Это, я так понимаю, имя порта. Разве нет?@kID:Это значение ни где не фигурирует, в частности порт A6-P14 в драйвере а в списке объектов p14_P14 `
Баг. -
@kID:2. Не совсем понимаю смысл кнопки добавить порт. Создаю порт P16, выбираю тип Inernal Sensor -> сохранить выйти, нового объекта не создается. Соответственно контролировать его значение я не могу. `
@Bluefox:Не могу воспроизвести `
Я имею в виду что на закладке объекты ( в дереве соответствующей меге)не создалось этого порта.@kID:3. Как называется левая колонка в окошке драйвера как менять ее значения и как ей пользоваться `
@Bluefox:Это, я так понимаю, имя порта. Разве нет? `
А что тогда в колонке под названием имя?И еще на вашем скриншоте драйвера как то особенно прописаны порты. Надо так как у вас т.е ioBroker webport указать 8081
А порт прописанный на меге вписываем в строчку к ее адресу?
-
@kID:Вот еще какая штука выявилась
Простой скрипт при замыкании P7 инвертирует P6
var request = require('request'); var url = 'http://192.168.88.12/sec/?pt=0&cmd=6:2'; on('megad.0.p7_P7', function (obj) { log((new Date()).toString() + " " + JSON.stringify(obj.newState)); if (obj.newState.val === 'true' || obj.newState.val === true) { request(url); } });
Однако работает это следующим образом: вначале скрипт отрабатывает как надо, но затем когда происходит плановый опрос все повторяется опять. (Я так понял)
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p7_P7
! javascript.0 2015-11-07 13:42:56 info javascript.0 script.js.Mega_script_p7: Sat Nov 07 2015 13:42:56 GMT+0600 (NOVT) {"val":false,"ts":1446882176,"ack":true,"lc":1446882176,"from":"system.adapter.megad.0"}
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p15_A7
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p14_A6
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p13_P13
! megad.0 2015-11-07 13:42:56 debug inMem message megad.0.* megad.0.p7_P7
! megad.0 2015-11-07 13:42:56 debug megad.0 detected new value on port [15]: 25, calc state 25
! megad.0 2015-11-07 13:42:56 debug megad.0 detected new value on port [14]: 31, calc state 31
! megad.0 2015-11-07 13:42:56 debug megad.0 reported new state for port 7 - 0
! megad.0 2015-11-07 13:42:56 debug megad.0 detected new state on port [7]: 0
! megad.0 2015-11-07 13:42:56 debug megad.0 Response for 192.168.88.12[all]: OFF;OFF;;;;;OFF;OFF/31;OFF/3;;;;;;31;25
! javascript.0 2015-11-07 13:42:56 info javascript.0 script.js.Mega_script_p7: Sat Nov 07 2015 13:42:56 GMT+0600 (NOVT) {"val":true,"ts":1446882176,"ack":true,"lc":1446882176,"from":"system.adapter.megad.0"}
! megad.0 2015-11-07 13:42:56 debug megad.0 getPortState http://192.168.88.12/sec/?cmd=all
! megad.0 2015-11-07 13:42:38 debug inMem message megad.0.* megad.0.p7_P7
! javascript.0 2015-11-07 13:42:38 info javascript.0 script.js.Mega_script_p7: Sat Nov 07 2015 13:42:38 GMT+0600 (NOVT) {"val":false,"ts":1446882158,"ack":true,"lc":1446882158,"from":"system.adapter.megad.0"}
! megad.0 2015-11-07 13:42:37 debug inMem message megad.0.* megad.0.p7_P7
! megad.0 2015-11-07 13:42:37 debug megad.0 reported new state for port 7 - true
! javascript.0 2015-11-07 13:42:37 info javascript.0 script.js.Mega_script_p7: Sat Nov 07 2015 13:42:37 GMT+0600 (NOVT) {"val":true,"ts":1446882158,"ack":true,"lc":1446882158,"from":"system.adapter.megad.0"}
! megad.0 2015-11-07 13:42:37 debug megad.0 detected new state on port [7]: true `
Обновил версию. Можешь попробовать? -
@kID:Я имею в виду что на закладке объекты ( в дереве соответствующей меге)не создалось этого порта. `
Иногда надо в admin нажимать F5. У меня работает
@kID:3. Как называется левая колонка в окошке драйвера как менять ее значения и как ей пользоваться
А что тогда в колонке под названием имя? `
Можно задать собственное имя порта. И как то надо же нумеровать порты. Я бы их мог назвать 0-15.А так можно сделать p0_light, p1_fan, p3_temperature итд.
@kID:И еще на вашем скриншоте драйвера как то особенно прописаны порты. Надо так как у вас т.е ioBroker webport указать 8081
А порт прописанный на меге вписываем в строчку к ее адресу? `
У меня симулятор меги, а не настоящая мега. Но я сделал так, что когда мега будет не только на 80м порту работать, то и это будет поддерживаться. А симулятор бежит на 8087 -
Обновил версию. Можешь попробовать? `
По сработке портов все как было, так и осталось. Я вот что думаю: У Вас получилось воспроизвести описанную мной ситуацию? Может это мне удалось словить какой то зловредный глюк. Потому как описываемая мной ситуация достаточна критична, но никто кроме меня это не подтверждает.Если надо то буду писать логи и экспериментировать, но если это только моя проблема то наверно надо просто все переустановить.
И дальше по созданию нового порта
@kID:Я имею в виду что на закладке объекты ( в дереве соответствующей меге) не создалось этого порта. `
@Bluefox:Иногда надо в admin нажимать F5. У меня работает `
У меня так не получаетсяДобавляю новый драйвер, считываю настройки с меги и сразу добавляю новый порт. Сохраняю.
filename="Скриншот 2015-11-11 19.30.50.jpg" index="2">~~
Смотрю в лог какие объекты создались. P16 нету.
filename="Скриншот 2015-11-11 19.30.38.jpg" index="1">~~
Соответственно в списках объектов тоже пусто (даже после F5)
filename="Скриншот 2015-11-11 19.31.05.jpg" index="0">~~
Но заметте тип порта я указываю InernalSensor. При любом другом типе все получается. -
Я смог воспроизвести ошибку. Там что то всё поломалось после прошлой оптимизации.
Я поправил и с твоим скриптом ошибок больше не было.
Ну хоть trace покажи.
-
Ну хоть trace покажи.
`
Если буду знать где он у меня то обязательно покажу :lol:Это Вы про лог?
-
-
Да я лог имел ввиду. `
А дебаг включить только у драйвера меги? -
Да
-
Ну хоть trace покажи.
`
! ````
megad.0 2015-11-12 22:03:10 debug inMem message megad.0.* megad.0.p8_P8
megad.0 2015-11-12 22:03:09 debug inMem message megad.0.* megad.0.p15_A7
megad.0 2015-11-12 22:03:09 debug inMem message megad.0.* megad.0.p14_A6
javascript.0 2015-11-12 22:03:10 info javascript.0 script.js.Mega_script_p8: Thu Nov 12 2015 22:03:10 GMT+0600 (NOVT) {"val":false,"ts":1447344190,"ack":true,"lc":1447344190,"from":"system.adapter.megad.0"}
megad.0 2015-11-12 22:03:09 debug inMem message megad.0.* megad.0.p13_P13
megad.0 2015-11-12 22:03:09 debug megad.0 set state for port 8 back to false
megad.0 2015-11-12 22:03:09 debug inMem message megad.0.* megad.0.p8_P8
megad.0 2015-11-12 22:03:09 debug inMem message megad.0.* megad.0.p6_P6
megad.0 2015-11-12 22:03:09 debug megad.0 detected new value on port [15]: 0, calc state 0
megad.0 2015-11-12 22:03:09 debug megad.0 detected new value on port [14]: 0, calc state 0
megad.0 2015-11-12 22:03:09 debug megad.0 reported new state for port 8 - true
megad.0 2015-11-12 22:03:09 debug megad.0 detected new state on port [8]: 0
megad.0 2015-11-12 22:03:09 debug megad.0 detected new value on port [6]: true
megad.0 2015-11-12 22:03:09 debug megad.0 Response for 192.168.88.12[all]: OFF;OFF;;;;;ON;OFF/3;OFF/9;;;;;;0;0
javascript.0 2015-11-12 22:03:09 info javascript.0 script.js.Mega_script_p8: [object Object]
javascript.0 2015-11-12 22:03:09 info javascript.0 script.js.Mega_script_p8: Thu Nov 12 2015 22:03:09 GMT+0600 (NOVT) {"val":true,"ts":1447344190,"ack":true,"lc":1447344190,"from":"system.adapter.megad.0"}
megad.0 2015-11-12 22:03:09 debug megad.0 getPortState http://192.168.88.12/sec/?cmd=all
megad.0 2015-11-12 22:02:47 debug inMem message megad.0.* megad.0.p8_P8
javascript.0 2015-11-12 22:02:47 info javascript.0 script.js.Mega_script_p8: Thu Nov 12 2015 22:02:47 GMT+0600 (NOVT) {"val":false,"ts":1447344167,"ack":true,"lc":1447344167,"from":"system.adapter.megad.0"}
megad.0 2015-11-12 22:02:47 debug megad.0 set state for port 8 back to false
javascript.0 2015-11-12 22:02:47 info javascript.0 script.js.Mega_script_p8: [object Object]
megad.0 2015-11-12 22:02:47 debug inMem message megad.0.* megad.0.p8_P8
javascript.0 2015-11-12 22:02:47 info javascript.0 script.js.Mega_script_p8: Thu Nov 12 2015 22:02:47 GMT+0600 (NOVT) {"val":true,"ts":1447344167,"ack":true,"lc":1447344167,"from":"system.adapter.megad.0"}
megad.0 2015-11-12 22:02:47 debug megad.0 reported new state for port 8 - true
megad.0 2015-11-12 22:02:47 debug megad.0 detected new state on port [8]: true
megad.0 2015-11-12 22:02:40 debug inMem message megad.0.* megad.0.p15_A7
megad.0 2015-11-12 22:02:40 debug inMem message megad.0.* megad.0.p14_A6
megad.0 2015-11-12 22:02:39 debug inMem message megad.0.* megad.0.p13_P13
megad.0 2015-11-12 22:02:39 debug inMem message megad.0.* megad.0.p6_P6
megad.0 2015-11-12 22:02:39 debug inMem message megad.0.* megad.0.p1_P1
megad.0 2015-11-12 22:02:39 debug inMem message megad.0.* megad.0.p0_P0
megad.0 2015-11-12 22:02:39 debug megad.0 detected new value on port [15]: 14, calc state 14
megad.0 2015-11-12 22:02:39 debug megad.0 detected new value on port [14]: 18, calc state 18
megad.0 2015-11-12 22:02:39 debug megad.0 detected new state on port [8]: 0
megad.0 2015-11-12 22:02:39 debug megad.0 detected new state on port [7]: 0
megad.0 2015-11-12 22:02:39 debug megad.0 detected new value on port [6]: false
megad.0 2015-11-12 22:02:39 debug megad.0 detected new value on port [1]: false
megad.0 2015-11-12 22:02:39 debug megad.0 detected new value on port [0]: false
megad.0 2015-11-12 22:02:39 debug megad.0 Response for 192.168.88.12[all]: OFF;OFF;;;;;OFF;OFF/3;OFF/8;;;;;;18;14
megad.0 2015-11-12 22:02:39 debug megad.0 getPortState http://192.168.88.12/sec/?cmd=allКак то так ~~@Bluefox:~~ > Я поправил и с твоим скриптом ошибок больше не было. ` Я всяко не претендую на правильность в своем скрипте, если он противоречит канонам программирования подскажите где ;)
-
Спасибо с версией 1.0.6 повторного изменения состояния входа не происходит и скрипт заработал как надо.
Но появился, либо ранее был не замечен следующий глюк:
Попытался пересадить вторую мегу - megad.1 на другой порт (81) в драйвере и на устройстве. Тут же перестали восприниматься команды от megad.0 драйвер и устройство которой висели на 80 порту. Когда в устройстве megad.0 поменял на 81 порт все заработало, но в этот момент в драйвере megad.0 прописан 80 порт. Получается что слушается лишь порт устройства с более высоким номером.
-
@kID:Спасибо с версией 1.0.6 повторного изменения состояния входа не происходит и скрипт заработал как надо.
Но появился, либо ранее был не замечен следующий глюк:
Попытался пересадить вторую мегу - megad.1 на другой порт (81) в драйвере и на устройстве. Тут же перестали восприниматься команды от megad.0 драйвер и устройство которой висели на 80 порту. Когда в устройстве megad.0 поменял на 81 порт все заработало, но в этот момент в драйвере megad.0 прописан 80 порт. Получается что слушается лишь порт устройства с более высоким номером. `
А зачем пересаживать мегу на 81 порт? Оставь обе меги на 80. Драйвера умеют посылать друг другу сообщения.