Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Maryan

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 4
    • Best 0
    • Groups 0

    Maryan

    @Maryan

    0
    Reputation
    30
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Maryan Follow

    Latest posts made by Maryan

    • RE: Xiaomi Remote 360

      Говорю же "мир не без добрых людей".

      Вот мануал как "достать json файл с кодами кнопок пультов для владельцев iOS устройств.

      Без джейлбрейка

      • Setup your iOS device with the Mi Home app
      • Create an unencrypted backup of your iOS device on your computer using iTunes. In case you are unable to disable encryption you probably have a profile preventing this that enforces certain security policies (like work related accounts). Delete these profiles or use another iOS device to continu.
      • Install iBackup Viewer from http://www.imactools.com/iphonebackupviewer/
      • Navigate to your BACKUPS and find the name of your iOS device in the list. Open this backup by clicking the triangle in front of it and then click on raw data.
      • Sort the view by name and find the folder com.xiaomi.mihome and highlight it (it's somewhere at the end). After highlighting it click on the cockwheel above the results and select "Save selected files" from here and choose a location to save the files.
      • Navigate to the com.xiaomi.mihome folder which you just saved somewhere and inside this folder navigate to the /Documents/ subfolder. In this folder there is a file named _mihome.sqlite where your userid is specific for your account.
      • Open this file with a SQLite browser (for instance http://sqlitebrowser.org/%29
      • Execute the query "select ZTOKEN from ZDEVICE where ZLOCALIP is '192.168.0.1'" where you replace the IP address with the IP address of the Mi Home device you want to get the token from. It will show you the 32 character device token for your Mi Home device.

      С джейлбрейком

      • Setup your iOS device with the Mi Home app
      • Use something like Forklift sFTP to connect to your iOS device and copy this file to your computer: /var/mobile/Containers/Data/Application/514106F3-C854-45E9-A45C-119CB4FFC235/Documents/USERID_mihome.sqlite ** username: root ** IP address: your phones IP address ** password: alpine (unless you changed it something else)
      • Open this file with a SQLite browser (for instance http://sqlitebrowser.org/)
      • Execute the query "select ZTOKEN from ZDEVICE where ZLOCALIP is '192.168.0.1'" where you replace the IP address with the IP address of the Mi Home device you want to get the token from. It will show you the 32 character device token for your Mi Home device.

      Источник: https://github.com/jghaanstra/com.xiaom … #ios-users

      P.S. Лишний повод выпить пива самому и не звать соседа, хотя … с соседом(кой) веселее ))

      posted in Железо
      M
      Maryan
    • Xiaomi Remote 360

      Продолжая традицию "узнал сам - поделись с другими" опишу свои наработки с устройством Xiaomi Remote 360 (или IR 360). Здесь обзор на устройство https://www.ixbt.com/live/kvazis/obzor- … narii.html

      5177_ir360.jpeg

      Данное устройство работает как самостоятельное устройство или как часть экосистемы Xiaomi через WiFi. Открытый API отсутствует. Но как говориться "мир не без добрых людей". Один написал модуль miIO, второй портировал на другие системы УД, третьи просто помогли дельными советами. За последние два действия отдельная благодарность skysilver. Это прелюдия, перейдем к действиям.

      Задача: получить доступ к мозгам устройства и возможность его управления из iOBroker. Начнем:

      Этап 1: Получаем токен устройства. Тема большая, развернутая и о ней много написано здесь https://majordomo.smartliving.ru/forum/ … 208#p61208 и здесь https://majordomo.smartliving.ru/forum/ … 809#p65809, первоисточник здесь https://github.com/aholstenson/miio. Но мы с вами немного ленивые, читаем по диагонали, а сделать хотим быстро. Поэтому мануал:

      1. Если вы активный пользователь iOBroker, можете пропускать. NodeJS у вас в любом случае установлен. Проверить можно командой

      node -v
      

      в ответ получаем версию. Если не установлен, то что вы тут делаете? )) или установить командой в консоли

      sudo apt install nodejs
      

      2. Устанавливаем модуль miIO

      npm install -g miio
      

      3. Скандируем сеть на предмет наличия совместных устройств

      miio --discover
      

      в ответ получаем (хуже если нет) список обнаруженных устройств. Сохраняем Device ID, Address, Тoken. Наша цель IR 360, поэтому ищем в списке именно его. Советую присваивать устройству статический IP по MAC адресу. В перспективе нам к нему будет проще обращаться по постоянному IP.

      4. Опрос выявленного IR360

      miio --inspect IP_устройства --token токен_устройства
      

      5. Получает JSON IR 360

      miio --control IP_устройства --token  токен_устройства --method miIO.info
      

      На выходе должна быть информация вида (перс.данные устройства скрываю за ХХХХХХХХХ - ФЗ 152 😄 😞

      INFO  Attempting to control 10.0.1.39
      
       INFO  Got result:
      {
        "life": 1930612,
        "cfg_time": 0,
        "token": "ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ",
        "mac": "ХХ:ХХ:ХХ:ХХ:ХХ:ХХ",
        "fw_ver": "1.2.4_38",
        "hw_ver": "MC200",
        "model": "chuangmi.ir.v2",
        "wifi_fw_ver": "SD878x-14.76.36.p79-702.1.0-WM",
        "ap": {
          "rssi": -44,
          "ssid": "MySSID",
          "bssid": "14:D6:XX:XX:XX:XX"
        },
        "netif": {
          "localIp": "10.0.1.39",
          "mask": "255.255.255.0",
          "gw": "10.0.1.1"
        },
        "mmfree": 45216,
        "ot": "ott",
        "otu_stat": [
          272,
          251,
          176,
          0,
          173,
          800
        ],
        "ott_stat": [
          46,
          6,
          260,
          3867
        ]
      }
      

      Поздравляю, вы прошли половину пути и надеюсь все у вас получилось!

      Этап 2: Подключение к IR360 с конкретной целью - вкл/выкл скажем ТВ. Для этого изначально IR360 должен знать о существовании вашего ТВ и пульт должен быть выбран не из базы Xiaomi, а обучен каждой кнопкой на пульте. Как обучить IR360 кнопкам на ваших пультах смотрите в обзоре самого устройства в начале этого поста. Итак:

      1. IR360 знает о нашем пульте, обучен всем кнопкам и где-то в недрах своих хранит эти коды. Нам нужно получить их. Есть самый простой способ и несколько других. Я поищу самый простой. С помощью андроид телефона, с правами рута, на котором вы и проводили обучение кнопкам пультов. Если же так получилось, что у вас андроида нет (беда еще та), то делайте как я )). Находим жертву с таким чудо телефоном, устанавливаем ему MiHome из PlayMarket, регистрируем его как пользователя в сети Xiaomi (через приложение) и на своем айфоне делимся устройством (Share) с лучшим другом и его телефоном. Отправили ему приглашение, он его получил. Видит ваше устройство. Дальше внимание! Друг должен своим телефоном включить и выключить, переключить каналы, громкость и т.д. И только после этого вся база с кодами кнопок будет в его телефоне и он ее заберет по адресу /data/data/com.xiaomi.smarthome/files/IR_REMOTE_DID_device.json и отдаст вам. После этого он удалит ваше устройство из своего MiHome, или это сделайте вы, удалив расширенное другу устройство. Во всем этом есть одна плохая новость, если вы будете обучать IR360 новым пультам или новым кнопкам на них, эту процедуру придется делать неоднократно. Друг будет несказанно рад вашему приглашению "выпить пива", прихватив с собой телефон ))

      2. Открываем полученный файл любым текстовым редактором. В нем структура такова: вначале перечень пультов устройств, например:

      {"ParentID":"55301223","Timestamp":1507920713,"DeviceID":"1EjyJLNAXsiPQYxbTZQOdYcmDwhr29hr",
      "DeviceType":2,"BrandName":"Xiaomi","State":0,"DeviceTitle":"TV Philips","Location":0,"DeviceData":"",
      "DataProvider":"MiDataProvider","MatchedMonitorID":"","StudyMonitorID":"yCti97QS6yS8NEHJEc7j7PNVLABYIe
      Nq", "StudyMonitorSectionCount":4},{"ParentID":"55301223","Timestamp":1507925284,
      

      выделенное в тексте это ID устройства к которому ниже в файле будут указаны коды кнопок. Ниже, под перечнем устройств, начинается секция с описанием кодов кнопок. Выглядит примерно так:

      {"key":"9","value":"Z6WfAKYBAADRAQAAYAMAAIcDAACnAwAAdAoAAJBGAQAAAAAAAAAAAAAAAAAAAAAAAAAA
      AAAAAAAAAAAAAAAAAAAAAAAlIQEBIQMBAQEBAQEBAQEBASQBYyUhAQEhAwEBAQEBAQEBAQEBIwFjJSEBASE
      DAQEBAQEBAQEBAQEjAWMlIQEBIQMBAQEBAQEBAQEBASMBAw==","freq":38400},
      {"key":"power","value":"Z6V9AIsBAADqAQAAUQMAAKADAAB0CgAAmwoAAJxEAQAAAAAAAAAAAAAAAAAAAAA
      AAAAAAAAAAAAAAAAAAAAAAAAAAAAlIQEBIQMBAQEBAQEBAQEBAQMhAWElIQEBIQMBAQEBAQEBAQEBAQMhA
      WEkIQEBIQMBAQEBAQEBAQEBAQMhAQE=","freq":38400}
      

      Обратите внимание, параметр key это "название кнопки", так как вы ее обозвали, когда "обучали" IR360 кнопкам на физическом пульте. Длинная цепочка символов (параметр value - код кнопки на "пульте" и в моем случае для выключения ТВ это будет ****"Z6V9AIsBAADqAQAAUQMAAKADAAB0CgAAmwoAAJxEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

      AAAAAAAAAAAAAAAlIQEBIQMBAQEBAQEBAQEBAQMhAWElIQEBIQMBAQEBAQEBAQEBAQMhAWEkIQEBIQMBAQE

      BAQEBAQEBAQMhAQE="****

      3. Возвращаемся в консоль и с трепетом даем команду

      miio --control IP_устройства --token токен_устройства --method miIO.ir_play --params '{"freq":38400,"code":"код_кнопки"}
      

      И в этот момент ваш ТВ (или на что вы там рассчитывали) делает магический щелчок и получает статус "ВКЛ или ВЫКЛ" или что-либо иное.

      Поздравляю! Вы научились управлять IR360 из консоли. А дальше объекты, скрипты и только ваша фантазия может ограничить вас. Удачи!

      posted in Железо
      M
      Maryan
    • RE: Камера Xiaomi Dafang 1080P

      Продолжу наполнять эту тему описывая свершения, победы и поражения с этим девайсом в связке с брокером.

      Итак, есть хакнутая камера, есть ссылки для получения фото видео. Далее будем реализовывать передачу потока в яшку. Так как у меня серверная часть крутиться на малине (Raspberry Pi3), а в ее базовой инсталляции нет пакета ffmpeg, эту досаду необходимо устранить. Сразу оговорюсь, ничего нового тут не пишу, все взято с сайта Raspberry Pi и iobroker с одним отличием - все пропущено через себя.

      Итак, этап 2 - установка ffmpeg на RP3

      wget https://github.com/legotheboss/YouTube-files/raw/master/ffmpeg_3.1.4-1_armhf.deb
      sudo dpkg -i ffmpeg_3.1.4-1_armhf.deb
      

      За данный вариант большое спасибо Кирову Илье. До его варианта я перебрал 2 других, которые ставились без замечаний, но с кодеками была засада. Так что, не ищите других способов и не изобретайте велосипед.

      Этап 3 - захват видеопотока с камеры.

      Для начала проверим наличие видеопотока. Для этого в консоли (у меня малина) пишем

      ffmpeg -y -i rtsp://IP_камеры:8554/unicast -t 10 -f mp4 -vcodec h264_omx -pix_fmt yuv420p -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 25 /home/pi/out.mp4
      

      На выходе должны получить 10 секундный видеофайл out.mp4 в каталоге /home/pi/ с неким объемом в Мб. Если файл пустой или его вовсе нет … ужас, что-то пошло не так. Вчитываемся в много букв на экране. Возможно ffmpeg не может найти видеопоток с камеры на указанном IP, возможно кодек неверно стал (можете попытаться заменить h264_omx на libx264).

      Проверить наличие установленных кодеков

      ffmpeg -codecs | grep 264
      

      в конце должно быть нечто подобное:

      DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb h264_omx )

      Если файл образовался и через ftp/samba (или иными протоколами доступа) вы можете его просмотреть - поздравляю! камера вся ваша и можете беспощадно ее эксплуатировать

      Что можно сделать. Например, отдать поток в HomeKit (как это с ходу сделал я).

      Этап 4 - настройка вещания видеопотока через HomeKit на iOS

      Для этого:

      1. На закладке драйвера установите "Homekit yahka adapter" нажав на + в крайнем правом столбце. Рекомендую ставить версии не ниже 0.6.0 (на момент тестирования находится в редакции beta 3). Чтобы установить бету включите режим эксперта (верхняя строка, иконка с безымянным портретом), в последнем столбце строки с "Homekit yahka adapter" появиться стрелка вниз (за кнопкой с мусорной корзиной), нажимаем и выбираем нужную версию. После установки нажать кнопку с стрелкой вниз (за кнопкой с "?") - обновить файлы в базе данных.

      2. Переходим на закладку "настройки драйверов"

      3. Ищем в ней "Homekit yahka adapter" и нажимаем кнопку "настроить"

      4. Далее не важно для камеры в целом, но важно для дальнейшей настройки остальных устройств. В настройках, в левой части панели видим корневой элемент, в нем указано как приложение iOS "Дом" будет видеть название вашего "умного дома". Название произвольное. Ключевое в настройках этого элемента это пин-код. Именно по нему вы будете объявлены хозяином для приложения iOS. Предлагаю его в одночасье сменить. Готово.

      5. Нажимаем "+ Add Camera ".

      5.1. Слайдер "Basic Properties" по аналогии с п.4, но работает на конкретную камеру (название камеры, пин-код для сопряжения с iOS)

      5.2. Слайдер "Stream Properties", самое важное, но не самое страшное после теста в консоле командой ffmpeg.

      • Source указать ссылку на видеопоток или фото, например rtsp://IP_камеры:8554/unicast (смотрим на ранее описанную команду ffmpeg). Для "вещания" статического фото указываем http://IP_камеры/cgi-bin/currentpic.cgi?width=640&height=480

      • Codec указать h264_omx или libx264 (для малины гуру рекомендуют первый)

      • max.Width ширина картинки

      • max.Height высота картинки

      • max.FPS максимальное количество кадров в секунду

      В последних 3 пунктах советую начинать с малого (например, 640х480х10) и постепенно увеличивать до требуемого на уровне возможного для вашей камеры. Также, советую запустить поток в том же VLC, и проверить его работоспособность (вещание), и посмотреть информацию о потоке (ширина и высота картинки). Больше, чем показывает при вещании в VLC, ставить нецелесообразно.

      5.3. Слайдер "Advanced Settings" описывать не буду. Кто понимает, то будет руками править, иначе … лучше не надо.

      Нажимаем "Сохранить и выйти", драйвер перезапускается и индикатор его активности должен стать зеленым. И снова поздравляю! Доставайте iPhone, iPad, AppleTV (приложение "Дом" появилось с 10 версии и на AppleTV 4 поколения), запускайте его, создавайте "My sweet HOME", вводите код ... дальше вне темы данного поста.

      И для анонса следующего опуса начинающего брокера, публикую небольшой скрипт реализованный в Blockly. За его создание и назидания благодарность Alex )). В нем заложена следующая логика, применимая для описанной выше камеры.

      1. Скрипт анализирует состояние объекта пинг IP камеры. Нет пинга - нет питания.

      2. Если у камеры пропало питание (например, украли ...) брокер шлет сообщение в телеграмм

      3. Когда питание восстановилось (вор вернул )), нет банально рубильником подали на район напряжение), брокер отправит в камеру команду на старт вещания потока и отправит в телеграмм радостное сообщение.

      На этом все. Удачи!

      Рекомендуемые ссылки других авторов (для закрепления материала):

      https://github.com/kirovilya/ioBroker.y ... era_rus.md

      http://forum.iobroker.net/viewtopic.php?f=26&t=10399
      5177_blocly_camera_telegramm.jpeg

      posted in Железо
      M
      Maryan
    • Камера Xiaomi Dafang 1080P

      Коль уж сам возился, опишу для последующих как хакнуть новую камеру от Xiaomi, серия Dafang 1080P, вот такая https://www.ixbt.com/live/kvazis/obzor- … 1080p.html.

      Итак, для того чтобы камеру можно было использовать вне приложения Xiaomi MiHome ее необходимо "хакнуть". Благо, мир не без добрых людей, и на GitHub уже выложены способы. Читаем здесь https://github.com/EliasKotlyar/Xiaomi- ... all_cfw.md.

      Этапы:

      1. Берем SD карту (она в дальнейшем останется в камере, поэтому запаситесь запасной с объемом 16-32 или более Гига)

      2. Формат в FAT

      3. Качаем последнюю версию CFW отсуда https://github.com/EliasKotlyar/Xiaomi- ... /hacks/cfw (сейчас это 1.2)

      4. Пишем в корень отформатированной карты файл и переименовываем в его demo.bin. Других файлов на карте быть не должно!

      5. Вставляем в выключенную камеру, зажимаем кнопку Setup и подаем питание. Держим 5-6 секунд, отпускаем, питание не отключаем.

      6. Как только начнет крутить основой - выключаем, вынимаем карту, включаем, если через 5 секунд камера моргнет синим диодом и после этого начинает крутить основу - идем дальше, если нет, повторяем процедуру в п.5

      7. Качаем каталог https://github.com/EliasKotlyar/Xiaomi- ... rmware_mod

      8. Удаляем с SD карты demo.bin и пишем на нее содержимое каталога firmware_mod (в корне карты должны быть каталоги bin, config, driver, script, www и run.sh

      9. Открываем файл wpa_supplicant.conf из папки config

      10. Правим SSID и PW, указывая параметры вашей домашней Wi-Fi сети

      11. Вставляем карту в выключенную камеру, подаем питание.

      12. Если все ОК, через 5 секунд короткий блинк синим диодом и светящийся желтый, если нет - идем в п.9

      13. Сканером сети узнайте IP адрес, присвоенный камере (рекомендую привязать его по MAC адресу)

      14. В браузере http://IP_камеры/cgi-bin/status.cgi. Здесь можете поменять часовую зону, hostname камеры.

      15. Для проверки "управляемости" камерой нажимите на кнопки движения камеры (влево, вправо), тест звука - камера должны на вас реагировать.

      16. Включаем протокол доступа к потоку, нажимаем Start MJPEG RTSP - Start

      17. После всего проделанного по адресу

      http://IP_камеры/cgi-bin/currentpic.cgi?width=1920&height=1080 картинка с камеры

      rtsp://IP_камеры:8554/unicast видеопоток с камеры

      Вот и все, теперь зная как получить картинку и поток, используем это в скриптах. Удачи!

      posted in Железо
      M
      Maryan
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo