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

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

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Вт дек 02, 2014 8:01 pm

Вот как раз сегодня получил очередную китайскую матрешку. Там были и ранее заказанные несколько DHT. Так что пример точно будет. Возможно даже завтра, вместе с обновлением. Так же добавил вариант замены пинга периодическим опросом температуры внутреннего датчика меги. Это и мегу проверяет, и заодно весь механизм получения данных. Плюс мы имеем в какой то степени полезные данные температуры. Еще из изменений - теперь логи пишутся в debmes не постоянно а только при включении этой опции.
По DHT там все должно быть очень просто. В нужной группе мы получаем слепленное значение температуры/влажности, парсим его по символу разделителю, и отправляем в нужные объекты датчиков температуры и влажности. Самому в базу данных из метода меги писать не нужно. Не стоит сильно загружать этот метод. Получили значение, распарсили, и только передали нужным объектам. В этом методе и так будет уже много кода. Да и никто не даст гарантию, что завтра вы не захотите заменить этот температурный датчик, подключенный к меге, например на Z-Wave или 1-Wire. Или наоборот.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Genok
Сообщения: 3
Зарегистрирован: Сб дек 06, 2014 5:50 pm
Откуда: Тула
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение Genok » Сб дек 06, 2014 5:58 pm

Помогите пожалуйста.
у меня у Mega при срабатывании порта в режиме "P" "MajorDoMo" запускает "MyMethod" и всё работает.
Mega отсылает "GET /megad15.php?pt=1 HTTP/1.1" 200 -

А в режиме "R" Mega отсылает "GET /megad15.php?pt=1&m=1 HTTP/1.1" 200 -
и уже MajorDoMo не реагирует .
метод "MyMethod" содержит лишь команду ($k=file_get_contents('http://192.168.3.16/sec/?cmd=5:2');)
в режиме "P&R" срабатывает только "P" ,а уже на "R" не реагирует. Файл /megad.php работает .
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Сб дек 06, 2014 6:33 pm

С виду все правильно. Но раз не работает, должны быть где то грабли. А если попробовать на другом порте в новой группе case?
Я бы рад помочь, но не представляю как. Вставляйте в код что то наподобие say('это случилось'); и ищите где прекращается выполнение. GET нормальный. Но что за megad15.php ? От куда он и что внутри?
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Genok
Сообщения: 3
Зарегистрирован: Сб дек 06, 2014 5:50 pm
Откуда: Тула
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение Genok » Вс дек 07, 2014 4:11 pm

Это я ошибся в описании .
megad15.php зто файл к которому обращается моя Mega

$op = 'm';
$object = 'Mega_15';
$m = 'MyMethod_15';

// $params['pt']
$k = file_get_contents('http://192.168.3.15/sec/?cmd=3:2');
include('./objects/index.php');

Проблема в том что при изменении ответа меги MajorDoMo перестаёт реагировать
MyMethod_15 :
say("Сработал вход ");
$k = file_get_contents('http://192.168.3.15/sec/?cmd=5:2');
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Вс дек 07, 2014 4:42 pm

Трудно так сходу чем то помочь. Мега штука крайне объемная. В моем классе реализовано два варианта. Принудительный запрос данных или же обработка полученного обращения к файлу megad.php В любом из этих вариантов все сливается в один метод incomingMessage, где поочередно сравнивается с шаблонами в попытке понять какого рода это сообщение. А дальше в группах case уже обрабатываются конкретные варианты.
Сегодня точно выложу обновления файла megad.php и класса. Сейчас тестирую в работе с тремя Мегами и разными задачами. Пока что полет нормальный.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Пн дек 08, 2014 4:46 am

Выложил обновление файла и класса http://smartliving.ru/forum/viewtopic.php?f=14&t=1832
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Пн дек 08, 2014 7:29 pm

Bagir писал(а):Выложил обновление файла и класса http://smartliving.ru/forum/viewtopic.php?f=14&t=1832
Обновился, не могу разобраться с отслеживанием нажатий.
Можно получить конкретный пример кода, например для управления освещением?
Одно нажатие-переключился выход 1 (включить минимальное освещение)
Двойное нажатие-переключился выход 2 (включилось максимальное освещение), выход 1 не меняет состояние
Длительное нажатие-переключился выход 3 (включилось фоновое освещение)
Сейчас у меня происходит непонятно что, одинарное нажатие срабатывает всегда, выход номер 1 меняет состояние как и положено. При двойном нажатии меняется состояние выхода 2 и выхода 1, а выход 3 меняет состояние при любом действии.
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Пн дек 08, 2014 7:41 pm

Как то все не так. Завтра выведу кнопку и еще раз сам попробую как все работает. Щиты с мегами у меня не у сервера. Я еще нигде это не прикрутил у себя на меге. Писал по просьбам трудящихся и из интереса к теме ))
По поводу того, что всегда срабатывает при простом нажатии. Так и должно быть. Момент нажатия все равно всегда присутствует при любой комбинации. Если по задумке не нужно, чтобы выход срабатывал на одинарное нажатие, если например нажато долгое или двойное, то надо использовать кусочек коде где написано "Отпустил". Там есть комментарии. Тогда одинарное простое нажатие будет фиксироваться системой в момент отпускания кнопки. И не должно фиксироваться если будет нажата комбинация.
Завтра полностью закончу монтаж щита и потяну от него управление. Так что в скором времени в моих объектах MegaD1-4 будет больше примеров реального использования. Пока что все примеры лежат в объекте MegaD99.
Разные комбинации нажатий у меня пока что есть только на выключателе Z-Wave. Но иногда бывает так, что радио сигнал не доходит. С Мегами в этом плане не должно быть никаких проблем. Так что в планах кинуть провод и репеключить управление на Мегу.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Пн дек 08, 2014 8:39 pm

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

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

Сообщение Bagir » Пн дек 08, 2014 8:48 pm

Да, действительно есть грабли. Сейчас получилось скрестить либо простое и двойное нажатие, либо простое и долгое. Но пиво еще не кончилось, может быть что то еще и получится.
По поводу P&R - без него точно ничего не выйдет. Отловить долгое нажатие будет невозможно, если мы не видим когда кнопку отпустили. Придется тогда довольствоваться простым и двойным нажатием. А как же тогда быть с диммированием?
Оставить дом без света дело безусловно нехорошее. Но такой вариант всегда может быть. Так что придется предусмотреть альтернативное освещение или его включение при падении сервера. Пускай часть функционала без сервера будет недоступна, но по крайней мере какой то свет все равно включить можно. Сейчас еще подумаю над этим вопросом. Пока что видится такая мысль, что при недоступности сервера мега при нажатии выключателя будет просто коммутировать один канал освещения, соответствующий простому нажатию.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ответить