[Модуль] MegaD (megad)
Модератор: immortal
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Модуль "MegaD"
По хорошему бы галочку "учитывать не учитывать сценарии по умолчанию" сделать.Совсем от них отказываться не хочется...
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 97
- Зарегистрирован: Пт май 15, 2015 3:28 pm
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Re: Модуль "MegaD"
Есть пару вопросов.
Поскольку в МД обновление сценариев происходит раз в секунду, написал внешний скрипт на php для того чтобы нарастание и убывание происходило плавно в течении 5-10 сек такого содержания:
mega_off.php
Создал сценарий такого типа:
Плавное выключение происходит приятно, но на время выключения света МД ждет завершение внешнего скрипта и только после того как он выполняется до конца дает что либо делать дальше. Как можно сделать, чтобы он выполнял скрипт, но при этом сам МД был доступен на выполнение других операций?
Второй вопрос
Хотелось бы с кнопки управлять димером при быстром нажатии включалось/выключалось, при долгом нажатии увеличивалось/уменьшалось пока не отпустишь. Кто нибудь писал такой метод? Если есть какие соображения по этому вопросу - поделитесь пожалуйста.
Поскольку в МД обновление сценариев происходит раз в секунду, написал внешний скрипт на php для того чтобы нарастание и убывание происходило плавно в течении 5-10 сек такого содержания:
mega_off.php
Код: Выделить всё
<?php
$ip = $_GET['ip'];
$pwd = $_GET['pwd'];
$port = $_GET['port'];
$pwm = $_GET['pwm'];
function get($ip, $pwd, $port, $pwm)
{
file_get_contents("http://".$ip."/".$pwd."/?pt=$port&pwm=$pwm");
}
if ($port == 10 || $port == 12 || $port == 13) {
while ($pwm > 0)
{
$pwm = $pwm - 5;
get ($ip, $pwd, $port, $pwm);
usleep(150000);
}
}
?>
Код: Выделить всё
getURL('http://localhost/mega_off.php?ip=10.10.100.10&pwd=sec&port=10&pwm='.getGlobal('MegaD1_10.value'),0);
Второй вопрос
Хотелось бы с кнопки управлять димером при быстром нажатии включалось/выключалось, при долгом нажатии увеличивалось/уменьшалось пока не отпустишь. Кто нибудь писал такой метод? Если есть какие соображения по этому вопросу - поделитесь пожалуйста.

