Программирование физического выключателя.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
gans
Сообщения: 37
Зарегистрирован: Вс янв 06, 2013 2:57 pm
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Программирование физического выключателя.

Сообщение gans » Пт янв 03, 2014 11:39 pm

Приветствую всех. Программить не умею, пытаюсь делать все по вашим примерам, но такого так и не нашел. Имеем кнопку на дуине которая при нажатии присылает на сервер команду 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. Что бы прикрутить выключатель без фиксации например. Спасибо за внимание.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Программирование физического выключателя.

Сообщение sergejey » Пт янв 03, 2014 11:56 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. Что бы прикрутить выключатель без фиксации например. Спасибо за внимание.
в коде метода прописать что-то вроде:

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

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);
}
теперь при каждом вызове метода будет либо включение либо выключение

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ROM
Сообщения: 5
Зарегистрирован: Чт янв 02, 2014 2:30 am
Благодарил (а): 0
Поблагодарили: 0

Re: Программирование физического выключателя.

Сообщение ROM » Сб янв 04, 2014 11:08 pm

У меня контроллер с похожими х-ками, как у ТС.
Хочу реализовать такую же задачу: при нажатии на физическую кнопку в комнате, включить или включить свет.
С железом все понятно. Для переключения ON/OFF мого выхода нужно дать команду мк:

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

getURL("http://192.168.1.14/sec/?cmd=2:1");
Когда кто-то нажимает на кнопку в комнате - мк передает команду о нажатии на сервер. Т.е. мк нужно выполнить метод какого-то объекта на сервере.
Теперь описания проблемы: Не исполняется метод объекта по кнопке "test" или через командную строку.
Все что удалось - это выполнить метод первый раз после перезапуска сервера. Второй раз - уже не работает! Вчем может быть проблема? сервер по адресу 127.0.0.1:81. На 80 порт перевести никак не могу. Порт ничем не занят, но после установки сервера с нуля - стает на 81.
Вопрос 2: как можно изменить порт на 80?
gans
Сообщения: 37
Зарегистрирован: Вс янв 06, 2013 2:57 pm
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Программирование физического выключателя.

Сообщение gans » Вс янв 05, 2014 12:51 pm

sergejey писал(а):
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. Что бы прикрутить выключатель без фиксации например. Спасибо за внимание.
в коде метода прописать что-то вроде:

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

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);
}
Все работает, Алиса все говорит.
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Программирование физического выключателя.

Сообщение Ivan » Вс янв 05, 2014 8:08 pm

Лучше сделать серверо независимую кнопку, чтобы она управляла нагрузкой, и отправляла статус. Вопервых время срабатывания = 0. Во вторых если повиснет сервер, не придётся ждать его отвисания и пользоваться светом. А на сервере мониторить статус. И включать и выключать ели нужно удалённо.
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Программирование физического выключателя.

Сообщение shemnik69 » Вс янв 05, 2014 10:47 pm

Полностью согласен!. На "Дуине" лучше сделать сам "триггер" управления реле лампы (или тиристора) и пусть он переключает, а на систему выдает просто статус.
Причем желательно чтобы со стороны системы запрос на статус не приводил к ступору Дуины. Поясню. Например при переключении Ардуинка сбрасывает openURL('http://192.168.253.211/command?9=ON',0); (либо OFF) и не ожидала ответа . Т.е. получил ли сервер команду бывает не совсем важно. Просто потому что сам статус важен при переключениях со стороны сервера.
Иными словами, он его, должен запросить, только, в момент переключения.
Тогда отсутствие, по каким либо причинам, реакции сервера не лишит Вас возможности включения света. У меня такая связка работает больше года только на основе простого (на микросхеме) триггера. А статус опрашивается по наличию 220 на лампе. Причем система работает как с кнопкой (качели) так и с обычным выключателем а управление возможно как при работе сервера так и при его отсутствии.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Программирование физического выключателя.

Сообщение sergejey » Пн янв 06, 2014 12:02 am

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

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
gans
Сообщения: 37
Зарегистрирован: Вс янв 06, 2013 2:57 pm
Благодарил (а): 15 раз
Поблагодарили: 3 раза

Re: Программирование физического выключателя.

Сообщение gans » Пн янв 06, 2014 3:21 pm

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