ESP8266

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

dimens
Сообщения: 13
Зарегистрирован: Пн апр 11, 2016 7:33 pm
Благодарил (а): 5 раз
Поблагодарили: 4 раза

Re: ESP8266

Сообщение dimens » Вс май 01, 2016 6:21 pm

Подскажите пожалуйста никак понять не могу.

Есть объект ESP8266** у него есть свойство ESP8266**.gpiout5, соответственно у этого свойства два значения 0 и 1.

Настраиваю метод switch в классе! :

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

if ((getGlobal('ESP8266**.gpiout5')) =="1")
{
getURL('http://192.168.1.40/gpio?st=0&pin=5',0);
setGlobal('ESP8266**.gpiout5',0);
} else if ((getGlobal('ESP8266**.gpiout5')) =="0") 
{ 
getURL('http://192.168.1.40/gpiout?st=1&pin=5',0);
setGlobal('ESP8266**.gpiout5',1);
} 
На сцене я могу использовать метод switch в выключателе так же как и в меню управления на выключателе ? или на сценах нужно использовать on-off ?

У меня почему-то логика управления меняется на противоположную.
И еще, для чего нужно поле в меню управления, настройка выключателя, пункт "Текущее значение:" - для чего оно ?
kastortroy
Сообщения: 11
Зарегистрирован: Вт апр 26, 2016 11:14 am
Благодарил (а): 1 раз
Поблагодарили: 0

Re: ESP8266

Сообщение kastortroy » Ср май 04, 2016 8:56 am

ivannag, спасибо за советы.
Реально была ошибка в плате - слишком маленькое напряжение доходило до реле и оно не срабатывало, переделал и все заработало.
Одна проблема - данные с реле состояния оправляются раз в 10 минут с бесплатной прошивки, поэтому статус выключателя не меняется как надо... Может есть возможность как то прописать, что бы он опрашивал датчик регулярно?
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Ср май 04, 2016 1:07 pm

kastortroy писал(а):ivannag, спасибо за советы.
Реально была ошибка в плате - слишком маленькое напряжение доходило до реле и оно не срабатывало, переделал и все заработало.
Одна проблема - данные с реле состояния оправляются раз в 10 минут с бесплатной прошивки, поэтому статус выключателя не меняется как надо... Может есть возможность как то прописать, что бы он опрашивал датчик регулярно?
Рад, если смог чем-то помочь... для этого и существует форум, чтобы всем вместе что-то изобретать)) "коллективный разум" так сказать)))
Сам раздумываю об этом.... у меня версия платная и данные приходят гораздо чаще, но смущает то, что при нажимании кнопочки в веб-интерфейсе ее состояние меняется через некоторое время, когда приходит ответ от модуля... один из вариантов, сделать как в коде одним постом выше... там после отсылки команды модулю, принудительно устанавливается свойство в нужное положение... работать должно очень быстро и красиво, единый косяк, что если команда не пройдет, - то мы это узнаем только по истечении данного промежутка времени, только получив ответ наша нарисованная кнопочка отобразит реальное состояние...
К-стати, если переключение ГПИО произойдет через прерывание, то состояние немедленно отправляется на сервер... задержка только при отправке команды из МЖД.
Из вариантов попробовать после отсылки управляющей команды, послать команду считывания (тот же /gpioprint) затем просто пропарсить полученный ответ, как это делается для погоды или курсов валют... возможно даже получение ответа в формате JSON, но в бесплатной версии есть ограничения, не знаю правда какие... думаю как-то при наличии времени попробовать разные варианты (в т.ч. MQTT), но пока-что в очереди еще много нерешенных задач...
MaksMS82
Сообщения: 422
Зарегистрирован: Ср сен 05, 2012 7:30 am
Откуда: Киров
Благодарил (а): 0
Поблагодарили: 70 раз
Контактная информация:

Re: ESP8266

Сообщение MaksMS82 » Ср май 04, 2016 1:20 pm

не нужно парсить /gpioprint , если настроено прерывание, то на сервер мажордомо идет отправка состояние всех данных, в том числе состояние всех GPIO.
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Ср май 04, 2016 1:24 pm

MaksMS82 писал(а):не нужно парсить /gpioprint , если настроено прерывание, то на сервер мажордомо идет отправка состояние всех данных, в том числе состояние всех GPIO.
за прерывание знаю, я имел ввиду, когда переключение происходит по команде с мжд, чтобы мгновенно получать состояние гпио, без сокращения времени отправки данных на самом модуле...
встречный вопрос (хоть и не на том форуме), не планируете в прошивке сделать немедленную отправку состояний гпио после их изменения не только через прерывание но и каким-либо другим методом?
MaksMS82
Сообщения: 422
Зарегистрирован: Ср сен 05, 2012 7:30 am
Откуда: Киров
Благодарил (а): 0
Поблагодарили: 70 раз
Контактная информация:

Re: ESP8266

Сообщение MaksMS82 » Ср май 04, 2016 1:42 pm

задатки для этого есть. на mqtt это реализовано. Конечно же будет все совершенствоваться.
За это сообщение автора MaksMS82 поблагодарил:
ivannag (Ср май 04, 2016 1:49 pm)
Рейтинг: 1.16%
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Ср май 04, 2016 1:48 pm

MaksMS82 писал(а):задатки для этого есть. на mqtt это реализовано. Конечно же будет все совершенствоваться.
как раз то, что очень хотелось услышать)) спасибо еще раз!)
к-стати, какой из протоколов надежнее/быстрее/предпочтительнее использовать? где-то уже спрашивалось но так и не было ответа... хотелось бы услышать мнение разработчика.
MaksMS82
Сообщения: 422
Зарегистрирован: Ср сен 05, 2012 7:30 am
Откуда: Киров
Благодарил (а): 0
Поблагодарили: 70 раз
Контактная информация:

Re: ESP8266

Сообщение MaksMS82 » Ср май 04, 2016 1:58 pm

Смотря для чего, для мажордомо специальная опция есть в прошивке. она специально для этого реализовывалась- Это обычные http запросы . лучше конечно mqtt , но насколько реально рулить им на мажордомо без понятия.
sega6549
Сообщения: 535
Зарегистрирован: Чт авг 20, 2015 11:32 am
Откуда: Ярославль
Благодарил (а): 61 раз
Поблагодарили: 75 раз
Контактная информация:

Re: ESP8266

Сообщение sega6549 » Сб май 07, 2016 2:36 pm

всем привет, и всех с праздниками, такой вопрос, приехал модуль собственно в виде пирога, это где ниче делать не надо))), прошил собственно прошивкой хом смарт, на самом модуле есть светодиод трехцветный, в общем настроил я управление им, соответственно 3 цвета это 3 пина, GPIO12 GPIO13 GPIO15, сделал 3 выключателя в Алисе и в общем выключаю все работает, зашел на веб интерфейс и собственно там выключаю включаю, тоже все работает, свойства прописываются согласно настройкам сервера, каждые 5 секунд обновляются, меньше не ставиться(
собственно вопрос, есть ли возможность поставить меньше период, и если нет, то кто нибудь может мне объяснить что такое прерывание, я так понимаю оно работает только тогда когда допустим GPIO12 выключается не с сервера или веб интерфейса а путем физического замыкания контакта назначенного на GPIO12? да, еще забыл сказать, есть впаяный датчик освещенности, от него данные приходят в систему так же раз в 5 секунд, вот его можно настроить чтоб вообще прям онлайн?))) он на аналоговом входе adc0
Тут можно задать вопрос по MajorDoMo VK
Канал по MajorDoMo youtube
ivannag
Сообщения: 146
Зарегистрирован: Вт апр 12, 2016 12:19 am
Благодарил (а): 18 раз
Поблагодарили: 27 раз

Re: ESP8266

Сообщение ivannag » Сб май 07, 2016 3:31 pm

Поздравляю с вливанием в ряды ESPшников))
gpio 12,13,15 там не просто включаются, но и ШИМируются, соответственно яркость свечения можно менять... и для них можно в МЖД сделать слайдер а не выключатель, будет функциональнее...
Прям таки онлайн-онлайн сделать не получится, данные отправляются только с заданной периодичностью, плюс при срабатывании прерывания отправляются вне очереди... Максим обещал допилить прошивку, чтобы передавались при переключении состояния гпио из веб-интерфейса или через МЖД.
Реализовать отправку выборочных данных отдельно не получиться, передается все вместе, и датчики и гпио...
Для прерывания (может быть 4, настраиваются в пункте GPIO) указывается номер гпио для контакта (кнопки например), потом выбирается тип (счетчик, кнопка, и т.д) и в пункте GPIO For Key указываем состояние какого гпио будем менять...
Например, если замкнуть/разомкнуть (можно даже так и оставить) контакт подключенный к гпио15 - переключится состояние гпио14 (см. рисунок), единственное не назначайте как у меня гпио15 на прерывание (при замкнутом контакте модуль не стартует), у меня оно сделано исключительно для эксперимента а все другие входы/выходы уже были заняты... хотя более допустимо было поменять местами 14 и 15. ну как-то так....
СпойлерПоказать
gpio_1.jpg
gpio_1.jpg (174.33 КБ) 14070 просмотров
Ответить