-
- Сообщения: 15
- Зарегистрирован: Сб июл 26, 2014 12:01 am
- Благодарил (а): 0
- Поблагодарили: 2 раза
Re: Модуль "MegaD"
БАГРЕПОРТ:
Похоже модуль обрезает строку запроса по длине к megad.php
в результате вместо temp:24.00/hum:44.00; передается только te
22:50:35 DEBUG [root]: megad: /megad.php?mdid=2&all=temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;te (172.16.0.242) (at /var/www/lib/general.class.php:547)
Возможно обрезается весь запрос из php GET['all']
MegaD-14-IN, вывод ?cmd=all:
temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:24.00/hum:44.00;temp:-1.19;temp:25.93;temp:22.00/hum:51.00;temp:22.00/hum:49.00;temp:0.00/hum:0.00;OFF/0;1;4
Похоже модуль обрезает строку запроса по длине к megad.php
в результате вместо temp:24.00/hum:44.00; передается только te
22:50:35 DEBUG [root]: megad: /megad.php?mdid=2&all=temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;te (172.16.0.242) (at /var/www/lib/general.class.php:547)
Возможно обрезается весь запрос из php GET['all']
MegaD-14-IN, вывод ?cmd=all:
temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:24.00/hum:44.00;temp:-1.19;temp:25.93;temp:22.00/hum:51.00;temp:22.00/hum:49.00;temp:0.00/hum:0.00;OFF/0;1;4
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Модуль "MegaD"
А из какого места получилась строка "22:50:35 ..."?in4m писал(а):БАГРЕПОРТ:
Похоже модуль обрезает строку запроса по длине к megad.php
в результате вместо temp:24.00/hum:44.00; передается только te
22:50:35 DEBUG [root]: megad: /megad.php?mdid=2&all=temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;te (172.16.0.242) (at /var/www/lib/general.class.php:547)
Возможно обрезается весь запрос из php GET['all']
MegaD-14-IN, вывод ?cmd=all:
temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:0.00/hum:0.00;temp:24.00/hum:44.00;temp:-1.19;temp:25.93;temp:22.00/hum:51.00;temp:22.00/hum:49.00;temp:0.00/hum:0.00;OFF/0;1;4
В модуле каких-либо обрезаний данных не нашёл.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 15
- Зарегистрирован: Сб июл 26, 2014 12:01 am
- Благодарил (а): 0
- Поблагодарили: 2 раза
Re: Модуль "MegaD"
строка "22:50:35 ..." из X-Ray -> Debug, после раскоментирования строчки DebMes("megad: ".$_SERVER['REQUEST_URI']. " (".$_SERVER['REMOTE_ADDR'].")"); в megad.php
или когда выводишь через из php файла через DebMes GET['all'] или $_SERVER['REQUEST_URI']
когда данные в модуле все порты настроены как DSEN и обновление происходит через megad.php, то переменная портов дальше DSen 9 затирается (раньше писалось просто 'te'),
но стоит нажать кнопку в настройках модуля 'обновить' и данные обновляются корректно.
Глюк возникает только в меге с новым исполнительным модулем MegaD-14-IN.
или когда выводишь через из php файла через DebMes GET['all'] или $_SERVER['REQUEST_URI']
когда данные в модуле все порты настроены как DSEN и обновление происходит через megad.php, то переменная портов дальше DSen 9 затирается (раньше писалось просто 'te'),
но стоит нажать кнопку в настройках модуля 'обновить' и данные обновляются корректно.
Глюк возникает только в меге с новым исполнительным модулем MegaD-14-IN.
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Модуль "MegaD"
А это не может быть глюк самой меги? Просто $_SERVER['REQUEST_URI'] всегда содержит передаваемый URL, а он уже формируется самой мегой.in4m писал(а):строка "22:50:35 ..." из X-Ray -> Debug, после раскоментирования строчки DebMes("megad: ".$_SERVER['REQUEST_URI']. " (".$_SERVER['REMOTE_ADDR'].")"); в megad.php
или когда выводишь через из php файла через DebMes GET['all'] или $_SERVER['REQUEST_URI']
когда данные в модуле все порты настроены как DSEN и обновление происходит через megad.php, то переменная портов дальше DSen 9 затирается (раньше писалось просто 'te'),
но стоит нажать кнопку в настройках модуля 'обновить' и данные обновляются корректно.
Глюк возникает только в меге с новым исполнительным модулем MegaD-14-IN.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 15
- Зарегистрирован: Сб июл 26, 2014 12:01 am
- Благодарил (а): 0
- Поблагодарили: 2 раза
Re: Модуль "MegaD"
Может и глюк, попробую либо дождаться новых прошивок, либо откатиться на предыдущие.sergejey писал(а):А это не может быть глюк самой меги? Просто $_SERVER['REQUEST_URI'] всегда содержит передаваемый URL, а он уже формируется самой мегой.in4m писал(а):строка "22:50:35 ..." из X-Ray -> Debug, после раскоментирования строчки DebMes("megad: ".$_SERVER['REQUEST_URI']. " (".$_SERVER['REMOTE_ADDR'].")"); в megad.php
или когда выводишь через из php файла через DebMes GET['all'] или $_SERVER['REQUEST_URI']
когда данные в модуле все порты настроены как DSEN и обновление происходит через megad.php, то переменная портов дальше DSen 9 затирается (раньше писалось просто 'te'),
но стоит нажать кнопку в настройках модуля 'обновить' и данные обновляются корректно.
Глюк возникает только в меге с новым исполнительным модулем MegaD-14-IN.
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Модуль "MegaD"
Какая-то проблема с модулем имеется. Вчера наблюдал следующую картинку. Срабатывание двух входов на меге(5 и 6) наблюдаю визуально(по индикаторам), в веб-интерфейсе самой меги, а в МД - только срабатываение 5-го входа, 6-ой без изменений. Если нажать кнопочку обновить в модуле - появляется правильный статус и 6-го входа, но только таким принудительным способом. Попробовал в модуле просто дать команду сохранить конфигурацию - наглухо повесил мегу. Не помогает сброс питания, она перестала видеться по сети. При этом в модуле она видна, он что-то с нее читает и даже пишет, не выдавая никаких ошибок. При этом конфигуратор самой меги ее даже в сети не видит. Подробней разбираться было некогда - отложил на выходные...
-
- Сообщения: 265
- Зарегистрирован: Пт дек 26, 2014 1:58 pm
- Благодарил (а): 33 раза
- Поблагодарили: 24 раза
Re: Модуль "MegaD"
В общем сделал мне модуль после попытки обновления прошивки из Меги "кирпич"...
Не помогает даже режим восстановления описанный на сайте производителя. Сегодня сконфигурирую запасную Мегу и вечером поставлю в шкаф, посмотрим как она будет отображать статус 6-го входа. Если кто рискнет обновить прошивку Меги через модуль сейчас - дайте знать о результатах.

-
- Сообщения: 15
- Зарегистрирован: Сб июл 26, 2014 12:01 am
- Благодарил (а): 0
- Поблагодарили: 2 раза
Re: Модуль "MegaD"
Такая же фигня была, когда неудачно с ноута отработал скрипт и завис на перепрошивке с очисткой EEPROM.Victor_S писал(а):В общем сделал мне модуль после попытки обновления прошивки из Меги "кирпич"...Не помогает даже режим восстановления описанный на сайте производителя. Сегодня сконфигурирую запасную Мегу и вечером поставлю в шкаф, посмотрим как она будет отображать статус 6-го входа. Если кто рискнет обновить прошивку Меги через модуль сейчас - дайте знать о результатах.
Ноуту присвоил ip 192.168.0.1 зальше запустил скрипт прошивки megad-cfg.php --fw megad-328.hex -f -e
На моменте поиска девайса, передернул питание Меге.
Мега восстановилась.