Logrus писал(а):Тезка, оно конечно хорошо, но код? В коннекте нет (((
Код можно, но не так все просто. У меня это очень сильно переделано, хотелось более тонкой настройки, это все же умный дом и он должен учитывать все нюансы. Расскажу и покажу с чего все началось и зачем мне все это нужно, может кому пригодится.
Захотелось мне управлять звуком (Алисой и музыкой) в каждой комнате (мультирум), только
просто без заморочек. Почитав форумы на эту тему нечего как построить все это на малинке в мою голову не пришло (просто без заморочек и работает), со временем буду упрощать систему ну пока так (первое что в голову пришло). Купил я четыре малинки на четыре комнаты, засунул их в шкаф, протянул от телевизоров из комнат и колонок провода и воткнул все это в стандартный разъем 3,5 через разветвители (одна малинка, один вход для разветвителя и в разветвитель, один телевизор и потолочные колонки). На все малинки поставил MD, одну взял за сервер, остальные терминалы. Так как я пользуюсь модулем Radio 101.ru, на всех терминалах удалил все кроме него, почистил классы (короче убрал все не нужное). В основной сервер забил все малинки в настройки -> терминалы. Теперь создал отдельный класс "STerminal", создал объекты Terminal01...02...03 и т.д, создал свойства (см. картинки).
И вот самые основные регулировки громкости, системный "VolLevelChang"
Код: Выделить всё
$t="sudo amixer cset numid=1 -- ".$this->getProperty('volumeLevel')."%";
//say("Изменилась громкость до ".$this->getProperty('volumeLevel')." процентов");
safe_exec($t);
.
Плеера VLC вынес сюда классовый метод "VolLevelChanged"
Код: Выделить всё
$url = $this->getProperty('URL');
$port = $this->getProperty('Port');
$vol = $this->getProperty('Volume');
getURL($url.':'.$port.'/requests/status.xml?command=volume&val='.$vol,0,$this->getProperty('Username'),$this->getProperty('Password'));
Если что не понятно дополню.
Класс "STerminal", его надо создать

- 10.PNG (7.26 КБ) 7163 просмотра
Создаем объекты

- 11.PNG (19.09 КБ) 7163 просмотра
Создаем свойства

- 12.PNG (4.61 КБ) 7163 просмотра
Создаем методы

- 13.PNG (15.95 КБ) 7163 просмотра
Создаем методы

- 14.PNG (11.36 КБ) 7163 просмотра
Заполняем URL терминала и пишем пароль VLC который вы прописали в настройках VLC на этом терминале

- 15.PNG (12.72 КБ) 7163 просмотра
Заполняем порт, IP терминала и сетевое имя терминала в поле "Domname", сетевое имя удобнее использовать так как IP может меняться, у меня так было когда я подключался по WiFi, потом перешел на LAN.

- 16.PNG (16.4 КБ) 7163 просмотра

- 17.PNG (14.63 КБ) 7163 просмотра

- 18.PNG (12.58 КБ) 7163 просмотра
В каждой комнате регулировки звука своя

- 19.PNG (13.38 КБ) 7163 просмотра
Открываем например кухню, тут своя регулировка системного звука и плеера.
ВКЛ - последняя проигранная музыка будет играть.
ВЫКЛ - Выключит музыку.
АВТО - Выключится музыка при включении ЕСО режима и обратно включится при выключения ЕСО режима. Очень удобно,
когда все жители ушли, не нужно думать как выключить музыку перед уходом и как ее включить перед приходом.
Можно выбрать радиостанцию которая будет играть на кухни.

- 20.PNG (21.71 КБ) 7163 просмотра
К свойству "Volume" привязать метод "VolLevelChanged", а к свойству "volumeLevel" привязать метод "VolLevelChang".

- 21.PNG (7.48 КБ) 7163 просмотра
Есть один минус, который я пока не решил, регулировка системного звука только с терминала, с сервера регулируются только плеера терминалов. Если кто то может помочь, буду благодарен.