Read the statement by Michael Teeuw here.
node_helper.js does not work.
-
I transferred what I had done with Mac to the Raspberry pie. I only tried the basic reservation code because the result I wanted was not available. But it didn’t work, either.
It’s good at Mac. Why not at Raspberry Pi?
MMM-TestPython.jsvar Testpythons; Module.register("MMM-Testpython", { defaults: {}, start: function (){ Testpythons = this; }, getDom: function() { var element = document.createElement("div") element.className = "myContent" element.id="divid" element.innerHTML = "Hello, World!!! " + this.config.foo var subElement = document.createElement("p") subElement.innerHTML = "Click" subElement.id = "clickid" element.appendChild(subElement) return element }, notificationReceived: function(notification, payload, sender) { switch(notification) { case "DOM_OBJECTS_CREATED": var elem = document.getElementById("clickid") elem.addEventListener("click", () => { Testpythons.sendSocketNotification("TEST") console.log("hello~hello~hello~hello~hello~hello~hello~hello~hello~hello~") elem.innerHTML = "click success" }) break } }, socketNotificationReceived: function(notification, payload) { switch(notification) { case "I_DID": console.log("Socket recevied : "+payload) var elemk = document.getElementById("divid") elemk.innerHTML = payload break } } })
node_helper.js
var NodeHelper = require("node_helper"); var socketTestpython; module.exports = NodeHelper.create({ start: function() { socketTestpython=this; }, socketNotificationReceived: function(notification, payload) { switch(notification) { case "TEST": console.log("notification : " + notification) socketTestpython.sendSocketNotification("I_DID",'hello'); break } }, })
npm start dev &
in terminal=>
pi@raspberrypi:~/Desktop/MagicMirror $ npm start dev &
[1] 1452
pi@raspberrypi:~/Desktop/MagicMirror $magicmirror@2.7.1 start /home/pi/Desktop/MagicMirror
sh run-start.sh “dev”Starting MagicMirror: v2.7.1
Loading config …
Loading module helpers …
Initializing new module helper …
Module helper loaded: updatenotification
No helper found for module: helloworld.
All module helpers loaded.
Starting server on port 8080 …
Server started …
Connecting socket for: updatenotification
Sockets connected & modules started …
Launching application. -
@emrhssla which MM are u working in?
/home/pi/Desktop/Beauty (see its config/config.js
or
/home/pi/Desktop/Beauty/MagicMirror one? (see ITS config/config.jsthey are different (u have MagicMirror installed INSIDE a MagicMirror folder)
to fix this, in /home/pi/Desktop/Beauty domv MagicMirror ..
now you will have
/home/pi/Desktop/Beauty and /home/pi/Desktop/MagicMirror
-
@emrhssla what is the error?
open a terminal window or ssh window
do
npm start dev &
node_helper output will show up in the terminal window
then on the mirror UI, developers window
select the console tabnote that the filenames are CASE sensitive
so you code should be inmm/modules/MMM-TestPython
-
@sdetweil
in terminal, output ispi@raspberrypi:~/Desktop/MagicMirror $ npm start dev & [1] 1452 pi@raspberrypi:~/Desktop/MagicMirror $ magicmirror@2.7.1 start /home/pi/Desktop/MagicMirror sh run-start.sh “dev” Starting MagicMirror: v2.7.1 Loading config … Loading module helpers … Initializing new module helper … Module helper loaded: updatenotification No helper found for module: helloworld. All module helpers loaded. Starting server on port 8080 … Server started … Connecting socket for: updatenotification Sockets connected & modules started … Launching application.
after click,That’s all.
There are no errors, and console.log() is not visible from the terminal window. -
@emrhssla i cut/pasted your code to create your module, added it to config.js
and it performs as expected…i get in developers console
hello~hello~hello~hello~hello~hello~hello~hello~hello~hello~ MMM-Testpython.js:62 Socket recevied : hello MMM-Testpython.js:71
and in terminal window
notification : TEST
config entry
{ module: "MMM-Testpython", disabled: false, position: "middle", config:{ } },
-
after the npm start &
press enter… you should get the prompt back, and can do any command
add this to your node module start function
start: function() { socketTestpython=this; console.log(this.name + " node_helper started") // < ---- add this
should see this in terminal window
MMM-Testpython node_helper started
i do
-
-
@emrhssla that console output doesn’t make sense… cause u should have seen this line at least
Module helper loaded: MMM-Testpython
before the
Launching application
show me your config.js
-
/* Magic Mirror Config Sample * * By Michael Teeuw http://michaelteeuw.nl * MIT Licensed. * * For more information how you can configurate this file * See https://github.com/MichMich/MagicMirror#configuration * */ var config = { address: "0.0.0.0", // Address to listen on, can be: // - "localhost", "127.0.0.1", "::1" to listen on loopback interface // - another specific IPv4/6 to listen on a specific interface // - "", "0.0.0.0", "::" to listen on any interface // Default, when address config is left out, is "localhost" port: 8080, ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1","172.16.100.133", "::ffff:172.16.100.133", "::1"], // Set [] to allow all IP addresses // or add a specific IPv4 of 192.168.1.5 : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"], // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"], language: "en", timeFormat: 24, units: "metric", modules: [ //0 { module: 'MMM-iFrame', position: "bottom_center", // This can be any of the regions. config: { // See 'Configuration options' for more information. url: ["https://comic.naver.com/webtoon/weekday.nhn"], // as many URLs you want or you can just ["ENTER IN URL"] if single URL. updateInterval: 0.5 * 60 * 1000, // rotate URLs every 30 seconds width: "2000", // width of iframe height: "1800", // height of iframe frameWidth: "950", // width of embedded iframe, height is beeing calculated by aspect ratio of iframe } }, //1 { module: "MMM-EmbedYoutube1", position: "bottom_bar", config: { video_id: "w3jLJU7DT5E", searchlist1: "쯔위", loop: true } }, //2 { module: "MMM-Modulebar1", position: "top_left", classes: "default everyone", config: { } }, //3 { module: "MMM-Modulebar", position: "top_left", classes: "default everyone", config: { } }, { module: "MMM-Dynamic-Modules", }, { module: "alert", }, { module: "updatenotification", position: "top_bar" }, { module: "clock", position: "top_right" }, { module: "newsfeed", position: "bottom_bar", config: { feeds: [ { title: "New York Times", url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml" } ], showSourceTitle: true, showPublishDate: true } }, { module: "MMM-Testpython", disabled: false, position: "middle", config:{ } }, ] };
-
@emrhssla that doesn’t match with the terminal window output…
in terminal window only
Starting MagicMirror: v2.7.1 Loading config … Loading module helpers … Initializing new module helper … Module helper loaded: updatenotification < ---- No helper found for module: helloworld. < ----- All module helpers loaded. Starting server on port 8080 … Server started … Connecting socket for: updatenotification Sockets connected & modules started … Launching application.
there are only two modules referenced…
never mind, two of mine don’t have position and work fine
delete ---------also, all modules require a position -
this what I see on my startup in the terminal window, before the node_modules start outputing their text
Starting MagicMirror: v2.7.0-develop Loading config ... Loading module helpers ... No helper found for module: alert. Initializing new module helper ... Module helper loaded: updatenotification No helper found for module: clock. Initializing new module helper ... Module helper loaded: calendar handler helper in init Module helper loaded: MMM-SleepWake Initializing new module helper ... Module helper loaded: MMM-ImagesPhotos Initializing new module helper ... Module helper loaded: newsfeed Initializing new module helper ... Module helper loaded: MMM-AssistantMk2 Initializing new module helper ... Module helper loaded: MMM-Hotword Initializing new module helper ... Module helper loaded: WaterLevels Initializing new module helper ... Module helper loaded: MMM-Testpython All module helpers loaded. Starting server on port 8086 ... You're using a full whitelist configuration to allow for all IPs Server started ... Connecting socket for: updatenotification Connecting socket for: calendar Starting node helper for: calendar Connecting socket for: MMM-SleepWake handler helper in start Connecting socket for: MMM-ImagesPhotos Starting node helper for: MMM-ImagesPhotos Connecting socket for: newsfeed Starting module: newsfeed Connecting socket for: MMM-AssistantMk2 Connecting socket for: MMM-Hotword MMM-Hotword started Connecting socket for: WaterLevels Starting module: WaterLevels Connecting socket for: MMM-Testpython MMM-Testpythonnode_helper started Sockets connected & modules started ... Launching application.