mihosoft.eu
Programming, Art, Linux, Free Software…
mihosoft.eu
Navigation
  • Home
  • VRL-Studio
  • SonoAir
  • Monochrome Wars
  • About
  • Impressum
  • Datenschutz
You are here: Home › Featured › New SonoAir 1.0 (Beta 3.2) With Proper Group Detection

New SonoAir 1.0 (Beta 3.2) With Proper Group Detection

July 13, 2015 | Filed under: Featured, Java, JavaFX, Sonos and tagged with: AirPlay, AirSonos, Apple Music, Java, JavaFX, JavaFX 8, Mac OS X, SonoAir, Sonos, Spotify, UPnP

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’s amazing!

The new hardware I could buy with your donations allowed me to implement a new Java based device discovery service that doesn’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’m still excited about the new release!

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:

Sonos UPnP Debugging

Sonos UPnP Debugging

I released my humble UPnP experiments to GitHub: simple-upnp-api It makes use of the sonos-java library and adds a working group model to it.

Here is how SonoAir looks like if it detects a ZoneGroup, e.g. stereo pair:

SonoAir Group Discovery

SonoAir Group Discovery

I hope that the new SonoAir beta will work for you as good as it works for me. Get it now!

Did you like this article? Share it with your friends!

Tweet

Written by admin

Visit my Website Follow me on Twitter

