[Модуль] Sonoff (dev_sonoff)
Модератор: immortal
-
- Сообщения: 222
- Зарегистрирован: Вт фев 06, 2018 9:40 pm
- Откуда: Пермь
- Благодарил (а): 117 раз
- Поблагодарили: 7 раз
Re: [Модуль] Sonoff
Здравствуйте! У меня вопрос : всё делаю по видеоинструкции, ввожу в телефоне адрес и порт прокси сервера, нажимаю сохранить..., и у меня тут же приложение Евелинк пишет что сеть недоступна, хотя другие приложения на телефоне сеть видят !?! Подскажите пожалуйста, что я делаю не так???
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: [Модуль] Sonoff
Скорее всего что-то не так в настройках самого проксика. Сгенерируйте заново сертификат, установите его. Убедитесь, что в прокси не выдаётся запрос на доступ...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 222
- Зарегистрирован: Вт фев 06, 2018 9:40 pm
- Откуда: Пермь
- Благодарил (а): 117 раз
- Поблагодарили: 7 раз
Re: [Модуль] Sonoff
У меня не получается ни чего сгенерировать, т.к. сразу-же после ввода прокси, Евелинк перестаёт коннектитца к инету, и соответственно я не могу управлять устройствами с телефона и в Charles ни чего не идёт. Вот, как то так... 

