June 28, 2024

API к домофонам Rubetek (ПИК-Домофон) UPD ОТ 2025

Что можно делать?

С помощью данного API можно:

  • Открывать двери
  • Делать фото с камеры домофона
  • Просматривать видеопоток с камер домофона (и сохранять его при желании)

Виды запросов

Всего есть 4 запроса:

  • Авторизация (POST)
  • Запрос к списку камер и дверям (GET)
  • Сделать снимок с домофона (GET)
  • Открыть двери (POST)

Как работает

Доступ будет только к тем камерам и дверям которые вы можете открыть/посмотреть через приложение Домофон.

После запроса авторизации вы получаете ID своего объекта (квартиры) и ключ для дальнейшего использования с запросах. Данный ключ динамический и по моим наблюдениям валиден примерно в течение суток.


Авторизация (POST)

curl --location 'https://intercom.pik-comfort.ru/api/customers/sign_in' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 2' \
--header 'User-Agent: YourAppName/1.0 (iPhone; iOS 14.4; Scale/2.00)' \
--data '{
  "account": {
    "phone": "+79091111111",
    "password": "Password1"
  },
  "customer_device": {
    "uid": "AAA1-AAA2-AAAeee3"
  }
}'

В теле запроса нужно указать:

  • phone и password — это логин и пароль который вы указываете для входа в приложении Домофон.
  • uid — Случайны набор символов из латиницы и цифр. Это типо UID устройства с которого вы проходите авторизацию. Например 8df1d7ddee8

В ответе нам вернётся JSON с указанием ID квартиры и список привязанных устройств. Но главное что в заголовке Authorization вернётся ключ.

Для следующих нужен:

  • Authorization из заголовка ответа авторизации (только ключ, без Bearer)

Запрос к списку камер и дверям (GET)

Здесь два вариант.
По разному работает в разных домах ПИКа.

Вариант 1. Без ID квартиры.

curl --location 'https://iot.rubetek.com/api/alfred/v1/personal/intercoms/' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 2' \
--header 'Authorization: my_key'

В запросе нужно передать:

  • Authorization — указать ключ из ответа авторизации. (только ключ, без Bearer)

В ответ вернётся JSON.
URL на камеры вернуться в блоках "video" и "photo_url".

photo_url — на него можно кинуть GET запрос без тела и авторизации. Он вернёт фото с домофона в данный момент.
video — это URL по протоколу rtsp с потоковым видео с домофона. Но без звука (его не нашёл и не искал особо).

Вариант 2. С ID квартиры.

curl --location 'https://intercom.rubetek.com/api/customers/properties/{ID}/' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 2' \
--header 'Authorization: {my_key}'

В запросе нужно передать:

  • {my_key} — указать ключ из ответа авторизации. (только ключ, без Bearer)
  • {ID} — ID апартаментов. Он будет в теле ответа при автормзации.

В ответ вернётся JSON.
URL на камеры вернуться в блоках "video" и "photo_url".

photo_url — на него можно кинуть GET запрос без тела и авторизации. Он вернёт фото с домофона в данный момент.
video — это URL по протоколу rtsp с потоковым видео с домофона. Но без звука (его не нашёл и не искал особо).


Сделать фото с камеры (GET)

curl --location 'http://v.intercom.pik-comfort.ru:34568/snapshot/{Тот самый динамический ключ из списка устройств}'

Есть один подводный камень.
В URL камеры зашит ключ и он динамический.
Примерно раз в сутки он сбрасывается и нужно снова проходить авторизацию и запрашивать новые URL камеры.


Открыть дверь (POST)

В запросе на список устройств вам так же вернётся список доступных дверей.

curl --location --request POST 'https://iot.rubetek.com/api/alfred/v1/personal/relays/11111/unlock' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 2' \
--header 'Authorization: my_key'

В запросе нужно передать:

  • id двери из тела ответа запроса устройств
  • Authorization из заголовка ответа авторизации (только ключ, без Bearer)

Видео

Видео через запрос вы не получите, потому что общение идёт по протоколу RTSP.

Но URL можно вставить в любой видеоплеер (Например VLC) и смотреть трансляцию с камеры. У меня не получилось, ибо не хватило каких то кодеков.
Но получилось через cv2 в питоне.

Аналогичный подводный камень.
В URL камеры зашит ключ и он динамический.
Примерно раз в сутки он сбрасывается и нужно снова проходить авторизацию и запрашивать новые URL камеры.


Для тех кто хочет поковыряться больше


Вся информация, код и запросы, представленные в этой статье, собраны из открытых источников.

Я не претендую на авторство представленного материала. Авторство принадлежит оригинальным создателям.

Данный материал предоставляется "как есть" без каких-либо гарантий, явных или подразумеваемых. Я не несу ответственности за использование информации, кода и запросов, представленных в этой статье.

Автор не принимает на себя ответственность за использование этого материала.