Плагин MegaD
-
Подскажите как в IH создать канал для выключателя, для примера выключатель на 1 канале, лампочка на 15 канале, пробую ничего не получается, помогите. хочу использовать IH без помощи megad.
Нужно написать сценарий:
если выключатель вкл, то включить лампочку
если выключатель выкл, то выключить лампочку
если выключатель кнопочный, то использовать toggle
а можно с принтскринами а то уже 3 день мучаюсь
-
а можно с принтскринами а то уже 3 день мучаюсь
А чего мучаться-то? Информации в инете уже полно. Не тут, так на других форумах. Надо учиться искать информацию, анализировать и пробовать. Вам надо в расширениях плагина MegaD прописать несколько строк для выключателей подключенных к соответствующим входам MegaD - там же установить каким выходом будете управлять и сообщать системе что будет меняться. Вот, например, тут я подобное делал: https://www.ab-log.ru/forum/viewtopic.php?f=1&t=652&start=280#p35032
Блин, ну реально вскипятили. Неужели трудно 20 страниц этой темы почитать??? Все есть! Вот еще мой пример: https://frm.intrahouse.ru/viewtopic.php?f=18&t=5312&start=140#p8737
Если уж из этого не понятно, то платите деньги специалистам, а сами заканчивайте с умным домом.
-
а можно с принтскринами а то уже 3 день мучаюсь
В документации по плагину MegaD https://ih-systems.com/ru/product/plugin-megad/ есть описание по сработке геркона:
В Вашем случае вместо геркона будет кнопка.Передать в ответ 15:2 - будет toggle
Установить состояние канала 15=TOGGLE
На самой меге:
1.Прописать адрес сервера intraHouse
2.Прописать имя скрипта такое же, как в запросе (например на скриншоте - megad)
3.Настроить порт 1 в режим P, чтобы он отправлял только при нажатии
-
Соберите на столе схему, с тем же контроллером и тем же датчиком, без вашей системы проводов.
Если проблему повторить не сможете - она в проводах.
Собрал схему, которая была реализована в реале когда контроллер перезагружался (был добавлен DHT22). Единственное - нет "земляной петли", которая есть на моей схеме, нет больших длин витухи до герметичных DS18B20 (подсоединены своими проводами) и нет доп. подтяжки (резисторы на 4,7кОм). Прошивка fw: 4.26b1, конфигурацию сделал вручную по образу и подобию рабочей MegaD.
Итог - сегодня контроллер перезагрузился, проработав около 8,5 дней… Поскольку лог не писал, то на каком месте споткнулся - вопрос. Надо обновить прошивку до последней и начать писать дамп или лог. Вероятно, Андрей не хочет ждать 8-10 дней чтобы воспроизвести ситуацию.
-
Еще бы лог с ИБП добавить, вдруг его скачек напряжения сбивает.
-
Если контроллер выдает в качестве температуры string "NA" (DS18B20) или совсем ничего (пустая страничка device list для шины 1W), как в системе можно настроить отображение ошибки на устройстве?
-
Если контроллер выдает в качестве температуры string "NA" (DS18B20) или совсем ничего (пустая страничка device list для шины 1W), как в системе можно настроить отображение ошибки на устройстве?
"Установить ошибку если нет данных в течение (сек)" не работает?
-
Если контроллер выдает в качестве температуры string "NA" (DS18B20) или совсем ничего (пустая страничка device list для шины 1W), как в системе можно настроить отображение ошибки на устройстве?
"Установить ошибку если нет данных в течение (сек)" не работает?
Да, действительно работает! У меня галочки стояли, но время было 0. Теперь все отображается. А можно пример сценария - если "Device timeout error", то послать сообщение по telegram.
-
А можно пример сценария - если "Device timeout error", то послать сообщение по telegram.
1. Можно так:
2. Лучше так:
Здесь запускаем таймер. И если ошибка еще присутствует отсылаем сообщение.3. Но еще лучше, сделать мультисценарий
-
@intrahouse:
А можно пример сценария - если "Device timeout error", то послать сообщение по telegram.
1. Можно так:
scen110.jpg
2. Лучше так:
scen111.jpg
Здесь запускаем таймер. И если ошибка еще присутствует отсылаем сообщение.
3. Но еще лучше, сделать мультисценарий
Спасибо конечно за вариант с "блокли". Но интересует больше мультисценарий. В API есть две команды x.error и x.isError(). Вот какую для чего использовать? И как правильно прописывать в startOnChange - startOnChanged(sensor, sensor.isChanged("error"))? Чтобы не делать 5 итераций…для подбора нужной.
-
Сделать блоки, переключиться на отображение сценария, посмотреть синтаксис?
-
А у аналогового актуатора "установить ошибку, если нет данных в течении __ сек" можно, а в блоках состояния "ошибка" у него нет.
-
Но интересует больше мультисценарий. В API есть две команды x.error и x.isError(). Вот какую для чего использовать? И как правильно прописывать в startOnChange - startOnChanged(sensor, sensor.isChanged("error"))? Чтобы не делать 5 итераций…для подбора нужной.
Мыслите абсолютно верно
Но конструкция startOnChanged(sensor, sensor.isChanged("error")) не работает
Вот рабочий вариант
/** * @name Ошибка датчика * @desc * @version 4 */ const sensor = Device("SensorA","Датчик "); startOnChange(sensor); script({ start() { if (this.isChanged(sensor, "err")) { if (sensor.isError()) { this.log(sensor.fullName +'. Ошибка! '+sensor.error)); } else { this.log(sensor.fullName +' ОK. Значение '+sensor.value); } } } });
this.isChanged(sensor, "err") - этот сценарий (this) был вызван, потому что изменилось свойство "err" устройства sensor
Обратите внимание, здесь err, а не error.
sensor.isError() - это метод - возвращает true/false
sensor.error - это свойство (без скобок) - возвращает саму ошибку
Результат в отладчике:
log: Датчик температуры 1этаж/Холл. Ошибка! Device timeout error!
-
Мыслите абсолютно верно
Но конструкция startOnChanged(sensor, sensor.isChanged("error")) не работает
Вот рабочий вариант
> /** > * @name Ошибка датчика > * @desc > * @version 4 > */ > > const sensor = Device("SensorA","Датчик "); > > startOnChange(sensor); > > script({ > start() { > if (this.isChanged(sensor, "err")) { > if (sensor.isError()) { > this.log(sensor.fullName +'. Ошибка! '+sensor.error)); > } else { > this.log(sensor.fullName +' ОK. Значение '+sensor.value); > } > } > } > }); >
this.isChanged(sensor, "err") - этот сценарий (this) был вызван, потому что изменилось свойство "err" устройства sensor
Обратите внимание, здесь err, а не error.
sensor.isError() - это метод - возвращает true/false
sensor.error - это свойство (без скобок) - возвращает саму ошибку
Результат в отладчике:
> log: Датчик температуры 1этаж/Холл. Ошибка! Device timeout error! >
Если sensor.error равен 1, что это значит? Почему-то по части температурных датчиков вылазит "… Ошибка: 1". Такое ощущение, что выход из диапазона? Можно вместо 1, по аналогии с "Device timeout error!" как-то передавать значения типа "Device Value below limit" или "Device Value above limit"?
-
Если sensor.error равен 1, что это значит? Почему-то по части температурных датчиков вылазит "… Ошибка: 1". Такое ощущение, что выход из диапазона? Можно вместо 1, по аналогии с "Device timeout error!" как-то передавать значения типа "Device Value below limit" или "Device Value above limit"?
Да, Вы правы, это выход из диапазона. Не найдено текстовое сообщение для ошибки, поэтому число :oops: Поправим
-
Если sensor.error равен 1, что это значит? Почему-то по части температурных датчиков вылазит "… Ошибка: 1". Такое ощущение, что выход из диапазона? Можно вместо 1, по аналогии с "Device timeout error!" как-то передавать значения типа "Device Value below limit" или "Device Value above limit"?
Да, Вы правы, это выход из диапазона. Не найдено текстовое сообщение для ошибки, поэтому число :oops: Поправим
Что-то как-то неадекватно работает. Посмотрю конечно по журналу устройства какие были значения, но пока корреляции просто нет!
-
Что-то как-то неадекватно работает. Посмотрю конечно по журналу устройства какие были значения, но пока корреляции просто нет!
В чем неадекватность - ошибки быть не должно? Или диагностика неверная?
-
Беда с восстановлением выходов. Такое ощущение, что где-то в плагине есть проблема.
Условия - все устройства, привязанные к выходам MegaD выключены. Выходы на MegaD выключены. Перепрошиваю MegaD со стиранием eeprom и загрузкой конфигурации - вдруг все ее выходы, к которым привязаны устройства в УД (ничего не привязано только к порту 22), оказываются включенными. Поймал отладчиком все что происходит в момент загрузки новой прошивки и конфигурации:
14.03 15:42:31.668 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?st=1 14.03 15:42:31.669 megad4: 192.168.11.24 <= localhost:11024 14.03 15:42:31.669 megad4: { type: 'startscene', id: 'MegaD_ST_to_Log', arg: '{"dev":"MegaD-2561-24 (Котельная)"}' } 14.03 15:42:31.670 IH: startscene MegaD_ST_to_Log 14.03 15:42:31.771 megad4: 14.03 15:42:31.772 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cf=7&stime=15:42:31:4 14.03 15:42:31.876 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:31.878 megad4: body: [Back](/sec/?cf=1) <form action="/sec/">Cur time: 15:42:31 [4] Set time: SCL: SDA: T: Act: T: Act: T: Act: T: Act: T: Act: </form> 14.03 15:42:31.878 IH: get [] 14.03 15:42:31.879 IH: set {} 14.03 15:42:31.972 megad4: 14.03 15:42:31.973 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=all 14.03 15:42:32.085 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:32.086 megad4: body: OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;OFF;OFF;OFF;OFF;OFF;OFF;ON;ON 14.03 15:42:32.087 IH: get [{"id":"8","value":"0"},{"id":"15","value":"1"},{"id":"16","value":"1"},{"id":"17","value":"1"},{"id":"18","value":"1"},{"id":"19","value":"1"},{"id":"20","value":"1"},{"id":"21","value":"1"},{"id":"23","value":"1"},{"id":"24","value":"1"},{"id":"25","value":"1"},{"id":"26","value":"1"},{"id":"27","value":"1"},{"id":"28","value":"1"},{"id":"30","value":"0"}] 14.03 15:42:32.088 IH: set {"SLEAKAGE1_02":{"dval":"0","err":0},"LAMP1_11":{"dval":"1","err":0},"PUMP_WATER2":{"dval":"1","err":0},"PUMP5":{"dval":"1","err":0},"PUMP3":{"dval":"1","err":0},"PUMP1":{"dval":"1","err":0},"PUMP4":{"dval":"1","err":0},"PUMP2":{"dval":"1","err":0},"ACTOR_WATER1":{"dval":"1","err":0},"VALVE_WATER1":{"dval":"1","err":0},"ACTOR_WATER2":{"dval":"1","err":0},"ACTOR_WATER3":{"dval":"1","err":0},"ACTOR_HEATING_SYS_01":{"dval":"1","err":0},"ACTOR_HEATING_SYS_02":{"dval":"1","err":0},"ST_HEATING_SYS_00":{"aval":"0","err":0}} 14.03 15:42:32.173 megad4: 14.03 15:42:32.174 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=30&cmd=get 14.03 15:42:32.181 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:32.181 megad4: body: OFF 14.03 15:42:32.182 IH: get [{"id":"30","value":"0"}] 14.03 15:42:32.182 IH: set {"ST_HEATING_SYS_00":{"aval":"0","err":0}} 14.03 15:42:32.375 megad4: 14.03 15:42:32.376 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list 14.03 15:42:32.383 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:32.384 megad4: body: [Back](/sec) P31/OFF <form action="/sec/">Type <select name="pty"><option value="255" selected="">NC</option><option value="0">In</option><option value="1">Out</option><option value="3">DSen</option><option value="4">I2C</option></select> </form> 14.03 15:42:32.577 megad4: 14.03 15:42:32.577 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=1 14.03 15:42:32.593 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:32.594 megad4: body: 10.00 14.03 15:42:32.594 IH: get [{"id":"34_1","value":"10"}] 14.03 15:42:32.594 IH: set {"STEMP4_01":{"aval":"10","err":0}} 14.03 15:42:32.778 megad4: 14.03 15:42:32.778 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=2 14.03 15:42:32.794 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:32.795 megad4: body: 0.00 14.03 15:42:32.795 IH: get [{"id":"34_2","value":"0"}] 14.03 15:42:32.796 IH: set {"SHUMIDITY4_01":{"aval":"0","err":0}} 14.03 15:42:32.978 megad4: 14.03 15:42:32.979 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280 14.03 15:42:32.995 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:32.995 megad4: body: 553.89 14.03 15:42:32.996 IH: get [{"id":"34_3","value":"553.89"}] 14.03 15:42:32.996 IH: set {"SPRESSURE4_01":{"aval":"553.89","err":0}} 14.03 15:42:36.782 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?st=1 14.03 15:42:36.783 megad4: 192.168.11.24 <= localhost:11024 14.03 15:42:36.784 megad4: { type: 'startscene', id: 'MegaD_ST_to_Log', arg: '{"dev":"MegaD-2561-24 (Котельная)"}' } 14.03 15:42:36.784 IH: startscene MegaD_ST_to_Log 14.03 15:42:36.796 megad4: 14.03 15:42:36.796 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cf=7&stime=15:42:36:4 14.03 15:42:36.803 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:36.803 megad4: body: [Back](/sec/?cf=1) <form action="/sec/">Cur time: 15:42:36 [4] Set time: SCL: SDA: T: Act: T: Act: T: Act: T: Act: T: Act: </form> 14.03 15:42:36.804 IH: get [] 14.03 15:42:36.804 IH: set {} 14.03 15:42:36.990 megad4: 14.03 15:42:36.991 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=15:1 14.03 15:42:36.996 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:36.997 megad4: body: Done 14.03 15:42:36.997 IH: get [{"id":"15","value":1}] 14.03 15:42:36.998 IH: set {"LAMP1_11":{"dval":1,"err":0}} 14.03 15:42:37.191 megad4: 14.03 15:42:37.192 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=16:1 14.03 15:42:37.198 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:37.199 megad4: body: Done 14.03 15:42:37.199 IH: get [{"id":"16","value":1}] 14.03 15:42:37.200 IH: set {"PUMP_WATER2":{"dval":1,"err":0}} 14.03 15:42:37.393 megad4: 14.03 15:42:37.393 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=17:1 14.03 15:42:37.400 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:37.401 megad4: body: Done 14.03 15:42:37.401 IH: get [{"id":"17","value":1}] 14.03 15:42:37.401 IH: set {"PUMP5":{"dval":1,"err":0}} 14.03 15:42:37.594 megad4: 14.03 15:42:37.595 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=18:1 14.03 15:42:37.600 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:37.601 megad4: body: Done 14.03 15:42:37.601 IH: get [{"id":"18","value":1}] 14.03 15:42:37.602 IH: set {"PUMP3":{"dval":1,"err":0}} 14.03 15:42:37.796 megad4: 14.03 15:42:37.796 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=19:1 14.03 15:42:37.803 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:37.803 megad4: body: Done 14.03 15:42:37.804 IH: get [{"id":"19","value":1}] 14.03 15:42:37.804 IH: set {"PUMP1":{"dval":1,"err":0}} 14.03 15:42:37.996 megad4: 14.03 15:42:37.997 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=20:1 14.03 15:42:38.003 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:38.004 megad4: body: Done 14.03 15:42:38.004 IH: get [{"id":"20","value":1}] 14.03 15:42:38.004 IH: set {"PUMP4":{"dval":1,"err":0}} 14.03 15:42:38.197 megad4: 14.03 15:42:38.198 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=21:1 14.03 15:42:38.399 megad4: 14.03 15:42:38.399 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=23:1 14.03 15:42:38.599 megad4: 14.03 15:42:38.600 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=24:1 14.03 15:42:38.686 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?st=1 14.03 15:42:38.687 megad4: 192.168.11.24 <= localhost:11024 14.03 15:42:38.688 megad4: { type: 'startscene', id: 'MegaD_ST_to_Log', arg: '{"dev":"MegaD-2561-24 (Котельная)"}' } 14.03 15:42:38.689 IH: startscene MegaD_ST_to_Log 14.03 15:42:38.800 megad4: 14.03 15:42:38.801 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cf=7&stime=15:42:38:4 14.03 15:42:38.813 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:38.814 megad4: body: [Back](/sec/?cf=1) <form action="/sec/">Cur time: 15:42:38 [4] Set time: SCL: SDA: T: Act: T: Act: T: Act: T: Act: T: Act: </form> 14.03 15:42:38.814 IH: get [] 14.03 15:42:38.815 IH: set {} 14.03 15:42:38.960 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:38.961 megad4: body: Done 14.03 15:42:38.961 IH: get [{"id":"24","value":1}] 14.03 15:42:38.961 IH: set {"VALVE_WATER1":{"dval":1,"err":0}} 14.03 15:42:39.001 megad4: 14.03 15:42:39.002 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=15:1 14.03 15:42:39.008 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:39.009 megad4: body: Done 14.03 15:42:39.009 IH: get [{"id":"15","value":1}] 14.03 15:42:39.010 IH: set {"LAMP1_11":{"dval":1,"err":0}} 14.03 15:42:39.201 megad4: 14.03 15:42:39.202 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=16:1 14.03 15:42:39.203 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:39.203 megad4: body: Done 14.03 15:42:39.204 IH: get [{"id":"21","value":1}] 14.03 15:42:39.205 IH: set {"PUMP2":{"dval":1,"err":0}} 14.03 15:42:39.210 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:39.211 megad4: body: Done 14.03 15:42:39.211 IH: get [{"id":"16","value":1}] 14.03 15:42:39.211 IH: set {"PUMP_WATER2":{"dval":1,"err":0}} 14.03 15:42:39.402 megad4: 14.03 15:42:39.402 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=17:1 14.03 15:42:39.412 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:39.413 megad4: body: Done 14.03 15:42:39.414 IH: get [{"id":"17","value":1}] 14.03 15:42:39.414 IH: set {"PUMP5":{"dval":1,"err":0}} 14.03 15:42:39.517 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:39.517 megad4: body: Done 14.03 15:42:39.517 IH: get [{"id":"23","value":1}] 14.03 15:42:39.518 IH: set {"ACTOR_WATER1":{"dval":1,"err":0}} 14.03 15:42:39.607 megad4: 14.03 15:42:39.607 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=18:1 14.03 15:42:39.613 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:39.614 megad4: body: Done 14.03 15:42:39.614 IH: get [{"id":"18","value":1}] 14.03 15:42:39.614 IH: set {"PUMP3":{"dval":1,"err":0}} 14.03 15:42:39.808 megad4: 14.03 15:42:39.809 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=19:1 14.03 15:42:39.815 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:39.815 megad4: body: Done 14.03 15:42:39.816 IH: get [{"id":"19","value":1}] 14.03 15:42:39.816 IH: set {"PUMP1":{"dval":1,"err":0}} 14.03 15:42:40.009 megad4: 14.03 15:42:40.009 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=20:1 14.03 15:42:40.015 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:40.016 megad4: body: Done 14.03 15:42:40.016 IH: get [{"id":"20","value":1}] 14.03 15:42:40.016 IH: set {"PUMP4":{"dval":1,"err":0}} 14.03 15:42:40.209 megad4: 14.03 15:42:40.210 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=21:1 14.03 15:42:40.215 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:40.216 megad4: body: Done 14.03 15:42:40.216 IH: get [{"id":"21","value":1}] 14.03 15:42:40.217 IH: set {"PUMP2":{"dval":1,"err":0}} 14.03 15:42:40.411 megad4: 14.03 15:42:40.411 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=23:1 14.03 15:42:40.417 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:40.418 megad4: body: Done 14.03 15:42:40.418 IH: get [{"id":"23","value":1}] 14.03 15:42:40.418 IH: set {"ACTOR_WATER1":{"dval":1,"err":0}} 14.03 15:42:40.611 megad4: 14.03 15:42:40.612 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=24:1 14.03 15:42:40.618 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:40.619 megad4: body: Done 14.03 15:42:40.619 IH: get [{"id":"24","value":1}] 14.03 15:42:40.620 IH: set {"VALVE_WATER1":{"dval":1,"err":0}} 14.03 15:42:40.812 megad4: 14.03 15:42:40.813 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=25:1 14.03 15:42:40.819 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:40.819 megad4: body: Done 14.03 15:42:40.820 IH: get [{"id":"25","value":1}] 14.03 15:42:40.820 IH: set {"ACTOR_WATER2":{"dval":1,"err":0}} 14.03 15:42:41.013 megad4: 14.03 15:42:41.013 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=26:1 14.03 15:42:41.020 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:41.021 megad4: body: Done 14.03 15:42:41.021 IH: get [{"id":"26","value":1}] 14.03 15:42:41.022 IH: set {"ACTOR_WATER3":{"dval":1,"err":0}} 14.03 15:42:41.215 megad4: 14.03 15:42:41.215 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=27:1 14.03 15:42:41.221 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:41.222 megad4: body: Done 14.03 15:42:41.222 IH: get [{"id":"27","value":1}] 14.03 15:42:41.223 IH: set {"ACTOR_HEATING_SYS_01":{"dval":1,"err":0}} 14.03 15:42:41.415 megad4: 14.03 15:42:41.416 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=28:1 14.03 15:42:41.422 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:41.423 megad4: body: Done 14.03 15:42:41.423 IH: get [{"id":"28","value":1}] 14.03 15:42:41.424 IH: set {"ACTOR_HEATING_SYS_02":{"dval":1,"err":0}} 14.03 15:42:41.617 megad4: 14.03 15:42:41.617 megad4: localhost => 192.168.11.24 HTTP GET /sec/?cmd=all 14.03 15:42:41.817 megad4: 14.03 15:42:41.818 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=30&cmd=get 14.03 15:42:41.834 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:41.835 megad4: body: temp:NA 14.03 15:42:42.018 megad4: 14.03 15:42:42.019 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list 14.03 15:42:42.101 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:42.102 megad4: body: e46477910b02:31.00;666877911402:31.18;35e977910902:29.50 14.03 15:42:42.103 IH: get [{"id":"31_e46477910b02","value":"31.00"},{"id":"31_666877911402","value":"31.18"},{"id":"31_35e977910902","value":"29.50"}] 14.03 15:42:42.103 IH: set {"ST_HEATING_SYS_02":{"aval":"31.00","err":0},"ST_HEATING_SYS_03":{"aval":"31.18","err":0},"ST_HEATING_SYS_01":{"aval":"29.50","err":0}} 14.03 15:42:42.219 megad4: 14.03 15:42:42.219 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=1 14.03 15:42:42.236 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:42.237 megad4: body: 15.90 14.03 15:42:42.237 IH: get [{"id":"34_1","value":"15.9"}] 14.03 15:42:42.238 IH: set {"STEMP4_01":{"aval":"15.9","err":0}} 14.03 15:42:42.420 megad4: 14.03 15:42:42.421 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=2 14.03 15:42:42.438 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:42.439 megad4: body: 58.06 14.03 15:42:42.439 IH: get [{"id":"34_2","value":"58.06"}] 14.03 15:42:42.440 IH: set {"SHUMIDITY4_01":{"aval":"58.06","err":0}} 14.03 15:42:42.622 megad4: 14.03 15:42:42.622 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280 14.03 15:42:42.639 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 14.03 15:42:42.639 megad4: body: 752.66 14.03 15:42:42.640 IH: get [{"id":"34_3","value":"752.66"}] 14.03 15:42:42.640 IH: set {"SPRESSURE4_01":{"aval":"752.66","err":0}}
PS: проанализировал. Проблема возникает в тот момент когда сетевые настройки в контроллер загружены, а конфигурация - нет. При этом в этот момент iH "читает" состояние портов и устанавливает состояние устройств. А после заливки конфига MegaD снова говорит st=1 и iH честно восстанавливает состояние выходов!!!
-
Я так и не понял :?
Вопросы к плагину есть?
-
@intrahouse:
Я так и не понял :?
Вопросы к плагину есть?
По результату анализа лога - к плагину вопросов нет! Опубликовал скорее для пользователей, чтобы они понимали откуда "растут ноги" - почему все выходы MegaD, привязанные к устройствам iH, могут включиться при обновлении прошивки контроллера.
Вопрос только к Вам - когда выделите время чтобы ваши сотрудники сделали последние доработки плагину (https://frm.intrahouse.ru/viewtopic.php?f=18&t=5312&start=170#p9015)?
Да,кстати, по функции поиска "расширений" в строке, которую присылает MegaD. Я тут делал голосового ассистента на основе mdmTerminal2 и сценария в iH и для поиска в строке нужных ключевых фраз использовал вот такую конструкцию:
const obj = JSON.parse(param); this.qry = obj.qry.toLowerCase(); if( this.qry.indexOf("ты тут") >= 0 ) { ... } else if( this.qry.indexOf("привет") >= 0 ) { ... }
Ассистент очень хорошо работает таким образом. Почему бы в плагине не использовать то же самое? Просто тупо - поиск подстроки (перебирать все имеющиеся "расширения") в строке, которую присылает MegaD?