Ship nymea:core on the Device and Deploy my Integration Plugin

Hi,

I’m planning to build a smart device. The device includes a raspberry pi. I’d like to have a setup where a user gets one (or more) of these devices and uses a mobile phone to do the wifi setup and configuration of the devices.

I’ve gone through the nymea docs and have some questions:

  • to run nymea, a central PC (or Raspberry Pi) is needed that runs nymea:core. That’s a hefty requirement for regular users. Since my device already contains a Raspberry Pi, I was wondering if I could just ship nymea:core with it, so the only additional thing a user needs to provide, is the nymea:ux app on his phone. Would that be feasible? What would happen if a user has more than one of my devices… then there would be multiple nymea:core instances in the network. Will that break the nymea:ux ??

  • how is an integration plugin deployed? The documentation seems to end with building and testing, but there must be some way to deliver it to the user of my device? Or is it so that integrations must be submitted and only the “currently available integrations” can be used in the field?

Best regards,
Vic

Hi,

  • Yes, sure, you can ship nymea with the device. If multiple nymea instances are available in a network, nymea:app will be able to distinguish them and allow the user to switch between them.

  • Well, if you deploy nymea into your custom image, you can also deploy your custom plugin in one way or another, be it by just copying it, or packaging up and installing with apt/dpkg, your choice. nymea itself doesn’t care how the plugin ended up on the device. It will - by default - look for plugins in /usr/lib/<arch-triplet>/nymea/plugins which is where apt-get install would place them. You can also load plugins from custom locations by exporting NYMEA_PLUGINS_PATH=/path/to/custom/plugin/ in the environment (systemd .service file override for example)