jishi / node-sonos-http-api

An HTTP API bridge for Sonos easing automation. Hostable on any node.js capable device, like a raspberry pi or similar.
http://jishi.github.io/node-sonos-http-api/
MIT License
1.84k stars 463 forks source link

Address not available #729

Closed olem10 closed 4 years ago

olem10 commented 4 years ago

I am not able to run the latest version of the node-sonos-http-api on a Raspberry 3 model B running Buster. Sonos API version 1.0.1 downloaded from http://jishi.github.io/node-sonos-http-api/ works just fine.

The error message I get is address not available. A log is shown below: $ npm start

sonos-http-api@1.6.9 start /home/pi/sonos/node-sonos-http-api node server.js

2019-10-19T10:26:37.491Z INFO Presets loaded: { example: { players: [ { roomName: 'Bedroom', volume: 10 } ], playMode: { shuffle: true, repeat: 'all', crossfade: false }, pauseOthers: false } } 2019-10-19T10:26:39.137Z ERROR Error: listen EADDRNOTAVAIL: address not available 192.168.0.100:5005 at Server.setupListenHandle [as _listen2] (net.js:1281:19) at listenInCluster (net.js:1346:12) at doListen (net.js:1485:7) at processTicksAndRejections (internal/process/task_queues.js:81:21)

Some version info: $ uname -a Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux $ node -v v12.11.1 $ npm -v 6.11.3

Using an older version of node gives same result.

Anyone got an idea what is going on?

Regards Ole Martin

jishi commented 4 years ago

What's the output of ifconfig?

On Sat, 19 Oct 2019, 12:30 olem10, notifications@github.com wrote:

I am not able to run the latest version of the node-sonos-http-api on a Raspberry 3 model B running Buster. Sonos API version 1.0.1 downloaded from http://jishi.github.io/node-sonos-http-api/ works just fine.

The error message I get is address not available. A log is shown below: $ npm start

sonos-http-api@1.6.9 start /home/pi/sonos/node-sonos-http-api node server.js

2019-10-19T10:26:37.491Z INFO Presets loaded: { example: { players: [ { roomName: 'Bedroom', volume: 10 } ], playMode: { shuffle: true, repeat: 'all', crossfade: false }, pauseOthers: false } } 2019-10-19T10:26:39.137Z ERROR Error: listen EADDRNOTAVAIL: address not available 192.168.0.100:5005 at Server.setupListenHandle [as _listen2] (net.js:1281:19) at listenInCluster (net.js:1346:12) at doListen (net.js:1485:7) at processTicksAndRejections (internal/process/task_queues.js:81:21)

Some version info: $ uname -a Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux $ node -v v12.11.1 $ npm -v 6.11.3

Using an older version of node gives same result.

Anyone got an idea what is going on?

Regards Ole Martin

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jishi/node-sonos-http-api/issues/729?email_source=notifications&email_token=AAYE2I3SR3NIFZHX4CGKNX3QPLOTZA5CNFSM4JCPGTM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HS5JPSQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYE2IYQDCGORSVUPOVJPBTQPLOTZANCNFSM4JCPGTMQ .

olem10 commented 4 years ago

I use the Pi as a wifi-bridge for my cable-tv tuner (connected to eth0). Here it is: eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.151 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::d72:b01a:61eb:dbf6 prefixlen 64 scopeid 0x20 ether b8:27:eb:9e:3a:6a txqueuelen 1000 (Ethernet) RX packets 20869 bytes 7495508 (7.1 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 17103 bytes 6174627 (5.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 184058 bytes 27981211 (26.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 184058 bytes 27981211 (26.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.151 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::d23e:cd4d:9fc7:79c4 prefixlen 64 scopeid 0x20 ether b8:27:eb:cb:6f:3f txqueuelen 1000 (Ethernet) RX packets 1423519 bytes 373259306 (355.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 816256 bytes 252837524 (241.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

On Sat, Oct 19, 2019 at 12:47 PM Jimmy Shimizu notifications@github.com wrote:

What's the output of ifconfig?

On Sat, 19 Oct 2019, 12:30 olem10, notifications@github.com wrote:

I am not able to run the latest version of the node-sonos-http-api on a Raspberry 3 model B running Buster. Sonos API version 1.0.1 downloaded from http://jishi.github.io/node-sonos-http-api/ works just fine.

The error message I get is address not available. A log is shown below: $ npm start

sonos-http-api@1.6.9 start /home/pi/sonos/node-sonos-http-api node server.js

2019-10-19T10:26:37.491Z INFO Presets loaded: { example: { players: [ { roomName: 'Bedroom', volume: 10 } ], playMode: { shuffle: true, repeat: 'all', crossfade: false }, pauseOthers: false } } 2019-10-19T10:26:39.137Z ERROR Error: listen EADDRNOTAVAIL: address not available 192.168.0.100:5005 at Server.setupListenHandle [as _listen2] (net.js:1281:19) at listenInCluster (net.js:1346:12) at doListen (net.js:1485:7) at processTicksAndRejections (internal/process/task_queues.js:81:21)

Some version info: $ uname -a Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux $ node -v v12.11.1 $ npm -v 6.11.3

Using an older version of node gives same result.

Anyone got an idea what is going on?

Regards Ole Martin

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub < https://github.com/jishi/node-sonos-http-api/issues/729?email_source=notifications&email_token=AAYE2I3SR3NIFZHX4CGKNX3QPLOTZA5CNFSM4JCPGTM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HS5JPSQ , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAYE2IYQDCGORSVUPOVJPBTQPLOTZANCNFSM4JCPGTMQ

.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jishi/node-sonos-http-api/issues/729?email_source=notifications&email_token=AIB5YC4UEXKH2WMVH2X6WUTQPLQV5A5CNFSM4JCPGTM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBXLSJA#issuecomment-544127268, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIB5YC3SJ6FZ4ZYL6URTXQTQPLQV5ANCNFSM4JCPGTMQ .

jishi commented 4 years ago

Weird, where does it get 192.168.0.100 from then? Do you have additional interfaces if you use ifconfig - a?

olem10 commented 4 years ago

192.168.0.100 is the address of the Sonos One. It pings just fine from the Pi.

On Sat, Oct 19, 2019 at 1:15 PM Jimmy Shimizu notifications@github.com wrote:

Weird, where does it get 192.168.0.100 from then? Do you have additional interfaces if you use ifconfig - a?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jishi/node-sonos-http-api/issues/729?email_source=notifications&email_token=AIB5YC7A6UHG4ZDPJYEFKADQPLT4FA5CNFSM4JCPGTM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBXMLWA#issuecomment-544130520, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIB5YC7GJZK2ZQY7MWFOSHDQPLT4FANCNFSM4JCPGTMQ .

jishi commented 4 years ago

Yeah, but the api server is trying to bind the listening port of the api to that ip which is completely wrong. There is something else on your setup that causes it that needs to be disclosed. Other people are running it just fine on buster.

How are you bridging wlan0 and eth0? Do you have a br0 interface?

olem10 commented 4 years ago

I have no br0. The bridging uses iptables routing.

My settings file is: { "port": 5005, "ip": "192.168.0.100", // Sonos One IP "library": { "randomQueueLimit": 10 } }

I installed the sonos-http-library on a wired Raspberry Pi running dietPi OS and on another Buster installation. Both with no wifi-eth0 bridging. The result is the same in both cases. I then edited the settings.js instead of a separate settings.json.

On Sat, Oct 19, 2019 at 1:31 PM Jimmy Shimizu notifications@github.com wrote:

Yeah, but the api server is trying to bind the listening port of the api to that ip which is completely wrong. There is something else on your setup that causes it that needs to be disclosed. Other people are running it just fine on buster.

How are you bridging wlan0 and eth0? Do you have a br0 interface?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jishi/node-sonos-http-api/issues/729?email_source=notifications&email_token=AIB5YC3UQFBY5QYDACVSE2DQPLVX3A5CNFSM4JCPGTM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBXM3BQ#issuecomment-544132486, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIB5YCZDTAVC3YBQ4BYSIQLQPLVX3ANCNFSM4JCPGTMQ .

jishi commented 4 years ago

That explains it. The IP setting in config is for binding to a specific IP if you have multiple interfaces. Thst should not be necessary in 99% of the cases. It will find your sonos system automatically, regardless of IP. Just remove that setting.

olem10 commented 4 years ago

That did it. Thanks a lot!

On Sat, Oct 19, 2019 at 3:04 PM Jimmy Shimizu notifications@github.com wrote:

That explains it. The IP setting in config is for binding to a specific IP if you have multiple interfaces. Thst should not be necessary in 99% of the cases. It will find your sonos system automatically, regardless of IP. Just remove that setting.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jishi/node-sonos-http-api/issues/729?email_source=notifications&email_token=AIB5YC6YFM36UDQXJ6OXSG3QPMAVFA5CNFSM4JCPGTM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBXPCJA#issuecomment-544141604, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIB5YCZKHHVTUOO57P2MH2DQPMAVFANCNFSM4JCPGTMQ .