40 Responses to "New SonoAir 1.0 (Beta 3.2) With Proper Group Detection"

  1. Fozi says:
    July 13, 2015 at 10:49

    Thanks for the new beta. I’ll try it tonight.

    Reply
  2. Jon says:
    July 13, 2015 at 10:55

    I will try this when i get home. I’m trying out the new Beta from Apple, where SonoAir dosn’t show up.

    Reply
    1. Jon says:
      July 13, 2015 at 17:08

      In the new version i can’t find songs units at all

      Reply
  3. Christian says:
    July 13, 2015 at 16:47

    The new version does not show my Sonos boxes. the search runs since 1 hour. with no result. but the AirPlay menu displays all the boxes. Unfortunately, not in groups

    Reply
    1. miho says:
      July 13, 2015 at 17:27

      Do you see errors in the application log?

      Reply
      1. Christian says:
        July 13, 2015 at 17:53

        Where can I find the app log?

        Reply
    2. Ralph says:
      July 13, 2015 at 18:35

      Same here, searching, but nothing to see. No log either

      Reply
  4. Dirk says:
    July 13, 2015 at 18:10

    No Sonos devices with Version 3.2. So i returned to 3.1 wich works perfect.

    Reply
    1. miho says:
      July 13, 2015 at 22:06

      Can you check your firewall settings? Are incoming connections allowed for SonoAir?

      Reply
      1. Christian says:
        July 14, 2015 at 00:07

        yes, they are allowed

        Reply
  5. Stephan says:
    July 13, 2015 at 18:58

    My Sonos doesn’t show up either

    Reply
  6. Tim says:
    July 13, 2015 at 19:27

    same here. no boxes found

    Reply
    1. Jon says:
      July 13, 2015 at 19:31

      From The bottum you can spilt the window to see log. And it find the sonos but dosnt show it in the top window. And it still doesn’t work in iOS 9 beta 🙁

      Reply
    2. Tim says:
      July 13, 2015 at 19:54

      it gets stuck at ” Searching for Sonos devices on network…” . tried it manual with airsonos aswell -> same.

      Reply
  7. Greg Meekings says:
    July 13, 2015 at 19:48

    miho Loaded 3.1 yesterday. It didn’t find devices at first. I disabled my mac firewall and everything worked fine, until I turn the firewall back on and play stops. Clearly I don’t want to leave my firewall disabled. Is there a solution to this problem? Greg

    Reply
    1. miho says:
      July 14, 2015 at 11:42

      You can enable “incoming connections” for SonoAir in the firewall settings.

      Reply
  8. Frank-Oliver says:
    July 13, 2015 at 19:52

    Same here. No sonos players found. Maybe it has to do with the new sonos software 5.4 I installed previsously.

    Reply
    1. Dirk says:
      July 14, 2015 at 07:35

      Sorry – same withe Sonos 5.3 and Sonos 5.4 – there is a bug in Sonoair 3.2.

      Reply
      1. Frank-Oliver says:
        July 14, 2015 at 07:47

        You’re right. Rolling back to Sonoair 3.1 solves the issue – with Sonos 5.4 as well.

        Reply
      2. miho says:
        July 14, 2015 at 11:44

        I’m already working on the next version where you will have more control like choosing between the old discovery mode and the new one. In the meantime use 1.0-beta 3.1 if that works for you.

        Reply
        1. Christian says:
          July 16, 2015 at 10:16

          I´ve lost Version 3.1, where can i download it

          Reply
  9. Stephan says:
    July 13, 2015 at 19:56

    I think it doesn’t work on El Capitan or has somebody get it working?

    Reply
    1. Jon says:
      July 14, 2015 at 10:56

      I think it dos, but you can’t play from El Capitan and iOS 9 Beta. It can’t see the airplay units from airsonos

      Reply
      1. Andy Keck says:
        July 19, 2015 at 19:42

        Yeah, saw similar comment on the Airsonos page. Once I switched to El Cap, the devices don’t show up in airplay even though Sonoair appears to be working fine.

        Reply
  10. Greg Meekings says:
    July 14, 2015 at 15:44

    Sonoair has ‘allow incoming connections’ set. It will only work if the firewall is turned off when Sonoair is started. I’m running BETA 3.1.

    Reply
    1. Greg Meekings says:
      July 14, 2015 at 16:11

      Tried downloading 3.2, it unzipped to Sonair 2, but still showed BETA 3.1 when run. However it now runs with my firewall enabled…. It plays to sonos groups, but these aren’t visible as such in SonoAir or the speaker control. Where can I find BETA 3.2 please?

      Reply
  11. Tim says:
    July 14, 2015 at 17:11

    i would appreciate if this would work with itunes aswell because like this i have no use for it at all. i need to be able to play different to different speakers and not only one. and this is only possible with itunes. is this possible without the “alt left click on sound”- option?

    Reply
  12. Jaene says:
    July 20, 2015 at 21:22

    Does not find any sonos system. Version 3.1 also found my stereo pairs and showed them as one (=perfectly correct).

    Reply
  13. ecafracs says:
    July 26, 2015 at 04:52

    Thanks for taking the time to work on this. I tried BETA 3.2 but my zones did not show up in the SonoAir app. Tried BETA 3.1 and it was much better. Though I noticed that 3 out of my 5 zones were duplicated. e.g. Living Room was listed twice.

    The three zones that are duplicated are Playbar/Sub combos.

    Reply
    1. miho says:
      July 26, 2015 at 09:55

      Today I will release a new version with improved discovery. You can also choose between different discovery methods.

      Reply
      1. Jon says:
        July 27, 2015 at 11:11

        Where can i find it?

        Reply
  14. Christian says:
    July 28, 2015 at 10:08

    I have installed Beta 4.0 now. But no Sonos Speakers in the list. The Firewall Settings allow SonoAir.App

    Reply
    1. miho says:
      July 28, 2015 at 10:16

      You can switch to Airsonos discovery mode and see if that works for you. If the problems still exist, turn on “debug mode” in the preferences and send me the output.

      Reply
    2. Christian says:
      July 28, 2015 at 10:19

      Only Version 3.1 works, but without groups (playbar+sub+surround)

      Reply
  15. Christian says:
    July 28, 2015 at 10:36

    Here the debug log with the new discovery mode:

    <blockquote>
      <blockquote>
        <p>DEBUG: retryCounter: 0
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &gt;&gt;&gt; Starting UPnP service...
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: Using configuration: org.fourthline.cling.DefaultUpnpServiceConfiguration
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.RouterImpl 
        INFORMATION: Creating Router: org.fourthline.cling.transport.RouterImpl
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en1
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en0
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.85:53366
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.85
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.83:53367
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.83
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &lt;&lt;&lt; UPnP service started successfully
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &gt;&gt;&gt; Starting UPnP service...
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: Using configuration: org.fourthline.cling.DefaultUpnpServiceConfiguration
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.RouterImpl 
        INFORMATION: Creating Router: org.fourthline.cling.transport.RouterImpl
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en1
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en0
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.85:53369
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.85
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.83:53370
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.83
        Jul 28, 2015 10:32:20 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &lt;&lt;&lt; UPnP service started successfully
        Jul 28, 2015 10:32:23 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>DESTINATION<em>UNREACHABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>DESTINATION</em>UNREACHABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>TEMPORARILY<em>UNAVAILABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>TEMPORARILY</em>UNAVAILABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>DESTINATION<em>UNREACHABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>DESTINATION</em>UNREACHABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>DESTINATION<em>UNREACHABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>DESTINATION</em>UNREACHABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>DESTINATION<em>UNREACHABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>DESTINATION</em>UNREACHABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>TEMPORARILY<em>UNAVAILABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>DESTINATION</em>UNREACHABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>TEMPORARILY<em>UNAVAILABLE
        Jul 28, 2015 10:32:28 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>DESTINATION</em>UNREACHABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED<em>REACHED</em>MAX<em>PAIRED</em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>TEMPORARILY<em>UNAVAILABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>TEMPORARILY</em>UNAVAILABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED<em>REACHED</em>MAX<em>PAIRED</em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>TEMPORARILY<em>UNAVAILABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>TEMPORARILY</em>UNAVAILABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>TEMPORARILY<em>UNAVAILABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED</em>REACHED<em>MAX</em>PAIRED<em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED</em>REACHED<em>MAX</em>PAIRED<em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED</em>REACHED<em>MAX</em>PAIRED<em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED</em>REACHED<em>MAX</em>PAIRED<em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED</em>REACHED<em>MAX</em>PAIRED<em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED</em>REACHED<em>MAX</em>PAIRED<em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>TEMPORARILY</em>UNAVAILABLE
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED<em>REACHED</em>MAX<em>PAIRED</em>ALLOWED
        Jul 28, 2015 10:32:29 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED<em>REACHED</em>MAX<em>PAIRED</em>ALLOWED
        SonoAir v1.0 (BETA 4.0)</p>
      </blockquote>
    </blockquote>
    
    Copyright (c) 2015 Michael Hoffer <a href="mailto:&#x69;&#110;&#102;&#x6f;&#064;&#109;&#x69;&#x63;&#104;a&#x65;&#108;&#104;&#x6f;&#x66;&#102;e&#x72;&#046;&#100;&#x65;" rel="nofollow">&#x69;&#110;&#102;&#x6f;&#064;&#109;&#x69;&#x63;&#104;a&#x65;&#108;&#104;&#x6f;&#x66;&#102;e&#x72;&#046;&#100;&#x65;</a>
    
    <p>-&gt; using node-v0.10.28-darwin-x64
    -&gt; using airsonos by Stephen Wan
       see https://github.com/stephen/airsonos/blob/master/LICENSE</p>
    
    -&gt; starting airsonos module... [done]
    
    <p>Searching for Sonos devices on network...
    Setting up SonoAir for Bad {192.168.178.72:1400}</p>
    
    <blockquote>
      <blockquote>
        <p>DEBUG: using old discovery method
        DEBUG: zg: [Group: RINCON<em>B8E93754380001400:11, coordinator: RINCON</em>B8E93754380001400, [members: RINCON<em>B8E93754380001400]], for name Bad
        Setting up SonoAir for Gäste Bad {192.168.178.38:1400}
        DEBUG: using old discovery method
        DEBUG: zg: [Group: RINCON</em>B8E93754468601400:13, coordinator: RINCON<em>B8E93754468601400, [members: RINCON</em>B8E93754468601400]], for name Gäste Bad
        Setting up SonoAir for Küche {192.168.178.73:1400}
        DEBUG: using old discovery method
        DEBUG: zg: [Group: RINCON<em>B8E937543A8801400:16, coordinator: RINCON</em>B8E937543A8801400, [members: RINCON_B8E937543A8801400]], for name Küche
        Setting up SonoAir for Wohnzimmer {192.168.178.60:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Wohnzimmer
        Setting up SonoAir for Schlafzimmer {192.168.178.49:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Schlafzimmer
        Setting up SonoAir for Wohnzimmer {192.168.178.33:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Wohnzimmer
        Setting up SonoAir for Wohnzimmer {192.168.178.70:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Wohnzimmer
        Setting up SonoAir for Sonos Bridge {192.168.178.36:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Sonos Bridge
        Setting up SonoAir for Wohnzimmer {192.168.178.69:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)</p>
      </blockquote>
    </blockquote>
    
    &gt;&gt; DEBUG: zg: null, for name Wohnzimmer
    
    <p>-&gt; airsonos module stopped.</p>
    
    <blockquote>
      <blockquote>
        <p>DEBUG: retryCounter: 0
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &gt;&gt;&gt; Starting UPnP service...
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: Using configuration: org.fourthline.cling.DefaultUpnpServiceConfiguration
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.RouterImpl 
        INFORMATION: Creating Router: org.fourthline.cling.transport.RouterImpl
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en1
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en0
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.85:53920
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.85
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.83:53921
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.83
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &lt;&lt;&lt; UPnP service started successfully
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &gt;&gt;&gt; Starting UPnP service...
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: Using configuration: org.fourthline.cling.DefaultUpnpServiceConfiguration
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.RouterImpl 
        INFORMATION: Creating Router: org.fourthline.cling.transport.RouterImpl
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en1
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en0
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.85:53922
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.85
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.83:53923
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.83
        Jul 28, 2015 10:32:41 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &lt;&lt;&lt; UPnP service started successfully
        Jul 28, 2015 10:32:51 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>DESTINATION<em>UNREACHABLE
        Jul 28, 2015 10:32:51 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>TEMPORARILY</em>UNAVAILABLE
        Jul 28, 2015 10:32:51 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED<em>REACHED</em>MAX<em>PAIRED</em>ALLOWED
        SonoAir v1.0 (BETA 4.0)</p>
      </blockquote>
    </blockquote>
    
    Copyright (c) 2015 Michael Hoffer <a href="mailto:&#x69;&#110;&#102;&#x6f;&#064;&#109;&#x69;&#x63;&#104;a&#x65;&#108;&#104;&#x6f;&#x66;&#102;e&#x72;&#046;&#100;&#x65;" rel="nofollow">&#x69;&#110;&#102;&#x6f;&#064;&#109;&#x69;&#x63;&#104;a&#x65;&#108;&#104;&#x6f;&#x66;&#102;e&#x72;&#046;&#100;&#x65;</a>
    
    <p>-&gt; using node-v0.10.28-darwin-x64
    -&gt; using airsonos by Stephen Wan
       see https://github.com/stephen/airsonos/blob/master/LICENSE</p>
    
    -&gt; starting airsonos module... [done]
    
    <p>Searching for Sonos devices on network...
    Jul 28, 2015 10:32:52 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
    WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
    Setting up SonoAir for Gäste Bad {192.168.178.38:1400}</p>
    
    <blockquote>
      <blockquote>
        <p>DEBUG: using old discovery method
        DEBUG: zg: [Group: RINCON<em>B8E93754468601400:13, coordinator: RINCON</em>B8E93754468601400, [members: RINCON<em>B8E93754468601400]], for name Gäste Bad
        Setting up SonoAir for Küche {192.168.178.73:1400}
        DEBUG: using old discovery method
        DEBUG: zg: [Group: RINCON</em>B8E937543A8801400:16, coordinator: RINCON<em>B8E937543A8801400, [members: RINCON</em>B8E937543A8801400]], for name Küche
        Setting up SonoAir for Bad {192.168.178.72:1400}
        DEBUG: using old discovery method
        DEBUG: zg: [Group: RINCON<em>B8E93754380001400:11, coordinator: RINCON</em>B8E93754380001400, [members: RINCON_B8E93754380001400]], for name Bad
        Setting up SonoAir for Wohnzimmer {192.168.178.69:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Wohnzimmer
        Setting up SonoAir for Wohnzimmer {192.168.178.60:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Wohnzimmer
        Setting up SonoAir for Wohnzimmer {192.168.178.70:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Wohnzimmer
        Setting up SonoAir for Wohnzimmer {192.168.178.33:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Wohnzimmer
        Setting up SonoAir for Sonos Bridge {192.168.178.36:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        DEBUG: zg: null, for name Sonos Bridge
        Setting up SonoAir for Schlafzimmer {192.168.178.49:1400}
        DEBUG: using old discovery method
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonos$24(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$350/1057503453.test(Unknown Source)
            at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
            at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
            at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
            at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
            at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
            at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
            at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
            at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
            at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
            at eu.mihosoft.sonoair.SonoAir.runAirSonos(SonoAir.java:689)
            at eu.mihosoft.sonoair.SonoAir.lambda$runAirSonosInNewThread$23(SonoAir.java:583)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$341/1075092864.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)</p>
      </blockquote>
    </blockquote>
    
    &gt;&gt; DEBUG: zg: null, for name Schlafzimmer
    
    <p>-&gt; airsonos module stopped.</p>
    
    <blockquote>
      <blockquote>
        <p>DEBUG: retryCounter: 0
        DEBUG: using new discovery method
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &gt;&gt;&gt; Starting UPnP service...
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: Using configuration: org.fourthline.cling.DefaultUpnpServiceConfiguration
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.RouterImpl 
        INFORMATION: Creating Router: org.fourthline.cling.transport.RouterImpl
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en1
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en0
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.85:54122
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.85
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.83:54123
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.83
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &lt;&lt;&lt; UPnP service started successfully
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &gt;&gt;&gt; Starting UPnP service...
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: Using configuration: org.fourthline.cling.DefaultUpnpServiceConfiguration
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.RouterImpl 
        INFORMATION: Creating Router: org.fourthline.cling.transport.RouterImpl
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en1
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Creating wildcard socket (for receiving multicast datagrams) on port: 1900
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.MulticastReceiverImpl init
        INFORMATION: Joining multicast group: /239.255.255.250:1900 on network interface: en0
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.85:54124
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.85
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.StreamServerImpl init
        INFORMATION: Created server (for receiving TCP streams) on: /192.168.178.83:54125
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.transport.impl.DatagramIOImpl init
        INFORMATION: Creating bound socket (for datagram input/output) on: /192.168.178.83
        Jul 28, 2015 10:33:11 AM org.fourthline.cling.UpnpServiceImpl 
        INFORMATION: &lt;&lt;&lt; UPnP service started successfully
        Jul 28, 2015 10:33:13 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>DESTINATION<em>UNREACHABLE
        Jul 28, 2015 10:33:13 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>TEMPORARILY</em>UNAVAILABLE
        Jul 28, 2015 10:33:13 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED<em>REACHED</em>MAX<em>PAIRED</em>ALLOWED
        java.lang.NullPointerException
            at eu.mihosoft.upnp.sonos.ZoneGroup.getName(ZoneGroup.java:65)
            at eu.mihosoft.sonoair.SonoAir.lambda$null$17(SonoAir.java:385)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$384/1396365603.compare(Unknown Source)
            at java.util.TimSort.binarySort(TimSort.java:292)
            at java.util.TimSort.sort(TimSort.java:217)
            at java.util.Arrays.sort(Arrays.java:1512)
            at java.util.ArrayList.sort(ArrayList.java:1454)
            at java.util.Collections.sort(Collections.java:175)
            at eu.mihosoft.sonoair.SonoAir.lambda$rescanAndReRunAirSonos$18(SonoAir.java:384)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$272/690329342.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        Exception in thread "Thread-27" java.lang.NullPointerException
            at eu.mihosoft.sonoair.SonoAir.lambda$rescanAndReRunAirSonos$18(SonoAir.java:395)
            at eu.mihosoft.sonoair.SonoAir$$Lambda$272/690329342.run(Unknown Source)
            at java.lang.Thread.run(Thread.java:745)
        Jul 28, 2015 10:33:25 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:33:25 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:33:25 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:33:25 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:33:25 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:33:55 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:33:55 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:33:55 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:34:54 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:34:54 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:34:54 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:34:54 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:34:54 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:34:54 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:34:54 AM org.fourthline.cling.protocol.RetrieveRemoteDescriptors describe
        WARNUNG: Device descriptor retrieval failed, no response: http://:5000/ssdp/desc-DSM-eth0.xml
        Jul 28, 2015 10:34:57 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X<em>NDSVOD</em>DESTINATION<em>UNREACHABLE
        Jul 28, 2015 10:34:57 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: X</em>NDSVOD<em>TEMPORARILY</em>UNAVAILABLE
        Jul 28, 2015 10:34:57 AM org.fourthline.cling.model.meta.StateVariableTypeDetails validate
        WARNUNG: UPnP specification violation, allowed value string must be less than 32 chars: FAILED<em>REACHED</em>MAX<em>PAIRED</em>ALLOWED</p>
      </blockquote>
    </blockquote>
    
    Reply
    1. miho says:
      July 28, 2015 at 13:00

      Thanks for the output. The log actually indicates that your devices are discovered. Even if they don’t show up in the list they should be available as AirPlay device. The library that does/should do the group handling seems to have problems though. Can you try to connect via a different network device (if you use wireless right now, switch to ethernet for testing purposes)?

      Reply
      1. Christian says:
        July 28, 2015 at 14:53

        What do you mean concretely ? The Sonos boxes are all logged by WLAN to the Bridge. I’ve mainly only “Play 1” without Lan connection. And the Paybar is too far away from a LAN port The Mac is logged to both the LAN cable and WLAN network.

        Was meinen Sie konkret ? Die Sonos Boxen sind alle per WLAN an die Bridge angemeldet. Ich habe hauptsächlich nur „Play1″ ohne Lan Anschluss. Und die Paybar ist zuweit weg von einem LAN Port Der Mac ist sowohl mit dem LAN Kabel als auch per WLAN im Netzwerk angemeldet.

        Reply
  16. Frank-Oliver says:
    July 28, 2015 at 13:19

    Beta 4.0 is doing quite well for me, grouped speakers showing up as a single player. But the settings (volume, LED on/off) are not working. And iTunes is still not able to to airplay: „ERROR: SonoAir does not support the requested codec.”

    Reply
    1. miho says:
      July 28, 2015 at 17:21

      iTunes will not work in the near future. Only system sound is supported. Does the system sound work for you? Regarding the settings: can’t you open the settings or don’t they have an effect? Maybe they only work for one device of the group?

      Reply
      1. Frank-Oliver says:
        July 28, 2015 at 17:39

        Yes, system sound is working. And no, I can’t open any settings, neither of a group nor of a single speaker.

        Reply

Leave a Reply to Andy Keck Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Pages

  • About
  • Datenschutz
  • Impressum
  • Seminar 2019

Categories

  • 3D Printing
  • Any-Key
  • Art
  • C/C++
  • Devoxx
  • Digital Painting
  • Featured
  • IoT
  • Java
  • JavaFX
  • Javakurs 2015
  • JavaOne
  • Linux
  • Linux on Apple Hardware
  • Linux: Daily Usage Tips
  • Mobile Apps
  • Mobile Devices
  • Programming Languages
  • Repair Things
  • Science
  • Sonos
  • Teaching
  • Uncategorized
  • Virtual Reality
  • VRL

Tags

3D 3D Printing 3d visualization AirSonos Apple Music Devoxx Devoxx 2013 gradle graph iOS Java Java 8 JavaFX JavaFX 8 JavaOne JavaOne 2013 jdk9 JFXtras JInternalFrame Linux MacBook MDI mobile apps OpenDive OpenJDK OpenJFX Open Source Performance scientific visualization SonoAir Sonos Ultimaker Virtual Reality Virtual World visual programming VPlot VRL VRL-Studio VWorkflows window control Window Node Window System workflow workflows X11

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

JavaOne Rockstar

JavaOne Rockstar
Follow @mihosoft

Recent Posts

  • Native JDK9 Application Bundles
  • Running C code from Java via VTCC
  • SonoAir finally supports macOS High Sierra!
  • JavaOne 2017 Community Keynote Artwork
  • The JGrounds App: better teaching apps for Java 9 [BOF5047]

Recent Comments

  • ¿Ventanas completamente personalizadas de JavaFX? - Fallosweb.com on VFXWindows
  • JavaFX entirely customized windows? – w3toppers.com on VFXWindows
  • Volel Mondesir on Adding Custom Icons to JFXtras Window Control (VFXWindows)
  • Volel Mondesir on Adding Custom Icons to JFXtras Window Control (VFXWindows)
  • Switching between different JDK versions in Windows - ErrorsFixing on JSelect: switch between different JDK versions

Archives

  • February 2018
  • October 2017
  • September 2017
  • February 2017
  • June 2016
  • May 2016
  • November 2015
  • September 2015
  • July 2015
  • March 2015
  • September 2014
  • March 2014
  • February 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • November 2010
  • February 2010
  • November 2009
  • October 2009
  • February 2009
  • August 2008
  • May 2008
  • April 2008
  • March 2008
Privacy & Cookies: this site uses cookies. By continuing to use this website, you agree to their use.
To find out more, see here: Impressum & Datenschutz

© 2025 mihosoft.eu