Страница 1 из 2
Sonos подключение
Добавлено: Вт ноя 17, 2015 9:58 pm
AndreyZak
Здравствуйте уважаемые форумчане. Подскажите пожалуйста, как правильно использовать(подключить) коды с Github? У меня есть колонка Sonos Play:1, на Github нашел коды PHP для управления колонкой, но вот как их правильно внедрить в систему пока не знаю. Есть предположение, что нужно создать класс с методами и свойствами, создать объект(мою колонку), но куда вписать данные коды не пойму. Помогите разобраться. Спасибо.
Ссылка на GitHub с кодом:
https://github.com/DjMomo/sonos
Re: Sonos подключение
Добавлено: Вт ноя 17, 2015 11:29 pm
AndreyZak
Ни у кого нет Sonos

Re: Sonos подключение
Добавлено: Ср ноя 18, 2015 10:50 am
Dark_Veter
Колонки нету, могу примерно рассказать. Файл sonos.class.php (с гитхаба) кидаешь в lib/hardware/. Затем создаешь класс, свойство с ip колонки (например SonosIp), свойство с громкостью (например volume). Создаешь нужные тебе методы, например getVolume, в коде методы пишешь:
Код: Выделить всё
include_once(ROOT.'lib/hardware/sonos.class.php');
$sonos_1 = new SonosPHPController($this->getProperty("SonosIp"));
$volume = $sonos_1->GetVolume();
$this->setProperty("volume", $volume);
Ну и по анологии остальное, setVolume, и т.д. Создаешь объект класса (например sonos1), Заполняешь свойство SonosIp и пользуешь (например так:
)
Re: Sonos подключение
Добавлено: Ср ноя 18, 2015 11:05 am
AndreyZak
Спасибо, вечером буду экспериментировать!!!
Re: Sonos подключение
Добавлено: Ср ноя 18, 2015 12:05 pm
AndreyZak
Не дождался вечера

, настроил удаленно.
То что вы написали, полностью работает. В MD в свойстве Volume отобразилась текущая громкость колонки.
Извините за наглость, но можно еще пару вопросов про заполнение свойств и методов?
1. Если я создам метод setVolume, он будет относиться к свойству Volume? Или он будет независимый?
2. Если мне нужно создать методы, допустим Play, Stop, мне надо будет создать сначала свойства с такими же именами? Или создать одно свойство, ну скажем, PlayBack и мои методы будут относится к нему?
3. Ну и уж совсем наглость, не могли бы вы накидать для примера код еще какого нибудь метода, setVolume, Play или Stop, для наглядного примера, что на что и как меняется.
Спасибо!
Re: Sonos подключение
Добавлено: Ср ноя 18, 2015 1:30 pm
Dark_Veter
Свойства в основном нужны для хранения каких-то данных, методы для выполнения действий. Так что какие свойства и методы использовать зависит от ваших потребностей

1. По хорошему метод setVolume должен использовать свойство volume и выглядеть будет примерно так:
Код: Выделить всё
if ($params['volume']) {
include_once(ROOT.'lib/hardware/sonos.class.php');
$sonos_1 = new SonosPHPController($this->getProperty("SonosIp"));
$volume = $this->getProperty("volume");
if ($volume != $params['volume']) {
$this->setProperty("volume", $params['volume']);
$sonos_1 = $sonos_1->SetVolume($params['volume']);
}
}
Использовать так:
Код: Выделить всё
callMethod('sonos1.setVolume',array('volume'=>50));
2. Это уже от ваших хотелок зависит. Если хотите хранить значение, допустим play, тогда создавайте свойство. Но можно и без него обойтись.
Re: Sonos подключение
Добавлено: Ср ноя 18, 2015 1:38 pm
AndreyZak
Сейчас мозг лопнет

Re: Sonos подключение
Добавлено: Ср ноя 18, 2015 1:43 pm
AndreyZak
Работает, ура.
Re: Sonos подключение
Добавлено: Ср ноя 18, 2015 1:52 pm
AndreyZak
Скажите для какой именно цели в данной строчке
Код: Выделить всё
callMethod('sonos1.setVolume',array('volume'=>50));
используется массив? Для плавного увеличения громкости?
Re: Sonos подключение
Добавлено: Ср ноя 18, 2015 3:16 pm
Dark_Veter
Нет, это просто массив с параметрами, т.е. мы просто передаем громкость. Там всего один элемент, но может быть несколько.