NorthernMan54 / homebridge-mcuiot

Homebridge platform plugin that support's a network of nodemcu's running nodemcu-dht-yl69-mdns to display Temperature and Humidity.
30 stars 11 forks source link

getaddrinfo Error when starting Homebridge #8

Closed cooltuner closed 5 years ago

cooltuner commented 6 years ago

Only the Reset Switch shows up in Home-Kit, the server and the sensor are working fine, when I start Homebridge I get this Error-Message: { Error: getaddrinfo -3008 at errnoException (/usr/local/lib/node_modules/homebridge-mcuiot/node_modules/mdns/lib/resolver_sequence_tasks.js:199:11) at getaddrinfo_complete (/usr/local/lib/node_modules/homebridge-mcuiot/node_modules/mdns/lib/resolver_sequence_tasks.js:112:10) at GetAddrInfoReqWrap.oncomplete (/usr/local/lib/node_modules/homebridge-mcuiot/node_modules/mdns/lib/resolver_sequence_tasks.js:120:9) code: -3008, errno: -3008, syscall: 'getaddrinfo' }

Also I noticed in ESPlorer where you get this: Registering service dht22 with mDNS Web Server Started GET / HTTP/1.1 host: node-86695.local.:80 Connection: close I get this: Registering service dht22 with mDNS Web Server Started GET / HTTP/1.1 Host: 192.168.178.109 Connection: keep-alive Still Homebridge and the sensor are working just fine, only it doesn't show up at all in Home-Kit

Thanks for helping me in advance

NorthernMan54 commented 6 years ago

Are you running homebridge in a docker container?

I believe this is a issue with docker and MDNS

Can you try running homebridge outside of docker?

Sent from my iPad

On May 31, 2018, at 5:24 AM, cooltuner notifications@github.com wrote:

Only the Reset Switch shows up in Home-Kit, the server and the sensor are working fine, when I start Homebridge I get this Error-Message: { Error: getaddrinfo -3008 at errnoException (/usr/local/lib/node_modules/homebridge-mcuiot/node_modules/mdns/lib/resolver_sequence_tasks.js:199:11) at getaddrinfo_complete (/usr/local/lib/node_modules/homebridge-mcuiot/node_modules/mdns/lib/resolver_sequence_tasks.js:112:10) at GetAddrInfoReqWrap.oncomplete (/usr/local/lib/node_modules/homebridge-mcuiot/node_modules/mdns/lib/resolver_sequence_tasks.js:120:9) code: -3008, errno: -3008, syscall: 'getaddrinfo' }

Also I noticed in ESPlorer where you get this: Registering service dht22 with mDNS Web Server Started GET / HTTP/1.1 host: node-86695.local.:80 Connection: close I get this: Registering service dht22 with mDNS Web Server Started GET / HTTP/1.1 Host: 192.168.178.109 Connection: keep-alive Still Homebridge and the sensor are working just fine, only it doesn't show up at all in Home-Kit

Thanks for helping me in advance

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

cooltuner commented 6 years ago

You are right, I am running it in a FreeNas Jail, I didn't think this might be a problem. I tried reinstalling mdns in that jail, but it doesn't change anything. Do you have any idea how to fix this?

NorthernMan54 commented 6 years ago

Unfortunately no. The error is something about the container not supporting getaddrinfo OS call used by mdns

cooltuner commented 6 years ago

Thank you for helping me, I'll see if I can find a solution.

mstrQ commented 5 years ago

Hello. I do have the same issue. I'm running Homebridge in a docker container on my Synology-NAS. Isn't there any possibility to provide certain IPs of the NODE-MCUs to the plugin?

NorthernMan54 commented 5 years ago

When I designed the plugin my design principal was minimize the config in homebridge, that’s why I used mDns for device discovery and devices are provisioned without any changes required. So the code doesn’t support manually adding devices.

Can you supply the full error message from the log files? I have been thinking about moving from mdns to bonjour similar to homebridge and am wondering if this will fix this.

mstrQ commented 5 years ago

Thx for your replay. Here is the whole error message from the log:

