public static function syncSonos() { $sonos = self::getSonos(true); $controllers = $sonos->getControllers(); $speakers = sonos3::getSpeaker(); foreach ($controllers as $controller) { $eqLogic = sonos3::byLogicalId($controller->ip, 'sonos3'); if (!is_object($eqLogic)) { $eqLogic = new self(); $eqLogic->setLogicalId($controller->ip); $eqLogic->setName($controller->room . ' - ' . $controller->name); $object = object::byName($controller->room); if (is_object($object)) { $eqLogic->setObject_id($object->getId()); $eqLogic->setName($controller->name); } if (strpos($controller->name, 'PLAY:1') !== false) { $eqLogic->setConfiguration('model', 'PLAY1'); } if (strpos($controller->name, 'PLAY:3') !== false) { $eqLogic->setConfiguration('model', 'PLAY3'); } if (strpos($controller->name, 'PLAY:5') !== false) { $eqLogic->setConfiguration('model', 'PLAY5'); } if (strpos($controller->name, 'PLAYBAR') !== false) { $eqLogic->setConfiguration('model', 'PLAYBAR'); } if (strpos($controller->name, 'CONNECT') !== false) { $eqLogic->setConfiguration('model', 'CONNECT'); } if (strpos($controller->name, 'CONNECT:AMP') !== false) { $eqLogic->setConfiguration('model', 'CONNECTAMP'); } $eqLogic->setEqType_name('sonos3'); $eqLogic->setIsVisible(1); $eqLogic->setIsEnable(1); } $speakers_array = array(); foreach ($speakers as $speaker) { $speakers_array[$speaker->ip] = $speaker->room; } $eqLogic->setConfiguration('speakers', json_encode($speakers_array)); $eqLogic->save(); } }