added speaker grouping
This commit is contained in:
parent
e95ff04808
commit
00a417a953
@ -0,0 +1,26 @@
|
|||||||
|
# BluOS
|
||||||
|
|
||||||
|
This integration allows to control audio devices based on BluOS. BluOS is an operating system that can be found in products from Blusound, NAD Electronics, DALI Loudspeakers and others.
|
||||||
|
|
||||||
|
## Supported Things
|
||||||
|
|
||||||
|
* BluOS Player
|
||||||
|
* Auto discovery setup
|
||||||
|
* Auto rediscovery on IP address change
|
||||||
|
* Multimedia control
|
||||||
|
* Volume
|
||||||
|
* Browsing Presets
|
||||||
|
* Browsing various music services
|
||||||
|
* Grouping speakers
|
||||||
|
* No internet or cloud connection required
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
* The BluOS device must be in the same local area network as nymea.
|
||||||
|
* TCP sockets on port 80 must not be blocked by the router.
|
||||||
|
* Blusound App to setup the speaker.
|
||||||
|
* The package "nymea-plugin-bluos" must be installed
|
||||||
|
|
||||||
|
## More
|
||||||
|
|
||||||
|
https://www.bluesound.com/
|
||||||
@ -229,9 +229,19 @@ void IntegrationPluginBluOS::browseThing(BrowseResult *result)
|
|||||||
m_asyncBrowseResults.insert(requestId, result);
|
m_asyncBrowseResults.insert(requestId, result);
|
||||||
connect(result, &BrowseResult::aborted, this, [this, requestId]{m_asyncBrowseResults.remove(requestId);});
|
connect(result, &BrowseResult::aborted, this, [this, requestId]{m_asyncBrowseResults.remove(requestId);});
|
||||||
} else if (result->itemId() == "grouping") {
|
} else if (result->itemId() == "grouping") {
|
||||||
//TODO avahi discovery
|
foreach (const ZeroConfServiceEntry avahiEntry, m_serviceBrowser->serviceEntries()) {
|
||||||
// m_asyncBrowseResults.insert(requestId, result);
|
qCDebug(dcBluOS()) << "Zeroconf entry:" << avahiEntry;
|
||||||
//connect(result, &BrowseResult::aborted, this, [this, requestId]{m_asyncBrowseResults.remove(requestId);});
|
|
||||||
|
QString playerId = avahiEntry.hostName().split(".").first();
|
||||||
|
if (thing->paramValue(bluosPlayerThingSerialNumberParamTypeId).toString() == playerId) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
MediaBrowserItem groupingItem("grouping&"+avahiEntry.hostAddress().toString()+"&"+avahiEntry.port(), avahiEntry.name(), true, false);
|
||||||
|
groupingItem.setDescription(avahiEntry.hostAddress().toString());
|
||||||
|
groupingItem.setMediaIcon(MediaBrowserItem::MediaBrowserIconNetwork);
|
||||||
|
groupingItem.setIcon(BrowserItem::BrowserIconMusic);
|
||||||
|
result->addItem(groupingItem);
|
||||||
|
}
|
||||||
} else if (result->itemId().isEmpty()) {
|
} else if (result->itemId().isEmpty()) {
|
||||||
MediaBrowserItem presetItem("presets", "Presets", true, false);
|
MediaBrowserItem presetItem("presets", "Presets", true, false);
|
||||||
presetItem.setIcon(BrowserItem::BrowserIcon::BrowserIconFavorites);
|
presetItem.setIcon(BrowserItem::BrowserIcon::BrowserIconFavorites);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user