Sonos подключение
Модератор: immortal
-
- Сообщения: 24
- Зарегистрирован: Пт окт 16, 2015 8:47 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Sonos подключение
Здравствуйте уважаемые форумчане. Подскажите пожалуйста, как правильно использовать(подключить) коды с Github? У меня есть колонка Sonos Play:1, на Github нашел коды PHP для управления колонкой, но вот как их правильно внедрить в систему пока не знаю. Есть предположение, что нужно создать класс с методами и свойствами, создать объект(мою колонку), но куда вписать данные коды не пойму. Помогите разобраться. Спасибо.
Ссылка на GitHub с кодом:https://github.com/DjMomo/sonos
Ссылка на GitHub с кодом:https://github.com/DjMomo/sonos
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: Sonos подключение
Колонки нету, могу примерно рассказать. Файл sonos.class.php (с гитхаба) кидаешь в lib/hardware/. Затем создаешь класс, свойство с ip колонки (например SonosIp), свойство с громкостью (например volume). Создаешь нужные тебе методы, например getVolume, в коде методы пишешь:
Ну и по анологии остальное, setVolume, и т.д. Создаешь объект класса (например sonos1), Заполняешь свойство SonosIp и пользуешь (например так: )
Код: Выделить всё
include_once(ROOT.'lib/hardware/sonos.class.php');
$sonos_1 = new SonosPHPController($this->getProperty("SonosIp"));
$volume = $sonos_1->GetVolume();
$this->setProperty("volume", $volume);
Код: Выделить всё
callMethod("sonos1.getVolume");
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 24
- Зарегистрирован: Пт окт 16, 2015 8:47 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Sonos подключение
Не дождался вечера
, настроил удаленно.
То что вы написали, полностью работает. В MD в свойстве Volume отобразилась текущая громкость колонки.
Извините за наглость, но можно еще пару вопросов про заполнение свойств и методов?
1. Если я создам метод setVolume, он будет относиться к свойству Volume? Или он будет независимый?
2. Если мне нужно создать методы, допустим Play, Stop, мне надо будет создать сначала свойства с такими же именами? Или создать одно свойство, ну скажем, PlayBack и мои методы будут относится к нему?
3. Ну и уж совсем наглость, не могли бы вы накидать для примера код еще какого нибудь метода, setVolume, Play или Stop, для наглядного примера, что на что и как меняется.
Спасибо!

То что вы написали, полностью работает. В MD в свойстве Volume отобразилась текущая громкость колонки.
Извините за наглость, но можно еще пару вопросов про заполнение свойств и методов?
1. Если я создам метод setVolume, он будет относиться к свойству Volume? Или он будет независимый?
2. Если мне нужно создать методы, допустим Play, Stop, мне надо будет создать сначала свойства с такими же именами? Или создать одно свойство, ну скажем, PlayBack и мои методы будут относится к нему?
3. Ну и уж совсем наглость, не могли бы вы накидать для примера код еще какого нибудь метода, setVolume, Play или Stop, для наглядного примера, что на что и как меняется.
Спасибо!
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: Sonos подключение
Свойства в основном нужны для хранения каких-то данных, методы для выполнения действий. Так что какие свойства и методы использовать зависит от ваших потребностей 
1. По хорошему метод setVolume должен использовать свойство volume и выглядеть будет примерно так:
Использовать так:
2. Это уже от ваших хотелок зависит. Если хотите хранить значение, допустим play, тогда создавайте свойство. Но можно и без него обойтись.

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));
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 24
- Зарегистрирован: Пт окт 16, 2015 8:47 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Sonos подключение
Скажите для какой именно цели в данной строчке
используется массив? Для плавного увеличения громкости?
Код: Выделить всё
callMethod('sonos1.setVolume',array('volume'=>50));
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: Sonos подключение
Нет, это просто массив с параметрами, т.е. мы просто передаем громкость. Там всего один элемент, но может быть несколько.
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect