All right. It looks like the next step is to copy the sample config.js file to it’s final location and then run this puppy.
Are you doing this directly on the Pi or via SSH?
All right. It looks like the next step is to copy the sample config.js file to it’s final location and then run this puppy.
Are you doing this directly on the Pi or via SSH?
@clumsy_ninja First, I just want to say you sent me down a really interesting rabbit hole.
At first, I couldn’t get it to work. My development environment has the mirror mounted on the wall and I SSH into the Pi. I run a browser tab in Chrome with the developer options on so I can see the logs. This was surprisingly frustrating as I could not get the maximumNumberOfDays parameter to work. After much thrashing about, I discovered that the only way to get that parameter to work was to restart the mirror process, not just reload the browser page.
So this configuration in my config.js works:
{
module: 'calendar',
header: 'US Holidays',
position: 'top_left',
config: {
maximumNumberOfDays:120,
calendars: [
{
symbol: 'calendar-check-o ',
url: 'webcal://www.calendarlabs.com/templates/ical/US-Holidays.ics',
},
{
symbol: 'imdb',
url: 'https://www.google.com/calendar/ical/pfutdblf1gi8jmfsvroh76f6jg%40group.calendar.google.com/public/basic.ics',
}
],
}
},
Which is all well and good, but the maximumNumberOfDays would not take effect until I restarted the mirror process: pm2 restart 0. After that, the mirror would show the correct events and refreshing the browser would also show the correct number of events. I’m guessing that the calendar module is creating a calendarfetcher at the beginning of the MagicMirror process and any changes to the config file will only take effect whenever the calendar interval hits (or when you restart the Mirror process). If you make your change and wait for the calendar module to refresh your calendar, your changes to the maximumNumberOfDays should take effect then.
The HelloWorld module may be able to do it. If you check out the Halloween Video thread, you’ll see that we’re dropping all sorts of HTML onto the UI. Just replace the <VIDEO> tag stuff we’re doing with your embed code. It may take some fine tuning.
When the Pi is plugged in, can you SSH to it?
@wjdw87 Just based on what you quoted, you have not properly closed your config section. You’re missing a close bracket just after the API KEY value.
{
module: 'MMM-WorldTides',
position: 'top_right',
config: {
longitude: '8.134', //longitude and latitude need to be written with . instead of ,
latitude: '98.299',
appid: 'APIKEY' //appid needs to be requested from worldtides.info
}
},
@moris said in Please help:
Pi @ raspberrypi: ~ $ cd MagicMirror
Pi @ raspberrypi: ~ / MagicMirror $ cp config / config.js.samaple config / config.js
Cp: target ‘config.js’ is not a directory
Pi @ raspberrypi: ~ / MagicMirror $
There’s a problem in your second command. There should be no space between config and the slash. There needs to be a period at the end of sample. It should read like so: cp config/config.js.sample config/config.js
That line breaks down into command-source-destination. “Copy”-“sample file”-“destination file”. cp config/config.js.sample config/config.js
@Diddern How difficult was it to drill the holes in the mirror? That’s a fantastic look you’ve created and I’m hoping to do something similar in the future.
@PaulB If I read his write-up correctly, he’s not using a monitor. He’s using a replacement laptop screen, which I presume is much lighter than a monitor of equal size. Electrical tape and glue seems to be his attachment method.
@strawberry-3.141 You’re going to turn me into a Javascript developer with crazy talk like that.
I’m still working this problem. To help with @paphko 's concern about processor utilization, I finally figured out how and where to put a delay in the main image comparison loop. @alexyak is using the RequestAnimationFrame feature to run the comparison as fast as the browser can render the UI.
If you wish to include a delay, modify your motion.js file’s main function to read as such:
function main(frequency) {
render();
if(rendering == true) {
setTimeout(function() {
raf(main.bind(this));
}, 500);
}
}
That last number (the 500) is the milliseconds between each image comparison. I think half a second between comparisons is enough to keep the CPU usage down and the effectiveness up.
@strawberry-3.141 said in Motion Detector:
@done propably everything is working for you guys and you can just see the screensaver, be sure to disable the screensaver
Negative. The screensaver has been disabled but the motiondetection module isn’t working. I gave the Facial Recognition module a try, but with the camera behind the glass, there isn’t enough light to train the system to recognize anyone.
At this point, I’m considering downgrading my chromium to something without the new security “features”.