- samolet
- Сообщения: 474
- Зарегистрирован: Чт июн 29, 2017 10:29 am
- Благодарил (а): 46 раз
- Поблагодарили: 45 раз
Re: [Модуль] Sonoff
Дело в том что программа евелинк как-то защищена от подобного рода сертификатов, скачивайте в маркете Plug and Play вводите тот-же логин и пароль, с ней все будет ок. Но у этой проги есть особенность у нее заканчивается сессия и пока-что я не отследил через какой промежуток времени, а это влечет за собой перелогинивание и новое получение апи авторизации который вбивается в модуль сонофа в мажордоме. В общем пока что Никита не победил этот секис, ждемс.
- Рейтинг: 1.16%
- samolet
- Сообщения: 474
- Зарегистрирован: Чт июн 29, 2017 10:29 am
- Благодарил (а): 46 раз
- Поблагодарили: 45 раз
Re: [Модуль] Sonoff
Никита вот теперь такое вылазит и ни чего не работает, я так понимаю протокол не нравится TLSv1.2 этот протокол вроде как для мобильных приложений.
Exception in "Erker.turnOff" method Empty read; connection dead? Stream state: {"crypto":{"protocol":"TLSv1.2","cipher_name":"ECDHE-RSA-AES128-GCM-SHA256","cipher_bits":128,"cipher_version":"TLSv1.2"},"timed_out":false,"blocked":true,"eof":false,"stream_type":"tcp_socket\/ssl","mode":"r+","unread_bytes":0,"seekable":false}
Backtrace:
#0 C:\_majordomo\htdocs\modules\objects\objects.class.php(565): registerError('method', 'Exception in "E...')
#1 C:\_majordomo\htdocs\lib\objects.class.php(941): objects->callMethod('turnOff', Array)
#2 C:\_majordomo\htdocs\modules\scenes\scenes.class.php(676): callMethod('turnOff', Array)
#3 C:\_majordomo\htdocs\modules\scenes\scenes.class.php(102): scenes->usual(Array)
#4 C:\_majordomo\htdocs\modules\application.class.php(367) : eval()'d code(5): scenes->run()
#5 C:\_majordomo\htdocs\modules\application.class.php(367): eval()
#6 C:\_majordomo\htdocs\index.php(71): application->run()
#7 C:\_majordomo\htdocs\admin.php(149): include_once('C:\\_majordomo\\h...')
#8 {main}
Exception in "Erker.turnOff" method Empty read; connection dead? Stream state: {"crypto":{"protocol":"TLSv1.2","cipher_name":"ECDHE-RSA-AES128-GCM-SHA256","cipher_bits":128,"cipher_version":"TLSv1.2"},"timed_out":false,"blocked":true,"eof":false,"stream_type":"tcp_socket\/ssl","mode":"r+","unread_bytes":0,"seekable":false}
Backtrace:
#0 C:\_majordomo\htdocs\modules\objects\objects.class.php(565): registerError('method', 'Exception in "E...')
#1 C:\_majordomo\htdocs\lib\objects.class.php(941): objects->callMethod('turnOff', Array)
#2 C:\_majordomo\htdocs\modules\scenes\scenes.class.php(676): callMethod('turnOff', Array)
#3 C:\_majordomo\htdocs\modules\scenes\scenes.class.php(102): scenes->usual(Array)
#4 C:\_majordomo\htdocs\modules\application.class.php(367) : eval()'d code(5): scenes->run()
#5 C:\_majordomo\htdocs\modules\application.class.php(367): eval()
#6 C:\_majordomo\htdocs\index.php(71): application->run()
#7 C:\_majordomo\htdocs\admin.php(149): include_once('C:\\_majordomo\\h...')
#8 {main}
-
- Сообщения: 26
- Зарегистрирован: Пт ноя 23, 2018 5:48 pm
- Благодарил (а): 1 раз
- Поблагодарили: 14 раз
Re: [Модуль] Sonoff
Всем здрасьте. Чую, что не с того конца я зашел в изучении majordomo, но все-же.nick7zmail писал(а): ↑Пт ноя 23, 2018 6:46 amБлин, я ж не всемогущий)))уберу, если получится. Тут надо механизм логина исследовать...я с механизмом включения-выключения только неделю бился...с логином чутка сложнее, плюс у меня в телеге накопилась очередь за это время - кому помочь надо)))samolet писал(а): ↑Чт ноя 22, 2018 9:57 pmНикита прошу тебя ну убери ты эту Камасутру , лучше чтоб с логином и паролем, как например два приложения евелинк и плаг энд плей работают в паре пусть в эту пару войдет и третий мажордом, глядишь так и избавимся от сексуальных заморочек.
вот что в ошибках таких куча
И эта камасутра то по-моему не из-за логина/пароля или ключа. Этот адрес у тебя в https или в wss вписан?
Т.к. я виндузятник, то для сниффинга был взят эмулятор android Genymotion и Fiddler в качестве синффера (ну, роднее он мне да и пользоваться я им умею лучше). Версию ewelink юзал 2.2.7 ибо она собрана под arm и x86 (напоминаю у меня эмулятор, а хост машина все-же x64), все что находил версии выше уже собраны только под arm.
Касаться получения токена не буду, ибо выше и так все всё знают, я сосредоточился на регистрации с логином и паролем. После установки сначала идут запросы на отправку статистики, регистрация в сервере пушей (причем китайском, taobao), а потом летит запрос на определение региона по url https://api.coolkit.cc:8080/api/user/re ... sion=2.2.7
Самое интересное тут две вещи, таймстамп (стандартное юникс тайм) и nonce - это просто рандомный набор из 8 символов.
Но еще интересней, что есть заголовок авторизации Authorization: sign Cz75NFE5KeNrDmrp1c+uMOM7WGF7bUIriEs3ZpHZNio=
вот с ним самая беда. Это hmac256 где нужно передать два значения, т.е. сами данные которые нужно прохэшировать и секретный ключ. Т.е. сервер отвергает запросы у которых не совпадает этот хэш. Интересно другое, на этом запросе серверу плевать на подпись авторизации, можно пихать вообще что душе угодно.
Едем дальше, этот запрос возвращает json в котором есть регион, который потом будет использоваться в качестве префикса для серверов диспетчеров.
{"requestid":"1542834592-zdvn13st","region":"eu","error":0}
Забегая вперед, про сервера диспечеризации, Никита там выше спрашивал откуда берутся разные сервера, так вот у них они и спрашиваются. После того как пользователь уже зарегался, т.е. авторизация уже с токеном. дергается адрес https://eu-disp.coolkit.cc:8080/dispatch/app (префикс из запроса определения региона) который и возвращает куда дальше ходить за данными {"port":8080,"reason":"ok","IP":"47.254.134.197","error":0,"domain":"eu-ruslong.coolkit.cc"}
Возвращаемся к логону и получению токена, вторым запросом летит POST запрос https://api.coolkit.cc:8080/api/user/login, где передается логин и ПАРОЛЬ в открытом виде! Дырища размером... короче большая, ставится роутер с сертификатом которому доверяют устройства и у вас лампочки в доме могут начать включаться сами, но это для параноиков. В заголовке опять Authorization: sign jFdBCCSg6XVlj3zOKRyC62W9jRcz8xB96UoWY0gM378= что возвращает нас к теме поиска секретного ключа. Найти который пока мне не удалось. Диссасемблирование APK ни к чему не привело, сигнатуру методов формирования его я вижу но они под ошибками, подозреваю обфускацию. Нашел версию apk самое маленькое 2.1.14 версии - те же яйца только сбоку.
Нашел на просторах вот такой код какого-то китайца https://github.com/princemm/mytest/blob ... /index.php, ключи которые в коде не подходят, но они явно есть где-то в самом apk ибо поиск по самому бинарнику их находит, но верный sign не формируется. Я регуляркой погулял еще по бинарнику навыдергивал порядка десятка подобных значений, все мимо. Разгадаем как формируется строка sign, тогда можно будет работать. Причем для удобства можно логически разделить учетку что на телефонах и сделать еще одну для majordomo и с телефона просто поделиться устройствами с учеткой majordomo, тогда их логон/логофф не будут влиять друг на друга. Просто повторный логон даже с того-же самого устройства выдает новый токен ибо в запросе есть отметка времени - таймстамп и nonce - великий рандом.
- Рейтинг: 3.49%
- samolet
- Сообщения: 474
- Зарегистрирован: Чт июн 29, 2017 10:29 am
- Благодарил (а): 46 раз
- Поблагодарили: 45 раз
Re: [Модуль] Sonoff
Я так понимаю сложность в расшифровке формирования строки sign? Теперь остается лишь привлечь народ на прогулку по бинарнику, подскажите как это сделать и уж я точно погуляю там пособираю грибов в виде значений кода.
Re: [Модуль] Sonoff
Привет всем!
Вот только только установил можора.Сижу изучаю. Подскажите хочу прикрутить sonoff, и вот не могу понять где поле куда надо ключ вписать?
Вот только только установил можора.Сижу изучаю. Подскажите хочу прикрутить sonoff, и вот не могу понять где поле куда надо ключ вписать?
- Вложения
-
- Снимок.PNG (8.91 КБ) 4871 просмотр
- samolet
- Сообщения: 474
- Зарегистрирован: Чт июн 29, 2017 10:29 am
- Благодарил (а): 46 раз
- Поблагодарили: 45 раз
Re: [Модуль] Sonoff
на первой страничке все описано токен это апи авторизации
Пишу для новичков
после нахождения устройства соноф
идем в объекты
находим switch1
открываем его и внизу есть кнопка создан копировать
открываем эту копию и переименовываем например в sonoff
далее заходим обратно в устрйства и выбираем sonoff
открываем свое устройство , данные, и в окошке находим созданный ранее объект sonoff
выбираем его и в окне связанное свойство status
далее в созданной сцене создаем кнопку и все это привязываем к ней.
Пишу для новичков
после нахождения устройства соноф
идем в объекты
находим switch1
открываем его и внизу есть кнопка создан копировать
открываем эту копию и переименовываем например в sonoff
далее заходим обратно в устрйства и выбираем sonoff
открываем свое устройство , данные, и в окошке находим созданный ранее объект sonoff
выбираем его и в окне связанное свойство status
далее в созданной сцене создаем кнопку и все это привязываем к ней.