API к домофонам Rubetek (ПИК-Домофон) UPD ОТ 2025
Что можно делать?
- Открывать двери
- Делать фото с камеры домофона
- Просматривать видеопоток с камер домофона (и сохранять его при желании)
Виды запросов
- Авторизация (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 вернётся ключ.
Запрос к списку камер и дверям (GET)
Здесь два вариант.
По разному работает в разных домах ПИКа.
curl --location 'https://iot.rubetek.com/api/alfred/v1/personal/intercoms/' \ --header 'Content-Type: application/json' \ --header 'Api-Version: 2' \ --header 'Authorization: my_key'
В ответ вернётся JSON.
URL на камеры вернуться в блоках "video" и "photo_url".
photo_url — на него можно кинуть GET запрос без тела и авторизации. Он вернёт фото с домофона в данный момент.
video — это URL по протоколу rtsp с потоковым видео с домофона. Но без звука (его не нашёл и не искал особо).
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 камеры.
Для тех кто хочет поковыряться больше
- Проект 1 — https://github.com/a-tomal/pik-domophone/tree/master
- Проект 2 — https://github.com/alryaz/hass-pik-intercom?tab=readme-ov-file
- Какая-то древняя дока — https://doc.rubetek.com/iot/
- Ещё одна древняя дока — https://doc.rubetek.com/ria/
Вся информация, код и запросы, представленные в этой статье, собраны из открытых источников.
Я не претендую на авторство представленного материала. Авторство принадлежит оригинальным создателям.
Данный материал предоставляется "как есть" без каких-либо гарантий, явных или подразумеваемых. Я не несу ответственности за использование информации, кода и запросов, представленных в этой статье.
Автор не принимает на себя ответственность за использование этого материала.