MagicMirror² v2.13.0 is available! For more information about this release, check out this topic.

MMM-SensorGateway



  • Firstoff, Thanks MichMich and all the contributors for the incredible platform - have had a lot of fun with it since set up of my first mirror on last summer.

    I’ve written two modules just for own fun - the FunnyHolidays one is trivial, but for the MMM-SensorGateway
    I’d love to hear feedback if somebody happens to reproduce the installation and setup. (since I did some
    hacking throughout especially the BLE and startup service setup - and haven’t done “clean install”
    so there might be something missing / other glitches in the instructions) . Posted this on the Utilities - category since this kind of gateway is quite generic and also would like to hear if somebody implements other use-cases / wants to build one together. (These modules are also added to 3rd party modules list - I didn’t find a similar implementation there yet)

    Here are the links (images and installation instructions in the README.md)
    https://github.com/mattileh/MMM-FunnyHolidays
    https://github.com/mattileh/MMM-SensorGateway

    Disclaimer:
    I’m not a frontend developer - so the javascript included might not be look really “sane one” 🙂

    Disclaimer2:
    Movesense firmware source code is not available. Binaries can be found under firmwares/
    If someone would be interested in that the Movesense is rather open environment - and has several example sources available
    https://bitbucket.org/suunto/movesense-device-lib/src/master/samples/custom_bleadv_app/
    is for the beaconing software.



  • @mattileh maybe you could give a few more words about SensorGateway… What do you need to make the module work? what sensors?



  • Thanks! This was something what I was wishing for to happen. Previously I used influx+grafana setup to get info to MM and it was quite keen setup to corrupt memory cards. I dont need data to be stored anywhere so this was more than good solution to get info from ruuvitags to MM.



  • @thap Hi!, great to hear that you found the module usefull as well.
    Please let me know if there was any problems in replicating the gateway setup or any other changes required to the instructions.



  • Tried this with 3b/3b+ (python 2.7/3.6), when installing module I get the following error:

    pi@raspberrypi:~/MagicMirror/modules/MMM-SensorGateway $ npm install
    npm WARN deprecated exec@0.2.1: deprecated in favor of builtin child_process.exe                                                                             cFile
    
    > websocket@1.0.31 install /home/pi/MagicMirror/modules/MMM-SensorGateway/node_m                                                                             odules/websocket
    > (node-gyp rebuild 2> builderror.log) || (exit 0)
    
    make: Entering directory '/home/pi/MagicMirror/modules/MMM-SensorGateway/node_mo                                                                             dules/websocket/build'
      CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
      SOLINK_MODULE(target) Release/obj.target/bufferutil.node
      COPY Release/bufferutil.node
      CXX(target) Release/obj.target/validation/src/validation.o
      SOLINK_MODULE(target) Release/obj.target/validation.node
      COPY Release/validation.node
    make: Leaving directory '/home/pi/MagicMirror/modules/MMM-SensorGateway/node_mod                                                                             ules/websocket/build'
    MMM-SensorGateway@1.0.0 /home/pi/MagicMirror/modules/MMM-SensorGateway
    ├── exec@0.2.1
    └─┬ websocket@1.0.31
      ├─┬ debug@2.6.9
      │ └── ms@2.0.0
      ├─┬ es5-ext@0.10.53
      │ ├─┬ es6-iterator@2.0.3
      │ │ └─┬ d@1.0.1
      │ │   └── type@1.2.0
      │ ├─┬ es6-symbol@3.1.3
      │ │ └─┬ ext@1.4.0
      │ │   └── type@2.0.0
      │ └── next-tick@1.0.0
      ├── nan@2.14.0
      ├─┬ typedarray-to-buffer@3.1.5
      │ └── is-typedarray@1.0.0
      └── yaeti@0.0.6
    
    npm WARN MMM-SensorGateway@1.0.0 No repository field.
    
    
    

    I can see the temperature with “ruuvitag -f” in console. If I try to see the status with “sudo service local_blegateway status” I get:

    pi@raspberrypi:~ $ sudo service local_blegateway status
    ● local_blegateway.service - local_blegateway, Movesense and RuuviTag BLE advertisement message gateway to websocket interface
       Loaded: loaded (/lib/systemd/system/local_blegateway.service; enabled; vendor preset: enabled)
       Active: activating (auto-restart) (Result: exit-code) since Fri 2019-12-20 17:04:04 EET; 1s ago
      Process: 1972 ExecStart=/usr/share/local_blegateway/local_blegatewaykickstart.sh (code=exited, status=1/FAILURE)
     Main PID: 1972 (code=exited, status=1/FAILURE)
    
    joulu 20 17:04:04 raspberrypi systemd[1]: local_blegateway.service: Unit entered failed state.
    joulu 20 17:04:04 raspberrypi systemd[1]: local_blegateway.service: Failed with result 'exit-code'.
    
    

    Any hints?



  • @dmd Hi!, Python 2.7.16 is the exact python version I’ve used.

    the exec module warning is expected, is there something in the snippet you sent that indicates that something went wrong in the module installation?

    btw, how did the service installation itself go? (there is an expected output in the instructions) and can you try running the gateway python script directly? e.g. :

    sudo python bleAdvWebSocket.py
    

    and post the results here.



  • @mattileh I gt exactly the same error as @dmd. When I run bleAdvWebSocket.py manually I get the following:

    pi@mirror-pi:~/MagicMirror/modules/MMM-SensorGateway/gateway $ python bleAdvWebSocket.py 
    Traceback (most recent call last):
      File "bleAdvWebSocket.py", line 13, in module
        import websocket
    ImportError: No module named websocket
    


  • There is a lot of install work for this module. Did u guys run the install script per the readme?



  • @stickymongoose Hi! the websocket module is installed in the gateway module installation - can you double check you’ve ran README.md:41

    * run `npm install` in module's directory to install websocket and exec modules.
    

    also the local run of advSocket needs root access so please run it with the snippet above (e.g. with sudo in front, or from root user)



  • Is there a fix to the before mentioned errors?


Log in to reply