Sebastian -
I used https://a.wunderlist.com/api/v2/lists for the APP URL
I used http://localhost:8080 for the Auth Callback
it worked - for a while (I changed my password and just requested a new key)
Give it a try & let me know
Sebastian -
I used https://a.wunderlist.com/api/v2/lists for the APP URL
I used http://localhost:8080 for the Auth Callback
it worked - for a while (I changed my password and just requested a new key)
Give it a try & let me know
@Jopyth
It would probably help if I installed it into MODULES instead of into the ROOT directory
(as a matter of fact, it helped a LOT!)
DUH. Sorry to have wasted your time. My bad :8ball:
@Jakllo
I initially had that problem too - you need to be logged in as PI - not root.
I’d suggest starting all over: it really wont take that long. Follow the
tutorial @strawberry-3-141 mentioned (https://forum.magicmirror.builders/topic/236/complete-setup-tutorial) to the letter. It was written by @KirAsh4 & made all of my problem go away. I have now done it 4 times, getting it done in less than an hour from unpacking to having it all run!
My raspberry all of a sudden even connected via WiFi, and I am expecting my hair to grow back any day now.
I’m telling you - pure magic, these guys.
All the best
THIS is the setup that worked GREAT for me:
https://forum.magicmirror.builders/topic/236/complete-setup-tutorial
Really - even someone like me could not mess it up.
There are now so many wonderful modules out there that my MM is a bit crowded :)
So the logical question arises: might it be possible to alternate two modules in one location?
I’m thinking along the lines of
postion: top_left
{module 1 = weather
module2 = tasklist
switchtime = 120 seconds}
and every two minutes weather and tasklist would alternate.
Thanks,
Karl
Happend to me too (and to others: see here for commiseration)
https://forum.magicmirror.builders/topic/259/installing-mm2
THIS is the setup that worked GREAT for me:
https://forum.magicmirror.builders/topic/236/complete-setup-tutorial
All the best!
@PointPubMedia
I like @barnabycolby 's version (ie exempting all but the ones you want to rotate) a lot.
But here is something KirAsh4 made for me a while ago
https://forum.magicmirror.builders/topic/373/alternating-modules-to-save-on-real-estate/3
that will do the job too - and it will let you learn a bit java along the way
Enjoy
@KirAsh4
Thanks! I messed around a bit with it - here is what I came up with. (and yes, 99.999% is yours!)
Still, here it is for anyone else who wants to play with it. But ALL credit goes to @KirAsh4
This works best for me for MMM-Wunderground and MMM-Wunderlist - which I keep at top-right.
a) my config.js extract:
{
module: 'my_swap', // as supplied by KirAsh4
config: {
showsecs: 30, // seconds each module is shown (default =30)
// 30 is a "relaxed" speed
fadems: 4000, // fade time in ms (default = 4000)
// 4000 is also very relaxed - no coffee yet.
modA: 'MMM-WunderGround', // both modules need to be listed NEXT
modB: 'MMM-Wunderlist' // they should be of similar size,
// and in the same location.
// These two are _prefect_
}
},
{
module: 'MMM-WunderGround',
position: 'top_right',
config: {
apikey: '****',
pws: '****',
lang: 'EN',
fctext: '1',
fcdaycount: "5",
fcdaystart: "0",
hourly: '1',
hourlyinterval: "3",
hourlycount: "1",
alerttime: 10000,
alerttruncatestring: "english:",
fade: true
}
},
{
module: 'MMM-Wunderlist',
position: 'top_right',
config: {
accessToken: '****',
clientID: '****',
lists: [
'MagicMirror'
],
interval: 60,
fadePoint: 0.9,
fade: true
}
},
Then the file my_swap.js ( in \modules\my_swap) needs to look like this:
Module.register("my_swap",{
// Default module config.
defaults: {
modA: "MMM-NonExistA", // if we dont know the EXACT NAME, we don't do anything!
modB: "MMM-NonExistB", // ="=
showsecs: 30, // as in compliments
fadems: 4000 // ="=
},
// Define required scripts.
getScripts: function() {
return ["moment.js"];
},
start: function() {
Log.log("Starting module: " + this.name);
this.DOMloaded = 0;
this.isHidden = 0;
var self = this;
setInterval(function() {
self.swapModules();
}, 1000);
},
notificationReceived: function(notification, payload, sender) {
if (notification === 'DOM_OBJECTS_CREATED') {
this.DOMloaded = 1;
}
},
// swapModules.
swapModules: function() {
var now = moment();
var self = this;
var mod1 = this.config.modA // yank from config file
var mod2 = this.config.modB
var fadems = this.config.fadems
var showsecs = this.config.showsecs
if (!(now.seconds() % showsecs)) {
if (this.DOMloaded) {
if (self.isHidden) {
MM.getModules().exceptModule(this).enumerate(function(module) {
if (module.name === mod1) {
module.hide(fadems, function() {
MM.getModules().exceptModule(this).enumerate(function(module) {
if (module.name === mod2) {
module.show(fadems, function() {
});
}
});
});
}
});
self.isHidden = 0;
} else {
MM.getModules().exceptModule(this).enumerate(function(module) {
if (module.name === mod2) {
module.hide(fadems, function() {
MM.getModules().exceptModule(this).enumerate(function(module) {
if (module.name === mod1) {
module.show(fadems, function() {
});
}
});
});
}
});
self.isHidden = 1;
}
}
}
}
});
Works great for me! Thanks again for the clean code to play with. You should submit it as an official module.
@cowboysdude - DUH. Sorry - good point!