Read the statement by Michael Teeuw here.
Not all Modules are displaying on the tv
-
@kusselin Do you know, that MMM-Pages has a paramter named “fixed” where you can list all the modules which should appear on every page? May be this helps to investigate or avoid side-effects.
-
@kusselin There is an error from openweather:
api.openweathermap.org/data/2.5/forecast/daily?id=xxxxxxxx&cnt=7&exclude=false&units=metric&lang=de&APPID=xxxxxxxxxxxxxxxxxxxxx98a:1 Failed to load resource: the server responded with a status of 401 (Unauthorized) weatherforecast.js:265 weatherforecast: Your AppID does not support long term forecasts. Switching to fallback endpoint. weatherRequest.onreadystatechange @ weatherforecast.js:265
Unless you referring to Traffic which also has an error.
MMM-Traffic.js:132 received MMM_TRAFFIC_ERROR
-
@kusselin said in Not all Modules are displaying on the tv:
main.js:297 Will not show MMM-OpenmapWeather. LockStrings active: module_7_MMM-OpenmapWeather
Also, this is the problem why openmapweather does not show.
I do not yet understand lockstrings. If someone does, I’m happy for an explanantion. Looking at you @sdetweil :-) -
@lavolp3 Same for MMM-Traffic:
main.js:297 Will not show MMM-Traffic. LockStrings active: module_15_MMM-pages
-
@kusselin MMM-Pages uses hiding to only show what you selected to be on each page. Mm only hides or shows modules.
Pages uses that to display just a few at a time. (Per page)
LockStrings are used to make sure that the module requesting show, is the same that requested hide. So u get consistent behavior. Else u might have things popping up all over. Remember, mm only does hide or show. It assumes all modules are showing all the time. AND all modules ARE running all the time.
-
@sdetweil But how do you set/change or address lockstrings?
-
@lavolp3 on the show/hide there is an optional additional parameter, the ‘string’ for the lockstring… its any text u want.
from
https://docs.magicmirror.builders/development/core-module-file.html#module-instance-methodsthis.hide(speed, callback, options) speed Number - Optional (Required when setting callback or options), The speed of the hide animation in milliseconds. callback Function - Optional, The callback after the hide animation is finished. options Function - Optional, Object with additional options for the hide action (see below). (Introduced in version: 2.1.0.) To hide a module, you can call the hide(speed, callback) method. You can call the hide method on the module instance itself using this.hide(), but of course you can also hide another module using anOtherModule.hide(). Possible configurable options: lockString - String - When setting lock string, the module can not be shown without passing the correct lockstring. This way (multiple) modules can prevent a module from showing. It's considered best practice to use your modules identifier as the locksString: this.identifier. See visibility locking below.
-
@sdetweil Thank you. It seems the hide and show calls in MMM-pages need to be amended by the (standard) lockstring to work properly.
The module is after all expected to overwrite any other hide/show functionality.
I had the same issue so I’ll try that out in the next days. -
@lavolp3 Pages uses lockstring already
module.hide( self.config.animationTime / 2, { lockString: self.identifier } )); module.show( self.config.animationTime / 2, { lockString: self.identifier } ));
uses the MMM-Pages module identifier as the string
-
@lavolp3 said in Not all Modules are displaying on the tv:
The module is after all expected to overwrite any other hide/show functionality.
it may need FORCE (it should check if the hide or show worked)