Mqtt ???

Тема в разделе "Флудилка", создана пользователем Igor68, 2 апр 2021.

  1. Igor68

    Igor68 Гуру

    Правильно ли я понимаю, что у Вас tcpdump на роутере? Испытал просто на компе - штука достойная внимания. У меня "подопытный" роутер (на нем сеть задуманная только для меня) старичок dir620 (A1) - я на него залил OpenWrt - всё нравится, но в консоли особо не пользовал. Может там уже установлен tcpdump? не знаю - с работы приеду посмотрю. OpenWrt там несколько кривой - USB так и не работает... сейчас от него(USB) дежурная малина, ещё первая, питается и она ещё к роутеру скотчем двусторонним приклеена. Если так с tcpdump, то ничего и не надо. Только посмотреть умеет ли он в HEX данные выводить/сохранять. Приготовил софт для формирования и передачи пакета TCP/UDP и др., но на работе в обед типа ostinato, scapy, pacheth. Названия пишу что бы не забыть и дома подсмотреть. Вы применяли вывод tcpdump в hex предствлении в строку? Или Вы в файл кидали, а там всё как есть?
     
    Последнее редактирование: 28 апр 2021
  2. ZAZ-965

    ZAZ-965 Гуру

    @Igor68, вряд ли установлен, по моему последние версии собираются даже без веб интерфейса LuCI. Всегда можно установить через пакетный менеджер opkg install tcpdump. tcpdump умеет сохранять в pcap файл, который потом можно открыть в Wireshark.
    По USB - похоже по умолчанию в версии 19.07.7 собираются только kmod-usb-core и kmod-usb-dwc2, для работы потребуется установить еще kmod-usb2, у меня установлено
    Код (C++):
    opkg list-installed | grep kmod-usb*
    kmod-usb-acm
    kmod-usb-audio
    kmod-usb-core
    kmod-usb-hid
    kmod-usb-ohci
    kmod-usb-serial
    kmod-usb-serial-ch341
    kmod-usb-serial-cp210x
    kmod-usb-serial-pl2303
    kmod-usb-serial-wwan
    kmod-usb-storage
    kmod-usb-storage-extras
    kmod-usb-uhci
    kmod-usb2
     
    Igor68 нравится это.
  3. Igor68

    Igor68 Гуру

    Доброго времени суток!
    Похоже на данном роутере малину оставлю, но в начале хотел USB-HDD подключить. Думаю малина будет полезнее... она первая и много не потребляет - пусть будет(на ней Apache и другая мелочь - I2C и прочее... колодка выведена на шлейф с разъёмом IDCC)! То макетку к нему подсуну, то дисплей маленький испытать то прочее. На ней gcc на всякий случай и ро ssh в путь. По NFS она имеет внешний диск на системном блоке старом с Debian - в углу стоит.
    Жаль, что tcpdump в этой версии OpenWrt нет, и в поиске доустановок отсутствует:
    Код (Text):
    igor@debianNUC7PJYH:~$ ssh root@192.168.7.1
    root@192.168.7.1's password:


    BusyBox v1.28.4 () built-in shell (ash)

      _______                     ________        __
    |       |.-----.-----.-----.|  |  |  |.----.|  |_
    |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
    |_______||   __|_____|__|__||________||__|  |____|
              |__| W I R E L E S S   F R E E D O M
    -----------------------------------------------------
    OpenWrt 18.06.4, r7808-ef686b7292
    -----------------------------------------------------
    root@OpenWrt:~# uname -a
    Linux OpenWrt 4.14.131 #0 Thu Jun 27 12:18:52 2019 mips GNU/Linux
    root@OpenWrt:~#
     
    Как видно старая, да и роутер более не производится. А сбирать для MIPS не пробовал. Тулчейн для этого не ставил.
    Но в виртуальном KaliLinux вижу обмен, через "петлю"(с помощью ettercap) и WireShark там видит всё.
    Только вот беда с глазами - как будто варил сваркой без маски. Жесть! Вы уж не ругайте если букву какую пропущу и пр.
    Вроде всё приготовил... надо только выходной, чтоб утром не вставать рано.
    Планирую "срисовать" некторые пакеты (вкл/выкл) и подставлять их как пробные - лампа держит непрерывное соединение TCP с сервером в интернете, как только связь обрывается сразу широковещательный запрос UDP. А ARP понятно всегда при подключении к роутеру. Когда делается "петля" всегда переподключение лампы.

    по:
    opkg install tcpdump
    установился успешно. Чем-то напоминает dpkg по написанию, но по идее ближе к apt-get, aptitude... но это я так думаю по недоумию своему.

    Отключаюсь - глазам почти кирдык.
     
    Последнее редактирование: 28 апр 2021
  4. Igor68

    Igor68 Гуру

    Вот получилось снять данные от роутера от tcpdump на нём(содержимое архива можно просмотреть в WireShark):
    cap.pcappng.zip
    Описание:
    - С момента подачи напряжения на лампу (мобильное приложение... сама мобила не в сети wifi)
    - Через несколько секунд пускаем мобилу в сеть
    - Потом делаем выключение и включение лампы через приложение
    Информация:
    192.168.7.231 - IP лампы
    192.168.7.195 - IP мобильника
    Иные IP это внешние и не в локальной сети.

    Теперь можно и есть что курить...
     

    Вложения:

    • cap.pcappng.zip
      Размер файла:
      9,3 КБ
      Просмотров:
      236
  5. Igor68

    Igor68 Гуру

    Эксперимент 2:
    - роутер физически не может выходить в интернет - wan отключен физически
    - лампа без напряжения, подаем напряжение
    - мобила не в сети wifi роутера - подключаем
    - моргаем лампочкой пару раз - успешно.
    вот (содержимое можно посмотреть в WireShark)
    cap2.pcappng.zip
    Вывод - на кой ляд интернет?
    Потом попробую сбросить лампу и переподключиться без доступа в интернет.
     

    Вложения:

    Последнее редактирование: 29 апр 2021
  6. Igor68

    Igor68 Гуру

    Опыт №3 попытка регистрации без подключения к WAN:
    - лампа сброшена и раздаёт wifi (в это время через роутер ничего не идёт - мобила напрямую к wifi лампы) и медленно мигает. Приложение запросило wifi роутера - указал. Сразу и мобила к этому wifi роутера. Лампа согласно снструкции быстро мигает - подтверждаю... и опля - ошибка соединения. Сделал несколько попыток(начиная со сброса) - аналогично. Подключаю WAN к роутеру... и всё нормально - лампа зарегистрирована - где-то там в лесу облачном. И в приложении HIPER IoT всё штатно. Вот:
    cap3.pcappng.zip
    Наводит на раздумье...
     

    Вложения:

  7. SergeiL

    SergeiL Оракул Модератор

    А мне кажется проще своё написать, на ESP8266 с mqtt, Если люстра то там хорошо все прячется в колпак закрывающий подключение. Да и полная автономка получается, не зависишь от облачных сервисов и интернета.
     
    Andrey12 нравится это.
  8. Igor68

    Igor68 Гуру

    Да ни разу не спорю! Купил вот, а разбирать что-то нет желания - не дёшево. Там ESP и наверное реально записать туда своё. Вот помучаюсь малость - дабы стариной тряхнуть пока дожидаюсь пока товар придёт из Китая.
    ....
    Вот хотел сделать скриншот области экрана в KDE(раскраска байт дампа сканирования в редакторе) .... только переключился. Вот блин.... выходит что KDE теперь наверное Microsoft делает - стал уродлив - просто стон!
     
    Последнее редактирование: 29 апр 2021
  9. Igor68

    Igor68 Гуру

    Вот WiteShark не вынюхал MQTT. Понимаю, что содержимое может быть каким либо и даже закодирванным, но думаю не только не шапка пакета.
     
  10. Igor68

    Igor68 Гуру

    Вот курю:
    Итак с начала:
    - Мобилы с приложение в сети нет. Лампа кидает широковещательный UDP... и мы его ловим сервером UDP - самопальным понятное дело... из кусков примеров вот этим:
    lamp.zip
    Всё сделано в Debian то биш GCC. Задача поймать лампу и прочитать то что нам послали... ну и ловим:
    Код (Text):
    igor@debianNUC7PJYH:~/coding/test/lamp/src$ ./lamptest
    test
    IPclient: 192.168.7.231
    Len: 188
    00 00 55 AA 00 00 00 00 00 00 00 13 00 00 00
    AC 00 00 00 00 DA 96 8E 82 63 02 86 CC 94 B6
    AA 8C 1B 28 DE F1 75 2E 17 7F 5A B7 76 27 56
    26 1A 92 54 76 5C CC D3 02 AD 04 4E FB F8 C5
    1B 22 34 57 C3 C8 43 55 ED 8A 99 1C CD DD 8A
    F0 03 A0 8C C2 BC 6C 42 12 4C B2 E9 6C 0A 7F
    1E 41 3B AE D1 8D 2F 9C E8 9D D9 8A 20 83 CC
    86 3E 53 24 9C DF ED 5E C9 31 22 B4 B2 BB EE
    CE 58 82 C4 5B 23 69 7E 1D AA C6 FC FF 42 80
    41 EC 6A B5 7E 8B AB F1 13 E3 B2 A6 82 B4 2F
    B4 D3 82 DA 37 49 8C 8D DD 04 59 0F D7 52 76
    8F FC 6A B3 34 85 95 66 B8 DB 83 B5 BC 22 15
    EF 5B 65 CB 00 00 AA 55
    end
    igor@debianNUC7PJYH:~/coding/test/lamp/src$
    Далее мы должны подсоединиться к лампе поймав IP этой лампы, а их в сети крутится две, потому как лампа уже сервер... а мы стало быть клиент. Кстати лампа начинает раздавать такие UDP пакеты, если к ней не подключен клиент по TCP.
    Но это чуть позже...
     

    Вложения:

    • lamp.zip
      Размер файла:
      7 КБ
      Просмотров:
      204
  11. Igor68

    Igor68 Гуру

    Итак получили незнамо что(надеюсь пока что) по UDP соединились по TCP к лампе. К лампе подключаемся автоматом приняв от неё IP и подключаемся вот этим кодом:
    lamp.zip
    Код принимает UDP и подключается по TCP
    Код (Text):

    igor@debianNUC7PJYH:~/coding/test/lamp/src$ ./lamptest
    test
    IPclient: 192.168.7.231
    Len: 188
    00 00 55 AA 00 00 00 00 00 00 00 13 00 00 00 AC
    00 00 00 00 DA 96 8E 82 63 02 86 CC 94 B6 AA 8C
    1B 28 DE F1 75 2E 17 7F 5A B7 76 27 56 26 1A 92
    54 76 5C CC D3 02 AD 04 4E FB F8 C5 1B 22 34 57
    C3 C8 43 55 ED 8A 99 1C CD DD 8A F0 03 A0 8C C2
    BC 6C 42 12 4C B2 E9 6C 0A 7F 1E 41 3B AE D1 8D
    2F 9C E8 9D D9 8A 20 83 CC 86 3E 53 24 9C DF ED
    5E C9 31 22 B4 B2 BB EE CE 58 82 C4 5B 23 69 7E
    1D AA C6 FC FF 42 80 41 EC 6A B5 7E 8B AB F1 13
    E3 B2 A6 82 B4 2F B4 D3 82 DA 37 49 8C 8D DD 04
    59 0F D7 52 76 8F FC 6A B3 34 85 95 66 B8 DB 83
    B5 BC 22 15 EF 5B 65 CB 00 00 AA 55
    TCPconnect: 192.168.7.231:6668
    TCPconnected: 192.168.7.231 !
    socket: 4
    Loop...

    RcvLen: 60
    00 00 55 AA 00 00 00 02 00 00 00 07 00 00 00 2C
    00 00 00 01 4A B1 72 E9 0A 9D 9E AC EE E3 68 FD
    29 C6 CD 17 81 AD BF 27 AA 07 0A F2 16 5A 4D 8C
    76 EE 83 4B 51 5D 4D A8 00 00 AA 55

    RcvLen: 60
    00 00 55 AA 00 00 00 02 00 00 00 07 00 00 00 2C
    00 00 00 01 4A B1 72 E9 0A 9D 9E AC EE E3 68 FD
    29 C6 CD 17 81 AD BF 27 AA 07 0A F2 16 5A 4D 8C
    76 EE 83 4B 51 5D 4D A8 00 00 AA 55

    RcvLen: 60
    00 00 55 AA 00 00 00 02 00 00 00 07 00 00 00 2C
    00 00 00 01 4A B1 72 E9 0A 9D 9E AC EE E3 68 FD
    29 C6 CD 17 81 AD BF 27 AA 07 0A F2 16 5A 4D 8C
    76 EE 83 4B 51 5D 4D A8 00 00 AA 55

    RcvLen: 60
    00 00 55 AA 00 00 00 02 00 00 00 07 00 00 00 2C
    00 00 00 01 4A B1 72 E9 0A 9D 9E AC EE E3 68 FD
    29 C6 CD 17 81 AD BF 27 AA 07 0A F2 16 5A 4D 8C
    76 EE 83 4B 51 5D 4D A8 00 00 AA 55

    ^C
    igor@debianNUC7PJYH:~/coding/test/lamp/src$
     
    Посылаем отсканированный ранее пакет TCP и принимаем ответные от лампы. Посылаем один тот же "шаблонный" пакет.
    Это для пробы - есть подозрение что лампа всё записывает во флешку. В ответ лампа посылает состояние.
     

    Вложения:

    • lamp.zip
      Размер файла:
      12,4 КБ
      Просмотров:
      124
    Последнее редактирование: 30 апр 2021
  12. Andrey12

    Andrey12 Гик

    Вот тя прет то :)
    Да перепрошей ее на то то вменяемое, тем более там ESP и будет тебе счастье без потусторонних облаков. Я так с сонофами поступаю. Понятно что вскрывать неохота, но мне еще более неохота было бы программную заглушку на роутере ставить.

    Хотя эксперимент интересный. А то что MQTT не узнает. Были же ребята, написали не помню какой проект то ли блинк то ли чето созвучное, и типа изобрели свой "mqtt". Ну че до сих пор вроде жив проект, да и сложного ниче нет поменяй просто кодировку заголовков и все.
     
    Igor68 нравится это.
  13. Igor68

    Igor68 Гуру

    До Пасхи не бухаю! Зарок дал. Да и сегодня на работу не пустили - меня колбасило потму как вчера а не сегодня до 3:00 температура вроде была, а потом жар. А у нас с этим строго... типа а вдруг корона. По VPN на работу связь что-то обвалилась... жду доставки железа из Китая, там будет запланированное. А лампы? В принципе для опытов купил, разбирать пока не хочется. Не нравится, что надо включаться вместе с будильником, а не работает функция если мобила не в сети. А это не MQTT - тут даже нет надстроек в пакете... тупа голый TCP с данными не превышающих размера вместе с шапкой TCP 256 байт и даже меньше. Из опытов: лампа не подключится к приложению если не сможет сама выйти в интернет. Разбирать нет желания - может потом умную колонку/железку возьму, которая голос понимает и желательно без доступа в интернет.
     
  14. Igor68

    Igor68 Гуру

    Я то же делаю подстановку данных в TCP пакет... сформировав некую структуру(массив), которая идентичная как у передающего, так и принимающего. А про какой нибудь стандартный или свой не думал... после успешного соединения с ПЛК ABB AC80M не хочу - сначала делаешь TCP соединение, потом регистрируешь протокол, там был MMS.

    А как понимать это?
    Я не понял, если честно.
     
  15. Igor68

    Igor68 Гуру

    Доброго времени суток!
    Эксперимент с пакетом... без разбора (анализа) - результат включение лампы из выключенного состояния. Это конечно не решение, а опыт.
    Вот код:
    не загружается - наверное нельзя
    а потому дамп который надо применяь для TCP посылки этот:
    Код (C++):
    const uint8_t tston2[] = {
    0x00, 0x00, 0x55, 0xaa, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
    0x00, 0x07, 0x00, 0x00, 0x00, 0x77, 0x33, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x53, 0x00, 0x06, 0x78, 0x57, 0x93, 0x5c, 0xe9, 0xb6, 0x7f, 0x93, 0x1a, 0x10, 0x24, 0xb9, 0x3e,
    0xc3, 0x66, 0x23, 0x74, 0x98, 0x63, 0x2e, 0x7b, 0x8a, 0xe0, 0x54, 0x81, 0x17, 0x68, 0xe4, 0x0d,
    0xe2, 0xa8, 0x75, 0x83, 0x22, 0x97, 0x99, 0x84, 0x5f, 0xde, 0xd0, 0x25, 0xe7, 0x33, 0xf0, 0x80,
    0xf6, 0x8f, 0x7d, 0x11, 0x9b, 0x3a, 0x02, 0x63, 0xf3, 0xe6, 0x2f, 0xfc, 0xbc, 0x07, 0x32, 0x36,
    0x9d, 0x5b, 0x44, 0x61, 0x7f, 0x56, 0x92, 0xe0, 0x02, 0xa6, 0x74, 0xba, 0x6a, 0xc0, 0xd3, 0xe9,
    0x76, 0x8f, 0x4e, 0x67, 0x4e, 0xef, 0x64, 0x8f, 0xe9, 0xfb, 0xfc, 0xdf, 0x21, 0x98, 0x01, 0xf6,
    0xe4, 0x22, 0x60, 0xb2, 0x97, 0x3e, 0xaa, 0x91, 0xcc, 0x00, 0x00, 0xaa, 0x55};
    в файле tcpc.c, а цикл надо что бы отработал один раз в функции int TcpLoop(int lsock)

    Одним словом когда лампа выключена дистанционно, нет связи с мобилой... вот:
    Код (Text):
    igor@debianNUC7PJYH:~/coding/test/lamp/src$ ./lamptest
    test
    IPclient: 192.168.7.231
    Len: 188
    00 00 55 AA 00 00 00 00 00 00 00 13 00 00 00 AC
    00 00 00 00 DA 96 8E 82 63 02 86 CC 94 B6 AA 8C
    1B 28 DE F1 75 2E 17 7F 5A B7 76 27 56 26 1A 92
    54 76 5C CC D3 02 AD 04 4E FB F8 C5 1B 22 34 57
    C3 C8 43 55 ED 8A 99 1C CD DD 8A F0 03 A0 8C C2
    BC 6C 42 12 4C B2 E9 6C 0A 7F 1E 41 3B AE D1 8D
    2F 9C E8 9D D9 8A 20 83 CC 86 3E 53 24 9C DF ED
    5E C9 31 22 B4 B2 BB EE CE 58 82 C4 5B 23 69 7E
    1D AA C6 FC FF 42 80 41 EC 6A B5 7E 8B AB F1 13
    E3 B2 A6 82 B4 2F B4 D3 82 DA 37 49 8C 8D DD 04
    59 0F D7 52 76 8F FC 6A B3 34 85 95 66 B8 DB 83
    B5 BC 22 15 EF 5B 65 CB 00 00 AA 55
    TCPconnect: 192.168.7.231:6668
    TCPconnected: 192.168.7.231 !
    socket: 4
    Loop...

    RcvLen: 28
    00 00 55 AA 00 00 00 08 00 00 00 07 00 00 00 0C
    00 00 00 00 22 90 A3 FC 00 00 AA 55

    end
    igor@debianNUC7PJYH:~/coding/test/lamp/src$
    В момент когда принато RcvLen: 28 по TCP лампа включена.
    Сразу хочу отметить настройки типа:
    - Яркость
    - Температура цвета
    - Режим - выбор цветовой гаммы в режиме "цветомузыки" и прочее
    остаются те, что были до выключения.
    Сканирование проводилось программой tcpdump на роутере, но при этом у самого роутера не было связи с интернетом физически(WAN).
    Сканирование проводилось при подаче команды включения от мобильника до лампы.
    Программу проблем написать нет никаких, но надо как-то "вскыть" структуру пакета для начала... так что опыт продолжается.
    PS. В продаже была только лампа HIPER A61 RGB. Так, что функций у нее много - тут и выбор палитры цвета, какие-то сценарии цветного мигания, температура цвета белого освещения, яркость для всех режимов... так, что это не просто вкл/выкл.
     
    Последнее редактирование: 1 май 2021
  16. Igor68

    Igor68 Гуру

    Теперь отсканированы оба пакета "вкл" и "выкл" и программа консольная изменилась. Теперь ей надо входной параметр.
    Вот включение:
    Код (Text):
    igor@debianNUC7PJYH:~/coding/test/lamp/src$ ./lamptest 1
    cmd=1
    test
    IPclient: 192.168.7.231
    Len: 188
    00 00 55 AA 00 00 00 00 00 00 00 13 00 00 00 AC
    00 00 00 00 DA 96 8E 82 63 02 86 CC 94 B6 AA 8C
    1B 28 DE F1 75 2E 17 7F 5A B7 76 27 56 26 1A 92
    54 76 5C CC D3 02 AD 04 4E FB F8 C5 1B 22 34 57
    C3 C8 43 55 ED 8A 99 1C CD DD 8A F0 03 A0 8C C2
    BC 6C 42 12 4C B2 E9 6C 0A 7F 1E 41 3B AE D1 8D
    2F 9C E8 9D D9 8A 20 83 CC 86 3E 53 24 9C DF ED
    5E C9 31 22 B4 B2 BB EE CE 58 82 C4 5B 23 69 7E
    1D AA C6 FC FF 42 80 41 EC 6A B5 7E 8B AB F1 13
    E3 B2 A6 82 B4 2F B4 D3 82 DA 37 49 8C 8D DD 04
    59 0F D7 52 76 8F FC 6A B3 34 85 95 66 B8 DB 83
    B5 BC 22 15 EF 5B 65 CB 00 00 AA 55
    TCPconnect: 192.168.7.231:6668
    TCPconnected: 192.168.7.231 !
    socket: 4
    Loop...

    RcvLen: 28
    00 00 55 AA 00 00 00 08 00 00 00 07 00 00 00 0C
    00 00 00 00 22 90 A3 FC 00 00 AA 55

    end
    igor@debianNUC7PJYH:~/coding/test/lamp/src$
     
    А это выключение:
    Код (Text):
    igor@debianNUC7PJYH:~/coding/test/lamp/src$ ./lamptest 0
    cmd=0
    test
    IPclient: 192.168.7.231
    Len: 188
    00 00 55 AA 00 00 00 00 00 00 00 13 00 00 00 AC
    00 00 00 00 DA 96 8E 82 63 02 86 CC 94 B6 AA 8C
    1B 28 DE F1 75 2E 17 7F 5A B7 76 27 56 26 1A 92
    54 76 5C CC D3 02 AD 04 4E FB F8 C5 1B 22 34 57
    C3 C8 43 55 ED 8A 99 1C CD DD 8A F0 03 A0 8C C2
    BC 6C 42 12 4C B2 E9 6C 0A 7F 1E 41 3B AE D1 8D
    2F 9C E8 9D D9 8A 20 83 CC 86 3E 53 24 9C DF ED
    5E C9 31 22 B4 B2 BB EE CE 58 82 C4 5B 23 69 7E
    1D AA C6 FC FF 42 80 41 EC 6A B5 7E 8B AB F1 13
    E3 B2 A6 82 B4 2F B4 D3 82 DA 37 49 8C 8D DD 04
    59 0F D7 52 76 8F FC 6A B3 34 85 95 66 B8 DB 83
    B5 BC 22 15 EF 5B 65 CB 00 00 AA 55
    TCPconnect: 192.168.7.231:6668
    TCPconnected: 192.168.7.231 !
    socket: 4
    Loop...

    RcvLen: 28
    00 00 55 AA 00 00 00 02 00 00 00 07 00 00 00 0C
    00 00 00 00 18 CF C5 DA 00 00 AA 55

    end
    igor@debianNUC7PJYH:~/coding/test/lamp/src$
    Всё, что отрображается в консоли - это для отладки.
    Код выложить не могу - вроде качается и прилагается, но его размер = 0:confused: Мне это не ясно.

    Но всё равно часть эксперимента в плане установления связи и передачи пакетов выполнена... и лампа реагирует на команды.
     
  17. Igor68

    Igor68 Гуру

    Внимание! Всё, что я сделал, касается только подопытной моей лампы. Другая подопытная лампа в этой же сети не реагирует.
    Кстати MAC адрес лампы тут не при чём похоже потому как он наблюдается в шапке TCP/IP. Тут есть данные, которые находятся в поле передаваемых данных в TCP и похоже содержатся и в данных при приёме в UDP пакете.
    Одним словом для работы данные требуется вскрыть (проанализировать) - там должна быть идентификация.
     
    Andrey12 нравится это.
  18. Igor68

    Igor68 Гуру

    Это всё для HIPER A61 RGB.
    Проба на малине ничем не отличается. Так же включается и выключается.
    Но для работы программы требуется... точнее её для генерации:
    - Установить на мобилу, в инструкции к лампе все сказано, HIPER IoT и "зарегистрировать" приложение и собственно лампу.
    - Просканировать обмен выполняя включение и выключение. Для сканирования можно применять как средства Kali Linux (ettercap, там же можно и воспользоваться и WireShark), а так же tcpdump. Последний выгоднее применить в самом роутере, но получается что роутер должен иметь прошивку семейства OpenWrt.
    - Вставить в файл tcpc.c подходящие дампы TCP в массив путём редактирования. Дамп следует извлекать так:
    Код (Text):
    0000   d8 bf c0 e5 bb 61 38 94 96 a8 7a 87 08 00 45 00   Ø¿Àå»a8..¨z...E.
    0010   00 af 7b e3 40 00 40 06 2d 6b c0 a8 07 c3 c0 a8   .¯{ã@.@.-kÀ¨.ÃÀ¨
    0020   07 e7 b1 3a 1a 0c 2a de b3 cc 00 01 cc 4e 50 18   .ç±:..*Þ³Ì..ÌNP.
    0030   3c b8 f0 de 00 00 00 00 55 aa 00 00 00 08 00 00   <¸ðÞ....Uª......
    0040   00 07 00 00 00 77 33 2e 33 00 00 00 00 00 00 00   .....w3.3.......
    0050   53 00 06 78 57 93 5c e9 b6 7f 93 1a 10 24 b9 3e   S..xW.\é¶....$¹>
    0060   c3 66 23 74 98 63 2e 7b 8a e0 54 81 17 68 e4 0d   Ãf#t.c.{.àT..hä.
    0070   e2 a8 75 83 22 97 99 84 5f de d0 25 e7 33 f0 80   â¨u."..._ÞÐ%ç3ð.
    0080   f6 8f 7d 11 9b 3a 02 63 f3 e6 2f fc bc 07 32 36   ö.}..:.cóæ/ü¼.26
    0090   9d 5b 44 61 7f 56 92 e0 02 a6 74 ba 6a c0 d3 e9   .[Da.V.à.¦tºjÀÓé
    00a0   76 8f 4e 67 4e ef 64 8f e9 fb fc df 21 98 01 f6   v.NgNïd.éûüß!..ö
    00b0   e4 22 60 b2 97 3e aa 91 cc 00 00 aa 55            ä"`².>ª.Ì..ªU
     
    То, что начинается с 00 00 55 aa (это с адреса 0036) и до конца и есть то, что нужно. TCP пакет следует выбирать тот который идёт от мобильника к лампе. А вставлять в таком виде:
    Код (C++):
    const uint8_t tston2[] = {
    0x00, 0x00, 0x55, 0xaa, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
    0x00, 0x07, 0x00, 0x00, 0x00, 0x77, 0x33, 0x2e, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x53, 0x00, 0x06, 0x78, 0x57, 0x93, 0x5c, 0xe9, 0xb6, 0x7f, 0x93, 0x1a, 0x10, 0x24, 0xb9, 0x3e,
    0xc3, 0x66, 0x23, 0x74, 0x98, 0x63, 0x2e, 0x7b, 0x8a, 0xe0, 0x54, 0x81, 0x17, 0x68, 0xe4, 0x0d,
    0xe2, 0xa8, 0x75, 0x83, 0x22, 0x97, 0x99, 0x84, 0x5f, 0xde, 0xd0, 0x25, 0xe7, 0x33, 0xf0, 0x80,
    0xf6, 0x8f, 0x7d, 0x11, 0x9b, 0x3a, 0x02, 0x63, 0xf3, 0xe6, 0x2f, 0xfc, 0xbc, 0x07, 0x32, 0x36,
    0x9d, 0x5b, 0x44, 0x61, 0x7f, 0x56, 0x92, 0xe0, 0x02, 0xa6, 0x74, 0xba, 0x6a, 0xc0, 0xd3, 0xe9,
    0x76, 0x8f, 0x4e, 0x67, 0x4e, 0xef, 0x64, 0x8f, 0xe9, 0xfb, 0xfc, 0xdf, 0x21, 0x98, 0x01, 0xf6,
    0xe4, 0x22, 0x60, 0xb2, 0x97, 0x3e, 0xaa, 0x91, 0xcc, 0x00, 0x00, 0xaa, 0x55};
    Таких пакетов два - один для включения, а другой для выключения.
    - Откомпилировать программу.
    После чего программа должна работать.

    Следует отметить, что программа не находится в постоянном подключении, поэтому сначала идёт подключение, а уже позже происходит выполнение команды лампой... потому и задержка на пару тройку секунд. С одной стороны это не удобно, но с другой стороны лампа всегда свободна и готова к управлению мобильным приложением, если таковое появится в этой сети. И интересно тем, что лампа не теряет свой срок гарантии - себе покупал за 820 руб. потому как в целостность её ни программно, ни аппаратно никто не вмешивался, а её работа происходит в штатном режиме. Никто никакой целостности как авторских прав не нарушал, так и не хакал - всё честно. Просто было реализовано на Linux, будь то малина или PC или иное устройство... можно собрать и для роутера на основе OpenWrt и на которых можно что-то запускать.
    Так же реально применять и в составе скриптов (BASH, PHP и др) и значит реализовать управление через WEB - морду.
    Пока есть время на отвлечение, попробую реализовать упрощённую "регистрацию" лампы в программе.

    Особо хочется упомянуть @ZAZ-965 за оказанную помощь
     

    Вложения:

    • lamp.zip
      Размер файла:
      5,3 КБ
      Просмотров:
      121
    Последнее редактирование: 1 май 2021
    Andrey12 нравится это.
  19. SergeiL

    SergeiL Оракул Модератор

    Прикольно, MBR (Boot Сектор) всегда заканчивался 55H, AAH.
    Видимо олды писали. Я тоже люблю использовать 55H, AAH как что-то типа метки.
    В BIN эти два значения выглядят так: 01010101 10101010
    То есть там где в 0x55 находятся "1", в 0xAA - "0", и наоборот.

    Ну нужно теперь провести такой же анализ со второй лампой и сравнить, что меняется в пакете.
    Ну и задержка в 3 секунды - это конечно не айс.
    Я честно говоря смотрел на эти лампы с WiFi и не смог придумать где бы я смог их использовать.
    Управление только через WiFi. То есть питание должно быть постоянно. А как управлять локально?
    Выключателей с WiFi я не видел.
    Со смартфона - не удобно, только понты.
    Автоматика - можно, но не для реальной жизни ИМХО.
     
    Andrey12 нравится это.
  20. Igor68

    Igor68 Гуру

    Я просто искал лампу по wifi какую-никакую. Но были только эти... навороченные. Меня бы устроили бы просто вкл/выкл, ну и яркость добавить/убавить. А "цветомузыку" на основе таких ламп не планировал - ну типа что бы переливалась разными цветами плавно/дискретно, по разным сценариям и прочее, что заложено в неё. Попробовал многие такие возможности, но мне не 15 лет, и такого не надо.
    Что касается второй лампы, то действия для неё те же. Что бы сделать сразу на обе, то надо просто доделать программу - довести до ума. А эта была задумана как эксперимент и не более.
     
    Последнее редактирование: 1 май 2021
    Andrey12 нравится это.