Добрый день, уважаемое сообщество! Идея поуправлять автозапуском родилась довольно спонтанно, все началось с того, как пару лет назад я приобрел себе автомобиль и встал вопрос об установке системы автозапуска. На протяжении прошедших двух зим (а зимы у нас холодные, т.к я живу в условиях приравненных к крайнему северу) я просыпался по утрам, выходил, заводил машину, шел домой, пил кофе, и ехал на работу. Этой зимой лень взяла свое, и я приобрел комплект автозапуска Starline sm32 с gsm и gps модулем. Автозапуск установлен, приложение скачано, все работает отлично! И тут я подумал: «Почему бы не подключить автозапуск к своей системе умного дома?».
Первое, что пришло в голову это найти API к сервису, но поиски не увенчались успехом. На официальном форуме поднималась данная тема, но ответов от поддержки так и не было, через онлайн консультанта я оставил заявку в надежде на то, что может быть, мне ответят, и спустя неделю они ответили:
С этим я не стал заморачиваться и начал искать другие пути. Да, я забыл сказать, что кроме приложения есть так же веб сервис, который и открыл мне данную возможность.
Посниваф запросы, я получил всю необходимую информацию, и написал небольшой скрипт на языке Python. Прошу сильно не ругать за сам код и его оформление, это можно сказать мой первый опыт в данном деле:
Это скрипт для запуска двигателя, а чтобы нам его остановить, значение value меняем на 0. Но как же нам заставить Siri запускать наш скрипт? Долгим гуглением и хождением по форумам я нашел решение: homebridge-script — этот плагин позволяет запускать sh скрипты, как устанавливать homebridge я писать не буду в интернет полно инструкций, ставим плагин:
После установки копируем наши скрипты, их я назвал engine_on.py и engine_off.py:
Там же находится два файлика on.sh и off.sh я не нашел ничего лучшего как добавить в них:
Теперь осталось добавить в наш homebridge конфиг следующее:
Перезапускаем службу и все готово!
P.S: Я долго мучился с подбором фраз, если siri что то не понравится, она тут же лезет в интернет за поиском. В общем, пользуйтесь, надеюсь это кому-нибудь будет полезным!
Первое, что пришло в голову это найти API к сервису, но поиски не увенчались успехом. На официальном форуме поднималась данная тема, но ответов от поддержки так и не было, через онлайн консультанта я оставил заявку в надежде на то, что может быть, мне ответят, и спустя неделю они ответили:
Да API есть. Мы его предоставляем после того, как клиент:
* предоставляет информацию о себе и своей компании и цели использования нашего API
* подписывает соглашение о неразглашении ( NDA )
С этим я не стал заморачиваться и начал искать другие пути. Да, я забыл сказать, что кроме приложения есть так же веб сервис, который и открыл мне данную возможность.
Посниваф запросы, я получил всю необходимую информацию, и написал небольшой скрипт на языке Python. Прошу сильно не ругать за сам код и его оформление, это можно сказать мой первый опыт в данном деле:
engine_on.py
import requests
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('This is a log message.')
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest'}
with requests.Session() as session:
login = session.post('https://starline-online.ru/user/login', {
'LoginForm[login]': 'username',
'LoginForm[pass]': 'password',
'remember': 1,},headers=header)
print (r.status_code,r.reason)
r = session.post('https://starline-online.ru/device/ваш_id_device/executeCommand',{
'value':'1',
'action':'ign',
'password':''},headers=header)
logout = session.post('https://starline-online.ru/user/logout', {
'':''},)
print (login.status_code,login.reason)
print (login.cookies)
print (logout.status_code,logout.reason)
Это скрипт для запуска двигателя, а чтобы нам его остановить, значение value меняем на 0. Но как же нам заставить Siri запускать наш скрипт? Долгим гуглением и хождением по форумам я нашел решение: homebridge-script — этот плагин позволяет запускать sh скрипты, как устанавливать homebridge я писать не буду в интернет полно инструкций, ставим плагин:
sudo npm install -g file-exists
sudo npm install -g homebridge-script
После установки копируем наши скрипты, их я назвал engine_on.py и engine_off.py:
sudo cp engine_on.py engine_off.py /usr/local/lib/node_modules/homebridge-script/
Там же находится два файлика on.sh и off.sh я не нашел ничего лучшего как добавить в них:
sudo echo "python engine_on.py" > on.sh
sudo echo "python engine_off.py" > off.sh
Теперь осталось добавить в наш homebridge конфиг следующее:
"accessories": [
{
"accessory": "Script",
"name": "Прогреть машину",
"on": "sh ./on.sh",
"off": "sh ./off.sh",
"state": "sh ./state.sh",
"fileState": "home/pi/script.flag",
"on_value" : "true",
"exact_match": true
}
]
]
Перезапускаем службу и все готово!
P.S: Я долго мучился с подбором фраз, если siri что то не понравится, она тут же лезет в интернет за поиском. В общем, пользуйтесь, надеюсь это кому-нибудь будет полезным!
Поделиться с друзьями
Комментарии (12)
artyfarty
22.11.2016 00:37Если так хотелось управлять через Сири, то можно было добавить телефон машины с DTMF на запуск двигателя в телефонную книгу и просто просить сири позвонить на запуск машины.
Но вообще — классно.serafims
22.11.2016 10:43а она прямо корректно потом отправляет отдельные команды dtmf _после_ установки соединения?
gsaw
«Zway» только в заголовке.
matrixs
В роли контроллера использую razberry а на нем уже стоит zway, особо не стал акцентировать на этом внимание
Akisame
Буду признателен если опишите и эту часть и поделитесь ссылками.
Давно хочу кое-что автоматизировать и все руки не доходят…
matrixs
Вы точно отличаете Razberry от Raspberry? Могу все в личку написать и поделится опытом
Akisame
Уже отличаю =) Пожалуй это частичный ответ на пару моих вопросов… Но пожалуй z-wave для дома не очень подходит. Т.к. решение не очень бюджетное. Если пару девайсов подключить, пойдет. А если побольше, то выходит не очень интересно с финансовой точки зрения.
Bluefox
Используйте ioBroker. Там есть голосовое управление и для андроид и для Сири. И поддержка различного оборудования. И есть драйвер starline.
matrixs
круто! Спасибо за подсказку.
klirichek
А в чём именно в этой поделке вы используете zway?
Вижу обычный скрипт и запрос к вебслужбе, которая по существу никакого отношения к zway не имеет.
Можно так же добавить в заголовок и тэги слова "5 вольт", "зелёный", "печатная плата", описав "малинку", однако к автозапуску то это имеет какое отношение?
matrixs
Вы не путайте zway с zwave!