Just reposting the initial posts which I’ve deleted with the important info removed. (Thanks again for the heads up on what’s sensitive info and what’s not guys!)
------- Original post (in case anyone happens across this and doesn’t understand what my question/issue was) --------
With my compliments.js per below and my config.js also per below, the Face Reco works. I’ll post a second reply here showing how I tried to change both of these files.
Module.register("compliments", {
// Module config defaults.
defaults: {
compliments: {
anytime: ["Hey there, looking good!"],
morning: ["Good morning!", "Enjoy your day!", "Attack today!"],
afternoon: ["Hello, beauty!", "You look great!", "Looking good today!"],
evening: ["You nailed the day!", "What a great day!", "Hi family!"],
"....-01-01": ["Happy new year!"]
},
updateInterval: 80000,
remoteFile: null,
fadeSpeed: 4000,
morningStartTime: 3,
morningEndTime: 12,
afternoonStartTime: 12,
afternoonEndTime: 17,
random: true,
mockDate: null
},
And my current config.js (the whole thing since I can’t figure out why it’s reverting to no Face Reco when I change it).
var config = {
address: "localhost", // 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 or empty, is "localhost"
port: 8080,
basePath: "/", // The URL path where MagicMirror is hosted. If you are using a Reverse proxy
// you must set the sub path here. basePath must end with a /
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::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"],
useHttps: false, // Support HTTPS or not, default "false" will use HTTP
httpsPrivateKey: "", // HTTPS private key path, only require when useHttps is true
httpsCertificate: "", // HTTPS Certificate path, only require when useHttps is true
language: "en",
logLevel: ["INFO", "LOG", "WARN", "ERROR"],
timeFormat: 24,
units: "metric",
// serverOnly: true/false/"local" ,
// local for armv6l processors, default
// starts serveronly and then starts chrome browser
// false, default for all NON-armv6l devices
// true, force serveronly mode, because you want to.. no UI on this device
modules: [
{
module: 'MMM-Face-Reco-DNN',
config: {
// Logout 15 seconds after user was not detected any more
// If they are detected within this period, the delay will start again
logoutDelay: 15000,
// How often the recognition starts in milliseconds
// With a Raspberry Pi 3+ it works well every 2 seconds
checkInterval: 2000,
// Module set used for when there is no face detected ie no one is in front of the camera
noFaceClass: 'noface',
// Module set used for when there is an unknown/unrecognised face detected
unknownClass: 'unknown',
// Module set used for when there is a known/recognised face detected
knownClass: 'known',
// Module set used for strangers and if no user is detected
defaultClass: 'default',
// Set of modules which should be shown for any user ie when there is any face detected
everyoneClass: 'everyone',
// Set of modules that are always shown - show if there is a face or no face detected
alwaysClass: 'always',
// XML to recognize with haarcascade
cascade: 'modules/MMM-Face-Reco-DNN/tools/haarcascade_frontalface_default.xml',
// Pre-encoded pickle with the faces
encodings: 'modules/MMM-Face-Reco-DNN/tools/encodings.pickle',
// Use Raspberry Pi camera or another type
// 1 = RasPi camera, 0 = other camera
usePiCamera: 1,
// If using another type of camera, you can choose
// i.e. 0 = /dev/video0 or 'http://link.to/live'
source: 0,
// Rotate camera
rotateCamera: 0,
// Method of facial recognition
// dnn = deep neural network, haar = haarcascade
method: 'dnn',
// Which face detection model to use
// "hog" is less accurate but faster on CPUs
// "cnn" is a more accurate deep-learning model which is GPU/CUDA accelerated
detectionMethod: 'hog',
// How long in milliseconds modules take to hide and show
animationSpeed: 0,
// Path to Python to run the face recognition
// null or '' means default path
pythonPath: null,
// Should a welcome message be shown using the MagicMirror alerts module?
welcomeMessage: true,
// Capture new pictures of recognized people, if unknown we save it in folder "unknown"
// So you can extend your dataset and retrain it afterwards for better recognitions
extendDataset: false,
// If extendDataset is true, you need to set the full path of the dataset
dataset: 'modules/MMM-Face-Reco-DNN/dataset/',
// How much distance between faces to consider it a match. Lower is more strict.
tolerance: 0.6,
// allow multiple concurrent user logins, 0=no, any other number is the maximum number of concurrent logins
multiUser: 0,
}
},
{
module: "alert",
},
{
module: "updatenotification",
position: "top_bar"
},
{
module: "clock",
position: "top_left",
classes: 'always'
},
{
module: "calendar",
header: "Coming Up...",
position: "top_left",
classes: 'anna julia kathy kelly',
config: {
calendars: [
{
symbol: "calendar-check",
url: "https://" }
]
}
},
{
module: "compliments",
position: "lower_third",
classes: 'kelly'
},
{
module: "currentweather",
position: "top_right",
classes: 'anna julia kathy kelly',
config: {
location: "Sherwood Park",
locationID: "5946768", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
appid: "71ddee6bbdcfb25b97866519bc4a52bc"
}
},
{
module: "MMM-weatherforecast",
position: "top_right", // This can be any of the regions.
// Best results in bottom_bar region due to horizontal default layout and icon sizes.
classes: 'anna julia kathy kelly',
config: {
// See 'Configuration options' for more information.
location: "Sherwood Park",
locationID: "5946768", //Location ID from http://openweathermap.org/help/city_list.txt
appid: "71ddee6bbdcfb25b97866519bc4a52bc" //openweathermap.org API key.
}
},
{
module: "newsfeed",
position: "bottom_bar",
classes: 'anna julia',
config: {
feeds: [
{
title: "According to CBC",
url: "https://rss.cbc.ca/lineup/canada-edmonton.xml"
},
{
title: "Upcoming Family Opportunities",
url: "https://www.raisingedmonton.com/feed/"
}
],
showSourceTitle: true,
showPublishDate: true,
broadcastNewsFeeds: true,
broadcastNewsUpdates: true
}
},
{
module: 'MMM-TweetsByTimelineOrList',
position: 'bottom_right',
classes: 'kathy kelly',
config: {
// visit the url below for the twitter keys/tokens
// https://dev.twitter.com/oauth/overview/application-owner-access-tokens
consumer_key: 'XXXXX',
consumer_secret: 'XXXXX',
access_token_key: 'XXXXX',
access_token_secret: 'XXXXX',
// set the username and either timeline or listname
screenName: 'XXXXXXXXXXX',
listToShow: 'TIMELINE',
}
},
{
module: 'default/MMM-Dad-Jokes',
position: 'bottom_bar', // Or wherever you want
classes: 'anna julia',
config: {
updateInterval: 600000,
fadeSpeed: 4000
}
},
{
module: 'default/MMM-ATM',
position: 'bottom_bar', // Works well anywhere
classes: 'anna julia',
config: {
multipleChoice: "Yes", // No = just the ? then the answer
useHeader: true, // true if you want a header
header: "Feed your brain!", // Any text you want
maxWidth: "1250px", // Stretch or constrain according to region
}
}
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}