Read the statement by Michael Teeuw here.
Snilles Magic Mirror Project
-
@Snille Sorry didn’t see the link!! That looks awesome. The bottom is a touch menu If I"m thinking correctly?
Please do share how you have the LED’s working for backlight… I’m very interested in that! :)
-
@cowboysdude Thank you!! :) The LEDs you say. :) Ok, for the moment, the mirror is not “aware” of the leds. This is something I’m planing to implement. But as it works now I’m using PixelWeb with Bibliopixel 2.x as a back end. Then I’m using the below sh script to trigger different (predefined so far) animations.
#!/bin/bash #----------------------------------------------------------------------------- # # Snilles MagicMirror Led Conrol Script. # Use in conjunction with PixelWEB. # #----------------------------------------------------------------------------- # Connfigure here! # URL to PixelWEB API On the MM. apiurl="http://x.x.x.x:8081/api"; # Default program if no argument is set. defprog="back"; # Default red amount if non is set. defred="45"; # Default green amount if non is set. defgreen="30"; # Default blue amount if non is set. defblue="0"; # Default brightness amount. defamount="50"; ## -------------------------- Dont edit below!! --------------------------- ## while [[ $# -gt 0 ]] ; do case $1 in -h|-\?|--help) echo "Usage: mirrorleds.sh -p or --program [back, running, alarm, rainbow or thunder (rainbow and thunder needs no colors)] -r or -red [0-255] -g or --green [0-255] -b or --blue [0-255] -a or --amount [0-255]"; exit; ;; -p|--program) if [ -n "$2" ]; then program="$2" shift else program="$defprog" fi ;; -r|--red) if [ -n "$2" ]; then if [[ "$2" == ?(-)+([0-9]) ]]; then if [ "$2" -gt "255" ]; then red="255" elif [ "$2" -lt "0" ]; then red="0" else red="$2" fi shift else red="$defred" fi fi ;; -g|--green) if [ -n "$2" ]; then if [[ "$2" == ?(-)+([0-9]) ]]; then if [ "$2" -gt "255" ]; then green="255" elif [ "$2" -lt "0" ]; then green="0" else green="$2" fi shift else green="$defgreen" fi fi ;; -b|--blue) if [ -n "$2" ]; then if [[ "$2" == ?(-)+([0-9]) ]]; then if [ "$2" -gt "255" ]; then blue="255" elif [ "$2" -lt "0" ]; then blue="0" else blue="$2" fi shift else blue="$defblue" fi fi ;; -a|--amount) if [ -n "$2" ]; then if [[ "$2" == ?(-)+([0-9]) ]]; then if [ "$2" -gt "255" ]; then amount="255" elif [ "$2" -lt "0" ]; then amount="0" else amount="$2" fi shift else amount="$defamount" fi fi ;; esac shift done # Default program if non was given. if [ -z "$program" ]; then program="$defprog" fi # Default red amount if non was given. if [ -z "$red" ]; then red="$defred" fi # Default green amount if non was given. if [ -z "$green" ]; then green="$defgreen" fi # Default blue amount if non was given. if [ -z "$blue" ]; then blue="$defblue" fi # Default amount if non was given. if [ -z "$amount" ]; then amount="$defamount" fi # Compose the colors colors="$red,$green,$blue"; # 22 Pixel Alarm if [ "$program" == "alarm" ]; then curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"ColorChase","config":{"end":-1,"start":0,"width":22,"color":['$colors']},"run":{"amt":1,"fps":300,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl; fi # Rainbowalarm (multi color spinning) if [ "$program" == "rainbow" ]; then curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"ColorPattern","config":{"colors":[[255,0,0],[255,165,0],[255,255,0],[0,255,0],[0,0,255],[128,0,128]],"width":20},"run":{"amt":1,"fps":300,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl; fi # 1 Running Pixel if [ "$program" == "running" ]; then curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"ColorChase","config":{"end":-1,"start":0,"width":1,"color":['$colors']},"run":{"amt":1,"fps":40,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl; fi # Backlight if [ "$program" == "back" ]; then curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"ColorPattern","config":{"colors":[['$colors']],"width":1},"run":{"amt":1,"fps":1,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl; fi # Thunder if [ "$program" == "thunder" ]; then curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"WhiteTwinkle","config":{"max_led":null,"speed":2,"density":1,"max_bright":'$amount'},"run":{"amt":1,"fps":300,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl; fi # Stop everything if [ "$program" == "stop" ]; then curl -H "Content-Type: application/json" -X POST --data '{"action":"stopAnim"}' $apiurl; fi # Add a new line... echo $"";Then I’m using Alexa (for now) to trigger different animations (via the HA-Bridge server). But later on this will be triggered by a module that “picks up” other modules communication so I can animate the leds depending on for example weather events, calendar events, memo events or whatever I can figure out. :) I just have to convince my wife that animating the leds IS a good thing… :)
-
@Snille Awesome, Thank you!
-
I just added a quick comment on all the pictures in the gallery so you know what you are looking at. :)
-
@Snille That is just awesome! Thank you!
-
Like cowboysdude I totally missed the link to your google gallery. The build is very amazing, I am a bit jealous on the 3D printer :)
Very nice!
-
@yawns Thank you! :) I know the post is way to long, but when I see others builds, I always want to know how they did things. So I just included all the information at the top. So people don’t have to ask for it. :)
-
@Snille said in Snilles Magic Mirror Project:
I know the post is way to long, but when I see others builds, I always want to know how they did things. So I just included all the information at the top
In fact I read your post, I just did not notice the “see here” link under your photo :)
I do like to see how others created their mirror (or other things) -
@yawns Hehe, yes. If you are about to buy a 3D-Printer, I can recommend a PRUSA 3D-Printer. It’s my third printer and it’s by far the best one I have had (I built the first one myself). I’ve been 3D-Printing stuff for about 6 years and it’s great if you really want to get things done your “own” way. :) You can find some of the stuff I’ve done here.
-
@Snille
I just bought a house, currently there is no budget for a 3D printer or any other “toys”. But I will get one in the future. Thanks for the reccomondation -
@Snille said in Snilles Magic Mirror Project:
You can find some of the stuff I’ve done here.
That ball sculpture is crazy cool!!!
-
-
Genius!
-
@ceddirr I saw your questions about the project… Answers below. :)
First, I forgot to say thank you for your kind words!
Question: “Which order is it? At first the IR frame, then the one way mirror, and finally the screen, is it correct?”
Answer: Correct, from the “front” the IR-Frame is first, placed directly on to the mirror and behind the mirror sits the screen. :)
Question: “I can see that the custom css of the MMM-Memo is already written in css file from the module’s folder. But, how do you manage to use it, and have this look with your memos? Mine are just white and simple… Thank you =)”
Answer: Well, I’m actually not doing so much in the CSS file. The only thing I set in the custom.css is the size of the Memo. The rest is “built in”.
This is the CSS part (in my custom.css file):
/* MMM-Memo -----------------------------------------*/ .MMM-Memo .small { font-family: "Roboto Condensed", sans-serif; } .note { width: 500px; height: 200px; } /*****************************************************/And this is in my config.js:
{ module: "MMM-Memo", position: "upper_third", classes: "default everyone", config: { memoTitle: "Flyginformation", memoDisplayIfEmpty: false, memoRotation: -4, format: "YYYY-MM-DD - HH:mm", memoWidth: 500, memoDisplayHeader: true, memoDisplayDuration: true, memoDisplayId: true, memoColorBackground: "LightGoldenrod", memoDisplayNotification: true, } },You can see all the options for the config on the MMM-Memo’s git.
There are lot’s and lot’s of options for colors and themes. :) -
I’m about to pull the trigger on the IR touch frame but not really sure how thick it is. The description says it’s about 8.7mm, do you remember if that is somewhat correct for your panel? I don’t always trust Chinese specifications. :D
Feels like the whole mirror frame needs to be quite thick to keep everything in place. The screen I have with the boards on the back is about 5.5cm already, adding the touch frame and mirror glas to that will make it REALLY thick and large…I know there’s slimmer screens out there but ~5-7cm depth might be what most of us have?
-
@grillchips Yes, it’s correct. I did not measure it exactly, but the description is correct. Give or take 0,5 mm I would say.
-
Sweet, thanks!
Talked to one of the sellers on Aliexpress and it seems like a 21.5" touch screen needs the glass while larger ones only needs the frame. That shouldn’t make any noticeable difference in performance/feel/look, right? -
@grillchips Hmm… I don’t see why they would need the glass? It’s basically an array of IR leds on two sides and another array of IR receivers on the opposite two sides. I’m using a 32" frame and that worked in mid air when I tested. :)
-
Great to hear how it works! First time with a touch frame/panel for me so I’m a bit nervous.
This is what they sent me:
“Thanks for your inquiry. Yes, 27 inch and above size , we can send without glass. 21.5inch and 24inch, We need to send glass.”Really doesn’t tell why but I guess it doesn’t matter then… :D
-
@grillchips I don’t get the answer you got… Maybe they want to sell you a glass? :) Anyway, here is the store I bought mine from: https://www.aliexpress.com/store/922495?spm=a2g0s.9042311.0.0.9vCMC5
I think they have “all” the sizes. :)
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login
