tretyakovsa / Sonoff_WiFi_switch

Прошивка для ESP8266 (Умный дом)-Firmware for ESP8266 (Smart Home)
GNU General Public License v3.0
179 stars 40 forks source link

Управление через mqtt #12

Open 2007-i opened 7 years ago

2007-i commented 7 years ago

Скажите пожалуйста по какому get запросу можно управлять с помощью этой прошивки? То что показывает в истории URL: http://192.168.10.142/sonoff не совсем подходит для управления через mqtt т.к. запрос одинаковый, если бы было например URL: http://192.168.10.142/sonoff-on например для включения и URL: http://192.168.10.142/sonoff-off для отключения реле. Может есть такое а я это пропустил?

PS. Кстати обновление скетча mqtt от Mar 24, 2017 решило проблему с отправкой данных, раньше не получалось что то передать, а теперь сразу все отправляет. Спасибо за вашу работу! И ещё, смотрю вы в будущем планируете управлять воротами (vorota1)? :)

renat2985 commented 7 years ago

Создаем профиль в cloudmqtt.com, выбираем Free план. Заходим в http://локальный_ip_устройсва/setup.htm указываем там в MQTT сервер, логин, пароль, порт полученные от cloudmqtt.com.

Далее, переходим в раздел цифра 1, Цифра 2, видим статус вашего реле в реальном времени, 1 - включено 2 - выключено

Управлять можно следующим образом: Цифра 3, пишем topic. Цифра 4 пишем 1 если хотим включить или 0 если хотим выключить. И жмем Send. 2017 03 30-08 37 20

Если вы нам купите механизм "vorota1" для тестов то сделаем. :)

2007-i commented 7 years ago

Как с MQTT управлять я в курсе, спасибо. Просто я раньше управлял через Мажордомо и делал это через скрипт:

if ((getGlobal('ESP8266-01.sw')) =="1")
{
 getURL('http://192.168.10.142/gpio?st=1&pin=0', 0);
} else if ((getGlobal('ESP8266-01.sw')) =="0") 
{ 
 getURL('http://192.168.10.142/gpio?st=0&pin=0', 0);
}

ESP8266-01 - это я менял на RELE_1 а вот с get запросом выходит накладка, при указании http://192.168.10.142/sonoff в обоих случаях, у меня переключатель не видит в каком состоянии находится модуль, хотя данные на MQTT приходят. Вот так у меня сейчас:

if ((getGlobal('RELE_1.sw')) =="1")
{
 getURL('http://192.168.10.142/sonoff', 0);
} else if ((getGlobal('RELE_1.sw')) =="0") 
{ 
 getURL('http://192.168.10.142/sonoff', 0);
}

Вот что имел ввиду.

Sergey-SRG commented 7 years ago

