2 заметок с тегомHomeKit

NFLH угоняем полтысячи автомобилей

NFLH Управление авто с телефона NFLH Управление авто с телефона – 2

Примерно год назад обзавёлся китайской приблудой с кодовым названием "NFLH LH001". Если коротко, эта штука управляется через интернеты и эмулирует работу пульта автомобильной сигнализации. В принципе, идея богатая. Но, никто не мешает сделать ещё богаче. Например, интегрировать с Apple HomeKit и научить Siri заводить мою машину.

Для начала, разберёмся, как оно работает. Всё взаимодействие с устройством завязано на приложение для смартфона. С него и начнём. Запускаем Wireshark, пробегаемся по всем кнопкам, смотрим трафик.

HFLH Wireshark

Довольно просто:

  • авторизация /api/v1/user/login.json
  • получение версии программы /api/v1/pub/version.json?deviceType=ios
  • получение состояния девайса /api/v1/car/car_status.json?refresh=1&carid=500
  • счётчик сообщений /api/v1/msg/unread/count.json?carid=500
  • отправить действие /api/v1/car/ctrl.json?carid=500&type=6 (type – это кнопки открыть, закрыть и т.д.)

Пока этого достаточно. Уже можно разбирать коробку и начинать ковыряться в кишочках. Но. Остановимся на api и проверим китайцев на вшивость. Что будет, если в запросах, поменять carid?

А будет вот что.

Мы можем получить состояние любого устройства NFLH, включая местоположение.

NFLH Postman – 1

Можем, например, открыть любой автомобиль.

NFLH Postman – 2

Ну, и соответственно закрыть.

NFLH Postman – 3

Осталось посмотреть куда ехать за новой машиной.

NFLH Yandex Maps

Я так и не смог объяснить китайцам, что у них всё плохо с безопасностью (разговор слепого с глухим). Поэтому, идея прошить в поделку айпишник своего сервера кажется вполне себе адекватной:)

To Be Continued.

HomeKit Авто ГЛОНАСС

Умный дом на Яблоках, Siri and Z-Wave

Умный дом на Яблоках: Siri and Z-Wave

Дано: центр управления системами Z-Wave - контроллер Vera, OS X El Capitan или macOS Sierra, iOS 8.1 и выше.

Задача: заставить Siri управлять умным домом.

Странно что Vera ничего не знает про HomeKit, хотя, казалось бы... потребуется некий проксирующий элемент, чтобы эмулировать API яблочного хозяйства.
В качестве моста возьмём NodeJS сервер HomeBridge с плагином VeraLink. Ok... Запускаем Терминал.app и начинаем городить огород:)

Сейчас будет гайд для «маленьких».

Cкачиваем текущую версию Node.js (на данный момент - 6.2.2),

$ cd ~
$ curl -o ~/Downloads/node-v6.2.2.pkg https://nodejs.org/dist/v6.2.2/node-v6.2.2.pkg

устанавливаем,

$ sudo installer -pkg ~/Downloads/node-v6.2.2.pkg -target /

проверяем,

$ node -v

если в ответ получили: «v6.2.2», - значит всё хорошо, двигаемся дальше.

Через нодовский менеджер пакетов ставим Homebridge,

$ sudo npm install -g homebridge

плагин VeraLink,

$ sudo npm install -g homebridge-vera

создаём конфигурационный файл для Homebridge

$ mkdir ~/.homebridge
$ touch ~/.homebridge/config.json

и добавляем в него

$ nano ~/.homebridge/config.json

примерно такое содержание:

{
    "bridge": {
        "name": "Homebridge",
        "pin": "000-00-000",
        "username": "CC:22:3D:E3:CE:30"
    },
    "platforms": [
        {
            "platform": "Vera",
            "name": "Vera",
            "veraIP": "192.168.1.2",
            "includesensor": true,
            "ignorerooms": [],
            "securitypoll": 2000,
            "dimmertest": true
        }
    ]
}

проверяем...

$ homebridge

Если нет никаких ошибок, в ответ должны увидеть пин-код, список комнат и список девайсов, которые прописаны в контроллере.
Ок. Глушим сервер - CTRL+C.

Осталось добавить всё это дело в «автозагрузку».

Создаём плист

$ nano ~/Library/LaunchAgents/com.homebridge.server.plist

с примерно таким содержанием:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>com.homebridge.server</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/homebridge</string>
        <string>-I</string>
    </array>
    <key>EnvironmentVariables</key>
    <dict>
            <key>PATH</key>
            <string>/usr/local/bin/:$PATH</string>
    </dict>
</dict>
</plist>

Теперь сервер будет подниматься автоматически, при условии, что текущий пользователь залогинится после ребута системы.

Back-end готов. Запускаем Homebridge...

$ launchctl load ~/Library/LaunchAgents/com.homebridge.server.plist

Чтобы Siri начала мониторить сеть на предмет умных девайсов, в iOS 10 достаточно добавить устройство Homebridge в приложении Home. После чего подтянется всё, что привязано к контроллеру Vera. Для iOS 8 и 9 нужно скачать из App Store любой HomeKit Hub, например, Insteon+ и добавить устройство Homebridge через него.

З.Ы.
Для русской Siri имена комнат, устройств, сцен должны быть прописаны кириллицей, иначе, не поймёт.

Apple HomeKit