[37m[1/18/2019, 3:26:06 PM] [MCUIOT] Web Server listening on: http://localhost:8080 { Error: getaddrinfo -3008 at errnoException (/homebridge/node_modules/mdns/lib/resolver_sequence_tasks.js:199:11) at getaddrinfo_complete (/homebridge/node_modules/mdns/lib/resolver_sequence_tasks.js:112:10) at GetAddrInfoReqWrap.oncomplete (/homebridge/node_modules/mdns/lib/resolver_sequence_tasks.js:120:9) code: -3008, errno: -3008, syscall: 'getaddrinfo' }

I would really appreciate, if you're going to switch to bonjour, if this helps.

NorthernMan54 commented 5 years ago

Give me a couple of days with this.

mstrQ commented 5 years ago

Would be great, thx for your effort.

NorthernMan54 commented 5 years ago

@mstrQ Trying installing this version, I have switched from mDNS to bonjour. If it errors out, please include a log file

mstrQ commented 5 years ago

I will try this out at the weekend and let you know.

mstrQ commented 5 years ago

@NorthernMan54 I tried your new version. the listener ist starting up with no error: [1/25/2019, 2:40:26 PM] [MCUIOT] configureAccessory MCUIOT Reset Switch [1/25/2019, 2:40:26 PM] [MCUIOT] Starting Bonjour listener [1/25/2019, 2:40:26 PM] [MCUIOT] Web Server listening on: http://localhost:8080

After homebridge coming up completely, the log says: [1/25/2019, 2:40:31 PM] [MCUIOT] Error Adding MCUIOT Device NODE-CD2B3 getaddrinfo ENOTFOUND node-cd2b3.local node-cd2b3.local:80

The sensor is giving a correct response when opening "http://node-cd2b3.local" on my mac.

NorthernMan54 commented 5 years ago

Just looking at the code, and I have more debugging info that can be enabled by starting homebridge with the DEBUG=* option

ie

DEBUG=* homebridge

If you could start homebridge with that option, and share the log.

Also where are you running homebridge from?

mstrQ commented 5 years ago

Homebridge is running from a docker-container on my Synology NAS. As it is starting up automatically, when starting the container, I'm not sure how to start with debug option.

NorthernMan54 commented 5 years ago

I have made a couple of small changes for name resolution, and made DEBUG logging also a config.json option.

Please update and try again. And if these latest changes don’t resolve it, please enable the DEBUG option and submit a log.

On Jan 25, 2019, at 1:21 PM, mstrQ notifications@github.com wrote:

Homebridge is running from a docker-container on my Synology NAS. As it is starting up automatically, when starting the container, I'm not sure how to start with debug option.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/NorthernMan54/homebridge-mcuiot/issues/8#issuecomment-457669894, or mute the thread https://github.com/notifications/unsubscribe-auth/AS5CmHhvCrhdRDSntRikg22ycru5AsJyks5vG0srgaJpZM4UUtZn.

mstrQ commented 5 years ago

Yes, that's it. Node is being discovered now and homebridge is reading data. Thank you so much. Going to build 9 other sensors now :)

NorthernMan54 commented 5 years ago

Glad to hear it’s working for you. Did you see my other versions? Motion sensor etc?

On Jan 26, 2019, at 10:39 AM, mstrQ notifications@github.com wrote:

Yes, that's it. Node is being discovered now and homebridge is reading data. Thank you so much. Going to build 9 other sensors now :)

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

mstrQ commented 5 years ago

Currently exploring :) Homebridge is giving so much possibilities, i‘m just realising. Do you have plans for supporting the BME680, which is also providing air quality/VOC?

NorthernMan54 commented 5 years ago

Under the covers I depend on the nodemcu-firmware supporting it. It may be worth while looking around at their repo’s / issues

On Jan 26, 2019, at 1:39 PM, mstrQ notifications@github.com wrote:

Currently exploring :) Homebridge is giving so much possibilities, i‘m just realising. Do you have plans for supporting the BME680, which is also providing air quality/VOC?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.