[Модуль] MegaD (megad)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Модуль "MegaD"

Сообщение zelevova » Чт окт 29, 2015 5:04 pm

По хорошему бы галочку "учитывать не учитывать сценарии по умолчанию" сделать.Совсем от них отказываться не хочется...
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
OlegM
Сообщения: 97
Зарегистрирован: Пт май 15, 2015 3:28 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: Модуль "MegaD"

Сообщение OlegM » Пт окт 30, 2015 4:11 am

Есть пару вопросов.

Поскольку в МД обновление сценариев происходит раз в секунду, написал внешний скрипт на 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);
 
Плавное выключение происходит приятно, но на время выключения света МД ждет завершение внешнего скрипта и только после того как он выполняется до конца дает что либо делать дальше. Как можно сделать, чтобы он выполнял скрипт, но при этом сам МД был доступен на выполнение других операций?

Второй вопрос

Хотелось бы с кнопки управлять димером при быстром нажатии включалось/выключалось, при долгом нажатии увеличивалось/уменьшалось пока не отпустишь. Кто нибудь писал такой метод? Если есть какие соображения по этому вопросу - поделитесь пожалуйста. :)
in4m
Сообщения: 15
Зарегистрирован: Сб июл 26, 2014 12:01 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение in4m » Пт окт 30, 2015 10:57 pm

БАГРЕПОРТ:
Похоже модуль обрезает строку запроса по длине к 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"

Сообщение sergejey » Пн ноя 02, 2015 11:04 am

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
А из какого места получилась строка "22:50:35 ..."?
В модуле каких-либо обрезаний данных не нашёл.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
in4m
Сообщения: 15
Зарегистрирован: Сб июл 26, 2014 12:01 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение in4m » Пн ноя 02, 2015 8:51 pm

строка "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.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль "MegaD"

Сообщение sergejey » Вт ноя 03, 2015 10:42 am

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.
А это не может быть глюк самой меги? Просто $_SERVER['REQUEST_URI'] всегда содержит передаваемый URL, а он уже формируется самой мегой.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
in4m
Сообщения: 15
Зарегистрирован: Сб июл 26, 2014 12:01 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение in4m » Вт ноя 03, 2015 12:51 pm

sergejey писал(а):
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.
А это не может быть глюк самой меги? Просто $_SERVER['REQUEST_URI'] всегда содержит передаваемый URL, а он уже формируется самой мегой.
Может и глюк, попробую либо дождаться новых прошивок, либо откатиться на предыдущие.
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Модуль "MegaD"

Сообщение Victor_S » Чт ноя 05, 2015 8:39 am

Какая-то проблема с модулем имеется. Вчера наблюдал следующую картинку. Срабатывание двух входов на меге(5 и 6) наблюдаю визуально(по индикаторам), в веб-интерфейсе самой меги, а в МД - только срабатываение 5-го входа, 6-ой без изменений. Если нажать кнопочку обновить в модуле - появляется правильный статус и 6-го входа, но только таким принудительным способом. Попробовал в модуле просто дать команду сохранить конфигурацию - наглухо повесил мегу. Не помогает сброс питания, она перестала видеться по сети. При этом в модуле она видна, он что-то с нее читает и даже пишет, не выдавая никаких ошибок. При этом конфигуратор самой меги ее даже в сети не видит. Подробней разбираться было некогда - отложил на выходные...
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Модуль "MegaD"

Сообщение Victor_S » Пт ноя 06, 2015 11:15 am

В общем сделал мне модуль после попытки обновления прошивки из Меги "кирпич"...:( Не помогает даже режим восстановления описанный на сайте производителя. Сегодня сконфигурирую запасную Мегу и вечером поставлю в шкаф, посмотрим как она будет отображать статус 6-го входа. Если кто рискнет обновить прошивку Меги через модуль сейчас - дайте знать о результатах.
in4m
Сообщения: 15
Зарегистрирован: Сб июл 26, 2014 12:01 am
Благодарил (а): 0
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение in4m » Пт ноя 06, 2015 9:58 pm

Victor_S писал(а):В общем сделал мне модуль после попытки обновления прошивки из Меги "кирпич"...:( Не помогает даже режим восстановления описанный на сайте производителя. Сегодня сконфигурирую запасную Мегу и вечером поставлю в шкаф, посмотрим как она будет отображать статус 6-го входа. Если кто рискнет обновить прошивку Меги через модуль сейчас - дайте знать о результатах.
Такая же фигня была, когда неудачно с ноута отработал скрипт и завис на перепрошивке с очисткой EEPROM.
Ноуту присвоил ip 192.168.0.1 зальше запустил скрипт прошивки megad-cfg.php --fw megad-328.hex -f -e
На моменте поиска девайса, передернул питание Меге.
Мега восстановилась.
Ответить