Подключение контроллера MegaD-328

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Подключение контроллера MegaD-328

Сообщение Jager » Вт дек 09, 2014 8:43 am

Bagir писал(а):Попробовал сейчас и выпал с осадок. Я даже не предполагал, что в режиме P&R выход будет второй раз переключаться при отпускании кнопки.
Я писал вам об этом пару страниц назад :) но видимо не смог донести мысль.
Вечером буду пробовать ваш новый вариант.
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Подключение контроллера MegaD-328

Сообщение zelevova » Вт дек 09, 2014 10:41 am

sergejey писал(а):Аналогичная ситуация, причём я сам забываю какая кнопка/комбинация за что отвечает, если их больше одной :) Например, есть пульты Ноолайт с тремя кнопками, каждая из которых, кроме включения/выключения, может быть настроена ещё на какую-то реакцию на долгое нажатие. Так вот, меня хватает запомнить, что делает одна кнопка из трёх без каких либо комбинаций ))
Я пока тестировал сделал на длительное нажатие автовыключение света через 30 секунд. И жена как то умудрилась его активировать. Сначала удивилась и уточнило что это было, а потом попросила сделать так со всеми выключателями.
Так что пара интуитивна понятных функций на кнопку самое то. Если больше то нужно рядом с выключателем инструкцию вешать что бы не забыть. :)
Насчет P&R можно попробовать поговорить с Андреем что бы прошивку дописал. Что бы режимы P и P&R настраивались отдельно для сервера и автономной работы, но сдается мне что мы опять упремся в ограниченность памяти меги.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Аватара пользователя
Kod.Begemot
Сообщения: 358
Зарегистрирован: Чт июн 20, 2013 5:53 pm
Благодарил (а): 32 раза
Поблагодарили: 42 раза

Re: Подключение контроллера MegaD-328

Сообщение Kod.Begemot » Вт дек 09, 2014 10:49 am

zelevova писал(а):Насчет P&R можно попробовать поговорить с Андреем что бы прошивку дописал. Что бы режимы P и P&R настраивались отдельно для сервера и автономной работы, но сдается мне что мы опять упремся в ограниченность памяти меги.
Тут надежда на альтернативную прошивку - которую там разрабатывают в отдельной ветке. Обещают большое освобождение памяти за счет выноса интерфейса из меги в внешний скрипт посредством json. Я написал в той ветке, спросил - жду пока ответа :)
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Вт дек 09, 2014 12:15 pm

Jager писал(а):Я писал вам об этом пару страниц назад :) но видимо не смог донести мысль.
Да, точно, я просто не предполагал, что в автономке Мега будет работать тоже как P&R. Конечно нужна отдельная настройка для режима автономки и сервера.
Jager писал(а):но сдается мне что мы опять упремся в ограниченность памяти меги.
С этим просто беда. Столько полезного не может быть сделано по этой причине. И раз уж так, то вынести интерфейс в скрипт - очень здравая идея.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Подключение контроллера MegaD-328

Сообщение zelevova » Вт дек 09, 2014 12:36 pm

to Bagir: Сдается мне что проверка меги через проверку температуры не совсем корректно работает.
видимо в методе getData нужно скорректировать код на

Код: Выделить всё

// Обработка ответа в зависимости от его типа
switch ($params['port']) {
// Температура внутреннего датчика
case 'tget':
  // Проверить $dt на число и Записать в свойство объекта 
  if (is_numeric($dt)) {  
    $this->setProperty('temperature', $dt);
    // Установить флаг "живой"
    $this->setProperty('alive', 1);
    $alive_timeout=(int)$this->getProperty('aliveTimeOut');
    if (!$alive_timeout) { $alive_timeout=15*60; }
       setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
  } else {
    if ($reclog) { $log->error('Failed to get data internal temperature sensor for object '.$ot); }
  }  
  
  break;
то есть устанавливать что живой только если получили температуру.
У меня сейчас все меги временно выключены и все равно alive выставляется в 1. Судя по коду просто потому что мы у них спрашиваем температуру и не важно что пришло в ответ.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Вт дек 09, 2014 12:43 pm

Думаю что нет. Дело в том, что Мега отвечает температурой только на новой прошивке. Если прошивка старая, то в переменной $dt будет код всей ее странички. Но ответ то все равно есть! Значит Мега ответила на запрос, а следовательно - она живая.
Поэтому условие is_numeric($dt) я задумал только для записи значения $dt в свойство температуры. А свойство alive выставляю в 1 в любом случае, если пришел ответ, и не важно какой он. Но при этом оставляю крит "Failed to get data internal temperature sensor for object"
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Вт дек 09, 2014 12:44 pm

Понял идею! Сейчас все проверю
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Подключение контроллера MegaD-328

Сообщение zelevova » Вт дек 09, 2014 12:48 pm

Как вариант если температуру получили не числом еще делать проверку пингом.
Ну или оставить этот метод только для новых прошивок.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Вт дек 09, 2014 12:49 pm

Может просто посмотреть, что если ответ непустой, то значит Мега живая.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Подключение контроллера MegaD-328

Сообщение zelevova » Вт дек 09, 2014 12:52 pm

Что то я не могу сообразить.
Можешь код для "case 'tget':" выложить? или класс обновить. ;)
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Ответить