Страница 2 из 41

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

Добавлено: Сб фев 23, 2013 12:25 am
Panchez
Как такогого скрипта нет, у меня мега управляет светом напрямую через Action и свое состояние передает на сервер, пример скрипта выше. А в меню управления в выключателях ссылки управления мегой http://192.168.1.100/sec/?cmd=2:1 включить и =2:0 выключить.
Если нужно что бы управлял именно сервер, то нужно делать через функцию echo, но так не пробовал небыло необходимости.

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

Добавлено: Сб фев 23, 2013 12:31 am
jonyzs
Значит на меге сервер непрописан и она работает проста как выключалка или включалка чего понадобытса ?

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

Добавлено: Сб фев 23, 2013 12:51 am
Panchez
Прописан, иначе я не буду знать что включилось, смотрите скрипт примера выше, в моем случае прописал так:

if ($params['pt']==1) {
// pt=1
// Включился свет на кухне
sg("ThisComputer.KitchenLight","1");

итд...

так устанавливается глобальное свойство объекта, а его уже можно использовать где угодно, в сценах например.

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

Добавлено: Сб фев 23, 2013 11:12 pm
jonyzs
Немогли бы на примере описать что и где какой код вставить чтоб например считивал состояние порта 1(настроен на вход) и на сайте отоброжал состояние а также второй пример чтоб включил на сайте выключатель и поменялось состояние порта 7 (настроен на выход),что то у меня никак неполучаетса понять.
Попробовал так,но подозреваю что неменяет состояние порта из-за того что у меня система на виртуальном хосте потому что если напрамую копирую сылку в браузер http://192.168.1.14/sec/?cmd=8:1 порт состояние меняет.

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

Добавлено: Вс фев 24, 2013 1:00 am
Panchez
Насчет состояния порта не могу сейчас подсказать, нужно пробовать, у меня небыло такой задачи. Сейчас нет возможности попробовать, как только доберусь попробую.

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

Добавлено: Вт фев 26, 2013 12:26 am
Panchez
попробовал такой код

if ($params['pt']==1) {
// pt=1
say("Что-то включилось 1");
getURL("http://192.168.1.100/sec/?cmd=2:2");

Он должен при срабатывании порта 1 менять состояние порта 2 на противоположное, но не хочет, из браузера работает, возможно нужно вместо getURL применять другой вызов.

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

Добавлено: Вт фев 26, 2013 12:47 am
jonyzs
Подозреваю что так наверно и есть,сегодня пробовал сайт только один запустить на сервере,та же фигня,чувствую что пока на линуксе тут работы непочатый край,буду искать другой интерфейс умного дома,наверное буду пробовать с сайта аб-лог ведь там изначально под линукс всё ставилось.

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

Добавлено: Вт фев 26, 2013 11:31 am
sergejey
в коде стоит добавить ",0", потому что по-умолчанию getURL использует кэширование и вторым параметром задаётся время в секундах, в течении которых будет на одинаковые запросы выдаваться результат из кэша:
getURL("http://192.168.1.100/sec/?cmd=2:2",0); -- запрос без кэша

насчёт "на линуксе непочатый край" -- не соглашусь, система одинаково работает как на Windows (и даже надёжней наверное, сказать по правде), по крайней мере в той части, что не касается особенностей управления аудио-видео плэерами. с настройкой разве что может быть сложнее, т.к. надо где-то атрибуты нужные поставить, где-то ini-файлы подкрутить, но на форуме это многократно уже обсуждалось.

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

Добавлено: Вт фев 26, 2013 1:50 pm
jonyzs
Вроде и у меня в коде стоит этот ноль,но неработает такой запрос,сегодня попробую всё на свежую систему поставить,посмотрим на результат.

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

Добавлено: Вт фев 26, 2013 7:49 pm
Panchez
sergejey писал(а):в коде стоит добавить ",0", потому что по-умолчанию getURL использует кэширование и вторым параметром задаётся время в секундах, в течении которых будет на одинаковые запросы выдаваться результат из кэша:
getURL("http://192.168.1.100/sec/?cmd=2:2",0); -- запрос без кэша
Спасибо за подсказку, не знал. В таком варианте работает отлично.
Состояние порта я смотрю через веб-переменные запросом http://192.168.1.100/sec/?pt=2&cmd=get (отображается как ON и OFF), которое вывожу в свойства объекта.
Теперь вот думаю, как все это совместить с выключателем и индикацией состояния.
Т.е. принцип такой, проверяется глобальное свойство объекта, и исходя из состояния устанавливается начальное положение выключателя, а оба положения выключателя имеют одинаковую ссылку.(Удобно установить тактовые выключатели и алгоритм работы настроить на - нажал кнопку состояние изменилось на противоположное. И без сервера хорошо работает)
Через веб переменные наверно не очень элегантное решение, на сайте автора контроллера используется такой код получения свойств:
<?
$state = file_get_contents('http://192.168.1.100/sec/?pt=2&cmd=get');
?>
После выполнения данной команды в переменной $state у нас будет содержаться ON (если порт находит в активном состоянии), OFF или текущее значение, если порт настроен в режим PWM (ШИМ) или ADC (АЦП).