@mattsharp I`m kind of reluctant to update to 2.6.0 so I do not mess anything. I have modified quite a lot of config files and custom css. This is my college project and I have to present in a few months. The google assistant is working decently, although I was hoping for better, I will have to stick with it until this issue with electron is fixed.
Read the statement by Michael Teeuw here.
Posts
-
RE: MMM-awesome-alexa snowboy issue
-
RE: MMM-awesome-alexa snowboy issue
@mattsharp Thanks for trying, I will try soon enough, I have tried the google assistant module, but I`ll probably return to alexa soon.
-
MMM-awesome-alexa snowboy issue
Hi, I`m trying to install awesome-alexa but when I try to run the electron rebuild I get a huge error list…
I updated electron, node-abi, every single thing that could be updated, ran npm audit-fix and still nothing.
Here is the output:
An unhandled error occurred inside electron-rebuild
make: Entering directory ‘/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/snowboy/build’
CXX(target) Release/obj.target/snowboy/swig/Node/snowboy.o
In file included from …/…/nan/nan.h:192:0,
from …/swig/Node/snowboy.cc:1:
…/…/nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe Nan::ForceSet(v8::Localv8::Object, v8::Localv8::Value, v8::Localv8::Value, v8::PropertyAttribute)’:
…/…/nan/nan_maybe_43_inl.h:112:15: error: ‘class v8::Object’ has no member named ‘ForceSet’
return obj->ForceSet(isolate->GetCurrentContext(), key, value, attribs);
^~~~~~~~
In file included from …/swig/Node/snowboy.cc:1:0:
…/…/nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’:
…/…/nan/nan.h:835:60: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, func, argc, argv);
^
In file included from /home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:53:0,
from …/…/nan/nan.h:49,
from …/swig/Node/snowboy.cc:1:
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:94:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/core.h:35:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^~~~~~~~~~
In file included from …/swig/Node/snowboy.cc:1:0:
…/…/nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::String, int, v8::Localv8::Value)’:
…/…/nan/nan.h:850:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate*, v8::Localv8::Object, v8::Localv8::String, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, symbol, argc, argv);
^
In file included from /home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:53:0,
from …/…/nan/nan.h:49,
from …/swig/Node/snowboy.cc:1:
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:87:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/core.h:35:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^~~~~~~~~~
In file included from …/swig/Node/snowboy.cc:1:0:
…/…/nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, const char, int, v8::Localv8::Value)’:
…/…/nan/nan.h:865:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, const char*, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, method, argc, argv);
^
In file included from /home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:53:0,
from …/…/nan/nan.h:49,
from …/swig/Node/snowboy.cc:1:
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:80:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/core.h:35:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^~~~~~~~~~
In file included from …/swig/Node/snowboy.cc:1:0:
…/…/nan/nan.h: In member function ‘v8::Localv8::Value Nan::Callback::Call_(v8::Isolate, v8::Localv8::Object, int, v8::Localv8::Value) const’:
…/…/nan/nan.h:1479:5: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value*)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
));
^
In file included from /home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:53:0,
from …/…/nan/nan.h:49,
from …/swig/Node/snowboy.cc:1:
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:94:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/core.h:35:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^~~~~~~~~~
snowboy.target.mk:107: recipe for target ‘Release/obj.target/snowboy/swig/Node/snowboy.o’ failed
make: Leaving directory ‘/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/snowboy/build’
make: *** [Release/obj.target/snowboy/swig/Node/snowboy.o] Error 1
gyp ERR! build error
gyp ERR! stack Error:makefailed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:180:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Linux 4.4.132+
gyp ERR! command “/usr/bin/node” “/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/.bin/node-gyp” “rebuild” “–target=3.0.11” “–arch=arm” “–dist-url=https://atom.io/download/electron” “–build-from-source” “–module_name=snowboy” “–module_path=/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/snowboy/lib/node/binding/Release/electron-v3.0-linux-arm” “–remote_path=./snowboy/v1.2.0/Release/” “–package_name=snowboy-v1.2.0-electron-v3.0-linux-arm.tar.gz” “–host=https://snowboy-release-node.s3-us-west-2.amazonaws.com”
gyp ERR! cwd /home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/snowboy
gyp ERR! node -v v9.11.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not okFailed with exit code: 1
Error: make: Entering directory ‘/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/snowboy/build’
CXX(target) Release/obj.target/snowboy/swig/Node/snowboy.o
In file included from …/…/nan/nan.h:192:0,
from …/swig/Node/snowboy.cc:1:
…/…/nan/nan_maybe_43_inl.h: In function ‘Nan::Maybe Nan::ForceSet(v8::Localv8::Object, v8::Localv8::Value, v8::Localv8::Value, v8::PropertyAttribute)’:
…/…/nan/nan_maybe_43_inl.h:112:15: error: ‘class v8::Object’ has no member named ‘ForceSet’
return obj->ForceSet(isolate->GetCurrentContext(), key, value, attribs);
^~~~~~~~
In file included from …/swig/Node/snowboy.cc:1:0:
…/…/nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’:
…/…/nan/nan.h:835:60: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, func, argc, argv);
^
In file included from /home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:53:0,
from …/…/nan/nan.h:49,
from …/swig/Node/snowboy.cc:1:
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:94:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/core.h:35:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^~~~~~~~~~
In file included from …/swig/Node/snowboy.cc:1:0:
…/…/nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::String, int, v8::Localv8::Value)’:
…/…/nan/nan.h:850:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate*, v8::Localv8::Object, v8::Localv8::String, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, symbol, argc, argv);
^
In file included from /home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:53:0,
from …/…/nan/nan.h:49,
from …/swig/Node/snowboy.cc:1:
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:87:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/core.h:35:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^~~~~~~~~~
In file included from …/swig/Node/snowboy.cc:1:0:
…/…/nan/nan.h: In function ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, const char, int, v8::Localv8::Value)’:
…/…/nan/nan.h:865:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, const char*, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
v8::Isolate::GetCurrent(), target, method, argc, argv);
^
In file included from /home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:53:0,
from …/…/nan/nan.h:49,
from …/swig/Node/snowboy.cc:1:
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:80:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/core.h:35:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^~~~~~~~~~
In file included from …/swig/Node/snowboy.cc:1:0:
…/…/nan/nan.h: In member function ‘v8::Localv8::Value Nan::Callback::Call_(v8::Isolate, v8::Localv8::Object, int, v8::Localv8::Value) const’:
…/…/nan/nan.h:1479:5: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value*)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
));
^
In file included from /home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:53:0,
from …/…/nan/nan.h:49,
from …/swig/Node/snowboy.cc:1:
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/node.h:94:50: note: declared here
NODE_EXTERN v8::Localv8::Value MakeCallback(
^
/home/linaro/.electron-gyp/.node-gyp/iojs-3.0.11/src/core.h:35:42: note: in definition of macro ‘NODE_DEPRECATED’
attribute((deprecated(message))) declarator
^~~~~~~~~~
snowboy.target.mk:107: recipe for target ‘Release/obj.target/snowboy/swig/Node/snowboy.o’ failed
make: Leaving directory ‘/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/snowboy/build’
make: *** [Release/obj.target/snowboy/swig/Node/snowboy.o] Error 1
gyp ERR! build error
gyp ERR! stack Error:makefailed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:180:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Linux 4.4.132+
gyp ERR! command “/usr/bin/node” “/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/.bin/node-gyp” “rebuild” “–target=3.0.11” “–arch=arm” “–dist-url=https://atom.io/download/electron” “–build-from-source” “–module_name=snowboy” “–module_path=/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/snowboy/lib/node/binding/Release/electron-v3.0-linux-arm” “–remote_path=./snowboy/v1.2.0/Release/” “–package_name=snowboy-v1.2.0-electron-v3.0-linux-arm.tar.gz” “–host=https://snowboy-release-node.s3-us-west-2.amazonaws.com”
gyp ERR! cwd /home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/snowboy
gyp ERR! node -v v9.11.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not okFailed with exit code: 1
at SafeSubscriber._error (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/spawn-rx/lib/src/index.js:277:84)
at SafeSubscriber.__tryOrUnsub (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/rxjs/Subscriber.js:238:16)
at SafeSubscriber.error (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/rxjs/Subscriber.js:197:26)
at Subscriber._error (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/rxjs/Subscriber.js:128:26)
at Subscriber.error (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/rxjs/Subscriber.js:102:18)
at MapSubscriber.Subscriber._error (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/rxjs/Subscriber.js:128:26)
at MapSubscriber.Subscriber.error (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/rxjs/Subscriber.js:102:18)
at SafeSubscriber._next (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/spawn-rx/lib/src/index.js:251:65)
at SafeSubscriber.__tryOrSetError (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/rxjs/Subscriber.js:247:16)
at SafeSubscriber.next (/home/linaro/MagicMirror/modules/MMM-awesome-alexa/node_modules/rxjs/Subscriber.js:187:27)
npm ERR! code ELIFECYCLE
npm ERR! errno 255
npm ERR! mmm-awesome-alexa@1.0.0 electron-rebuild:electron-rebuild --pre-gyp-fix
npm ERR! Exit status 255
npm ERR!
npm ERR! Failed at the mmm-awesome-alexa@1.0.0 electron-rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:
npm ERR! /home/linaro/.npm/_logs/2018-12-13T13_18_01_671Z-debug.logIf anybody else has encountered this and knows what to do, please help.
Thanks.
-
RE: MMM-MovieListings
@mykle1 Thanks, it`s getting closer to what I want. I will check the module you are mentioning. I am not that familiar with js so I did not recognize the things I need to change to accomplish what I was looking for. I will try again and see if I can make the image a bit bigger and the title white. Thanks a lot for your patience.
-
RE: MMM-MovieListings
Hi, I have tried the code you provided, and it partially does what I want.
It changes the font size and color of the actors but not of the description.
I want to enlarge the module as a whole, image, description and any text while also making them white, as my mirror is a bit darker than I was expecting.
Any further help is greatly appreciated.
-
RE: Syntax error in python-shell
Solved. It was actually the GPIO library for the ASUS tinker board, its RPi.GPIO implementation actually. It had a useless printf that sent that annoying message that messed up the json message. I removed that line and rebuilt from source and now it`s working flawlessly. Thanks.
-
RE: Syntax error in python-shell
https://forum.magicmirror.builders/topic/8907/flick-large-gesture-control
Here is the code I`ve written and adapted to work as MMM module.
-
RE: Syntax error in python-shell
Yea, I kind of found out what is triggering it, however I`m not sure how to stop it. The flick Large module is sending direction == OUTPUT messages continuously for some reason. Any idea what this is or how to make a filter to stop it?
-
Syntax error in python-shell
Hi,
I keep getting this error:
SyntaxError: Unexpected token d in JSON at position 0
at JSON.parse ()
at PythonShell.asJson (/home/linaro/node_modules/python-shell/index.js:350:21)
at /home/linaro/node_modules/python-shell/index.js:300:42
at Array.forEach ()
at PythonShell.recieveInternal (/home/linaro/node_modules/python-shell/index.js:298:15)
at PythonShell.receive (/home/linaro/node_modules/python-shell/index.js:272:21)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:279:12)
at readableAddChunk (_stream_readable.js:260:13)
at Socket.Readable.push (_stream_readable.js:219:10)I`m not entirely sure what causes it and how to fix it… the mirror seems to be working fine.
Any help would be apreciated.
Thanks.
-
RE: Flick Large gesture control
Updated the code, and also support for the Asus Tinker Board.
-
RE: MMM-MovieListings
@mykle1 Thank you very much! I`ll test as soon as I reinstall MM on the Asus TinkerBoard.
-
RE: MMM-MovieListings
Can anyone tell me how to modify the size and the color of the text? It is rather small, and I would like to make it white , instead of gray.
Thanks.
-
RE: Flick Large gesture control
@steffenschmidt, I was successful to some extent. I have managed to use the gestures from the board to control the interface. Up, down, left and right are working and more will follow when I know what I want them to do. The only problem is that the flick sensor is NOT WORKING behind the mirror, probably because of the aluminum/silver layer that makes a mirror a mirror.
I will work on the project in the winter holidays and post some more details.
-
RE: Flick Large gesture control
That is exactly what I’m planning to do. In theory it works behind the mirror, but you will lose the touch gestures more than likely. Unfortunately I do not have the mirror yet (it has not been delivered yet), but I’ll post a picture/results when I get it.
So far I wrote the code this way:
Left/right swipes go through MMM-pages & MMM-pages_indicator
Up/down swipes open/close newsfeed details
Each gesture also triggers the LED on the sensor board.
I’m still thinking what other things I can do with the remaining gestures.
I’ll update the correct code after I clean it up a bit.
-
Flick Large gesture control
Hello all,
I have tried to use the flick Large sensor together with my Raspberry Pi 2 to control the interface of the MagicMirror, as I have made some pages and wanted to scroll through them.
What I have managed to do is to control MMM-pages, MMM-page-indicator and the default news module via my MMM-flick module.
The controls are as follows:
Swipe Left - Decrement Page
Swipe Right - Increment Page
Swipe Up - Show news description
Swipe Up again - Open News page
Swipe Up as the news page is opened - Scroll down the news page
Swipe Down - Close News Page
Swipe Down again - Close News DescriptionI`m currently working on implementing the touch functionality. I want to also have mouse control.
The code is not perfect, I`m working it.
Here is the code (note that I have changed some libraries for it to work with the ASUS Tinker Board, as far as I know I`m the only one who has working flicklibs on the TinkerBoard. If someone is interested in getting the flick sensor to work with the TinkerBoard pm me ):
MMM-flick.py - used to read sensor data
#!/usr/bin/env python import sys import json import time import signal import flicklib import RPi.GPIO as GPIO #import autopy GPIO.setmode(GPIO.BOARD) GPIO.setup(15, GPIO.OUT) GPIO.setup(7, GPIO.OUT) #Turn on both LEDs for orange color in Stand By #GPIO.output(7, True) # Turn on RED LED #GPIO.output(15, True)# Turn on GREEN LED #Airwheel data some_value = 5000 last_airwheel = 0 delay = 5000 #Get display size #width, height = autopy.screen.get_size() def to_node(type, message): # convert to json and print (node helper will read from stdout) try: print(json.dumps({type: message})) except Exception: pass # stdout has to be flushed manually to prevent delays in the node helper communication sys.stdout.flush() to_node("status", 'Flick has started...') @flicklib.flick() def flick(start,finish): #Slide down the newsfeed (DOWN GESTURE) if(start == "north" and finish == "south"): to_node("gesture", "ARTICLE_LESS_DETAILS") GPIO.output(7, True) time.sleep(0.5) GPIO.output(7, False) #Slide up the newsfeed (UP GESTURE) elif(start == "south" and finish == "north"): to_node("gesture", "ARTICLE_MORE_DETAILS") GPIO.output(15, True) time.sleep(0.5) GPIO.output(15, False) #Next page (RIGHT GESTURE) elif(start == "west" and finish == "east"): to_node("gesture", "PAGE_DECREMENT") GPIO.output(7, True) time.sleep(0.5) GPIO.output(7, False) #Previous page (LEFT GESTURE) elif(start == "east" and finish == "west"): to_node("gesture", "PAGE_INCREMENT") GPIO.output(15, True) time.sleep(0.5) GPIO.output(15, False) @flicklib.airwheel() def spinny(delta): global some_value global last_airwheel global delay some_value += delta if some_value < 0: some_value = 0 if some_value > 10000: some_value = 10000 now = int(round(time.time() * 1000)) if(now - last_airwheel > delay): #to_node() last_airwheel = now #Mouse control via flick board #@flicklib.move() #def move(x,y,z): # x = (x) * width # y = (y) * height # x = int(x) # y = height - int (y) # if( y > 799 ): # y = 799 #autopy.mouse.move(x, y) #Double tap gesture #@flicklib.double_tap() #def doubletap(position): # #Tap gesture @flicklib.tap() def tap(position): if position == 'center': GPIO.output(15, True)# Turn on GREEN LED time.sleep(0.5) GPIO.output(15, False)# Turn off GREEN LED #Touch gesture #@flicklib.touch() #def touch(position): # signal.pause()node_helper.js
'use strict'; const NodeHelper = require('node_helper'); const {PythonShell} = require('python-shell'); var pythonStarted = false module.exports = NodeHelper.create({ python_start: function () { const self = this; const pyshell = new PythonShell('modules/' + this.name + '/MMM-flick.py', { mode: 'json', args: [JSON.stringify(this.config)]}); pyshell.on('message', function (message) { if (message.hasOwnProperty('status')){ console.log("node_helper_[" + self.name + "]" + message.status); } if (message.hasOwnProperty('gesture')){ console.log("node_helper_[" + self.name + "] " + message.gesture); self.sendSocketNotification("gesture_observed", message.gesture); } }); pyshell.end(function (err) { if (err) throw err; console.log("node_helper_[" + self.name + "] " + 'finished running...'); }); }, // Subclass socketNotificationReceived received. socketNotificationReceived: function(notification, payload) { if(notification === 'CONFIG') { this.config = payload if(!pythonStarted) { pythonStarted = true; this.python_start(); }; }; } });MMM-flick.js
Module.register("MMM-flick",{ gesture_up: 0, gesture_right: 0, // Override socket notification handler. socketNotificationReceived: function(notification, payload) { if (notification === "gesture_observed"){ const self = this; self.sendNotification(payload); if (payload === "up"){ MM.getModules().withClass(this.config.defaultClass).exceptWithClass(this.config.everyoneClass).enumerate(function(module) { module.hide(1000, function() { Log.log(module.name + ' is hidden.'); }); }); MM.getModules().withClass("class_up_1_show").enumerate(function(module) { module.show(1000, function() { Log.log(module.name + ' is shown.'); }); }); } else if (payload === "down") { MM.getModules().withClass("class_up_1_show").enumerate(function(module) { module.hide(1000, function() { Log.log(module.name + ' is hidden by gesture.'); }); }); } } }, start: function() { this.current_user = null; this.sendSocketNotification('CONFIG', this.config); Log.info('Starting module: ' + this.name); } });