NRCHKB / node-red-contrib-homekit-bridged

Node-RED Contribution - HomeKit Bridged : Node-RED nodes to simulate Apple HomeKit devices.
https://nrchkb.github.io
MIT License
418 stars 52 forks source link

[FEATURE] - Independency from Avahi #119

Closed djiwondee closed 5 years ago

djiwondee commented 5 years ago

I wondering since HAP-Nodejs switched to a pure js mDNS implementation a while ago for Bonjour support, why it is required to install libavahi-compat-libdnssd-dev as stated on the readme of that project. Don't know whether this is specific for Ubuntu/Debian, but I could imagine it would the implementation made more reliable and probably more lightweight? Just an idea.

Shaquu commented 5 years ago

Like stated in README it's only required for Linux, but...

Now I wonder if we really still need this dependency. We are using HAP-Nodejs so I assume... no?

Can someone check it too?

crxporter commented 5 years ago

Data point: In #102 it ended up the fix was installing libavahi. This was on a raspberry pi running raspbian.

(Might not be stated in that issue but the issue was created by a close friend of mine...)

Shaquu commented 5 years ago

I removed libavahi and it is working for me (HomeKit). I checked HAP-Nodejs and its dependencies and dependencies of dependencies and I couldn't find a reason to use libavahi.

Can someone else do the same as me?

My config: raspberry pi zero Debian/ DietPi

crxporter commented 5 years ago

Check 1: my latest pi 3 A+ deployment (been running for weeks)

When I run dpkg -l libavahi-compat-libdnssd-dev, the result is no packages found matching libavahi-compat-libdnssd-dev1.

When I run dpkg -l and look through everything, I see these installed packages which mention avahi or mdns:

avahi-daemon
libavahi-common-data:armhf
libavahi-common3:armhf
libavahi-core7:armhf
libnss-mdns:armhf

I don't want to delete these packages on a running system, I don't know what installed them (seems to have come with raspbian based on below)

Check 2: fresh install on pi zero

I first loaded up a fresh pi zero with raspbian stretch lite then checked dpkg -l to see:

avahi-daemon
libavahi-common-data:armhf
libavahi-common3:armhf
libavahi-core7:armhf
libnss-mdns:armhf

Step 2- Installed node-red with the pi install script Step 3- Installed NRCHKB with pallette manager Step 4- Check dpkg -l - didn't find any new libavahi related items

At this point, the plugin appears to work fine.

Step 5- stopped node red and ran:

sudo apt-get remove avahi-daemon
sudo apt-get remove libavahi-common-data:armhf
sudo apt-get remove libavahi-common3:armhf
sudo apt-get remove libavahi-core7:armhf
sudo apt-get remove libnss-mdns:armhf

Then tried using NRCHKB. Including using the previous test along with adding a new bridge and pairing with Home app.

Result: Works fine.

Conclusion... seems like you're right, @djiwondee.

Shaquu commented 5 years ago

Very cool summary @crxporter It looks like we can clean up installation instructions.

Wiadomość napisana przez crxporter notifications@github.com w dniu 28.05.2019, o godz. 00:55:

Check 1: my latest pi 3 A+ deployment (been running for weeks)

When I run dpkg -l libavahi-compat-libdnssd-dev, the result is no packages found matching libavahi-compat-libdnssd-dev1.

When I run dpkg -l and look through everything, I see these installed packages which mention avahi or mdns:

avahi-daemon libavahi-common-data:armhf libavahi-common3:armhf libavahi-core7:armhf libnss-mdns:armhf I don't want to delete these packages on a running system, I don't know what installed them (seems to have come with raspbian based on below)

Check 2: fresh install on pi zero

I first loaded up a fresh pi zero with raspbian stretch lite then checked dpkg -l to see:

avahi-daemon libavahi-common-data:armhf libavahi-common3:armhf libavahi-core7:armhf libnss-mdns:armhf Step 2- Installed node-red with the pi install script Step 3- Installed NRCHKB with pallette manager Step 4- Check dpkg -l - didn't find any new libavahi related items

At this point, the plugin appears to work fine.

Step 5- stopped node red and ran:

sudo apt-get remove avahi-daemon sudo apt-get remove libavahi-common-data:armhf sudo apt-get remove libavahi-common3:armhf sudo apt-get remove libavahi-core7:armhf sudo apt-get remove libnss-mdns:armhf Then tried using NRCHKB. Including using the previous test along with adding a new bridge and pairing with Home app.

Result: Works fine.

Conclusion... seems like you're right, @djiwondee.

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

djiwondee commented 5 years ago

Hello @crxporter ,

wow! Questions was answered very fast and comprehensive, thanks! Knowing that my be helpful in the future for troubleshooting.

Shaquu commented 5 years ago

I will live it open so I will not forget about it.

Shaquu commented 5 years ago

Thanks again @djiwondee for pointing out the issue and @crxporter for yours very usefull tests!

Change is added on feature/readmeclarify I will merge it to dev when I review README briefly if there is something more to change.

djiwondee commented 5 years ago

Hello @Shaquu ,

even this issue has been closed so far, I can confirm independency from the libavahi stuff as well.

I'm just about to move my entire smart home setup including node-red-contrib-homekit-bridged from a native Raspi deployment to Homematic which is a quite common platform in Germany. Its Smart Home Central Control Unit CCU3 is also based on the Raspberry platform but is running an own embedded Linux.

The system provides the ability to install 3rd party applications in a particular supported way. One of this is RedMatic, a kind of plugin providing a full node-red deployment with some preconfigured special Homematic related nodes to connect to the Homematic system.

However, I migrated a couple of flows using node-red-contrib-homekit-bridged to that platform and it runs well. In addition to that in the stepwise migration of a lot of flows with HomeKit nodes until now I've never seen errors like this nor there was a need to restart the node-red-service, while my repeated stepwise copy and paste deployment of changed flows. The only issue I have so far is blocked ports by the CCU3's firewall when I try to add a bridge in the HomeKit app. Do you know what other ports are used by in addition to 51826 and 5353?

Shaquu commented 5 years ago

@djiwondee thank you very much for confirmation. About the port. I think if you dont set the port yourself in Bridge (config) node then port will be assigned automatically from free port pool.

Shaquu commented 5 years ago

Thanks to @crxporter README got improved even more in #122