@awarrington It seems like you’ve missed the comma’s at the end of the line where the position is for the clock and compliments module here:
{
module: 'clock',
position: 'top_left', <--
classes: 'everyone'
},
@awarrington It seems like you’ve missed the comma’s at the end of the line where the position is for the clock and compliments module here:
{
module: 'clock',
position: 'top_left', <--
classes: 'everyone'
},
And one more.
On restarting I get the following error:
0|mm | { Error: Command failed: pm2 restart mm
0|mm | at ChildProcess.exithandler (child_process.js:206:12)
0|mm | at emitTwo (events.js:106:13)
0|mm | at ChildProcess.emit (events.js:191:7)
0|mm | at maybeClose (internal/child_process.js:877:16)
0|mm | at Socket.<anonymous> (internal/child_process.js:334:11)
0|mm | at emitOne (events.js:96:13)
0|mm | at Socket.emit (events.js:188:7)
0|mm | at Pipe._handle.close [as _onclose] (net.js:498:12)
0|mm | killed: true,
0|mm | code: null,
0|mm | signal: 'SIGTERM',
0|mm | cmd: 'pm2 restart mm' }
0|mm | Loading config ...
0|mm | Loading module helpers ...
0|mm | No helper found for module: helloworld.
0|mm | No helper found for module: alert.
0|mm | Initializing new module helper ...
0|mm | No helper found for module: clock.
0|mm | Initializing new module helper ...
0|mm | Initializing new module helper ...
0|mm | No helper found for module: currentweather.
0|mm | No helper found for module: weatherforecast.
0|mm | Initializing new module helper ...
0|mm | No helper found for module: compliments.
0|mm | Initializing new module helper ...
0|mm | All module helpers loaded.
0|mm | Starting server op port 8080 ...
0|mm | Server started ...
0|mm | Connecting socket for: MMM-Remote-Control
0|mm | Starting node helper for: MMM-Remote-Control
0|mm | Connecting socket for: MMM-Traffic
0|mm | MMM-Traffic helper started ...
0|mm | Connecting socket for: calendar
0|mm | Starting node helper for: calendar
0|mm | Connecting socket for: MMM-NetworkScanner
0|mm | Starting module: MMM-NetworkScanner
0|mm | Connecting socket for: newsfeed
0|mm | Starting module: newsfeed
0|mm | Sockets connected & modules started ...
0|mm | Ready to go! Please point your browser to: http://localhost:8080
This morning (CET) I have a little more time to do bug reports, troubleshoot and answer some of your questions.
So, first things first.
My node version:
v6.8.1
About the config backups:
I noticed the that the double quotes were added to the keys and values before the backup was made.
This means I don’t have a backup of the true original.
It also means I can only compare the current config file to the backup and not the the original.
Another thing I noticed is that backupfile got overwritten this morning.
Because my MagicMirror is still a work in progress it’s powered off most of the time.
When I tried to reproduce the issues I came across last time I noticed that the first backup I made was saved as config.js.backup1, overwriting a previous backup.
At least for me this wasn;t expected behaviour and I don’t think it’s how I wish to save (or lose) my backups.
About saving hidden/shown modules:
As I said before, I haven’t set any special permisions and I’m using the default useron my Pi Zero: pi
Becasue there’s no keyboard and mouse attached (the Pi Zero’s micro usb port is used for a wifi dongle) I use ssh and scp (and of cource the Remote!) to do most editing, testing and troubleshooting.
On saving the current state of hidden/shown modules the pm2 logs reported this:
On hiding the helloworld module:
0|mm | ** Message: console message: http://localhost:8080/modules/MMM-Remote-Control//MMM-Remote-Control.js @219: [object Object]
0|mm | ** Message: console message: http://localhost:8080/js/logger.js @20: helloworld is suspended.
0|mm | ** Message: console message: http://localhost:8080/js/module.js @313: TypeError: Object is not a function (evaluating 'callback()')
On saving the current state directly after:
0|mm | ** Message: console message: http://localhost:8080/modules/MMM-Remote-Control//MMM-Remote-Control.js @219: [object Object]
0|mm | Whoops! There was an uncaught exception...
0|mm | { Error: EACCES: permission denied, open '/home/pi/MagicMirror/modules/MMM-Remote-Control/settings.json'
0|mm | at Error (native)
0|mm | errno: -13,
0|mm | code: 'EACCES',
0|mm | syscall: 'open',
0|mm | path: '/home/pi/MagicMirror/modules/MMM-Remote-Control/settings.json' }
0|mm | MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
0|mm | If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
This can be reproduced every time when I follow these steps.
I you need any specific testing, please let me know and I’ll try to find the time.
@Jopyth The console messages are from the pm2 logs…
I run MM as the default user (pi) and didn’t set any special rights for any folders or files…
Now that you mention it, it could be that the saving of the shown/hidden modules didn’t work before either.
BTW: I’m running MM on a Pi Zero (so using ‘serveronly’).
Edit: now that I think about it: I do have a HelloWorld module enabled which already used single and double quotes before. So maybe there’s a conflict with the added quotes. I will look in to this this weekend.
I’ve joined…
Tried some and ran into some trouble…
Will give you a more detailed report when I have the time…
I noticed all parameters and values in config.js are wrapped in quotes…
Maybe that’s why I’m seeing
0|mm | ** Message: console message: http://localhost:8080/js/main.js @38: TypeError: undefined is not an object (evaluating 'wrapper.appendChild')
0|mm | ** Message: console message: http://localhost:8080/js/main.js @130: TypeError: null is not an object (evaluating 'moduleWrapper.getElementsByClassName')
The second line is repeated a couple of time (for each module?)…
And when I tried to save eanbled/disabled modules from the remote, the pm2 logs showed an error about insufficient rights…
Sorry for not having the error log…
The config.js now looks like (just a small part):
var config =
{
"port": 8080,
"kioskmode": false,
"language": "nl",
"timeFormat": 24,
"units": "metric",
"modules": [
{
"module": "MMM-Remote-Control",
"config": {}
},
{
"module": "clock",
"position": "top_left",
"header": "",
"config": {
"displayType": "digital",
"timeFormat": 24,
"displaySeconds": false,
"showPeriod": false,
"showPeriodUpper": false,
"clockBold": false,
"showDate": false,
"analogSize": "100px",
"analogFace": "simple",
"analogPlacement": "bottom",
"analogShowDate": "top",
"secondsColor": "#888888"
}
},
'''
etcetera...
Can anyone of you please share a picture of how you’ve connected the microwave sensor to the Pi pins?
I know this sounds dumb, but I can’t seem to find out what pin connects to what, as I don’t know what pin is ground and what pins is (data) out…
Thanks!
@Jopyth Amazing work so far!
Can’t wait for the ‘finished’ product (read: next major version).
@Jopyth Sounds great!
If you want the all-in-one package:
I could imagine you need to be able crawl and index all installed modules and openup their modulename.js files to be able to determine what configurable parameters it has.
That way it should be possible to vreate buttons in the remote to add an installed module from a list and add and edit the parameters.
This might need a change in the core structure, because it would be nice to know what parameters per module are availble and what the possible values are…
(Like what’s posted on most of the modules github pages.)
And how about an option to drag and drop the order of the modules.
Another (slimmed down) way to go would be to just look at the current config and make al parameters editable in a form. Maybe create an option to add a new parameter and it’s value. The users should know the name and possible values for the parameter.
In the future you could even dream about an option to ‘git pull’ a module to update it from the gui. Or to ‘npm install’ the depencies. And maybe even download and install new modules that are availble online…
But that’s just me dreaming…
@Jopyth Thank you for the great update.
I see you have implemented some of my suggestions, which makes me very happy.
I still hope to see this evolve into a config GUI some day…
I did some suggestions (or feature requests as you wish) in the past and since they were all implemented (thanks!!!) it’s time for some more…
Wouldn’t it be nice to be able to open up the magicmirror ‘homepage’ from your remote?
Sometimes when I enable/disable modules I would like to see the changes without having to actually go to the mirror to see the changes. So a simple shortcut on the remote to open the ‘homepage’ in a new tab would be great.
And how awesome would it be if this remote could be developed towards something like a GUI for the config.js?!
This means it needs to be part of the core, so it can read all (possible) parameters from each module and make them editable (with the availbale values/options) in a ‘remote config’ web gui.
Possible uses: