Подключение контроллера MegaD-328
Модератор: immortal
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Вот как раз сегодня получил очередную китайскую матрешку. Там были и ранее заказанные несколько DHT. Так что пример точно будет. Возможно даже завтра, вместе с обновлением. Так же добавил вариант замены пинга периодическим опросом температуры внутреннего датчика меги. Это и мегу проверяет, и заодно весь механизм получения данных. Плюс мы имеем в какой то степени полезные данные температуры. Еще из изменений - теперь логи пишутся в debmes не постоянно а только при включении этой опции.
По DHT там все должно быть очень просто. В нужной группе мы получаем слепленное значение температуры/влажности, парсим его по символу разделителю, и отправляем в нужные объекты датчиков температуры и влажности. Самому в базу данных из метода меги писать не нужно. Не стоит сильно загружать этот метод. Получили значение, распарсили, и только передали нужным объектам. В этом методе и так будет уже много кода. Да и никто не даст гарантию, что завтра вы не захотите заменить этот температурный датчик, подключенный к меге, например на Z-Wave или 1-Wire. Или наоборот.
По DHT там все должно быть очень просто. В нужной группе мы получаем слепленное значение температуры/влажности, парсим его по символу разделителю, и отправляем в нужные объекты датчиков температуры и влажности. Самому в базу данных из метода меги писать не нужно. Не стоит сильно загружать этот метод. Получили значение, распарсили, и только передали нужным объектам. В этом методе и так будет уже много кода. Да и никто не даст гарантию, что завтра вы не захотите заменить этот температурный датчик, подключенный к меге, например на Z-Wave или 1-Wire. Или наоборот.
-
- Сообщения: 3
- Зарегистрирован: Сб дек 06, 2014 5:50 pm
- Откуда: Тула
- Благодарил (а): 0
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
Помогите пожалуйста.
у меня у 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 работает .
у меня у 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
С виду все правильно. Но раз не работает, должны быть где то грабли. А если попробовать на другом порте в новой группе case?
Я бы рад помочь, но не представляю как. Вставляйте в код что то наподобие say('это случилось'); и ищите где прекращается выполнение. GET нормальный. Но что за megad15.php ? От куда он и что внутри?
Я бы рад помочь, но не представляю как. Вставляйте в код что то наподобие say('это случилось'); и ищите где прекращается выполнение. GET нормальный. Но что за megad15.php ? От куда он и что внутри?
-
- Сообщения: 3
- Зарегистрирован: Сб дек 06, 2014 5:50 pm
- Откуда: Тула
- Благодарил (а): 0
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
Это я ошибся в описании .
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');
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
Трудно так сходу чем то помочь. Мега штука крайне объемная. В моем классе реализовано два варианта. Принудительный запрос данных или же обработка полученного обращения к файлу megad.php В любом из этих вариантов все сливается в один метод incomingMessage, где поочередно сравнивается с шаблонами в попытке понять какого рода это сообщение. А дальше в группах case уже обрабатываются конкретные варианты.
Сегодня точно выложу обновления файла megad.php и класса. Сейчас тестирую в работе с тремя Мегами и разными задачами. Пока что полет нормальный.
Сегодня точно выложу обновления файла megad.php и класса. Сейчас тестирую в работе с тремя Мегами и разными задачами. Пока что полет нормальный.
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Выложил обновление файла и класса http://smartliving.ru/forum/viewtopic.php?f=14&t=1832
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Подключение контроллера MegaD-328
Обновился, не могу разобраться с отслеживанием нажатий.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
Как то все не так. Завтра выведу кнопку и еще раз сам попробую как все работает. Щиты с мегами у меня не у сервера. Я еще нигде это не прикрутил у себя на меге. Писал по просьбам трудящихся и из интереса к теме ))
По поводу того, что всегда срабатывает при простом нажатии. Так и должно быть. Момент нажатия все равно всегда присутствует при любой комбинации. Если по задумке не нужно, чтобы выход срабатывал на одинарное нажатие, если например нажато долгое или двойное, то надо использовать кусочек коде где написано "Отпустил". Там есть комментарии. Тогда одинарное простое нажатие будет фиксироваться системой в момент отпускания кнопки. И не должно фиксироваться если будет нажата комбинация.
Завтра полностью закончу монтаж щита и потяну от него управление. Так что в скором времени в моих объектах MegaD1-4 будет больше примеров реального использования. Пока что все примеры лежат в объекте MegaD99.
Разные комбинации нажатий у меня пока что есть только на выключателе Z-Wave. Но иногда бывает так, что радио сигнал не доходит. С Мегами в этом плане не должно быть никаких проблем. Так что в планах кинуть провод и репеключить управление на Мегу.
По поводу того, что всегда срабатывает при простом нажатии. Так и должно быть. Момент нажатия все равно всегда присутствует при любой комбинации. Если по задумке не нужно, чтобы выход срабатывал на одинарное нажатие, если например нажато долгое или двойное, то надо использовать кусочек коде где написано "Отпустил". Там есть комментарии. Тогда одинарное простое нажатие будет фиксироваться системой в момент отпускания кнопки. И не должно фиксироваться если будет нажата комбинация.
Завтра полностью закончу монтаж щита и потяну от него управление. Так что в скором времени в моих объектах MegaD1-4 будет больше примеров реального использования. Пока что все примеры лежат в объекте MegaD99.
Разные комбинации нажатий у меня пока что есть только на выключателе Z-Wave. Но иногда бывает так, что радио сигнал не доходит. С Мегами в этом плане не должно быть никаких проблем. Так что в планах кинуть провод и репеключить управление на Мегу.
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Подключение контроллера MegaD-328
Крайне не хотелось бы использовать режим P&R на меге, так как в таком случае при падении сервера дом останется без света.Bagir писал(а):Как то все не так. Завтра выведу кнопку и еще раз сам попробую как все работает
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Да, действительно есть грабли. Сейчас получилось скрестить либо простое и двойное нажатие, либо простое и долгое. Но пиво еще не кончилось, может быть что то еще и получится.
По поводу P&R - без него точно ничего не выйдет. Отловить долгое нажатие будет невозможно, если мы не видим когда кнопку отпустили. Придется тогда довольствоваться простым и двойным нажатием. А как же тогда быть с диммированием?
Оставить дом без света дело безусловно нехорошее. Но такой вариант всегда может быть. Так что придется предусмотреть альтернативное освещение или его включение при падении сервера. Пускай часть функционала без сервера будет недоступна, но по крайней мере какой то свет все равно включить можно. Сейчас еще подумаю над этим вопросом. Пока что видится такая мысль, что при недоступности сервера мега при нажатии выключателя будет просто коммутировать один канал освещения, соответствующий простому нажатию.
По поводу P&R - без него точно ничего не выйдет. Отловить долгое нажатие будет невозможно, если мы не видим когда кнопку отпустили. Придется тогда довольствоваться простым и двойным нажатием. А как же тогда быть с диммированием?
Оставить дом без света дело безусловно нехорошее. Но такой вариант всегда может быть. Так что придется предусмотреть альтернативное освещение или его включение при падении сервера. Пускай часть функционала без сервера будет недоступна, но по крайней мере какой то свет все равно включить можно. Сейчас еще подумаю над этим вопросом. Пока что видится такая мысль, что при недоступности сервера мега при нажатии выключателя будет просто коммутировать один канал освещения, соответствующий простому нажатию.