Дано: флешка с сертификатом для подписи сообщений для ГИС ЖКХ,
Задача: выдернуть с рутокена контейнер в формате p12 и расчленить его на сертификат+открытый ключ+закрытый ключ. Задачу уже подобную год назад решал, но как оказалось мануал который сам для себя тогда делал немножко не точный. Потому обновлю.
Решение:
Для получения файла с токена необходимо воспользоваться P12FromGostCSP
Для этого понадобится выделенный сервер, желательно в зоне РФ. Самый простой способ — использование готового скрипта с https://github.com/nolaxe/install-MTProxy/blob/main/README.md
docker run --name teamcity-server-instance \
-v <path to data directory>:/data/teamcity_server/datadir \
-v <path to logs directory>:/opt/teamcity/logs \
-p <port on host>:8111 \
jetbrains/teamcity-server
Далее необходимо зайти в raspi-config и включить интерфейс i2c. После чего понадобится малинку перазагрузить. После перезагрузки можно посмотреть, определяется ли она:
i2cdetect -y 1
Должно появиться что-то вроде:
Иногда садится на 77 порт, но чаще на 76. Далее необходимо установить библиотеки:
Логическое продолжение Части 1, 2,3. Итак, научился принимать данные от zigbee устройств на стик Zigbee2Mqtt и на Алису. Да вот беда, одновременно и там и там данные от одного устройства штатными средствами не получить. А только на Алису завязывать все устройства бы не хотелось, так как:
сценарии ограничены только поддерживаемым Алисой оборудованием. Например мои WiFi реле Sonoff DIY 3 которые я использую на батареях Алисой естественно не поддерживаются .
Нет интернета — нет «умного» дома
Потому и возникла задача перебросить некоторые устройства которые есть на стике на Алису. Например датчик температуры. И в принципе штатное решение есть от самого Яндекса. Правда они выбрали весьма трудоёмкое для этого способа решение: необходимо создать виртуальное устройство, написать для него API и подключить в качестве стороннего навыка «Умный дом». Т.е. схема взаимодействия вырисовывается такая:
Для этого переходим по ссылке https://dialogs.yandex.ru/developer/smart-home и создаём новый навык.
Важно! Тип доступа сделать приватным, тогда модерация будет «мгновенной», ну и собственно навык не будет доступен никому кроме вас.
После заполнения основных данных, далее необходимо создать приложение https://oauth.yandex.ru/ с типом платформы WEB:
Так вы получите необходимые для дальнейшей настройки навыка ClientID и Client secret, которые необходимо будет прописать в навыке на странице «Связка аккаунтов»:
Кроме того необходимо прописать эндпоинты которые будут отвечать за авторизацию навыка на вашем сервере, обновление и получение токенов.
API виртуального устройства
Ну собственно на стороне сервера необходимо создать эндпоинты, которые сначала авторизуют навык, а затем отдадут данные «виртуального устройства». Например датчика температуры. Далее накидаю рабочие куски кода-шаблоны, которые пойдут как основа для «допила».
Всё что выше — это авторизация навыка. После чего он полезет на Redirect URI указанный в приложении, где будет ожидать ответа в формате json на два вида возможных запроса REQUEST_URI:
/v1.0/user/devices — получить список поддерживаемых устройств
/v1.0/user/devices/query — получить обновления данных
Данные для отдачи (температура, влажность) берем из очереди mqtt. В самом простом случае, шаблон устройства может выглядеть как-то так: