Diyhue on NAS doesn't work, works fine on Pi

Hi there,

I’ve been having some issues with Diyhue and working properly with Sleep as Android. You can find more info here.


As Diyhue works fine(ish?) on a raspberry Pi (2) on the same network, the foremost problem is that Diyhue is refusing to work properly on the Nas I have.

I’m running a docker install

docker run -d -e "DEBUG=true" --name "diyHue" --restart="always" --network="host" -v '/mnt/hue-emulator/export/':'/opt/hue-emulator/export/':'rw' diyhue/core:latest

I’ve looked in another thread for common questions, here I saw requested were the following two commands (+ result):
ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fc:aa:14:2a:83:f3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.123.102/24 brd 192.168.123.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::bc8:5145:8b2d:e520/64 scope link
       valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::c55d:a823:d1d:8f34/64 scope link stable-privacy
       valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:95:31:6a:4c brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

curl https://127.0.0.1/api/nouser/config -k -v

* Expire in 0 ms for 6 (transfer 0x55567e2faf50)
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55567e2faf50)
* Connected to 127.0.0.1 (127.0.0.1) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: C=NL; O=Philips Hue; CN=fcaa14fffe2a83f3
*  start date: Jan 18 19:41:01 2020 GMT
*  expire date: Jan 15 19:41:01 2030 GMT
*  issuer: C=NL; O=Philips Hue; CN=fcaa14fffe2a83f3
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> GET /api/nouser/config HTTP/1.1
> Host: 127.0.0.1
> User-Agent: curl/7.64.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/1.1 200 OK
< Server: nginx
< Date: Sat, 18 Jan 2020 19:53:34 GMT
< Content-type: application/json
< Content-Length: 227
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET, OPTIONS, POST, PUT, DELETE
< Access-Control-Allow-Headers: X-Requested-With
< Access-Control-Allow-Headers: Content-Type
<
* Connection #0 to host 127.0.0.1 left intact
{"name":"Philips hue","datastoreversion":70,"swversion":"1935074050","apiversion":"1.35.0","mac":"fc:aa:14:2a:83:f3","bridgeid":"FCAA14FFFE2A83F3","factorynew":false,"replacesbridgeid":null,"modelid":"BSB002","starterkitid":""}

Perhaps we can figure out as to why not :upside_down_face:

Explain what you mean by refusing to work properly.

Not working at all. It sometimes shows up at the end of a scan for a split second. I might catch it by repeatedly tapping the place where the connect button would appear.
That doesn’t help me much as activating the device won’t work.

Probably your NAS will not let you use the ports 80 and 443 that are reserved for his own web interface. In this situation you have no options because on Hue API protocol these ports are fixed.

Neither are in use.

(If this is the proper way to check it that is)

The output content of curl command looks to be correct. Are you able to execute same curl command from an external host (previously you execute it from localhost) ?