Программирование физического выключателя.
Модератор: immortal
-
- Сообщения: 37
- Зарегистрирован: Вс янв 06, 2013 2:57 pm
- Благодарил (а): 15 раз
- Поблагодарили: 3 раза
Программирование физического выключателя.
Приветствую всех. Программить не умею, пытаюсь делать все по вашим примерам, но такого так и не нашел. Имеем кнопку на дуине которая при нажатии присылает на сервер команду 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: Программирование физического выключателя.
в коде метода прописать что-то вроде: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 -- информация, сотрудничество, услуги
Re: Программирование физического выключателя.
У меня контроллер с похожими х-ками, как у ТС.
Хочу реализовать такую же задачу: при нажатии на физическую кнопку в комнате, включить или включить свет.
С железом все понятно. Для переключения ON/OFF мого выхода нужно дать команду мк:
Когда кто-то нажимает на кнопку в комнате - мк передает команду о нажатии на сервер. Т.е. мк нужно выполнить метод какого-то объекта на сервере.
Теперь описания проблемы: Не исполняется метод объекта по кнопке "test" или через командную строку.
Все что удалось - это выполнить метод первый раз после перезапуска сервера. Второй раз - уже не работает! Вчем может быть проблема? сервер по адресу 127.0.0.1:81. На 80 порт перевести никак не могу. Порт ничем не занят, но после установки сервера с нуля - стает на 81.
Вопрос 2: как можно изменить порт на 80?
Хочу реализовать такую же задачу: при нажатии на физическую кнопку в комнате, включить или включить свет.
С железом все понятно. Для переключения ON/OFF мого выхода нужно дать команду мк:
Код: Выделить всё
getURL("http://192.168.1.14/sec/?cmd=2:1");
Теперь описания проблемы: Не исполняется метод объекта по кнопке "test" или через командную строку.
Все что удалось - это выполнить метод первый раз после перезапуска сервера. Второй раз - уже не работает! Вчем может быть проблема? сервер по адресу 127.0.0.1:81. На 80 порт перевести никак не могу. Порт ничем не занят, но после установки сервера с нуля - стает на 81.
Вопрос 2: как можно изменить порт на 80?
-
- Сообщения: 37
- Зарегистрирован: Вс янв 06, 2013 2:57 pm
- Благодарил (а): 15 раз
- Поблагодарили: 3 раза
Re: Программирование физического выключателя.
Что то не работает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);
}
-
- Сообщения: 1473
- Зарегистрирован: Сб окт 12, 2013 11:03 pm
- Благодарил (а): 49 раз
- Поблагодарили: 327 раз
Re: Программирование физического выключателя.
Лучше сделать серверо независимую кнопку, чтобы она управляла нагрузкой, и отправляла статус. Вопервых время срабатывания = 0. Во вторых если повиснет сервер, не придётся ждать его отвисания и пользоваться светом. А на сервере мониторить статус. И включать и выключать ели нужно удалённо.
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Re: Программирование физического выключателя.
Полностью согласен!. На "Дуине" лучше сделать сам "триггер" управления реле лампы (или тиристора) и пусть он переключает, а на систему выдает просто статус.
Причем желательно чтобы со стороны системы запрос на статус не приводил к ступору Дуины. Поясню. Например при переключении Ардуинка сбрасывает openURL('http://192.168.253.211/command?9=ON',0); (либо OFF) и не ожидала ответа . Т.е. получил ли сервер команду бывает не совсем важно. Просто потому что сам статус важен при переключениях со стороны сервера.
Иными словами, он его, должен запросить, только, в момент переключения.
Тогда отсутствие, по каким либо причинам, реакции сервера не лишит Вас возможности включения света. У меня такая связка работает больше года только на основе простого (на микросхеме) триггера. А статус опрашивается по наличию 220 на лампе. Причем система работает как с кнопкой (качели) так и с обычным выключателем а управление возможно как при работе сервера так и при его отсутствии.
Причем желательно чтобы со стороны системы запрос на статус не приводил к ступору Дуины. Поясню. Например при переключении Ардуинка сбрасывает openURL('http://192.168.253.211/command?9=ON',0); (либо OFF) и не ожидала ответа . Т.е. получил ли сервер команду бывает не совсем важно. Просто потому что сам статус важен при переключениях со стороны сервера.
Иными словами, он его, должен запросить, только, в момент переключения.
Тогда отсутствие, по каким либо причинам, реакции сервера не лишит Вас возможности включения света. У меня такая связка работает больше года только на основе простого (на микросхеме) триггера. А статус опрашивается по наличию 220 на лампе. Причем система работает как с кнопкой (качели) так и с обычным выключателем а управление возможно как при работе сервера так и при его отсутствии.
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Программирование физического выключателя.
Извиняюсь, вместо openURL должно быть getURLgans писал(а):Что то не работает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); }
![]()
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 37
- Зарегистрирован: Вс янв 06, 2013 2:57 pm
- Благодарил (а): 15 раз
- Поблагодарили: 3 раза
Re: Программирование физического выключателя.
sergejey, спасибо! Все получилось.
Ivan, shemnik69, Полностью с вами согласен, но отсутствие знаний в программирование ставит меня в тупик
Можно например взять за основу http://smartliving.ru/forum/viewtopic.p ... =496#p3104 и завести физ. кнопки в аналоговые порты. В этом же скетче выводится информация о состоянии выходного порта вот ее можно забирать через веб-переменные на сервере через определенное время, например для смены состояния выключателя в веб интерфейсе ну т.п.. Вот кто помог бы с таким скетчем, буду очень благодарен. Вообще при упоминания Умного дома сразу представляешь какое то особое управление светом, но что то у нас это мало обсуждается, или я просто не шарю) Спасибо за внимание.
Ivan, shemnik69, Полностью с вами согласен, но отсутствие знаний в программирование ставит меня в тупик
