{"id":1139,"date":"2015-07-13T00:58:34","date_gmt":"2015-07-12T22:58:34","guid":{"rendered":"https:\/\/mihosoft.eu\/?p=1139"},"modified":"2015-07-13T00:59:44","modified_gmt":"2015-07-12T22:59:44","slug":"new-sonoair-1-0-beta-3-2-with-proper-group-detection","status":"publish","type":"post","link":"https:\/\/mihosoft.eu\/?p=1139","title":{"rendered":"New SonoAir 1.0 (Beta 3.2) With Proper Group Detection"},"content":{"rendered":"<p>First of all, thank you so much for all the donations! Finally, I was able to buy a new Sonos speaker to create a stereo pair. We had thousands of downloads in just 15 days. That&#8217;s amazing!<\/p>\n\n<p>The new hardware I could buy with your donations allowed me to implement a new Java based device discovery service that doesn&#8217;t rely on the JavaScript part (airsonos) that also discovers groups. It could still have trouble with complex setups that I cannot test with the Sonos hardware I have right now. But I&#8217;m still excited about the new release!<\/p>\n\n<p>The new device discovery does not search devices in the first place. Rather than that it looks for ZoneGroups. Therefore, I had to learn a bit UPnP. There are some nice Windows tools that help you with discovering the API provided by Sonos:<\/p>\n\n<div id=\"attachment_1141\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/UPnP-debugging-01.png\"><img aria-describedby=\"caption-attachment-1141\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/UPnP-debugging-01-1024x480.png\" alt=\"Sonos UPnP Debugging\" width=\"700\" height=\"328\" class=\"size-large wp-image-1141\" srcset=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/UPnP-debugging-01-1024x480.png 1024w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/UPnP-debugging-01-300x140.png 300w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/UPnP-debugging-01-700x328.png 700w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/UPnP-debugging-01.png 1844w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-1141\" class=\"wp-caption-text\">Sonos UPnP Debugging<\/p><\/div>\n\n<p>I released my humble UPnP experiments to GitHub: <a href=\"https:\/\/github.com\/miho\/simple-upnp-api\">simple-upnp-api<\/a> It makes use of the sonos-java library and adds a working group model to it.<\/p>\n\n<p>Here is how SonoAir looks like if it detects a ZoneGroup, e.g. stereo pair:<\/p>\n\n<div id=\"attachment_1144\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/sonoair-groups-01.png\"><img aria-describedby=\"caption-attachment-1144\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/sonoair-groups-01-1024x666.png\" alt=\"SonoAir Group Discovery\" width=\"700\" height=\"455\" class=\"size-large wp-image-1144\" srcset=\"https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/sonoair-groups-01-1024x666.png 1024w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/sonoair-groups-01-300x195.png 300w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/sonoair-groups-01-700x455.png 700w, https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/sonoair-groups-01.png 1300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-1144\" class=\"wp-caption-text\">SonoAir Group Discovery<\/p><\/div>\n\n<p>I hope that the new SonoAir beta will work for you as good as it works for me. <a href=\"http:\/\/sonoair.mihosoft.eu\">Get it now!<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>First of all, thank you so much for all the donations! Finally, I was able to buy a new Sonos speaker to create a stereo pair. We had thousands of downloads in just 15 days. That&#8217;s amazing! The new hardware I could buy with your donations allowed me to implement &#8230;<\/p>","protected":false},"author":1,"featured_media":1144,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[13,129,21,106],"tags":[110,107,113,22,124,54,111,108,133,114,112],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/mihosoft.eu\/wp-content\/uploads\/2015\/07\/sonoair-groups-01.png","jetpack_shortlink":"https:\/\/wp.me\/p2P2yR-in","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/posts\/1139"}],"collection":[{"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1139"}],"version-history":[{"count":7,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/posts\/1139\/revisions"}],"predecessor-version":[{"id":1148,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/posts\/1139\/revisions\/1148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=\/wp\/v2\/media\/1144"}],"wp:attachment":[{"href":"https:\/\/mihosoft.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mihosoft.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}