MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    unable to get noble package running

    Scheduled Pinned Locked Moved Bug Hunt
    6 Posts 4 Posters 5.3k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • SvenSommerS Offline
      SvenSommer
      last edited by

      Platform: Raspberry Pi 3

      Node Version: v7.4.0

      MagicMirror Version: v2.1.0

      Description: For bluetooth integration I would like to add noble to a MM²-module. Whith this package I was able to interact with bluetooth devices when I ran nodejs-scripts without the MM²-framework. When I try to integrate it within the node_helper.js. I’m not able to initialise the blueetoh device.
      This is simply done by

      var noble = require('noble');
      
      noble.on('stateChange', function(state) {
          if (state === 'poweredOn') {
              noble.startScanning([], true);
              console.log('scanning started...');
          }
          else  {
              noble.stopScanning();
              console.log('scanning stopped.');
          }
      });
      
      

      Within node_helper there is now response, no error message. Just nothing happens.

      If I run a script in the same folder, outside of MM²-Framework with

      sudo node testscript.js
      

      everytthing is working fine.

      Steps to Reproduce:

      1. To test the working testscript:
      • Enter your module-directory: cd ~/MagicMirror/modules
      • Clone repository : git clone https://github.com/SvenSommer/MMM-OralB
      • Enter new directory: cd ~/MagicMirror/modules/MMM-OralB
      • Install dependencies: sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
      • Install noble module: npm install noble
      • Exceute testscript:sudo node testscript.js
      • This should lead to a output like
      scanning was started. Everything is working fine.
      
      1. To test the node_helper:
      • Excute first five steps from above.
      • For compatibility reasons run:
      cd ~/MagicMirror/modules/MMM-OralB
      sudo npm rebuild --runtime=electron --target=1.4.6 --disturl=https://atom.io/download/atom-shell --abi=50
      
      • Integrate module in config-file
      {
              module: 'MMM-OralB',
              position: 'bottom_left',
      },
      
      • Start MM², so the module gets loaded.

      Expected Results: Same console output: scanning was started. Everything is working fine.

      Actual Results: Nothing no output. No error. Pure deadly silence. :)

      Configuration: Here the config.js:

      var config = {
      	port: 8080,
      	ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1","::ffff:192.168.188.22"],
      
      	language: 'de',
      	timeFormat: 24,
      	units: 'metric',
      
      	modules: [
      		{
      			module: 'alert',
      		},
      		{
      			module: 'clock',
      			position: 'center'
      		},
      		{
      			module: 'MMM-OralB',
      			position: 'bottom_left',
      		},
      	]
      
      };
      
      /*************** DO NOT EDIT THE LINE BELOW ***************/
      if (typeof module !== 'undefined') {module.exports = config;}
      

      Additional Notes: Next to noble is a module to provide advertising Ble-Services its called bleno (from the same developer). This was successfully integrated in an module by @aschulz90. I tried to adapt to his code to find an error in my code. But this wasn’t helping either.
      https://github.com/aschulz90/ble_app_interface

      Looking for some building inspiration?
      Check out my large, thin and metal framed mirror on robstechlog.com.

      Modules released:
      MMM-GoogleAnalytics
      MMM-GrafanaChart
      MMM-GrafanaGauges

      1 Reply Last reply Reply Quote 0
      • aschulz90A Offline
        aschulz90
        last edited by

        I have tested your module (both in MM and stand-alone) and in both cases i get "scanning was started. Everything is working fine." shown in the console (i use a RaspberryPi 2 with an USB-Bluetooth adapter).

        Are you runnung MagicMirror with sudo-rights? If there is no console output, then it indicates, that the bluetooth adapter wasn’t started (no “stateChange”-event).

        Is my module fully working for you? I currently can’t think of any reason it should only work in one of the both cases (except for the “version mismatch”-error).

        SvenSommerS 1 Reply Last reply Reply Quote 0
        • SvenSommerS Offline
          SvenSommer @aschulz90
          last edited by

          @aschulz90
          Thanks for your effort and you for quick help. After using a totally new image and installing everything again. I finally started the MM² with sudo-rights without using a ssh-connection.
          This finally solved my issue.

          Via ssh-connection I’m unable to start the MM². I tried DISPLAY=:0 sudo npm start. This caused

          > magicmirror@2.1.0 start /home/pi/MagicMirror
          > electron js/electron.js
          
          No protocol specified
          
          npm ERR! Linux 4.4.45-v7+
          npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
          npm ERR! node v6.9.4
          npm ERR! npm  v3.10.10
          npm ERR! code ELIFECYCLE
          npm ERR! magicmirror@2.1.0 start: `electron js/electron.js`
          npm ERR! Exit status 1
          ...
          

          Is there a way to start the MM² via ssh with sudo rights?

          Looking for some building inspiration?
          Check out my large, thin and metal framed mirror on robstechlog.com.

          Modules released:
          MMM-GoogleAnalytics
          MMM-GrafanaChart
          MMM-GrafanaGauges

          aschulz90A OdomLinxO 2 Replies Last reply Reply Quote 0
          • aschulz90A Offline
            aschulz90 @SvenSommer
            last edited by

            @SvenSommer

            Here the following command is suggested:

            DISPLAY=:0 nohup npm start &

            1 Reply Last reply Reply Quote 0
            • OdomLinxO Offline
              OdomLinx @SvenSommer
              last edited by

              @SvenSommer Late but…
              https://github.com/sandeepmistry/noble#running-without-rootsudo
              Running without root/sudo
              Run the following command:

              sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)
              

              This grants the node binary cap_net_raw privileges, so it can start/stop BLE advertising.

              Note: The above command requires setcap to be installed, it can be installed using the following:

              sudo apt-get install libcap2-bin
              

              This works on my Zero W with Debian Stretch

              1 Reply Last reply Reply Quote 1
              • K Offline
                kunakasaki
                last edited by

                @SvenSommer this solution worked for ur project?
                Having the same problem to run noble via ssh.

                for me the command : sudo setcap cap_net_raw+eip $(eval readlink -f which node) , seems to do nothing.

                1 Reply Last reply Reply Quote 0

                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                With your input, this post could be even better 💗

                Register Login
                • 1 / 1
                • First post
                  Last post
                Enjoying MagicMirror? Please consider a donation!
                MagicMirror created by Michael Teeuw.
                Forum managed by Sam, technical setup by Karsten.
                This forum is using NodeBB as its core | Contributors
                Contact | Privacy Policy