I have reported this, hopefully someone from the website team will look into this
Read the statement by Michael Teeuw here.
Posts
-
RE: Can't upload pictures to site..
-
RE: updated installer script available for testing
@BD0G said in Anyone want to try updated installer...:
XXABI_1.3.9’ not found (required by node) node: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: versionGLIBCXX_3.4.21’
I have found a fix, allowing jessie to continue to work… added fix to latest installer…
thanks for your help -
RE: Does MagicMirror work on Amlogic boards like the Odroid C2 and Le Potato?
i run MM on an ODroid Xu4… I think C2 would be ok.
le Potato has an ubuntu image 18.04 at least…so its seems reasonable… some supporting modules (speech reco mostly) might be lagging
-
RE: client/server architecture
@peterbarlow2000 the node_helper file gets executed on the server, (one instance for all clients)
and the file in the module folder that matches the module name (modulename.js we call it)
runs on the client (one instance for each client)I would change this
code needs to be executed on the client (by electron?).to
code needs to be executed on the client (in the browser?). -
RE: How to find the module(s) to update ?
@RIKKO14 the update notification module does a git status for each module. if the module is linked to an upstream GitHub repo, git status will tell you if you are behind on changes.
so, if the messages aren’t being helpful, go to each non-default folder in ~/MagicMirror/modules
and do
git statusif I reports behind, then do
git pull
if the module has a package.json file, then also do
npm install -
RE: Video Playback Issue
@jimbydude as I mentioned above you can configure it if, you get one file that was removed in 2.11
cd ~/MagicMirror curl -sl https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/run-start.sh >run-start.sh chmod +x run-start.shedit package.json and replace the start stmt with this
"start", "./run-start.sh",then edit config.js and set
serverOnly:'local",this will launch the run-start.sh when u do npm start or pm2 start x
the script will check the setting of the serverOnly parm and if set to ‘local’,
will launch mm in server only and then launch chrome over it. from the outside you cannot tell the difference… (u can for video playback)from config.js
// 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, be```cause you want to.. no UI on this device -
RE: client/server architecture
u can look at an example of how to connect the two to insure correct connection,
see my two posts starting here
https://forum.magicmirror.builders/topic/12021/making-my-first-module-issue-with-notifications/7modulename.js creates a random number on startup (per client)
and that is appended to the module identifier (per module: in config.js on server)
to create a unique module/client pair, and that is passed in/out on any requests to/responses from the node_helper -
RE: MMM-Awesome-Alexa (again =p)
@stalker401 i made a script out of the steps
https://www.dropbox.com/s/omrx3vztjp738hf/do-install.sh?dl=0
download, make it executable ( chmod +x do-install.sh)
and then execute it… (./do-install.sh)the steps include the whole thing, git clone, and onward
-
RE: Magic Mirror with touchscreen Display/Monitor
@core use an ir touch frame over the glass.
-
RE: CSS Font size and Color
@johnnyboy every module gets to do their own thing in terms of styles.
if they aren’t documented in the module doc, MAYBE there is a css file in the module folder (usually not)the ‘most’ direct way to discover the styles for a particular thing, is using the developers window (vs looking thru the code)
ctrl-shift-i, to open the dev window,
select the elements tab, and navigate thru the web page to find the elements you want to manipulate.
at the bottom of the page you will see the class tree list closest to the module on the right, closest to main.css on the left…the css tree of attributes is on the right, closest to the module on the top, closest to main on the bottom
looks like this , the element classnames are circled at the bottom
you can edit/add the attributes on the top right panel with a click, type its name (it will show a drop down , then is value, also a a drop down… so u can experiment and not have to write css file, try, etc,etc,etc
-
RE: Newsfeed Wrap with CSS
@schlittrix the text align has to be inside the bracesof the newsfeed class
-
RE: Raspberry Pi Zero W for Magic Mirror
@Arno123 it’ll run just fine
flash the SD card, boot, skip updates, and run my install script. it will do everything needed.
see
https://github.com/sdetweil/MagicMirror_scriptsas part of the install it will increase the swap space.
-
RE: weather forecast and current weather modules
@hango ok, maybe YOU know what your getting yourself into… most users don’t…
follow the rules, talk about how you are SUPPOSED to do things… teach them the RIGHT way.
i’m here because I want to be, help users, we have enough problems with old docs written and not maintained, old code written and not maintained, we don’t need special instructions that are fragile.
-
RE: Newsfeed Wrap with CSS
@schlittrix yes
u can specify lots of style elements in a single class like that
for readability you should put the contents on separate lines inside the braces
like thisnewsfeed-desc { width: 700px; text-align: center; } -
RE: Raspberry Pi Zero W for Magic Mirror
@capedbuffethero really? I’ll check on that. didn’t used to be.
-
RE: Need help - New programmer
@innovation the ‘string’ is the value used in the getDom() function to create the html content
somestring:“this is just a test string”,
counter: 0,getDom(){ var wrapper=createElement("div") wrapper.innerText=this.somestring return wrapper; }there is no stopping the module, it MUST always be running… so, if u want to change the string,
you can start a timer, and when the timer expires, call a routine that does the work.timerRoutine: function(){ this.somestring="some other string" }but how does MM know u changed the value?
u tell MM there is new content…timerRoutine: function(){ this.somestring="some other string "+ this.counter++; this.updateDom(time_to_delay_in_ms, 0 = immediately) }now we need to start a timer… lets say, 15 seconds after we do it in getDom, lets change the text
getDom(){ var wrapper=createElement("div') wrapper.innerText=this.somestring // use the value of the somestring variable to display setTimeout(this.timerRoutine, 15000) // call the timerRoutine in 15000 milliseconds return wrapper; // after here , MM will put the html tree defined in wrapper, // in the 'position' the module defined in config.js }another way is to use the repeating timer, instead of the single event version
start: { // now the timerRoutine will be called every 15 seconds, forever // it will change the string, and then inform MM to call to get new content setInterval(this.timerRoutine,15000) // start a repeating timer every 15 seconds }, getDom(){ var wrapper=createElement("div') wrapper.innerText=this.somestring // use the value of the somestring variable to display return wrapper; }you can do this same updateDom() call after receiving a message back from your node helper with new content.
(my sample module does this) -
RE: weather module just shows loading?
@scumbelly right…
general config.js rules
thing to the left of colon (:) does not need quotes
if the thing to the right of colon is a number or true/false,
should NOT have quotes,
otherwise the thing to the right needs quotes.
single or double doesn’t matter, as long as both ends are the same -
RE: Compatibility with raspberry Pi 5 right now and in the future.
@Hugo pi 5 works fine.
like the other devices, use my script to install MagicMirror.
I should note that pi4 and 5 on the latest os (bookworm) will run Wayland as the display manager.
a few modules have been impacted, mostly in screen off/on. some authors have responded with module fixes.
I put a pcie m2 hat on my pi5, and use it to boot instead of the sd card. 256gb.
-
RE: Petition to get Sdetweil his own group tag....
@bkeyport no thanks,… don’t need a badge… i like doing what I do… thats enough
-
RE: MMM-NewsFeedTicker not displaying full article, etc.
@whoremoan the code does
initial calc
tickerBody.style.animationDuration = Math.round(this.config.updateInterval / 1000) + "s";this one u can change in config
then using the actuals it does
function calcSpeed(speed) { // Time = Distance/Speed var spanSelector = document.querySelectorAll("headline"), i; for (i = 0; i < spanSelector.length; i++) { var spanLength = spanSelector[i].offsetWidth, timeTaken = spanLength / speed; spanSelector[i].style.animationDuration = timeTaken + "s"; } } calcSpeed(100);so, it calculates seconds in characters divided by 100/second,
this second one for me is suspect, as until getDom() returns the 1st time, there are NO spans with headline class IN the dom.
then on each other pass, there is the old one being replacedso THIS new (about to be shown headline is a fixed rate. regardless of content size
probably the bigger problem is that the end of animation calls
scheduleUpdateInterval: function() { var self = this; self.updateDom(self.config.animationSpeed); timer = setInterval(function() { self.activeItem++; self.updateDom(self.config.animationSpeed); }, this.config.updateInterval); },which refreshes the content AND starts a repeating time that does that too… on a fixed schedule.
but it keeps starting new timers, on top of prior timers…