Страница 1 из 1
Программирование физического выключателя.
Добавлено: Пт янв 03, 2014 11:39 pm
gans
Приветствую всех. Программить не умею, пытаюсь делать все по вашим примерам, но такого так и не нашел. Имеем кнопку на дуине которая при нажатии присылает на сервер команду
http://192.168.253.252/objects/?object= ... tusChanged& с еденицей и имеем нагрузку управляемую так
http://192.168.253.211/command?9=ON вкл или OFF выкл соответственно, нагрузкой с сервера получается управлять по всякому, получать статус кнопки тоже научился. Вопрос: как сделать так что бы при первом нажатии физической кнопки с сервера улетало
http://192.168.253.211/command?9=ON а при втором
http://192.168.253.211/command?9=OFF. Что бы прикрутить выключатель без фиксации например. Спасибо за внимание.
Re: Программирование физического выключателя.
Добавлено: Пт янв 03, 2014 11:56 pm
sergejey
в коде метода прописать что-то вроде:
Код: Выделить всё
if ($this->getProperty('status')==1) {
$this->setProperty('status',0);
openURL('http://192.168.253.211/command?9=OFF',0);
} else {
$this->setProperty('status',1);
openURL('http://192.168.253.211/command?9=ON',0);
}
теперь при каждом вызове метода будет либо включение либо выключение
Re: Программирование физического выключателя.
Добавлено: Сб янв 04, 2014 11:08 pm
ROM
У меня контроллер с похожими х-ками, как у ТС.
Хочу реализовать такую же задачу: при нажатии на физическую кнопку в комнате, включить или включить свет.
С железом все понятно. Для переключения ON/OFF мого выхода нужно дать команду мк:
Код: Выделить всё
getURL("http://192.168.1.14/sec/?cmd=2:1");
Когда кто-то нажимает на кнопку в комнате - мк передает команду о нажатии на сервер. Т.е. мк нужно выполнить метод какого-то объекта на сервере.
Теперь описания проблемы: Не исполняется метод объекта по кнопке "test" или через командную строку.
Все что удалось - это выполнить метод первый раз после перезапуска сервера. Второй раз - уже не работает! Вчем может быть проблема? сервер по адресу 127.0.0.1:81. На 80 порт перевести никак не могу. Порт ничем не занят, но после установки сервера с нуля - стает на 81.
Вопрос 2: как можно изменить порт на 80?
Re: Программирование физического выключателя.
Добавлено: Вс янв 05, 2014 12:51 pm
gans
sergejey писал(а):
в коде метода прописать что-то вроде:
Код: Выделить всё
if ($this->getProperty('status')==1) {
$this->setProperty('status',0);
openURL('http://192.168.253.211/command?9=OFF',0);
} else {
$this->setProperty('status',1);
openURL('http://192.168.253.211/command?9=ON',0);
}
теперь при каждом вызове метода будет либо включение либо выключение
Что то не работает

пишу код метода для проверки вот так:
Код: Выделить всё
if ((int)$params['status']==1) {
say("Свет в гараже включился.",5);
} else {
say("Свет в гараже выключился.",5);
}
Все работает, Алиса все говорит.
Re: Программирование физического выключателя.
Добавлено: Вс янв 05, 2014 8:08 pm
Ivan
Лучше сделать серверо независимую кнопку, чтобы она управляла нагрузкой, и отправляла статус. Вопервых время срабатывания = 0. Во вторых если повиснет сервер, не придётся ждать его отвисания и пользоваться светом. А на сервере мониторить статус. И включать и выключать ели нужно удалённо.
Re: Программирование физического выключателя.
Добавлено: Вс янв 05, 2014 10:47 pm
shemnik69
Полностью согласен!. На "Дуине" лучше сделать сам "триггер" управления реле лампы (или тиристора) и пусть он переключает, а на систему выдает просто статус.
Причем желательно чтобы со стороны системы запрос на статус не приводил к ступору Дуины. Поясню. Например при переключении Ардуинка сбрасывает openURL('
http://192.168.253.211/command?9=ON',0); (либо OFF) и не ожидала ответа . Т.е. получил ли сервер команду бывает не совсем важно. Просто потому что сам статус важен при переключениях со стороны сервера.
Иными словами, он его, должен запросить, только, в момент переключения.
Тогда отсутствие, по каким либо причинам, реакции сервера не лишит Вас возможности включения света. У меня такая связка работает больше года только на основе простого (на микросхеме) триггера. А статус опрашивается по наличию 220 на лампе. Причем система работает как с кнопкой (качели) так и с обычным выключателем а управление возможно как при работе сервера так и при его отсутствии.
Re: Программирование физического выключателя.
Добавлено: Пн янв 06, 2014 12:02 am
sergejey
gans писал(а):sergejey писал(а):
Код: Выделить всё
if ($this->getProperty('status')==1) {
$this->setProperty('status',0);
openURL('http://192.168.253.211/command?9=OFF',0);
} else {
$this->setProperty('status',1);
openURL('http://192.168.253.211/command?9=ON',0);
}
теперь при каждом вызове метода будет либо включение либо выключение
Что то не работает
Извиняюсь, вместо openURL должно быть getURL
Re: Программирование физического выключателя.
Добавлено: Пн янв 06, 2014 3:21 pm
gans
sergejey, спасибо! Все получилось.
Ivan, shemnik69, Полностью с вами согласен, но отсутствие знаний в программирование ставит меня в тупик

Можно например взять за основу
http://smartliving.ru/forum/viewtopic.p ... =496#p3104 и завести физ. кнопки в аналоговые порты. В этом же скетче выводится информация о состоянии выходного порта вот ее можно забирать через веб-переменные на сервере через определенное время, например для смены состояния выключателя в веб интерфейсе ну т.п.. Вот кто помог бы с таким скетчем, буду очень благодарен. Вообще при упоминания Умного дома сразу представляешь какое то особое управление светом, но что то у нас это мало обсуждается, или я просто не шарю) Спасибо за внимание.