有谁知道是否可以通过编程方式创建一个使用SoCo的组?
例如,假设我想将5个设备组合在一起并指定协调员:
ZoneGroup(uid='...', coordinator=SoCo("192.168.0.115"), members=set([SoCo("192.168.0.101"), SoCo("192.168.0.111"), SoCo("192.168.0.102"), SoCo("192.168.0.100"), SoCo("192.168.0.115")]))
我可以在本地实例化此对象,但不知道如何将配置发送到设备以设置拓扑。
答案 0 :(得分:0)
是。首先,您要加入您希望成为组长的区域。这会将其从之前的任何组中删除。然后将每个其他区域连接到该区域。你了解你的网络,所以你可以提出更好的名字。
one, two, three, four, five = [SoCo("192.168.0.101"), SoCo("192.168.0.111"), SoCo("192.168.0.102"), SoCo("192.168.0.100"), SoCo("192.168.0.115")]
one.unjoin()
two.join(one)
three.join(one)
four.join(one)
five.join(one)
您可以使用one.group(属性,而不是方法)检查组成员资格。
one.group
从SoCo对象访问所有内容。无需直接处理ZoneGroup类。
答案 1 :(得分:0)
您可以致电partymode()
将所有可用的发言者分组:
#!/usr/bin/env python
import soco
# Use a specific speaker named Livingroom to be the master
device = soco.discovery.by_name("Livingroom")
device.group.coordinator.partymode()
如果您不在乎哪个扬声器是主扬声器,则可以找到其中任何一个:
# Use any speaker as the master
device = soco.discovery.any_soco()
有关更多详细信息,请参见soco.core。