Для управления этим реле в мажордомо, нужно всего привязать Связанный объект и его свойства! При этом в случае изменения свойства мажордомо будет пупликовать в топик. И не нужно не каких дополнительных гет запросов городить(

Sergey-SRG commented 7 years ago

30-03-2017 21-35-36

Sergey-SRG commented 7 years ago

Хотелось бы видеть при управлении по mqtt разделение топиков топик status (для обратной связи, бывают ситуации что реле не в сети и мы не когда не узнаем было переключение или нет :( ) и топик switch (для переключения)

AVL4GITHUB commented 7 years ago

По управлению через МКТТ мои замечания. Бардак следующий. 1 -включает реле. 0 - выключает реле. Вроде всё ОК, но: ЛЮБОЕ другое число (не 0 и не 1) изменяет состояние реле на ПРОТИВОПОЛОЖНОЕ. ЛЮБАЯ текстовя строка выключает реле. Таким образом легко поймать непонятное и непредсказуемое состояние реле. Можно ЭТО исправить? Спасибо! http://ipic.su/img/img7/fs/kiss_35kb.1491208834.png

AVL4GITHUB commented 7 years ago

Как успехи? Все с нетерпением ждут продолжения.

Sergey-SRG commented 7 years ago

Ребята пилят вещь которая старается работать без сервера управления.

Если нужен чистый mqtt , то лучше попробовать это https://github.com/arendst/Sonoff-Tasmota

Berkseo commented 7 years ago

я решил вот так(это на вкладке mqtt): if (String(pub.topic()) == prefix + "/"+chipID + "/RELE_1_not/control") // проверяем из нужного ли нам топика пришли данные //if (String(pub.topic()) == prefix + "/"+chipID + "/RELE_1_not/status") // проверяем из нужного ли нам топика пришли данные { int stled = payload.toInt(); // преобразуем полученные данные в тип integer Serial.println(stled); if(stled==1) { command = "relayOn"; relayOn(); } if(stled==0) { command = "relayOff"; relayOff(); } Serial.println(command);

}

теперь если пишем в топик /control - 1(включает)...

symparua commented 7 years ago

Sergey-SRG, а можете показать как у Вас настроены Связанный объект и его свойства в Мажордомо?

egven commented 7 years ago

Здравствуйте! Подскажите, пожалуйста, с чем может быть связана проблема с подпиской не следующие топики

topic

tretyakovsa commented 7 years ago

А что вы пытаетесь сделать? Откуда подписываетесь? Работает ли при этом IoT manager?

egven commented 7 years ago

я пытаюсь поуправлять реле через соединение esp8266-cloudmqtt-mqtt mobile client

скачал предпоследнюю прошивку, не настраивал mqtt, сразу обновился по воздуху (до прошивки от 2017.06.21), настроил mqtt, и щас вижу по логу с сервера, что не конектится устройство, хотя прошивка из ветки RGB конектилась, но топики не публиковались

через ком порт кроме фразы MQTT ниче нет на тему соединения с сервером, настроки печатает правильные, как вообще можно проверить работу IoT managerа

мои настройки тут

scr

tretyakovsa commented 7 years ago

Поставить IoT manager. Подключится к серверу.

egven commented 7 years ago

Если речь идет о мобильно клиенте, то тут он не при чем, пока нет конекта между esp8266 и cloudmqtt, для проверки я еще приводил скрин выше, где вебклиент, подписанный не топики, не получает ничего

tretyakovsa commented 7 years ago

Я специально проверил. Последняя версия работает и все публикуется. Вы настраиваете SSL Port или Port? Нужно использовать Port без SSL.

egven commented 7 years ago

я обычный порт ставил, без ссл, а через ваб клиент на cloudmqtt, по скрину если смотреть, я корректно все делаю? может из-за того что я по воздуху обновился, надо перепрошиться

i81 commented 7 years ago

Товарищи, а можно подробнее, как настроить MQTT. Сделал как написано выше, но во вкладе WebsocketUI у меня пусто :( screenclip 1 screenclip 2 screenclip

egven commented 7 years ago

i81, собственно у меня пока такая же проблема, на одной из последних прошивок в логе видно, что could't connect to mqtt server, а в чем трабла не понятно, вроде до сервиса privet.lv он достукивается, ok приходит, а до mqtt никак.

i81 commented 7 years ago

Ладно хотя бы я не один такой... А как ещё можно управлять с Андроида, кроме http запросов?

renat2985 commented 7 years ago

C mqtt разберемся в ближайшие дни. @i81 Я пользуюсь HTTP Request Shortcuts программка умеет делать ярлыки на рабочий стол с нужными вам GET запросами. Таким образом нажав на ярлык с рабочего стола можно управлять устройствами. Так же там есть возможность управления голосом. Но пока это работает достаточно плохо.

symparua commented 7 years ago

Пользуюсь MQTT Dash для включения/выключения реле с Андроида. Все работает...

renat2985 commented 7 years ago

@i81, постучитесь ко мне в Skype: renat2985, попробуем вместе настроить.

i81 commented 7 years ago

Ренат, всё оставил в офисе, уже дома... Завтра уезжаю на месяц в отпуск... большое Вам спасибо заранее, что не оставляете в беде меня! Если это будет возможно - я получу к Вам в середине августа...

alxnovo commented 6 years ago

А чем, кроме IOT Manager можно управлять по MQTT под IOS? IOT Manager исчез из AppStore, а Андроида у меня нет :(

Или как можно управлять такими топиками, что в том же CloudMQTT нужно написать чтобы открыть/закрыть жалюзи?

2017-09-29 0 58 41

alexandersciv commented 6 years ago

Решил вопрос как правильно определиться с топиком, что в нём нужно прописать. Настроил CloudMQTT. Прописал данные в прошивке модуля. Установил программу IoT Manager, прописал в ней данные из CloudMQTT. После подключения IoT Manager к CloudMQTT появился мой модуль. Включил его в IoT Manager и в CloudMQTT Console появился топик web В Send message - Topic прописываю значение tpic в Message пишу 1 или 0. Всё работает.

AVL4GITHUB commented 6 years ago

Через сеть 3G сеть IoT Manager у Вас работает? У меня только через ВайФай...

alexandersciv commented 6 years ago

AVL4GITHUB подключаюсь по ВайФай, пока решаю вопрос стабильного подключения к MQTT. В основах CloudMQTT разобрался. Теперь подключаюсь к локально к Mosquitto.

alexandersciv commented 6 years ago

@renat2985 = Я пользуюсь HTTP Request Shortcuts программка умеет делать ярлыки на рабочий стол= Ни как не могу разобраться, как настроить программу. Подскажите где почитать?

renat2985 commented 6 years ago

@alexandersciv прекратите пользоваться дурацкими выделениями и =, для этого есть специальные кнопки в верху 2017 10 16-20 58 13

О HTTP Request Shortcuts, ок если будет время завтра сделаю видео обзор.