Страница 1 из 3

звук на смартфон по WiFi, мой вариант решения

Добавлено: Вт мар 24, 2015 7:10 pm
Vovix
Получилось так, что у меня появился смартфон "для пыток" - Megafon Login +
и вот я сразу установил на него MajorDroid и бегал по дому с криками "проснись! проснись!"
управление голосом меня порадовало, но мне захотелось, чтобы и отвечала мне Алиса именно на него, и я....
начал "изобретать велосипед", вот, что у меня получилось:

Первое, что я сделал это начал искать подходящую программу для Android и Windows (тут MDM у меня)
и мне приглянулась эта: Wifiaudio
у которой есть маленькая ответная часть для Windows - ajeetv.info/wifiaudio/ (там кстати и для Линукса есть)
есть и другие... но мне приглянулась именно эта!

Далее, просто держать её включенной на сервере MDM мне показалось не интересным и я решил воспользоваться AutoIt который идет в комплекте
с MajorDoMo и составил на нем вот такой код для запуска wifiaudio:

Код: Выделить всё

If NOT ProcessExists("wifiaudio.exe") Then
Run("C:\_Programm\wifiaudio.exe")
WinWait("Wifi Audio")
WinActivate("Wifi Audio", "")
WinWaitActive("Wifi Audio")
ControlClick("Wifi Audio", "", 1)
Send("192.168.1.106")
ControlClick("Wifi Audio", "", 2)
EndIf
и такой код для остановки wifiaudio:

Код: Выделить всё

If ProcessExists("wifiaudio.exe") Then
WinActivate("Wifi Audio", "")
WinWaitActive("Wifi Audio")
ControlClick("Wifi Audio", "", 3)
WinClose("Wifi Audio", "")
EndIf 
после чего оба кода для AutoIt я преобразовал в exe'шники
при этом создал два скрипта(сценария) в MDM:
audio_wifi_start

Код: Выделить всё

safe_exec("C:\_majordomo\apps\autoitv3\WiFi_audio_START.exe"); 
и audio_wifi_stop

Код: Выделить всё

safe_exec("C:\_majordomo\apps\autoitv3\WiFi_audio_STOP.exe"); 
соответственно!

теперь создав шаблон в контексте (включи|выключи):

Код: Выделить всё

(звук).*(сеть|вайфай|wifi)
я могу запускать или останавливать передачу звука в сеть, вот код в шаблоне:

Код: Выделить всё

if (preg_match('/включи/is',$original)) {
  say('Включаю передачу звука в сеть WiFi',1);
  runScript('audio_wifi_start');
} elseif (preg_match('/выключи/is',$original)) {
  say('Выключаю передачу звука в сеть WiFi',1);
  runScript('audio_wifi_stop');
} else {
  say('Непонятно что: '.$original,1);
}
но потом я захотел, пусть Алиса узнает, когда я с этим смартфоном появляюсь на пороге дома и включает передачу звука, ну и выключает при выходе из сети(дома), вот как я сделал:

создаем в "Устройствах Online" запись с названием "LoginPh" и IP смарта в сети, (тут следует сказать, что мой WiFi-Роутер настроен на привязку всех известных ему устройств по MAC-адресу к определенному IP внутри моей сети), и с кодом при переходе в "online":

Код: Выделить всё

say ("Подключился смартфон Login+ к домашней сети Wi-Fi",-1);
say ("Включаю передачу звука на смартфон Login+",-1);
runScript ('audio_wifi_start');
say ("Добро пожаловать домой, Владимир!",1);
runScript ('состояние_системы'); 
и с таким кодом при переходе в offline:

Код: Выделить всё

runScript ('audio_wifi_stop'); 
пока на этом остановился!
может и "корявенько", но у меня работает... может еще кому пригодиться!

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Ср мар 25, 2015 9:40 am
Amarok
Vovix писал(а):держать её включенной на сервере MDM мне показалось не интересным
Почему? А за наводочку - лови жирнючее спасибо.

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Ср апр 01, 2015 8:33 am
mirsum
А как коды в exe преобразовывать?

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Ср апр 01, 2015 8:20 pm
Vit
Vovix писал(а):
Далее, просто держать её включенной на сервере MDM мне показалось не интересным и я решил воспользоваться AutoIt который идет в комплекте
с MajorDoMo и составил на нем вот такой код для запуска wifiaudio:

Код: Выделить всё

If NOT ProcessExists("wifiaudio.exe") Then
Run("C:\_Programm\wifiaudio.exe")
WinWait("Wifi Audio")
WinActivate("Wifi Audio", "")
WinWaitActive("Wifi Audio")
ControlClick("Wifi Audio", "", 1)
Send("192.168.1.106")
ControlClick("Wifi Audio", "", 2)
EndIf
и такой код для остановки wifiaudio:

Код: Выделить всё

If ProcessExists("wifiaudio.exe") Then
WinActivate("Wifi Audio", "")
WinWaitActive("Wifi Audio")
ControlClick("Wifi Audio", "", 3)
WinClose("Wifi Audio", "")
EndIf 
после чего оба кода для AutoIt я преобразовал в exe'шники
при этом создал два скрипта(сценария) в MDM:
audio_wifi_start

Код: Выделить всё

safe_exec("C:\_majordomo\apps\autoitv3\WiFi_audio_START.exe"); 
и audio_wifi_stop

Код: Выделить всё

safe_exec("C:\_majordomo\apps\autoitv3\WiFi_audio_STOP.exe"); 
соответственно!

а можете этими файлами поделится? не совсем понятно как их делать, не сталкивался...

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Чт апр 02, 2015 12:12 pm
Vovix
mirsum писал(а):А как коды в exe преобразовывать?
Компиляция_скриптов_с_помощью_Aut2Exe
Vit писал(а): а можете этими файлами поделится? не совсем понятно как их делать, не сталкивался...
я их и выложил в тексте сообщений! Используйте компилятор!

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Чт апр 02, 2015 2:15 pm
Vit
А файл aut где в autoit сделать чет не пойму, где в проге код вставить.)

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Чт апр 02, 2015 7:09 pm
Vovix
Vit писал(а):А файл aut где в autoit сделать чет не пойму, где в проге код вставить.)
любой текстовый "простой" редактор типа Блокнота (windows)
но лучше например - Notepad++

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Чт апр 02, 2015 10:15 pm
Vit
все получилось, спасиб....чет не понял сначала что да как...

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Сб май 16, 2015 11:30 pm
Hitman_dc
mirsum писал(а):А как коды в exe преобразовывать?
Можно тут посмотреть: http://blog.den4.ru/wifiaudio-majordomo-smartliving/

Re: звук на смартфон по WiFi, мой вариант решения

Добавлено: Пн янв 18, 2016 10:36 am
Fantom
А с banana/raspberry pi как звук передать на смартфон? А то wi fi audio только под x32/x64 вроде архитектуру