Giter Site home page Giter Site logo

jalibu / mmm-jast Goto Github PK

View Code? Open in Web Editor NEW
63.0 3.0 21.0 7.07 MB

A minimalistic stock ticker based on Yahoo's finance API for the MagicMirror² platform.

License: MIT License

CSS 6.20% JavaScript 4.41% Nunjucks 38.18% TypeScript 51.21%
magicmirror stocks yahoo-finance magicmirror2 ticker

mmm-jast's People

Contributors

dependabot[bot] avatar gonz0s avatar hakanmhmd avatar jalibu avatar kristjanesperanto avatar megaqube avatar sdetweil avatar shweshi avatar srabraham avatar zachk543 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

mmm-jast's Issues

Scrolls only on half screen

Platform (Hardware/OS): raspberry Pi 4

Node version: 14.17.0

MagicMirror version: 2.15.0

Module version: 2.1.0

Description of the issue: Doesn't scroll from screen end to end. Starts from the middle of the screen. I've selected the horizontal option and would like the ticker to start from the right end of the screen and scroll all the alway till the left end.
I have set the position as bottom bar.
My config code is

{
  module: "MMM-Jast",
  position: "bottom_bar",
  config: {
  	maxWidth: "100%",
  	updateIntervalInSeconds: 300,
  	fadeSpeedInSeconds: 20, // Higher value: vertical -> faster // horizontal -> slower
  	scroll: "horizontal", // One of ["none", "vertical", "horizontal"]
  	useGrouping: false,
  	currencyStyle: "symbol", // One of ["code", "symbol", "name"]
  	showColors: true,
  	showCurrency: true,
  	showChangePercent: true,
  	showChangeValue: false,
  	showChangeValueCurrency: false,
  	showDepot: false,
  	showDepotGrowthPercent: false,
  	showDepotGrowth: false,
  	numberDecimalsValues: 2,
  	numberDecimalsPercentages: 1,
  	stocks: [
  		{ name: "BASF", symbol: "BAS.DE", quantity: 10 },
  		{ name: "SAP", symbol: "SAP.DE", quantity: 15 },
  		{ name: "Henkel", symbol: "HEN3.DE" },
  		{ name: "Alibaba", symbol: "BABA"}
  	]
    }
  }, 

Observations after some more R&D:
When screen orientation is set to vertical. The scroll happens from screen end to end . That's what I want .
But when the screen/monitor orientation is horizontal then the scrolling happens from centre of screen to left .

Module stuck on “Loading” PLEASE HELP!!!

Hey everyone! I need some help on this one. It’s been a while since I’ve had any issues with my magic mirror until very recently when I noticed that my stocks (MMM-Jast) module was stuck on “loading.” I’ve tried uninstalling and reinstalling the module as well as reboot the pi as well. No dice. After further investigation I looked at the logs and noticed a few things. Before going any further please note the picture below that shows the module actually functioning. Out of the 10 stocks shown, the first 7 are cryptocurrencies. Now, when you look at the logs you’ll see ERROR: there was an error requesting the API. Failed yahoo schema validation. They all appear to be from “coinmarketcaplink” which would point to crypto as well. Troubleshooting along this line of thinking I removed all seven of the crypto currencies from the confect that JS file and just left apple, Tesla and AMC. Still stuck on loading so now I’m thinking it’s not crypto based?! How does one change the yahoo API if it changed or what else do you guys and girls think it could be!?

C1E2A4AE-A231-4AC6-8342-3840AE7D7497
5FDBA653-FFF4-4051-B5DF-E722E0AE987F
354239C7-4404-4A6D-AFF9-AB0A05A5CF74
CE419D31-24E4-46A9-A69A-428B7808DBA4
C04BEF63-A9E7-4C22-9F76-33870EDC3BB1
3D3AE68A-BC51-46E2-9FAA-B5EE89A482E5

Can't get EURRON=X to display on my mm

Platform

Raspberry PI OS

Node.js Version

v14.18.1

MagicMirror Version

latest

Module Version

v2.17.1

Description

I can't get to display EURRON=X for some reason, but I can get EURUSD=X.
Is this some sort of bug?

Expected behavior

No response

Current behavior

No response

Possible solution

No response

Steps to reproduce

everything loads properly, except the EURRON=X call

Log

No response

config.js

			{
	module: "MMM-Jast",
	position: "bottom_left",
	config: {
		maxWidth: "100%",
		updateIntervalInSeconds: 300,
		fadeSpeedInSeconds: 3.5,
		scroll: "none", // One of ["none", "vertical", "horizontal"]
		useGrouping: false,
		currencyStyle: "symbol", // One of ["code", "symbol", "name"]
		lastUpdateFormat: "HH:mm",
		showColors: true,
		showCurrency: true,
		showChangePercent: true,
		showChangeValue: false,
		showChangeValueCurrency: false,
		showLastUpdate: true,
		showPortfolioValue: false,
		showPortfolioGrowthPercent: false,
		showPortfolioGrowth: false,
		numberDecimalsValues: 2,
		numberDecimalsPercentages: 1,
		virtualHorizontalMultiplier: 2,
		stocks: [
			{ name: "GME", symbol: "GME"},
			{ name: "BTC", symbol: "BTC-USD"},
			{ name: "EUR", symbol: "EURRON=X"},
			{ name: "ETN", symbol: "ETN-USD"}
		]
	}

Additional info

No response

Error while starting

Platform

No response

Node.js Version

v10.16.0

MagicMirror Version

v2.8.0

Module Version

v2.8.0

Description

Seeing this error message in log.

0|MagicMirror  | App threw an error during load
0|MagicMirror  | TypeError: i.log is not a function
0|MagicMirror  |     at Class.start (/home/pi/MagicMirror/modules/MMM-Jast/node_helper.js:29:462)
0|MagicMirror  |     at /home/pi/MagicMirror/js/app.js:225:18
0|MagicMirror  |     at new Server (/home/pi/MagicMirror/js/server.js:74:3)
0|MagicMirror  |     at /home/pi/MagicMirror/js/app.js:218:18
0|MagicMirror  |     at loadNextModule (/home/pi/MagicMirror/js/app.js:167:5)
0|MagicMirror  |     at /home/pi/MagicMirror/js/app.js:162:6
0|MagicMirror  |     at Class.loaded (/home/pi/MagicMirror/modules/node_modules/node_helper/index.js:19:3)
0|MagicMirror  |     at loadModule (/home/pi/MagicMirror/js/app.js:143:6)
0|MagicMirror  |     at loadNextModule (/home/pi/MagicMirror/js/app.js:160:5)
0|MagicMirror  |     at /home/pi/MagicMirror/js/app.js:162:6

Expected behavior

No response

Current behavior

No response

Possible solution

No response

Steps to reproduce

  1. start mmm
  2. it doesnt load anything because of the exception

Log

No response

config.js

usign the basic config file which is mentioned in the readme file

Additional info

No response

High CPU consumption

Platform

Raspberry Pi OS Bullseye 64-bit

Node.js Version

16.13.1

MagicMirror Version

2.18.0

Module Version

8fd21f0

Description

When the module is enabled, the CPU consumption almost double, MagicMirror is running within a Docker container with OpenGL acceleration.

Expected behavior

No response

Current behavior

No response

Possible solution

Does the fadeSpeedInSeconds option could be the culprit?

Steps to reproduce

  1. Apply my module configuration
  2. Restart the MagicMirror

Log

No response

config.js

{
	module: "MMM-Jast",
	disable: true,
	position: "bottom_bar",
	config: {
		maxWidth: "100%",
		updateIntervalInSeconds: 300,
		fadeSpeedInSeconds: 25,
		scroll: "horizontal", // One of ["none", "vertical", "horizontal"]
		useGrouping: false,
		currencyStyle: "code", // One of ["code", "symbol", "name"]
		lastUpdateFormat: "HH:mm",
		showColors: true,
		showCurrency: true,
		showChangePercent: true,
		showChangeValue: false,
		showChangeValueCurrency: false,
		showLastUpdate: false,
		showPortfolioValue: false,
		showPortfolioGrowthPercent: false,
		showPortfolioGrowth: false,
		numberDecimalsValues: 2,
		numberDecimalsPercentages: 1,
		virtualHorizontalMultiplier: 2,
		stocks: [
			{ name: "SYM0", symbol: "SYM0", quantity: 50 },
			{ name: "SYM2", symbol: "SYM1", quantity: 200 },
			{ name: "SYM2", symbol: "SYM2", quantity: 266 }
		]
	}
},

Additional info

No response

Scrolling not over full screen

Hello,

the module is great! Unfortunately i can't get it to scroll across the full screen. It just stops at around a third of the screen. Sometimes it's aligned right, sometimes it's aligned left. Max width doesn't change that.

Fix would be appreciated, because it's the only stock module that supports EUR stocks as well.

Kind regards

Scroll speed insanely fast

Platform

Raspbian GNU/Linux 11 (bullseye)

Node.js Version

v14.21.1

MagicMirror Version

2.21.0

Module Version

v2.8.0 - 1cc458d

Description

I'm trying to use the module in horizontal mode. At the default fadeSpeedInSeconds of 3.5 the text just zips across the screen in an unreadable blur. I was finally able to get it to a readable speed at a value of 10000 but by that point it spends so much time "between scrolls" that it might as well not be in the config at all. Additionally its presence makes the news ticker on the bottom bar really jitterry on scrolling.

            // { // Commented because the scrolling is causing issues with the bottom scroller
            //      module: "MMM-Jast", //https://github.com/jalibu/MMM-Jast
            //      position: "top_bar",
            //      config: {
            //              currencyStyle: "symbol", // One of ["code", "symbol", "name"]
            //              fadeSpeedInSeconds: 10000,
            //              lastUpdateFormat: "HH:mm",
            //              maxChangeAge: 1 * 24 * 60 * 60 * 1000,
            //              maxWidth: "100%",
            //              numberDecimalsPercentages: 1,
            //              numberDecimalsValues: 2,
            //              scroll: "none", // One of ["none", "vertical", "horizontal"]
            //              showColors: true,
            //              showCurrency: true,
            //              showChangePercent: true,
            //              showChangeValue: true,
            //              showChangeValueCurrency: false,
            //              showHiddenStocks: false,
            //              showLastUpdate: false,
            //              showPortfolioValue: true,
            //              showPortfolioGrowthPercent: false,
            //              showPortfolioGrowth: true,
            //              updateIntervalInSeconds: 300,
            //              useGrouping: true,
            //              virtualHorizontalMultiplier: 2,
            //              stocks: [
            //                      { name: "Clearwater Analytics", symbol: "CWAN", quantity: xxxx },
            //                      { name: "Costco", symbol: "COST", quantity: 0 },
            //                      { name: "Oracle", symbol: "ORCL", quantity: 0 },
            //                      { name: "Google", symbol: "GOOG", quantity: 0}
            //              ]
            //      }
            // },

Expected behavior

The scrolling should be at a reasonable rate so as to be visible the majority of the time while also being readable when on screen.
Additionally it shouldn't be causing other modules to have issues. I understand the Pi's processor is somewhat limited, but this doesn't feel right.

Current behavior

At default speed the text is unreadable as it flashes across the screen.
At a speed of 10000 the top bar is usually empty but the text is actually readable when it does appear.
The bottom news ticker (MMM-Reddit-News-Ticker) is jittery when scrolling.

Possible solution

I think a workable solution would be a static scroll mode similar to 'none' but in a horizontal orientation.
I'd branch it myself but I just plain don't know js or node.

Steps to reproduce

  1. Add the config I pasted in description to the MagicMirror/config/config.js file (uncommented, of course).
  2. Start mm, in my case I'm use pm2 so I use either pm2 start mm or pm2 restart mm.
  3. Let the config parse and load. Observe the fast speed or slow speed, depending on the value of fadeSpeedInSeconds.
  4. Observe the jittery behavior of the bottom ticker.

Log

Hardware: Raspberry Pi 3B
Modules running: (in this order)
- clock - top_left
- calendar - top_left (2 calendars running, minimal events showing (1 currently))
- MMM-XKCD - top_left
- MMM-CyberSecurity-News - bottom_left (2 articles) (feed changed to another rss feed though)
- weather - top_right - type: current
- MMM-AQI - top_right
- weather - bottom_right - type: forecast
- MMM-Jast - top_bar
- MMM-Reddit-News-Ticker - bottom_bar
With mm running with all the above modules, pm2 reports 0% CPU usage and 2.8mb memory usage.
 22:45:07 up 19 days,  3:47,  4 users,  load average: 1.86, 2.00, 2.07

config.js

/* MagicMirror² Config Sample
 *
 * By Michael Teeuw https://michaelteeuw.nl
 * MIT Licensed.
 *
 * For more information on how you can configure this file
 * see https://docs.magicmirror.builders/configuration/introduction.html
 * and https://docs.magicmirror.builders/modules/configuration.html
 */
let config = {
	address: "0.0.0.0", 	// 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", "192.168.10.0/24", "::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",
	locale: "en-US",
	logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
	timeFormat: 24,
	units: "imperial",
	// 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: "alert",
		},
	//	{
	//		module: "updatenotification",
	//		position: "top_bar"
	//	},
		{
			module: "clock",
			position: "top_left",
			clockBold: "true",
			showSunTimes: "true"
		},
		{
			module: "calendar",
			header: "Brian's Calendar",
			position: "top_left",
			config: {
				fade: "false",
				fadePoint: "1",
				maximumNumberOfDays: "7",
				calendars: [
					{
						symbol: "calendar-check",
						color: "FF0000",
						url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"
					},
					{
						symbol: "cat",
						url: "<REDACTED>"
					}
				]
			}
		},
		{
			module: "MMM-XKCD", //https://github.com/jupadin/MMM-XKCD
			position: "top_left",
			config: {
				header: "xkcd",
				updateInterval: 10 * 60 * 60 * 1000,
				grayScale: false,
				invertColors: false,
				limitComicWidth: 400,
				limitComicHeight: 0,
				randomComic: true,
				alwaysRandom: false,
				showTitle: true,
			}
		},
		{
			module: "MMM-CyberSecurityNews",
			position: "bottom_left",
			header: "https://www.darkreading.com",
			config: {
				numberOfArticles: 2
			}
		},
		{
			module: "weather",
			position: "top_right",
			config: {
				weatherProvider: "openweathermap",
				type: "current",
				units: "imperial",
				timeFormat: "24",
				locationID: "<REDACTED>",
				apiKey: "<REDACTED>"
			}
		},
		{
			module: "MMM-AQI",
			position: "top_right",
			header: 'Air Quality Index (AQI)',
			config: {
				token: "<REDACTED>",
				city: "<REDACTED>", 
				iaqi: true,
				updateInterval: 30 * 60 * 1000, // 30 minutes
				initialLoadDelay: 0,
				animationSpeed: 1000,
				debug: false
			}
		},
		{
			module: "weather",
			position: "bottom_right",
			config: {
				weatherProvider: "openweathermap",
				type: "forecast",
				colored: "true",
				weatherEndpoint: "/forecast",
				locationID: "<REDACTED>",
				apiKey: "<REDACTED>",
				fade: "false",
				fadePoint: "1"
			}
		},
		{ // Commented because the scrolling is causing issues with the bottom scroller
			module: "MMM-Jast", //https://github.com/jalibu/MMM-Jast
			position: "top_bar",
			config: {
				currencyStyle: "symbol", // One of ["code", "symbol", "name"]
				fadeSpeedInSeconds: 10000,
				lastUpdateFormat: "HH:mm",
				maxChangeAge: 1 * 24 * 60 * 60 * 1000,
				maxWidth: "100%",
				numberDecimalsPercentages: 1,
				numberDecimalsValues: 2,
				scroll: "vertical", // One of ["none", "vertical", "horizontal"]
				showColors: true,
				showCurrency: true,
				showChangePercent: true,
				showChangeValue: true,
				showChangeValueCurrency: false,
				showHiddenStocks: false,
				showLastUpdate: false,
				showPortfolioValue: true,
				showPortfolioGrowthPercent: false,
				showPortfolioGrowth: true,
				updateIntervalInSeconds: 300,
				useGrouping: true,
				virtualHorizontalMultiplier: 2,
				stocks: [
					{ name: "Clearwater Analytics", symbol: "CWAN", quantity: xxxx },
					{ name: "Costco", symbol: "COST", quantity: 0 },
					{ name: "Oracle", symbol: "ORCL", quantity: 0 },
					{ name: "Google", symbol: "GOOG", quantity: 0}
				]
			}
		},
		{
			module: "MMM-Reddit-News-Ticker",
			position: "bottom_bar",
			config: {
				client_id: "<REDACTED>",
				secret: "<REDACTED>"
			}
		}
	]
};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

Additional info

No response

UK prices misplaced decimal

Platform

Raspberry Pi OS

Node.js Version

16.13.2

MagicMirror Version

2.18.0

Module Version

v.2.6.0

Description

Prices from London come from Yahoo in pence, but are displayed in pounds. For example; Lloyds.L is 52.14p but shows as £52.14.

Expected behavior

Lloyds (LLOY.L) price should be £0.5214 (4dp configured)

Current behavior

Lloyds prices show as £52.14

Possible solution

No response

Steps to reproduce

configure a stock entry as:

{ name: "Lloyds", symbol: "LLOY.L"}

Log

No response

config.js

/* Magic Mirror Config Sample
 *
 * By Michael Teeuw https://michaelteeuw.nl
 * MIT Licensed.
 *
 * For more information on how you can configure this file
 * see https://docs.magicmirror.builders/getting-started/configuration.html#general
 * and https://docs.magicmirror.builders/modules/configuration.html
 */
let 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",
        locale: "en-GB",
        logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
        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: "alert",
                },
                {
                        module: "updatenotification",
                        position: "top_bar"
                },
                {
                        module: "clock",
                        position: "top_left"
                },
                {
                        module: "MMM-Jast",
                        position: "bottom",
                        config: {
                                maxWidth: "100%",
                                updateIntervalInSeconds: 300,
                                fadeSpeedInSeconds: 40,
                                scroll: "horizontal", // One of ["none", "vertical", "horizontal"]
                                useGrouping: false,
                                currencyStyle: "symbol", // One of ["code", "symbol", "name"]
                                lastUpdateFormat: "HH:mm",
                                showColors: true,
                                showCurrency: true,
                                showChangePercent: true,
                                showChangeValue: true,
                                showChangeValueCurrency: false,
                                showLastUpdate: false,
                                showPortfolioValue: true,
                                showPortfolioGrowthPercent: false,
                                showPortfolioGrowth: false,
                                numberDecimalsValues: 2,
                                numberDecimalsPercentages: 1,
                                virtualHorizontalMultiplier: 2,
                                stocks: [
                                        { name: "Lloyds", symbol: "LLOY.L" },
                                ]
                        }
                },
                {
                        module: "calendar",
                        header: "US Holidays",
                        position: "top_left",
                        config: {
                                calendars: [
                                        {
                                                symbol: "calendar-check",
                                                url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"
                                        }
                                ]
                        }
                },

        ]
};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

Additional info

No response

Default module currentweather doesn't work consistently

Platform

Raspberry Pi OS

Node.js Version

16.13.1

MagicMirror Version

2.18.0

Module Version

2.6.0

Description

Having issues with the default module of ‘currentweather’. This MMM-Jast module makes my currentweather module disappear. It loads, then as soon as MMM-Jast loads, currentweather disappears. As soon as I remove MMM-Jast from the config, then currentweather works again.

However there have been instances where the 2 do work in unisen, maybe 1 out of 10 goes. So not sure what the problem is here.

Expected behavior

currentweather module & MMM-Jast should work at the same time

Current behavior

currentweather module & MMM-Jast do not work at the same time all the time

Possible solution

Sorry. no idea

Steps to reproduce

pm2 start mm.sh

Log

No response

config.js

/* Magic Mirror Config Sample
 *
 * By Michael Teeuw http://michaelteeuw.nl
 * MIT Licensed.
 *
 * For more information how you can configurate this file
 * See https://github.com/MichMich/MagicMirror#configuration
 *
 */

var config = {
	address: "0.0.0.0", // 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, is "localhost"
	port: 8090,
	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"],

	language: "en",
	timeFormat: 24,
	units: "metric",

	modules: [
		{
			module: "alert",
		},
		{
			module: "clock",
			position: "top_left"
		},
		{
			module: "calendar",
			header: "Calendar",
			position: "top_left",
			config: {
				calendars: [
					{
						symbol: "calendar-check",
						url: ""					
					},
					{
						symbol: "calendar-check",
						url: ""			
					}
				]
			}
		},
				{
			module: "currentweather",
			position: "top_left",
			config: {
				location: 
				locationID: //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
				appid: ""
			}
		},
		{
			module: "weatherforecast",
			position: "top_left",
			header: "Weather Forecast",
			config: {
				location: 
				locationID: //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
				appid: 
			}
		},
		{
	module: "MMM-Jast",
	position: "top_left",
	config: {
		maxWidth: "100%",
		updateIntervalInSeconds: 10,
		fadeSpeedInSeconds: 3.5,
		scroll: "vertical", // One of ["none", "vertical", "horizontal"]
		useGrouping: false,
		currencyStyle: "code", // One of ["code", "symbol", "name"]
		lastUpdateFormat: "HH:mm",
		showColors: true,
		showCurrency: true,
		showChangePercent: true,
		showChangeValue: true,
		showChangeValueCurrency: false,
		showLastUpdate: true,
		showPortfolioValue: true,
		showPortfolioGrowthPercent: false,
		showPortfolioGrowth: false,
		numberDecimalsValues: 3,
		numberDecimalsPercentages: 1,
		virtualHorizontalMultiplier: 2,
		stocks: [
			{ name: "EFE", symbol: "EFE.AX", quantity: 100000 },
			{ name: "IBX", symbol: "IBX.AX", quantity: 250000 },
			{ name: "LOT", symbol: "LOT.AX", quantity: 3499 },
			{ name: "MNS", symbol: "MNS.AX", quantity: 3326 },
			{ name: "NDQ", symbol: "NDQ.AX", quantity: 242 }
		]
	}
},
		{
	    disabled: false,
	    module: "MMM-OneTracker",
	    position: "top_left",
	    config: {
	        username: // Sign up for free using the OneTracker App
	        password: 
	       	useHeader: true, // false if you don't want a header
	        header: 'My Packages', // Change in config file. useHeader must be true
	        maxWidth: '300px',
	        animationSpeed: 3000, // fade speed
	        initialLoadDelay: 3250,
	        retryDelay: 2500,
	        updateInterval: 10 * 60 * 1000, // 10 minutes
	        apiLanguage: 'en',
        	maxParcels: 5,
    }
},
		{
		  module: "MMM-NowPlayingOnSpotify",
		  position: "top_left",
		
		  config: {
		    clientID: 
		    clientSecret: 
		    accessToken: -
		    refreshToken: 
		  }
		},
	]

};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

Additional info

No response

Json Decode Error

Platform

Raspberry Pi OS

Node.js Version

v16.13.1

MagicMirror Version

2.17.1

Module Version

v.2.6.0

Description

First, Thank you for write this module, its really make us much easier to enjoy magic mirror. However, I need you help now, I am not good at JS, so I cannot fix it by myself.
The problem is when I setup the module as the readme write. And I got the error message like

API request for AMZN failed: invalid json response body at 
https://query2.finance.yahoo.com/v10/finance/quoteSummary/AMZN?formatted=false&modules=price 
reason: Unexpected token < in JSON at position 0

I guess, it's something wrong with the decoding of the response into json, so I check the resposne. Its seems ok

{
   "quoteSummary":{
      "result":[
         {
            "price":{
               "maxAge":1,
               "preMarketSource":"FREE_REALTIME",
               "postMarketChangePercent":-9.25174E-4,
               "postMarketChange":-0.109901,
               "postMarketTime":1640998794,
               "postMarketPrice":118.68,
               "postMarketSource":"FREE_REALTIME",
               "regularMarketChangePercent":-0.034149095,
               "regularMarketChange":-4.199997,
               "regularMarketTime":1640984442,
               "priceHint":2,
               "regularMarketPrice":118.79,
               "regularMarketDayHigh":122.91,
               "regularMarketDayLow":118.59,
               "regularMarketVolume":24024133,
               "regularMarketPreviousClose":122.99,
               "regularMarketSource":"DELAYED",
               "regularMarketOpen":121.23,
               "exchange":"NYQ",
               "exchangeName":"NYSE",
               "exchangeDataDelayedBy":0,
               "marketState":"CLOSED",
               "quoteType":"EQUITY",
               "symbol":"BABA",
               "underlyingSymbol":null,
               "shortName":"Alibaba Group Holding Limited",
               "longName":"Alibaba Group Holding Limited",
               "currency":"USD",
               "quoteSourceName":"Nasdaq Real Time Price",
               "currencySymbol":"$",
               "fromCurrency":null,
               "toCurrency":null,
               "lastMarket":null,
               "marketCap":331230478336
            }
         }
      ],
      "error":null
   }
}

So, I guess its only need to check the decode part. Hope you can fix this ASAP. Thanks a lot.

PS. Happy new year !

Expected behavior

Hope the module can show the info

Current behavior

just keep loading and show me some warning which I think it should be a error. Like I report above.

Possible solution

the decoding part of handling the response from the third part financial API.

Steps to reproduce

  1. Start it
  2. See the loading page
  3. See the warning info in the log

Log

[WARN]  API request for BABA failed: invalid json response body at https://query2.finance.yahoo.com/v10/finance/quoteSummary/BABA?formatted=false&modules=price reason: Unexpected token < in JSON at position 0

config.js

{
	module: "MMM-Jast",
	position: "top_left",
	config: {
		maxWidth: "100%",
		updateIntervalInSeconds: 300,
		fadeSpeedInSeconds: 3.5,
		scroll: "vertical", // One of ["none", "vertical", "horizontal"]
		useGrouping: false,
		currencyStyle: "code", // One of ["code", "symbol", "name"]
		lastUpdateFormat: "HH:mm",
		showColors: true,
		showCurrency: true,
		showChangePercent: true,
		showChangeValue: false,
		showChangeValueCurrency: false,
		showLastUpdate: false,
		showPortfolioValue: false,
		showPortfolioGrowthPercent: false,
		showPortfolioGrowth: false,
		numberDecimalsValues: 2,
		numberDecimalsPercentages: 1,
		virtualHorizontalMultiplier: 2,
		stocks: [
			{ name: "apple", symbol: "AAPL", quantity: 10 },
			{ name: "AMZN", symbol: "AMZN", quantity: 15 },
			{ name: "TSLA", symbol: "TSLA" },
			{ name: "Alibaba", symbol: "BABA"}
		]
	}
}

Additional info

No response

How to add a header

I'm using the static config. it will be great to have header included to match the default module theme! I would like to add a header something like "Stocks". and a horizontal line and then the stock prices.
I'm not an expert in Java, so finding it little difficult to follow! I was hoping to add it in the MMM-Jast.js file, something like https://github.com/TeraTech/MMM-WiFiPassword/blob/master/MMM-WiFiPassword.js#L53.
But MMM-Jast.js format looks little different! Will appreciate some help here..

Help Please

Platform

Libre Le Potato

Node.js Version

16.20.0

MagicMirror Version

2.23.0

Module Version

(#3078)

Description

attempting to launch my magic mirror (npm run start) The error message i get is:
[17.05.2023 20:35.24.752] [LOG] Launching application.
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/aarch64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
failed to load driver: kms_swrast
MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/aarch64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
failed to load swrast driver
How do i fix this problem?
Thanks, looking forward to using this module...

Expected behavior

I guess kms_swrast should open

Current behavior

program errord out. Nothing below in the config file loaded

Possible solution

Either, kms_swrast is in the wrong place or absent ?
Just guessing, I am a novice at this.

Steps to reproduce

Start MM
Error occurs on startup
other modules below this one in the config file do not load

Log

complete log is:
potatoe@raspberrypi:~/MagicMirror $ npm run start

> [email protected] start
> DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js

[17.05.2023 20:35.23.358] [LOG]   Starting MagicMirror: v2.23.0
[17.05.2023 20:35.23.374] [LOG]   Loading config ...
[17.05.2023 20:35.23.382] [DEBUG] config template file not exists, no envsubst
[17.05.2023 20:35.23.396] [LOG]   Loading module helpers ...
[17.05.2023 20:35.23.400] [LOG]   No helper found for module: alert.
[17.05.2023 20:35.23.440] [LOG]   Initializing new module helper ...
[17.05.2023 20:35.23.443] [LOG]   Module helper loaded: updatenotification
[17.05.2023 20:35.23.447] [LOG]   No helper found for module: clock.
[17.05.2023 20:35.24.113] [LOG]   Initializing new module helper ...
[17.05.2023 20:35.24.117] [LOG]   Module helper loaded: calendar
[17.05.2023 20:35.24.122] [LOG]   No helper found for module: compliments.
[17.05.2023 20:35.24.125] [LOG]   No helper found for module: weather.
[17.05.2023 20:35.24.196] [LOG]   Initializing new module helper ...
[17.05.2023 20:35.24.197] [LOG]   Module helper loaded: newsfeed
[17.05.2023 20:35.24.199] [LOG]   All module helpers loaded.
[17.05.2023 20:35.24.232] [LOG]   Starting server on port 8080 ... 
[17.05.2023 20:35.24.681] [LOG]   Server started ...
[17.05.2023 20:35.24.683] [LOG]   Connecting socket for: updatenotification
[17.05.2023 20:35.24.685] [LOG]   Starting module helper: updatenotification
[17.05.2023 20:35.24.687] [LOG]   Connecting socket for: calendar
[17.05.2023 20:35.24.688] [LOG]   Starting node helper for: calendar
[17.05.2023 20:35.24.690] [LOG]   Connecting socket for: newsfeed
[17.05.2023 20:35.24.692] [LOG]   Starting node helper for: newsfeed
[17.05.2023 20:35.24.693] [LOG]   Sockets connected & modules started ...
[17.05.2023 20:35.24.752] [LOG]   Launching application.
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri)
failed to load driver: kms_swrast
MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri)
failed to load swrast driver
[17.05.2023 20:35.29.627] [LOG]   Create new calendarfetcher for url: http://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics - Interval: 300000
[17.05.2023 20:35.29.697] [LOG]   Create new newsfetcher for url: https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml - Interval: 300000
[17.05.2023 20:35.29.759] [INFO]  Checking git for module: MagicMirror
[17.05.2023 20:35.30.795] [INFO]  Calendar-Fetcher: Broadcasting 9 events.
[17.05.2023 20:35.30.809] [INFO]  Newsfeed-Fetcher: Broadcasting 26 items.
[17.05.2023 20:40.31.494] [INFO]  Newsfeed-Fetcher: Broadcasting 26 items.
[17.05.2023 20:40.31.648] [INFO]  Calendar-Fetcher: Broadcasting 9 events.
[17.05.2023 20:45.31.997] [INFO]  Newsfeed-Fetcher: Broadcasting 26 items.
[17.05.2023 20:45.32.527] [INFO]  Calendar-Fetcher: Broadcasting 9 events.
[17.05.2023 20:50.32.630] [INFO]  Newsfeed-Fetcher: Broadcasting 28 items.
[17.05.2023 20:50.33.446] [INFO]  Calendar-Fetcher: Broadcasting 9 events.
[17.05.2023 20:55.33.120] [INFO]  Newsfeed-Fetcher: Broadcasting 28 items.
[17.05.2023 20:55.34.039] [INFO]  Calendar-Fetcher: Broadcasting 9 events.
[17.05.2023 21:00.33.448] [INFO]  Newsfeed-Fetcher: Broadcasting 28 items.
[17.05.2023 21:00.34.657] [INFO]  Calendar-Fetcher: Broadcasting 9 events.
[17.05.2023 21:03.59.466] [LOG]   Shutting down server...
[17.05.2023 21:03.59.468] [LOG]   Stopping module helper: updatenotification
[17.05.2023 21:03.59.469] [LOG]   Stopping module helper: calendar
[17.05.2023 21:03.59.470] [LOG]   Stopping module helper: newsfeed
[17.05.2023 21:03.59.471] [LOG]   Node_helpers stopped ...

config.js

/* MagicMirror² Config Sampl
 *
 * By Michael Teeuw https://michaelteeuw.nl
 * MIT Licensed.
 *
 * For more information on how you can configure this file
 * see https://docs.magicmirror.builders/configuration/introduction.html
 * 
 * 
 * and https://docs.magicmirror.builders/modules/configuration.html
 *
 * You can use environment variables using a `config.js.template` file instead of `config.js`
 * which will be converted to `config.js` while starting. For more information
 * see https://docs.magicmirror.builders/configuration/introduction.html#enviromnent-variables
 */
let 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",
	locale: "en-US",
	logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
	timeFormat: 12,
	units: "imperial",

	modules: [
		{
			module: "alert",
		},
		{
			module: "updatenotification",
			position: "top_bar"
		},
		{
			module: "clock",
			position: "top_left"
		},
		{
			module: "calendar",
			header: "US Holidays",
			position: "top_left",
			config: {
				calendars: [
					{
						symbol: "calendar-check",
						url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"
					}
				]
			}
		},
		{
			module: "compliments",
			position: "lower_third"
		},
		{
			module: "weather",
			position: "top_right",
			config: {
				weatherProvider: "openweathermap",
				type: "current",
				location: "Sparks",
				locationID: "5512862", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
				apiKey: "dabd18516f0c62f04966574fe2edd819"
			}
		},
		{
			module: "weather",
			position: "top_right",
			header: "Weather Forecast",
			config: {
				weatherProvider: "openweathermap",
				type: "forecast",
				location: "Sparks",
				locationID: "5512862", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
				apiKey: "dabd18516f0c62f04966574fe2edd819"
			}
		},
/*		{
 *  	module: "MMM-Jast",
 *  	position: "bottom-right",
 *  	config: {
 *   		currencyStyle: "code", // One of ["code", "symbol", "name"]
 *   		fadeSpeedInSeconds: 3.5,
 *  		lastUpdateFormat: "HH:mm",
 *  		maxChangeAge: 1 * 24 * 60 * 60 * 1000,
 *  		maxWidth: "100%",
 *  		numberDecimalsPercentages: 1,
 *  		numberDecimalsValues: 2,
 *  		scroll: "vertical", // One of ["none", "vertical", "horizontal"]
 *  		showColors: true,
 *  		showCurrency: true,
 *  		showChangePercent: true,
 *  		showChangeValue: false,
 *  		showChangeValueCurrency: false,
 *  		showHiddenStocks: false,
 *  		showLastUpdate: false,
 *  		showPortfolioValue: false,
 *  		showPortfolioGrowthPercent: false,
 *  		showPortfolioGrowth: false,
 *  		updateIntervalInSeconds: 300,
 *  		useGrouping: false,
 *  		virtualHorizontalMultiplier: 2,
 *  		stocks: [
 *  			{ name: "Dow Jones", symbol: "DJI'"},
 *  			{ name: "San Juan RT", symbol: "SJT"},
 *  			{ name: "Barrick", symbol: "GOLD"},
 *  			{ name: "Devon Energy", symbol: "DVN"},
 *  			{ name: "Alt Harvest", symbol: "MJ"}
 *			    ]
 *		    }
 */ 	    
 		{
 			module: "newsfeed",
 			position: "bottom_bar",
 			config: {
 				feeds: [
					{
						title: "New York Times",
						url: "https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"
					}
				],
				showSourceTitle: true,
				showPublishDate: true,
				broadcastNewsFeeds: true,
				broadcastNewsUpdates: true
			}
		},
	]
};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

Additional info

No response

No new stock figures after some days

Platform

Raspbian GNU/Linux 11 (bullseye)

Node.js Version

v16.16.0

MagicMirror Version

2.20.0

Module Version

v2.8.0

Description

Module is working fine for some days - after that the data is not updated any more. Reboot of the Mirror brings back the function. Tried to find entries in the PM2 LOG but it only tells me when the Module was loaded first.

Expected behavior

Data is constantly updated - Entry in mm-out.log "MMM-JAST-Fetcher: Values Updated"

Current behavior

Working for some days after that no updates of stock data - values stay constant without update

Possible solution

No response

Steps to reproduce

Run for some days without reboot - data is not updated any more

Log

pi@MagicMirror:~ $ pm2 log
[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
/home/pi/.pm2/pm2.log last 15 lines:
PM2        | 2022-09-06T20:42:12: PM2 log: PM2 version          : 5.2.0
PM2        | 2022-09-06T20:42:12: PM2 log: Node.js version      : 16.16.0
PM2        | 2022-09-06T20:42:12: PM2 log: Current arch         : arm
PM2        | 2022-09-06T20:42:12: PM2 log: PM2 home             : /home/pi/.pm2
PM2        | 2022-09-06T20:42:12: PM2 log: PM2 PID file         : /home/pi/.pm2/pm2.pid
PM2        | 2022-09-06T20:42:12: PM2 log: RPC socket file      : /home/pi/.pm2/rpc.sock
PM2        | 2022-09-06T20:42:12: PM2 log: BUS socket file      : /home/pi/.pm2/pub.sock
PM2        | 2022-09-06T20:42:12: PM2 log: Application log path : /home/pi/.pm2/logs
PM2        | 2022-09-06T20:42:12: PM2 log: Worker Interval      : 30000
PM2        | 2022-09-06T20:42:12: PM2 log: Process dump file    : /home/pi/.pm2/dump.pm2
PM2        | 2022-09-06T20:42:12: PM2 log: Concurrent actions   : 2
PM2        | 2022-09-06T20:42:12: PM2 log: SIGTERM timeout      : 1600
PM2        | 2022-09-06T20:42:12: PM2 log: ===============================================================================
PM2        | 2022-09-06T20:42:12: PM2 log: App [mm:0] starting in -fork mode-
PM2        | 2022-09-06T20:42:12: PM2 log: App [mm:0] online

/home/pi/.pm2/logs/mm-error.log last 15 lines:
0|mm       | [1320:0906/204253.338629:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
0|mm       | [1373:0906/204253.844766:ERROR:gpu_memory_buffer_support_x11.cc(44)] dri3 extension not supported.
0|mm       | [1347:0906/204253.936896:ERROR:command_buffer_proxy_impl.cc(126)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.

/home/pi/.pm2/logs/mm-out.log:

> [email protected] start
> DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js

[06.09.2022 20:42.26.458] [LOG]   Starting MagicMirror: v2.20.0
[06.09.2022 20:42.26.476] [LOG]   Loading config ...
[06.09.2022 20:42.26.507] [LOG]   Loading module helpers ...
[06.09.2022 20:42.26.519] [LOG]   No helper found for module: alert.
[06.09.2022 20:42.26.524] [LOG]   No helper found for module: clock.
[06.09.2022 20:42.27.312] [LOG]   Initializing new module helper ...
[06.09.2022 20:42.27.317] [LOG]   Module helper loaded: calendar
[06.09.2022 20:42.27.325] [LOG]   No helper found for module: weather.
[06.09.2022 20:42.27.448] [LOG]   Initializing new module helper ...
[06.09.2022 20:42.27.451] [LOG]   Module helper loaded: newsfeed
[06.09.2022 20:42.27.470] [LOG]   Initializing new module helper ...
[06.09.2022 20:42.27.496] [LOG]   Module helper loaded: MMM-MoonPhase
[06.09.2022 20:42.29.512] [LOG]   Initializing new module helper ...
[06.09.2022 20:42.29.514] [LOG]   Module helper loaded: MMM-Jast
[06.09.2022 20:42.31.334] [LOG]   Initializing new module helper ...
[06.09.2022 20:42.31.336] [LOG]   Check MagicMirror² version for node helper 'MMM-Loxone' - Minimum version: 2.1.1 - Current version: 2.20.0
[06.09.2022 20:42.31.340] [LOG]   Version is ok!
[06.09.2022 20:42.31.341] [LOG]   Module helper loaded: MMM-Loxone
[06.09.2022 20:42.31.344] [LOG]   All module helpers loaded.
[06.09.2022 20:42.43.777] [LOG]   Starting server on port 8080 ... 
[06.09.2022 20:42.43.834] [LOG]   Server started ...
[06.09.2022 20:42.43.838] [LOG]   Connecting socket for: calendar
[06.09.2022 20:42.43.840] [LOG]   Starting node helper for: calendar
[06.09.2022 20:42.43.842] [LOG]   Connecting socket for: newsfeed
[06.09.2022 20:42.43.845] [LOG]   Starting node helper for: newsfeed
[06.09.2022 20:42.43.847] [LOG]   Connecting socket for: MMM-MoonPhase
[06.09.2022 20:42.43.849] [LOG]   Starting module helper: MMM-MoonPhase
[06.09.2022 20:42.43.853] [LOG]   Connecting socket for: MMM-Jast
[06.09.2022 20:42.43.855] [LOG]   MMM-Jast helper method started...
[06.09.2022 20:42.43.877] [LOG]   Connecting socket for: MMM-Loxone
[06.09.2022 20:42.43.883] [LOG]   Sockets connected & modules started ...
[06.09.2022 20:42.45.450] [LOG]   Launching application.
[06.09.2022 20:42.59.378] [LOG]   Create new calendarfetcher for url: http://localhost:8080/modules/calendars/.ics - Interval: 300000
[06.09.2022 20:42.59.421] [LOG]   Create new newsfetcher for url: http://derStandard.at/?page=rss&ressort=Seite1 - Interval: 300000
[06.09.2022 20:42.59.434] [LOG]   Create new newsfetcher for url: https://rss.orf.at/news.xml - Interval: 300000
[06.09.2022 20:43.00.168] [INFO]  Newsfeed-Fetcher: Broadcasting 50 items.
[06.09.2022 20:43.00.784] [INFO]  Calendar-Fetcher: Broadcasting 9 events.
[06.09.2022 20:43.03.755] [INFO]  MMM-Loxone Opening Socket to your Miniserver
[06.09.2022 20:43.05.243] [LOG]   MMM-Loxone Download LoxApp3.json
[06.09.2022 20:43.05.515] [INFO]  Newsfeed-Fetcher: Broadcasting 175 items.
[06.09.2022 20:43.05.710] [INFO]  MMM-Loxone Search room with uuid: 0ea3ebd1-00eb-04ef-ffff390cde3b9b45
[06.09.2022 20:43.05.716] [INFO]  MMM-Loxone Found room: OG Bad
[06.09.2022 20:43.05.719] [INFO]  MMM-Loxone Search IRC for room temperature
[06.09.2022 20:43.05.724] [INFO]  MMM-Loxone Found IRC (Intelligente Raumregelung) in room OG Bad
[06.09.2022 20:43.05.726] [INFO]  MMM-Loxone Check if presenceUuid is defined
[06.09.2022 20:43.05.730] [INFO]  MMM-Loxone Search LightControls and LightV2Controls in room
[06.09.2022 20:43.05.734] [INFO]  MMM-Loxone Found LightControl (Badezimmerlicht) in room OG Bad
[06.09.2022 20:43.05.737] [LOG]   MMM-Loxone observing Uuid (0f1f697f-002c-93d3-ffff390cde3b9b45) is not supported, only VirtualStates or States are supported!
[06.09.2022 20:43.05.739] [INFO]  MMM-Loxone NotificationUuid: 0ea3ebd1-008d-029d-ffff390cde3b9b45
[06.09.2022 20:43.05.741] [INFO]  MMM-Loxone Enabling statusupdates
[06.09.2022 20:43.05.789] [LOG]   MMM-Loxone Successfully executed 'dev/sps/enablebinstatusupdate' with code 200 and value 1
[06.09.2022 20:43.07.001] [INFO]  MMM-Loxone Got room temperature: 23
[06.09.2022 20:43.07.278] [INFO]  MMM-Loxone Got lightMood change to: All off(778)

config.js

{
        module: "MMM-Jast",
        position: "bottom_right",
        config: {
                currencyStyle: "symbol", // One of ["code", "symbol", "name"]
                fadeSpeedInSeconds: 3.5,
                lastUpdateFormat: "HH:mm",
                maxChangeAge: 1 * 24 * 60 * 60 * 1000,
                maxWidth: "100%",
                numberDecimalsPercentages: 1,
                numberDecimalsValues: 2,
                scroll: "none", // One of ["none", "vertical", "horizontal"]
                showColors: true,
                showCurrency: true,
                showChangePercent: true,
                showChangeValue: false,
                showChangeValueCurrency: false,
                showLastUpdate: false,
                showPortfolioValue: false,
                showPortfolioGrowthPercent: false,
                showPortfolioGrowth: false,
                updateIntervalInSeconds: 300,
                useGrouping: false,
                virtualHorizontalMultiplier: 2,
                stocks: [ //https://finance.yahoo.com/
                        { name: "Bitcoin", symbol: "BTC-USD" },
                        { name: "EURO USD", symbol: "EURS-USD" },
                        { name: "ölpreis", symbol: "BZ=F" },
                        //{ name: "S&P500", symbol: "IHPCF" },
                        { name: "PayPal", symbol: "PYPL" },
                        { name: "Linde", symbol: "LIN.DE" },
                        { name: "Amazon.com", symbol: "AMZN" },
                        { name: "Microsoft", symbol: "MSFT" },
                        { name: "NEL", symbol: "D7G.F" },
                        { name: "Walt Disney", symbol: "DIS" },
                        { name: "AMD", symbol: "AMD" },
                        { name: "VERBUND", symbol: "VER.VI" },
                        { name: "Tesla", symbol: "TSLA"}
                ]
        }
},

Additional info

No response

Readme example missing comma

When copying and pasting the example config settings you will get an error when you start the server as a comma is missing between showDepotGrowth: false and the stock symbols array.

Loading...

Hi,
I have this plugin and all worked fine for long time.
Nothing has been changed on my end and now it's still just "Loading..."
Any advise?
Thank you

Pavol

Stock currency no longer right aligned

Platform

Raspberry PI OS

Node.js Version

18.19.0

MagicMirror Version

2.20.0

Module Version

v2.9.3

Description

In the previous version, the currency used to be right aligned but now it's jagged since it's left aligned with the stock name.

I tried messing with the CSS to fix this, but nothing worked to help move the currency to the right.

Expected behavior

No response

Current behavior

No response

Possible solution

No response

Steps to reproduce

  1. Navigate to the MagicMirror/modules directory and execute the following command
    git clone https://github.com/jalibu/MMM-Jast
  2. Change into the MMM-Jast module folder and install runtime dependencies with
    cd MMM-Jast
    npm install
  3. Add the module sample configuration into the MagicMirror/config/config.js file:
  4. Update config.js
    currencyStyle: "symbol",
    displayMode: "none",

Log

No response

config.js

{
			module: "MMM-Jast",
			position: "top_right",
			header: "Stonks",
			config: {
				currencyStyle: "symbol", // One of ["code", "symbol", "name"]
				fadeSpeedInSeconds: 3.5,
				lastUpdateFormat: "HH:mm",
				maxChangeAge: 1 * 24 * 60 * 60 * 1000,
				maxWidth: "100%",
				numberDecimalsPercentages: 1,
				numberDecimalsValues: 2,
				displayMode: "none", // One of ["none", "vertical", "horizontal", "table"]
				showColors: false,
				showCurrency: true,
				showChangePercent: true,
				showChangeValue: false,
				showChangeValueCurrency: false,
				showHiddenStocks: false,
				showLastUpdate: false,
				showPortfolioValue: false,
				showPortfolioGrowthPercent: false,
				showPortfolioGrowth: false,
				showPortfolioPerformanceValue: false,
				showPortfolioPerformancePercent: false,
				showStockPerformanceValue: false,
				showStockPerformanceValueSum: false,
				showStockPerformancePercent: false,
				stocksPerPage: 2, // Only relevant for display mode "table"
				updateIntervalInSeconds: 300,
				useGrouping: false,
				virtualHorizontalMultiplier: 2,
				stocks: [
				  { name: 'SPDR S&P 500', symbol: 'SPY'},
				  { name: 'Vanguard', symbol: 'VOO'},
				  { name: 'Tesla', symbol: 'TSLA'},
				  { name: 'Apple', symbol: 'AAPL'}
						]
					}
		},

Additional info

No response

Module Not Appearing

Hello everyone! I'm trying to make the vertical tickers scrolled on the MagicMirror. However, nothing is appearing. If anyone could help, that'd be very appreciated.

Config.js: pastebin.com/MPbD9kpW

ETF

I would like to have the ETF prices displayed. Is there a possibility?

API request for BTC-USD failed: Invalid Cookie

Platform

Raspberry Pi OS

Node.js Version

v16.20.1

MagicMirror Version

2.23.0

Module Version

v2.8.2

Description

Hi, the module was runnin fine for quite some time but some days ago it sopped working. PM2 Log shows me

[18.07.2023 21:46.56.007] [WARN] API request for BTC-USD failed: Invalid Cookie

Was there any chage in the API?

Expected behavior

No response

Current behavior

No response

Possible solution

No response

Steps to reproduce

Restart Magic Mirror, wait till error message appears. Module is not loading any more. only "Loading" appears.

Log

No response

config.js

{
                        module: "MMM-Jast",
                        position: "bottom_right",
                        config: {
                                currencyStyle: "symbol", // One of ["code", "symbol", "name"]
                                fadeSpeedInSeconds: 3.5,
                                lastUpdateFormat: "HH:mm",
                                maxChangeAge: 1 * 24 * 60 * 60 * 1000,
                                maxWidth: "100%",
                                numberDecimalsPercentages: 1,
                                numberDecimalsValues: 2,
                                scroll: "none", // One of ["none", "vertical", "horizontal"]
                                showColors: true,
                                showCurrency: true,
                                showChangePercent: true,
                                showChangeValue: false,
                                showChangeValueCurrency: false,
                                showLastUpdate: false,
                                showPortfolioValue: false,
                                showPortfolioGrowthPercent: false,
                                showPortfolioGrowth: false,
                                updateIntervalInSeconds: 300,
                                useGrouping: false,
                                virtualHorizontalMultiplier: 2,
                                stocks: [ //https://finance.yahoo.com/
                                        { name: "Bitcoin", symbol: "BTC-USD" }
                                ]
                        }
                },

Additional info

No response

Support Custom Formatting

The last few updates have broken my formatting using custom CSS. The current default alignment in vertical mode aligns all text to the left. I am looking for something more "accounting style" where the numbers on the right are all aligned vertically with the colons on the left also aligned.

A simple way to allow folks to customize their alignment would be to assign and publish unique class names to each of the spans (many currently are not assigned classes).

I've tried a number of ways to format with the current update, but because of how the spans are nested and classed (or not classed), I am unable to get there.

As I inspect the html, I see something like the following:

<li class="jast-stock">
<span>NVIDIA:</span>
<span class="high">
<span>490.97</span>
"("
<span class="jast-change-value">+2.3%</span>
")"
</span>
</span>
<span class> </span>
</li>

So the span with the stock name and stock price have no class. And you can see a weird span at the bottom that appears to be an error, with a partial class label. Perhaps something like "jast-stock-name" and "jast-stock-price". Thanks!

Update Yahoo Stock API

Platform

Ubuntu Desktop 20.04

Node.js Version

16.14.0

MagicMirror Version

2.19.0

Module Version

v2.6.2

Description

Module gives the following warning when pulling down the latest stock info.
[13.05.2022 14:09.36.426] [WARN] [yahoo-finance2] Please upgrade to yahoo-finance2@latest, i.e. 2.x. The only breaking change is a fix in quoteSummary to correctly return Date objects instead of numerical timestamps in these submodules: defaultKeyStatistics, earningsHistory, insiderHolders. For more info see: https://github.com/gadicc/node-yahoo-finance2/commit/4cf1f624d55d92f80db4b36b3afe9414f5eb5a3c

Expected behavior

Warning should not be issued.

Current behavior

No response

Possible solution

Upgrade module API to latest according to warning.

Steps to reproduce

  1. Install latest MM & JAST version.
  2. run as normal.
  3. check logs.

Log

[13.05.2022 14:09.36.426] [WARN]  [yahoo-finance2] Please upgrade to yahoo-finance2@latest, i.e. 2.x.  The only breaking change is a fix in quoteSummary to correctly return Date objects instead of numerical timestamps in these submodules: defaultKeyStatistics, earningsHistory, insiderHolders. For more info see: https://github.com/gadicc/node-yahoo-finance2/commit/4cf1f624d55d92f80db4b36b3afe9414f5eb5a3c

config.js

not necessary

Additional info

No response

MMM-Jast fails to display Australian ETF's

Platform (Hardware/OS): Raspberry Pi OS

Node version:

MagicMirror version: V2.15.0

Module version:

Description of the issue: MMM-Jast fails to display Australian (ASX) ETF prices.

Using latest MMM-Jast

Can successfully pull single Australian stocks (e.g AfterPay "APT.AX" displays correctly) can also pull AUD/USD ("AUDUSD=X") and the ASX200 ("^AXJO") however fails to display data for Australian ETFS (specifically ETHI & VDHG "ETHI.AX" "VDHG.AX")

Successfully pulls American ETF prices (trialled two different ones)

I see an Error in terminal (however doesn't seem to have any effect on module function?)

[21.06.2021 11:19.48.414] [ERROR] Failed to fetch git data for MMM-Jast: Error: block timeout reached

Config is as follows:

	  {
			module: "MMM-Jast",
			position: "top_left",
				config: {
					maxWidth: "100%",
					updateIntervalInSeconds: 300,
					fadeSpeedInSeconds: 3.5, // Higher value: vertical -> faster // horizontal -> slower
					scroll: "none", // One of ["none", "vertical", "horizontal"]
					useGrouping: false,
					currencyStyle: "code", // One of ["code", "symbol", "name"]
					showColors: true,
					showCurrency: true,
					showChangePercent: true,
					showChangeValue: false,
					showChangeValueCurrency: false,
					showDepot: false,
					showDepotGrowthPercent: false,
					showDepotGrowth: false,
					numberDecimalsValues: 2,
					numberDecimalsPercentages: 1,
					virtualHorizontalMultiplier: 2,
						stocks: [
							{ name: "AUD/USD", symbol: "AUDUSD=X", },
							{ name: "ASX200", symbol: "^AXJO", },
							{ name: "ETHI-ETF", symbol: "ETHI.AX" },
							{ name: "VDHG-ETF", symbol: "VDHG.AX" }, 
							{ name: "AfterPay", symbol: "APT.AX" },
							{ name: "VUG-ETF", symbol: "VUG" } 
					}
	},

(Fails to display ETHI-ETF & VDHG-ETF however displays VUG-ETF)

doesn't seem to produce an error as it does when symbols are wrong. I think its probably returning something, however its something that MMM-Jast is not prepared for?

This is about my extent of trouble shooting & programming skills.

Interested to see if you can suggest a fix.

List view - unformatted value

Platform

Ubuntu Desktop 20.04

Node.js Version

16.14.0

MagicMirror Version

2.19.0

Module Version

v2.6.3

Description

Displaying stock prices in vertical format, not scrolling, using custom css When pulling down information, CSS allows formatting for changes (increase or decrease in value) using span.high and span.low respectively, but does not provide a span for values that are unchanged. Therefore these values do not come in well.

Expected behavior

There should be a span.static or something like it that allows custom CSS to be written for those values as well. Or maybe I just couldn't find it, in which case help, please! :)

Current behavior

No response

Possible solution

No response

Steps to reproduce

Run MMM-Jast in vertical mode with custom span.high and span.low values.

Here is the block of custom CSS I use for MMM-Jast on my mirror:

.jast-wrapper {
        display: inline;
        text-align: left;
}

.jast-wrapper {
        /*horizontal-align: left;*/
        overflow: hidden;
        --size: 20px;
        font-size: var(--size);
        line-height: calc(var(--size) * 1.22);
}

.jast-wrapper .jast-stock {
        width: 400px;
        border-style: none;
        border-width: 1px;
        padding-left: 0px;
        clear: left;
}


.jast-wrapper .jast-stock span.high {
        text-align: right;
        float: right;
}

.jast-wrapper .jast-stock span.low {
        text-align: right;
        float: right;
}

.jast-wrapper span.jast-change {

        display: inline-block;
        text-align: right;
        float: right;
        width: 60px;
        margin-right: 10px;
        padding-left: 10px;

}

Log

No response

config.js

Just showing the MMM-Jast config:


{
        module: "MMM-Jast",
        position: "top_right",
        config: {
                maxWidth: "100%",
                updateIntervalInSeconds: 300,
                fadeSpeedInSeconds: 3.5,
                scroll: "none", // One of ["none", "vertical", "horizontal"]
                useGrouping: false,
                currencyStyle: "code", // One of ["code", "symbol", "name"]
                lastUpdateFormat: "HH:mm",
                showColors: true,
                showCurrency: true,
                showChangePercent: true,
                showChangeValue: false,
                showChangeValueCurrency: false,
                showLastUpdate: true,
                showPortfolioValue: true,
                showPortfolioGrowthPercent: false,
                showPortfolioGrowth: true,
                numberDecimalsValues: 2,
                numberDecimalsPercentages: 1,
                virtualHorizontalMultiplier: 2,
                stocks: [
                        { name: "Apple", symbol: "AAPL", quantity: 1 },
                        { name: "Aerojet Rocketdyne", symbol: "AJRD", quantity: 1 },
                        { name: "Amazon", symbol: "AMZN", quantity: 1 },
                        { name: "B&N Education", symbol: "BNED", quantity: 1 },
                        { name: "Disney", symbol: "DIS", quantity: 1 },
                        { name: "Facebook", symbol: "FB", quantity: 1 },
                        { name: "GoPro", symbol: "GPRO", quantity: 1 },
                        { name: "Innovio", symbol: "INO", quantity: 1 },
                        { name: "Intel Corp", symbol: "INTC", quantity: 1 },
                        { name: "Lyft", symbol: "LYFT", quantity: 1 },
                        { name: "Moderna", symbol: "MRNA", quantity: 1 },
                        { name: "Nikola", symbol: "NKLA", quantity: 1 },
                        { name: "Microsoft", symbol: "MSFT", quantity: 1 },
                        { name: "Nintendo", symbol: "NTDOY", quantity: 1 },
                        { name: "Party City", symbol: "PRTY", quantity: 1 },
                        { name: "Peloton", symbol: "PTON", quantity: 1 },
                        { name: "Tesla", symbol: "TSLA", quantity: 1 },
                        { name: "United Airlines", symbol: "UAL", quantity: 1 },
                ]

        }
},// end MMM-Jast stock ticker


### Additional info

I would love to create pull requests for you and add features but I'm not sure how you're generating your code since it is mini-fied.  If you are open to that, I'd be interested in discussing further.

Ignoring decimal places parameters.

Platform

Raspberry Pi OS Bullseye 64

Node.js Version

16.20.0

MagicMirror Version

2.23

Module Version

v2.80

Description

The module is ignoring the config values for numberDecimalsPercentages and numberDecimalsValues
Regardless of the settings, the stock values and change percentages are showing 3 decimal places.

MMM-Jast Screenshot

Expected behavior

I would expect AMZN to show as 124..86 (-0.93) and UA as 6.83 (-0.10)

Current behavior

AMZN shows as 124..855 (-0.925) and UA as 6.825 (-0.0985)

Possible solution

I believe the module is ignoring the config values and defaults for those attributes.

Steps to reproduce

The issue is constant and repeatable.

Log

No errors, just incorrect formatting

config.js

{
	module: "MMM-Jast",
	position: "bottom_bar",
	config: {
		currencyStyle: "code", // One of ["code", "symbol", "name"]
		fadeSpeedInSeconds: 100,
		lastUpdateFormat: "HH:mm",
		maxChangeAge: 1 * 24 * 60 * 60 * 1000,
		maxWidth: "100%",
		numberDecimalsPercentages: 1,
		numberDecimalsValues: 2,
		scroll: "horizontal", // One of ["none", "vertical", "horizontal"]
		showColors: true,
		showCurrency: false,
		showChangePercent: false,
		showChangeValue: true,
		showChangeValueCurrency: false,
		showHiddenStocks: false,
		showLastUpdate: false,
		showPortfolioValue: false,
		showPortfolioGrowthPercent: false,
		showPortfolioGrowth: false,
		updateIntervalInSeconds: 300,
		useGrouping: false,
		virtualHorizontalMultiplier: 2,
		stocks: [
			{ name: "DJI", symbol: "^DJI"},
			{ name: "NASD", symbol: "^IXIC"},
			{ name: "AAPL", symbol: "AAPL" },
			{ name: "GOOG", symbol: "GOOG"},
                        { name: "AMZN", symbol: "AMZN"},
                        { name: "META", symbol: "META"},
                        { name: "TSLA", symbol: "TSLA"},
                        { name: "UA", symbol: "UA"}
		]
	}
}

Additional info

No response

Invalid Cookie

Platform

Docker

Node.js Version

v18.16.1

MagicMirror Version

2.24.0

Module Version

v2.8.0

Description

Since the last few days, I'm getting the following error, and the module is stuck at 'Loading':

[WARN] API request for ETH-INR failed: Invalid Cookie

config.js has the following:

{
module: "MMM-Jast",
position: "top_right",
config: {
currencyStyle: "code", // One of ["code", "symbol", "name"]
fadeSpeedInSeconds: 350,
lastUpdateFormat: "HH:mm",
maxChangeAge: 1 * 24 * 60 * 60 * 1000,
maxWidth: "100%",
numberDecimalsPercentages: 0,
numberDecimalsValues: 0,
scroll: "none", // One of ["none", "vertical", "horizontal"]
showColors: true,
showCurrency: false,
showChangePercent: true,
showChangeValue: false,
showChangeValueCurrency: false,
showHiddenStocks: false,
showLastUpdate: false,
showPortfolioValue: false,
showPortfolioGrowthPercent: false,
showPortfolioGrowth: false,
updateIntervalInSeconds: 300,
useGrouping: true,
virtualHorizontalMultiplier: 2,
stocks: [
{ name: "ETH", symbol: "ETH-INR", quantity: 1 },
{name: "NIFTY 50", symbol:"^NSEI"},
{ name: "NIFTY BeES", symbol: "NIFTYBEES.NS" },
{ name: "USD", symbol: "INR=X" },
{ name: "VOO - US", symbol: "VOO"},
]
}
},

Expected behavior

No response

Current behavior

No response

Possible solution

No response

Steps to reproduce

  1. Start MM
  2. Module gets stuck

Log

No response

config.js

{
        module: "MMM-Jast",
        position: "top_right",
        config: {
            currencyStyle: "code", // One of ["code", "symbol", "name"]
            fadeSpeedInSeconds: 350,
            lastUpdateFormat: "HH:mm",
            maxChangeAge: 1 * 24 * 60 * 60 * 1000,
            maxWidth: "100%",
            numberDecimalsPercentages: 0,
            numberDecimalsValues: 0,
            scroll: "none", // One of ["none", "vertical", "horizontal"]
            showColors: true,
            showCurrency: false,
            showChangePercent: true,
            showChangeValue: false,
            showChangeValueCurrency: false,
            showHiddenStocks: false,
            showLastUpdate: false,
            showPortfolioValue: false,
            showPortfolioGrowthPercent: false,
            showPortfolioGrowth: false,
            updateIntervalInSeconds: 300,
            useGrouping: true,
            virtualHorizontalMultiplier: 2,
            stocks: [
                { name: "ETH", symbol: "ETH-INR", quantity: 1 },
                {name: "NIFTY 50", symbol:"^NSEI"},
                { name: "NIFTY BeES", symbol: "NIFTYBEES.NS" },
                { name: "USD", symbol: "INR=X" },
                { name: "VOO - US", symbol: "VOO"},
            ]
        }
    },

Additional info

No response

Show "$" instead of "USD"

Great codebase, very organized!
The module is very useful as well.

Is this possible to configure? I'd like to see:
TICKER $XX.XX (+$XX.XX)
instead of :
TICKER XX.XX USD (+XX.XX USD)

Show change only during weekdays?

I love the module, just wondering if it would be possible to add a feature where the percentage change in stock value is only visible during weekdays and not on weekends.

Invalid Cookie

Platform

Raspberry Pi OS

Node.js Version

16.20.1

MagicMirror Version

2.24.0

Module Version

v2.8.2 0295f2c

Description

Module just shows "Loading"

Logs show the following:

0|mm | [17.07.2023 07:23.57.908] [WARN] API request for ^NYA failed: Invalid Cookie
0|mm | [17.07.2023 07:23.57.911] [WARN] API request for ^DJI failed: Invalid Cookie
0|mm | [17.07.2023 07:23.57.913] [WARN] API request for LMT failed: Invalid Cookie
0|mm | [17.07.2023 07:23.57.914] [WARN] API request for GOOG failed: Invalid Cookie
0|mm | [17.07.2023 07:23.57.915] [WARN] API request for AAPL failed: Invalid Cookie

Expected behavior

The ticker should show the latest stock prices.

Current behavior

Module just shows "Loading"

Possible solution

Fix cookie issue?

Steps to reproduce

  1. Start MM
  2. Wait for it to load
  3. See "Loading" where it should show stocks.

Log

0|mm       | [17.07.2023 07:23.57.908] [WARN]  API request for ^NYA failed: Invalid Cookie
0|mm       | [17.07.2023 07:23.57.911] [WARN]  API request for ^DJI failed: Invalid Cookie
0|mm       | [17.07.2023 07:23.57.913] [WARN]  API request for LMT failed: Invalid Cookie
0|mm       | [17.07.2023 07:23.57.914] [WARN]  API request for GOOG failed: Invalid Cookie
0|mm       | [17.07.2023 07:23.57.915] [WARN]  API request for AAPL failed: Invalid Cookie

config.js

pi@raspberrypi:~/install/mm2/backup $ cat config.js
/* MagicMirror² Config Sample
 *
 * By Michael Teeuw https://michaelteeuw.nl
 * MIT Licensed.
 *
 * For more information on how you can configure this file
 * see https://docs.magicmirror.builders/configuration/introduction.html
 * and https://docs.magicmirror.builders/modules/configuration.html
 *
 * You can use environment variables using a `config.js.template` file instead of `config.js`
 * which will be converted to `config.js` while starting. For more information
 * see https://docs.magicmirror.builders/configuration/introduction.html#enviromnent-variables
 */
let 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",
    locale: "en-US",
    logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
    timeFormat: 24,
    units: "imperial",

    modules: [
	{
	    module: "alert",
	},
	{
	    module: "updatenotification",
	    position: "top_bar"
	},
	{
	    module: "clock",
	    position: "top_left"
	},
        {
            module: 'calendar_monthly',
            position: 'top_left',
            config: {
                // The config property is optional
                // Without a config, a default month view is shown                                                             
                // Please see the 'Configuration Options' section for more information                                         
            }
        },
	{
	    module: "weather",
	    position: "top_right",
	    config: {
		weatherProvider: "openweathermap",
		type: "current",
		location: "New York",
		locationID: "4828862", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
		apiKey: "xxx"
	    }
	},
	{
	    module: 'MMM-AirQuality',
	    position: 'top_center', // you may choose any location
	    header: 'AQI', //choose a header if you like
	    config: {
		location: 'usa/newjersey/camden-spruce-st' // the location to check the index for
	    }
	},
	{
	    module: "weather",
	    position: "top_center",
	    header: "Weather Forecast",
	    config: {
		fade: false,
		weatherProvider: "openweathermap",
		weatherEndpoint: "/onecall",
		//type: "forecast",
		type: "hourly", // location and locationID are ignored, uses lat/lon instead.
		location: "New York",
		locationID: "4828862", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
		apiKey: "xxx",
		lat: xxx
		lon: xxx,
		maxEntries: 7
	    }
	},
        {
            module: 'MMM-SystemStats',
            position: 'top_right', // This can be any of the regions.
            // classes: 'small dimmed', // Add your own styling. OPTIONAL.
            // header: 'System Stats', // Set the header text OPTIONAL
            config: {
                updateInterval: 10000, // every 10 seconds
                align: 'right', // align labels
                //header: 'System Stats', // This is optional
                units: 'metric', // default, metric, imperial
                view: 'textAndIcon',
            },
	},
	{
	    module: "newsfeed",
	    position: "bottom_bar",
	    config: {
		feeds: [
		    {
			title: "Associated Press - Technology",
			url: "https://rsshub.app/apnews/topics/technology"
		    },
		    {
			title: "Associated Press - Politics",
			url: "https://rsshub.app/apnews/topics/politics"
		    },
		    {
			title: "CNN - Top Stories",
			url: "http://rss.cnn.com/rss/cnn_topstories.rss"
		    },
		    {
			title: "CNN - World",
			url: "http://rss.cnn.com/rss/cnn_world.rss"
		    },
		    {
			title: "CNN - U.S.",
			url: "http://rss.cnn.com/rss/cnn_us.rss"
		    },
		    {
			title: "CNN - Business",
			url: "http://rss.cnn.com/rss/money_latest.rss"
		    },
		    {
			title: "CNN - Politics",
			url: "http://rss.cnn.com/rss/cnn_allpolitics.rss"
		    },
		    {
			title: "CNN - Technology",
			url: "http://rss.cnn.com/rss/cnn_tech.rss"
		    },
		    {
			title: "New York Times",
			url: "https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"
		    },
		    {
			title: "Wall Street Journal - World News",
			url: "https://feeds.a.dj.com/rss/RSSWorldNews.xml"
		    },
		    {
			title: "Wall Street Journal - Business",
			url: "https://feeds.a.dj.com/rss/WSJcomUSBusiness.xml"
		    },
		    {
			title: "Wall Street Journal - Market News",
			url: "https://feeds.a.dj.com/rss/RSSMarketsMain.xml"
		    },
		    {
			title: "Wall Street Journal - Technology",
			url: "https://feeds.a.dj.com/rss/RSSWSJD.xml"
		    },
		    {
			title: "MacRumors",
                        url: "http://feeds.macrumors.com/MacRumors-All",
		    }		    
		],
		showSourceTitle: true,
		showPublishDate: true,
		broadcastNewsFeeds: true,
		broadcastNewsUpdates: true
	    }
	},
	{
	    module: "MMM-Jast",
	    position: "bottom_bar",
	    config: {
		currencyStyle: "symbol", // One of ["code", "symbol", "name"]
		fadeSpeedInSeconds: 60,
		lastUpdateFormat: "HH:mm",
		maxChangeAge: 1 * 24 * 60 * 60 * 1000,
		maxWidth: "100%",
		numberDecimalsPercentages: 1,
		numberDecimalsValues: 2,
		scroll: "horizontal", // One of ["none", "vertical", "horizontal"]
		showColors: true,
		showCurrency: true,
		showChangePercent: true,
		showChangeValue: false,
		showChangeValueCurrency: false,
		showHiddenStocks: false,
		showLastUpdate: true,
		showPortfolioValue: false,
		showPortfolioGrowthPercent: false,
		showPortfolioGrowth: false,
		updateIntervalInSeconds: 10,
		useGrouping: false,
		virtualHorizontalMultiplier: 2,
		stocks: [
		    { name: "NYSE", symbol: "^NYA" },
		    { name: "DJ", symbol: "^DJI" },
		    { name: "LM", symbol: "LMT" },
		    { name: "Google", symbol: "GOOG" },
		    { name: "Apple", symbol: "AAPL"}
		]
	    }
	},

    ]
};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

Additional info

I recently did a git pull on MMM-Jast because a notification stated a new version was available. However, the "Loading" issue was happening before the update. I was hoping the update would fix it, but it did not.

UNDEFINED on the screen and "template read error..." in the debug messages.

Platform

MAC OS 11.5.2

Node.js Version

14.15.4

MagicMirror Version

2.14.0

Module Version

1cd39c3

Description

Module fails leaving message "UNDEFINED" on mirror. This is occurring on my Mac running MAC OS 11.5.2. This is typically where I test my code changes before uploading them to the Raspberry Pi that runs the actual mirror.

Expected behavior

No response

Current behavior

No response

Possible solution

No response

Steps to reproduce

This occurs when the module starts.

Log

template render error: (templates/MMM-Jast.njk) [Line 16, Column 42]
  TypeError: Cannot read property 'toLocaleString' of undefined
    at Object.n.t (http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:2466)
    at http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:37398
    at eval (eval at i.B (http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:38002), <anonymous>:22:11)
    at http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:37756
    at n.root [as rootRenderFunc] (eval at i.B (http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:38002), <anonymous>:264:3)
    at n.i.getExported (http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:37712)
    at eval (eval at i.B (http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:38002), <anonymous>:21:5)
    at http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:35101
    at o (http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:34826)
    at http://localhost:8080/vendor/node_modules/nunjucks/browser/nunjucks.min.js:2:63436
(anonymous) @ module.js:96
(anonymous) @ environment.js:20
h.call @ browser-asap.js:48
u @ browser-raw.js:52
characterData (async)
r @ browser-raw.js:147
i @ browser-raw.js:16
u @ browser-asap.js:35
E @ environment.js:19
(anonymous) @ environment.js:495
(anonymous) @ VM190:22
(anonymous) @ environment.js:540
root @ VM194:264
i.getExported @ environment.js:538
(anonymous) @ VM190:21
(anonymous) @ environment.js:261
o @ environment.js:273
(anonymous) @ web-loaders.js:50
i.onreadystatechange @ web-loaders.js:74
XMLHttpRequest.send (async)
e.fetch @ web-loaders.js:88
e.getSource @ web-loaders.js:33
(anonymous) @ environment.js:283
e @ lib.js:310
n.asyncIter @ lib.js:316
i.getTemplate @ environment.js:267
(anonymous) @ VM190:19
(anonymous) @ environment.js:542
root @ VM193:32
i.getExported @ environment.js:538
(anonymous) @ VM190:16
(anonymous) @ environment.js:261
o @ environment.js:273
(anonymous) @ web-loaders.js:50
i.onreadystatechange @ web-loaders.js:74
XMLHttpRequest.send (async)
e.fetch @ web-loaders.js:88
e.getSource @ web-loaders.js:33
(anonymous) @ environment.js:283
e @ lib.js:310
n.asyncIter @ lib.js:316
i.getTemplate @ environment.js:267
(anonymous) @ VM190:14
(anonymous) @ environment.js:542
(anonymous) @ VM191:285
(anonymous) @ environment.js:542
root @ VM192:84
i.getExported @ environment.js:538
(anonymous) @ VM191:11
(anonymous) @ environment.js:261
o @ environment.js:273
(anonymous) @ web-loaders.js:50
i.onreadystatechange @ web-loaders.js:74
XMLHttpRequest.send (async)
e.fetch @ web-loaders.js:88
e.getSource @ web-loaders.js:33
(anonymous) @ environment.js:283
e @ lib.js:310
n.asyncIter @ lib.js:316
i.getTemplate @ environment.js:267
root @ VM191:9
i.getExported @ environment.js:538
(anonymous) @ VM190:11
(anonymous) @ environment.js:261
o @ environment.js:273
(anonymous) @ web-loaders.js:50
i.onreadystatechange @ web-loaders.js:74
XMLHttpRequest.send (async)
e.fetch @ web-loaders.js:88
e.getSource @ web-loaders.js:33
(anonymous) @ environment.js:283
e @ lib.js:310
n.asyncIter @ lib.js:316
i.getTemplate @ environment.js:267
root @ VM190:9
i.render @ environment.js:478
(anonymous) @ environment.js:314
(anonymous) @ environment.js:261
o @ environment.js:273
(anonymous) @ web-loaders.js:50
i.onreadystatechange @ web-loaders.js:74
XMLHttpRequest.send (async)
e.fetch @ web-loaders.js:88
e.getSource @ web-loaders.js:33
(anonymous) @ environment.js:283
e @ lib.js:310
n.asyncIter @ lib.js:316
i.getTemplate @ environment.js:267
i.render @ environment.js:308
(anonymous) @ module.js:94
getDom @ module.js:86
(anonymous) @ main.js:114
updateDom @ main.js:113
updateDom @ main.js:551
updateDom @ module.js:364
socketNotificationReceived @ MMM-Jast.js:14
(anonymous) @ module.js:250
(anonymous) @ socketclient.js:39
./node_modules/component-emitter/index.js.Emitter.emit @ index.js:145
emitEvent @ socket.js:253
onevent @ socket.js:240
MMSocket.self.socket.onevent @ socketclient.js:33
onpacket @ socket.js:204
(anonymous) @ index.js:21
./node_modules/component-emitter/index.js.Emitter.emit @ index.js:145
ondecoded @ manager.js:207
(anonymous) @ index.js:21
./node_modules/component-emitter/index.js.Emitter.emit @ index.js:145
add @ index.js:117
ondata @ manager.js:199
(anonymous) @ index.js:21
./node_modules/component-emitter/index.js.Emitter.emit @ index.js:145
onPacket @ socket.js:387
(anonymous) @ socket.js:196
./node_modules/component-emitter/index.js.Emitter.emit @ index.js:145
onPacket @ transport.js:103
onData @ transport.js:96
ws.onmessage @ websocket.js:108
Show 36 more frames

config.js

{
			module: "MMM-Jast",
			position: "bottom_bar",
			config: {
				maxWidth: "100%",
				updateIntervalInSeconds: 300,
				fadeSpeedInSeconds: 3.5, // Higher value: vertical -> faster // horizontal -> slower
				scroll: "horizontal", // One of ["none", "vertical", "horizontal"]
				useGrouping: false,
				currencyStyle: "code", // One of ["code", "symbol", "name"]
				showColors: true,
				showCurrency: true,
				showChangePercent: true,
				showChangeValue: false,
				showChangeValueCurrency: false,
				showPortfolioValue: false,
				showPortfolioGrowthPercent: false,
				showPortfolioGrowth: false,
				numberDecimalsValues: 2,
				numberDecimalsPercentages: 1,
				virtualHorizontalMultiplier: 2,
				stocks: [
				{ name: "TESLA", symbol: "TSLA", quantity: 10 },
				{ name: "APPLE", symbol: "APPL", quantity: 15 },
				{ name: "CHEVRON", symbol: "CVX" }
			]
		}
	},

Additional info

No response

Module not centered

Platform

Raspberry PI OS Bullseye 64bit

Node.js Version

17.6.0

MagicMirror Version

2.19.0

Module Version

1cc458d

Description

When only one stock is configured the module is not centered, with four stocks configured, every things is centered.

Expected behavior

No response

Current behavior

No response

Possible solution

No response

Steps to reproduce

  • Configure one stock only (not centered)
  • Configure two stocks only (not centered)
  • Configure three stocks only (not centered)
  • Configure fours stocks only (centered)

Log

No response

config.js

{
            module: 'MMM-Jast',
            disabled: false,
            position: 'bottom_bar',
            header: '',
            config: {
                fadeSpeedInSeconds: 3.5,
                updateIntervalInSeconds: 600,
                scroll: 'horizontal',
                stocks: [
                    {
                        name: 'Alibaba',
                        symbol: 'BABA'
                    }
                ]
            }
        }

Additional info

image

image

image

Stuttering horizontal scrolling on Raspberry Pi 4 (2GB)

Platform

Raspberry Pi OS

Node.js Version

16.13.2

MagicMirror Version

2.17.1

Module Version

most recent (v2.6.2.)

Description

Horizontal scrolling is choppy / stuttering / lagging. No consistent pattern observable and no relief after running longer. No relief when removing other modules either. MagicMirror does not run in a docker.

Expected behavior

Should run smoothly

Current behavior

Runs choppy / stutters / lags

Possible solution

A RAM problem? Maybe 2 GB RAM is too low?

Steps to reproduce

Simply start the application.

Log

No errors

config.js

{
			module: "MMM-Jast",
			position: "bottom_bar",
			config: {
				maxWidth: "100%",
				updateIntervalInSeconds: 300,
				fadeSpeedInSeconds: 40,
				scroll: "horizontal", // One of ["none", "vertical", "horizontal"]
				useGrouping: false,
				currencyStyle: "symbol", // One of ["code", "symbol", "name"]
				lastUpdateFormat: "HH:mm",
				showColors: true,
				showCurrency: true,
				showChangePercent: true,
				showChangeValue: false,
				showChangeValueCurrency: false,
				showLastUpdate: false,
				showPortfolioValue: false,
				showPortfolioGrowthPercent: false,
				showPortfolioGrowth: false,
				numberDecimalsValues: 2,
				numberDecimalsPercentages: 1,
				virtualHorizontalMultiplier: 1,
				stocks: [
					{ name: "iShares Global Clean Energy", symbol: "IQQH.DE"},
					{ name: "iShares Core MSCI World", symbol: "EUNL.DE" },
					{ name: "iShares Core MSCI EM IMI", symbol: "IS3N.DE"},
					{ name: "iShares MSCI World Small Cap", symbol: "IUSN.DE"},
				]
			}
		},

Additional info

No response

Copied and pasted your code..."Undefined"

Platform (Hardware/OS):Raspberry Pi OS

Node version:

MagicMirror version: 2.15

Module version:

Description of the issue: Undefined Error

Copied and pasted your code, only displays "undefined". Any ideas?

Module stuck on "LOADING"

Platform

Raspberry Pi OS

Node.js Version

12.22.0

MagicMirror Version

2.16.0

Module Version

b6721cd

Description

Accidentally opened issue under feature request.
Module never loads and once MagicMirror starts all I typically see is "loading"
I’ve tried uninstalling and reinstalling the module as well as reboot the pi as well. No dice. After further investigation I looked at the logs and noticed a few things. Before going any further please note the picture below that shows the module actually functioning. Out of the 10 stocks shown, the first 7 are cryptocurrencies. Now, when you look at the logs you’ll see ERROR: there was an error requesting the API. Failed yahoo schema validation. They all appear to be from “coinmarketcaplink” which would point to crypto as well. Troubleshooting along this line of thinking I removed all seven of the crypto currencies from the confect that JS file and just left apple, Tesla and AMC. Still stuck on loading so now I’m thinking it’s not crypto based?! How does one change the yahoo API? Just thinking out load. It's probably something silly that needs updating but I have almost 12 + other modules and this is the only non working one?

Expected behavior

The stocks should load accordingly!

Current behavior

"LOADING"

Possible solution

No response

Steps to reproduce

Please see above

Log

16.07.2022 16:59.29.931] [LOG]   
This may happen intermittently and you should catch errors appropriately.
However:  1) if this recently started happening on every request for a symbol
that used to work, Yahoo may have changed their API.  2) If this happens on
every request for a symbol you've never used before, but not for other
symbols, you've found an edge-case.  Please see if anyone has reported
this previously:

  [object Object]/issues?q=is%3Aissue+Failed%20validation%3A%20%23%2Fdefinitions%2FQuoteSummaryResult

or open a new issue (and mention the symbol):

  [object Object]/issues/new?title=Failed%20validation%3A%20%23%2Fdefinitions%2FQuoteSummaryResult

For information on how to turn off the above logging or skip these errors,
see https://github.com/gadicc/node-yahoo-finance2/tree/devel/docs/validation.md.

[16.07.2022 16:59.29.933] [ERROR] There was an error requesting the API. Failed Yahoo Schema validation
[16.07.2022 16:59.30.262] [LOG]   The following result did not validate with schema: #/definitions/QuoteSummaryResult
[
  {
    keyword: 'additionalProperties',
    dataPath: '/summaryDetail',
    schemaPath: '#/definitions/SummaryDetail/additionalProperties',
    params: { additionalProperty: 'coinMarketCapLink' },
    message: 'should NOT have additional properties',

config.js

{
			module: "MMM-Jast",
			position: "bottom_left",
			config: {
			maxWidth: "100%",
			updateIntervalInSeconds: 300,
			fadeSpeedInSeconds: 3.5, // Higher value: vertical -> faster // horizontal -> slower
			scroll: "none", // One of ["none", "vertical", "horizontal"]
			useGrouping: false,
			currencyStyle: "code", // One of ["code", "symbol", "name"]
			showColors: true,
			showCurrency: true,
			showChangePercent: true,
			showChangeValue: false,
			showChangeValueCurrency: false,
			showPortfolioValue: false,
			showPortfolioGrowthPercent: false,
			showPortfolioGrowth: false,
			numberDecimalsValues: 6,
			numberDecimalsPercentages: 1,
			virtualHorizontalMultiplier: 2,
			stocks: [
                               	{ name: "BITCOIN", symbol: "BTC" },
 				{ name: "ETHEREUM", symbol: "ETH" },
				{ name: "CARDANO", symbol: "ADA-USD" },
				{ name: "DOGE", symbol: "DOGE-USD" },
				{ name: "SHIBA INU", symbol: "SHIB-USD" },
				{ name: "VECHAIN", symbol: "VET-USD" },
				{ name: "STELLAR", symbol: "XLM-USD" },
				{ name: "AMC", symbol: "AMC" },
				{ name: "TESLA", symbol: "TSLA" },
				{ name: "APPLE", symbol: "AAPL" },
		]
		}
		}
		]
		};

Additional info

PLEASE HELP!!!

Update Procedure

This morning I woke up and MM was saying there is an update for MMM-Jast which I assume is due to this dependency being updated. What do I need to do to clear the notification?
dependency

How to set the request timeout

Hi~

The internet connection from China to Yahoo Server is not stable.
How can I change the timeout, or auto retry after timeout?

thanks

[24.04.2021 03:36.52.980] [ERROR] There was an error requesting the API. request to https://query2.finance.yahoo.com/v10/finance/quoteSummary/SAP.DE?formatted=f alse&modules=price%2CsummaryDetail failed, reason: read ETIMEDOUT

Deleted stock symbols appearing

Platform (Hardware/OS): Raspberry Pi / Raspian Buster

Node version: 10.24.1

MagicMirror version: 2.14

Module version: latest

Description of the issue: I recently updated the MMM-Jast stocks list I had running with a completely new list. When I restarted MagicMirror, both lists now display. My MagicMirror is actually set up as a Magic monitor with MMM-Pages rotating the various modules, with MMM-Jast being 1 of them. During the rotation, when it gets to the MMM-Jast page, MMM-Jast module cycles through 2 "pages" showing the old, then the new, stocks. I've done a git pull to make sure I have the latest version (no update occurred), along with npm install. I've also tried deleting all the stocks in the list except 1, but it still shows the old list (and the new single stock on a separate page). Is there a cache I need to clear?

UPDATE: I changed the zoom level to a smaller one and now it only shows the old list.

UPDATE2: I rearranged MMM-Jast to different positions under MMM-Pages and it actually displays differently. In one position, it displays a combination of the old and new list like I mentioned above, in another position it shows only the old list, while another position shows only the new list, but after awhile switches to the old list. The position that seems to show it longest is the 2nd one.

Static portfolio value

Hey, I wanted to know if it’s possible to make a static always there Portfolio Value… that changes as the stocks listed change in price, but is always shown, and have the stocks ticker above / below the portfolio value, and not scroll to the portfolio value as it would be permanently shown… e.g

Scrolling stocks ticker
Portfolio Value: xxxx

Possibly also add a static always shown portfolio change value / change percentage that isn’t included in the scroll.

I would opt for the Static option for all as you can in the config but it takes up too much room on the mirror and I was wondering if what i’ve stated is configurable? Thanks

Load from google sheet?

Numbers of stocks and quality can change fairly frequently. Would be nice to load from a sheet. Great module BTW.

Change color of stock only if movement is greater than a certain percent

Great module and I think this is a simple request. I would like for the ticker to only change to red or green if the stock moves by more than 5%. In VerticalStockList.njk, I changed the code as follows (and added a "same" color in the CSS, but it did not do anything. Super bonus points if I can make a movement of more than 7% show an image.

  • {{ utils.getStockName(stock) }}: {% if utils.getStockChange(stock) > 3 %} {% set colorClass = "high" %} {% elif utils.getStockChange(stock) < 3 %} {% set colorClass = "low " %} {% else %} {% set colorClass = "same" %}
  • Broken Dependencies after d22f516

    Platform

    Raspberry Pi OS

    Node.js Version

    18.18.0

    MagicMirror Version

    2.26.0

    Module Version

    ea0289f

    Description

    When upgrading to the latest version and running npm install:

    pi@MagicMirror:~/MagicMirror/modules/MMM-Jast $ npm i
    npm ERR! code ERESOLVE
    npm ERR! ERESOLVE could not resolve
    npm ERR!
    npm ERR! While resolving: [email protected]
    npm ERR! Found: @rollup/[email protected]
    npm ERR! node_modules/@rollup/plugin-commonjs
    npm ERR!   dev @rollup/plugin-commonjs@"^25.0.7" from the root project
    npm ERR!
    npm ERR! Could not resolve dependency:
    npm ERR! dev @rollup/plugin-commonjs@"^25.0.7" from the root project
    npm ERR!
    npm ERR! Conflicting peer dependency: [email protected]
    npm ERR! node_modules/rollup
    npm ERR!   peerOptional rollup@"^2.68.0||^3.0.0||^4.0.0" from @rollup/[email protected]
    npm ERR!   node_modules/@rollup/plugin-commonjs
    npm ERR!     dev @rollup/plugin-commonjs@"^25.0.7" from the root project
    npm ERR!
    npm ERR! Fix the upstream dependency conflict, or retry
    npm ERR! this command with --force or --legacy-peer-deps
    npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
    npm ERR!
    npm ERR!
    npm ERR! For a full report see:
    npm ERR! /home/pi/.npm/_logs/2024-01-04T09_50_01_342Z-eresolve-report.txt
    
    npm ERR! A complete log of this run can be found in: /home/pi/.npm/_logs/2024-01-04T09_50_01_342Z-debug-0.log
    

    Expected behavior

    No response

    Current behavior

    No response

    Possible solution

    No response

    Steps to reproduce

    1. git pull
    2. npm i

    Log

    0 verbose cli /usr/local/bin/node /usr/local/bin/npm
    1 info using [email protected]
    2 info using [email protected]
    3 timing npm:load:whichnode Completed in 4ms
    4 timing config:load:defaults Completed in 8ms
    5 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in 4ms
    6 timing config:load:builtin Completed in 5ms
    7 timing config:load:cli Completed in 9ms
    8 timing config:load:env Completed in 2ms
    9 timing config:load:file:/home/pi/MagicMirror/modules/MMM-Jast/.npmrc Completed in 0ms
    10 timing config:load:project Completed in 10ms
    11 timing config:load:file:/home/pi/.npmrc Completed in 0ms
    12 timing config:load:user Completed in 1ms
    13 timing config:load:file:/usr/local/etc/npmrc Completed in 0ms
    14 timing config:load:global Completed in 2ms
    15 timing config:load:setEnvs Completed in 4ms
    16 timing config:load Completed in 43ms
    17 timing npm:load:configload Completed in 44ms
    18 timing config:load:flatten Completed in 15ms
    19 timing npm:load:mkdirpcache Completed in 2ms
    20 timing npm:load:mkdirplogs Completed in 1ms
    21 verbose title npm i
    22 verbose argv "i"
    23 timing npm:load:setTitle Completed in 4ms
    24 timing npm:load:display Completed in 2ms
    25 verbose logfile logs-max:10 dir:/home/pi/.npm/_logs/2024-01-04T09_50_01_342Z-
    26 verbose logfile /home/pi/.npm/_logs/2024-01-04T09_50_01_342Z-debug-0.log
    27 timing npm:load:logFile Completed in 39ms
    28 timing npm:load:timers Completed in 0ms
    29 timing npm:load:configScope Completed in 0ms
    30 timing npm:load Completed in 187ms
    31 timing arborist:ctor Completed in 3ms
    32 silly logfile start cleaning logs, removing 1 files
    33 silly logfile done cleaning log files
    34 timing idealTree:init Completed in 702ms
    35 timing idealTree:userRequests Completed in 1ms
    36 silly idealTree buildDeps
    37 silly fetch manifest yahoo-finance2@^2.9.0
    38 timing arborist:ctor Completed in 0ms
    39 http fetch GET 200 https://registry.npmjs.org/yahoo-finance2 410ms (cache hit)
    40 silly fetch manifest @rollup/plugin-commonjs@^25.0.7
    41 http fetch GET 200 https://registry.npmjs.org/@rollup%2fplugin-commonjs 16ms (cache hit)
    42 silly fetch manifest rollup@^4.8.0
    43 http fetch GET 200 https://registry.npmjs.org/rollup 42ms (cache hit)
    44 silly fetch manifest @rollup/plugin-node-resolve@^15.2.3
    45 http fetch GET 200 https://registry.npmjs.org/@rollup%2fplugin-node-resolve 13ms (cache hit)
    46 silly fetch manifest @rollup/plugin-terser@^0.4.4
    47 http fetch GET 200 https://registry.npmjs.org/@rollup%2fplugin-terser 9ms (cache hit)
    48 silly fetch manifest @rollup/plugin-typescript@^11.1.5
    49 http fetch GET 200 https://registry.npmjs.org/@rollup%2fplugin-typescript 10ms (cache hit)
    50 silly fetch manifest tslib@*
    51 http fetch GET 200 https://registry.npmjs.org/tslib 11ms (cache hit)
    52 silly fetch manifest typescript@^5.3.3
    53 http fetch GET 200 https://registry.npmjs.org/typescript 130ms (cache hit)
    54 silly fetch manifest @types/magicmirror-module@^2.16.5
    55 http fetch GET 200 https://registry.npmjs.org/@types%2fmagicmirror-module 19ms (cache hit)
    56 silly fetch manifest @typescript-eslint/eslint-plugin@^6.14.0
    57 http fetch GET 200 https://registry.npmjs.org/@typescript-eslint%2feslint-plugin 109ms (cache hit)
    58 silly fetch manifest @typescript-eslint/parser@^6.14.0
    59 http fetch GET 200 https://registry.npmjs.org/@typescript-eslint%2fparser 131ms (cache hit)
    60 silly fetch manifest eslint@^8.55.0
    61 http fetch GET 200 https://registry.npmjs.org/eslint 28ms (cache hit)
    62 silly fetch manifest eslint-config-prettier@^9.1.0
    63 http fetch GET 200 https://registry.npmjs.org/eslint-config-prettier 10ms (cache hit)
    64 silly fetch manifest prettier@^3.1.1
    65 http fetch GET 200 https://registry.npmjs.org/prettier 10ms (cache hit)
    66 timing idealTree Completed in 2546ms
    67 timing command:i Completed in 2590ms
    68 verbose stack Error: could not resolve
    68 verbose stack     at PlaceDep.failPeerConflict (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/place-dep.js:503:25)
    68 verbose stack     at new PlaceDep (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/place-dep.js:157:21)
    68 verbose stack     at #buildDepStep (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:933:18)
    68 verbose stack     at async Arborist.buildIdealTree (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:196:7)
    68 verbose stack     at async Promise.all (index 1)
    68 verbose stack     at async Arborist.reify (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:159:5)
    68 verbose stack     at async Install.exec (/usr/local/lib/node_modules/npm/lib/commands/install.js:149:5)
    68 verbose stack     at async module.exports (/usr/local/lib/node_modules/npm/lib/cli-entry.js:61:5)
    69 verbose cwd /home/pi/MagicMirror/modules/MMM-Jast
    70 verbose Linux 5.10.103-v7l+
    71 verbose node v18.18.0
    72 verbose npm  v9.8.1
    73 error code ERESOLVE
    74 error ERESOLVE could not resolve
    75 error
    76 error While resolving: [email protected]
    76 error Found: @rollup/[email protected]
    76 error node_modules/@rollup/plugin-commonjs
    76 error   dev @rollup/plugin-commonjs@"^25.0.7" from the root project
    76 error
    76 error Could not resolve dependency:
    76 error dev @rollup/plugin-commonjs@"^25.0.7" from the root project
    76 error
    76 error Conflicting peer dependency: [email protected]
    76 error node_modules/rollup
    76 error   peerOptional rollup@"^2.68.0||^3.0.0||^4.0.0" from @rollup/[email protected]
    76 error   node_modules/@rollup/plugin-commonjs
    76 error     dev @rollup/plugin-commonjs@"^25.0.7" from the root project
    76 error
    76 error Fix the upstream dependency conflict, or retry
    76 error this command with --force or --legacy-peer-deps
    76 error to accept an incorrect (and potentially broken) dependency resolution.
    77 error
    77 error
    77 error For a full report see:
    77 error /home/pi/.npm/_logs/2024-01-04T09_50_01_342Z-eresolve-report.txt
    78 verbose exit 1
    79 timing npm Completed in 3722ms
    80 verbose unfinished npm timer reify 1704361802460
    81 verbose unfinished npm timer reify:loadTrees 1704361802484
    82 verbose unfinished npm timer idealTree:buildDeps 1704361803192
    83 verbose unfinished npm timer idealTree:#root 1704361803194
    84 verbose code 1
    85 error A complete log of this run can be found in: /home/pi/.npm/_logs/2024-01-04T09_50_01_342Z-debug-0.log

    config.js

    doesn't matter

    Additional info

    No response

    Issue with the 'Quantity' field under stock object

    Platform (Hardware/OS):

    Magicmirror

    MagicMirror version:

    magicmirror:v2.15.0

    Module version:

    v2.4.3

    Description of the issue: Under stock object, for the 'quantity' field, it takes an integer as an input, however with more and more stock apps including features such as 'fractional shares' is there any possible way to change it to a decimal so I can input my fractional shares? ex. owning .5 of an amazon share

    Also wanted to say loving the module so far! only issue I have other than this is the vertical scrolling bug mentioned in another bug

    Stocks not loading.

    Platform

    Ubuntu 20.04

    Node.js Version

    v16.14.0

    MagicMirror Version

    2.24.0

    Module Version

    V2.6.2

    Description

    Jast won't load. Simply says, "loading..." Error log reflects the following error message for all stocks in list to load (ASTR in this case is an example stock).

    [WARN] API request for ASTR failed: Invalid Cookie

    Expected behavior

    Stocks should load & display

    Current behavior

    Stocks aren't loading.

    Possible solution

    Haven't had a chance to troubleshoot, I suspect it is an API issue.

    Steps to reproduce

    1. Start MM.

    Log

    see above.

    config.js

    {
    	module: "MMM-Jast",
    	position: "top_right",
    	config: {
    		maxWidth: "100%",
    		updateIntervalInSeconds: 300,
    		fadeSpeedInSeconds: 3.5,
    		scroll: "none", // One of ["none", "vertical", "horizontal"]
    		useGrouping: false,
    		currencyStyle: "code", // One of ["code", "symbol", "name"]
    		lastUpdateFormat: "HH:mm",
    		showColors: true,
    		showCurrency: false,
    		showChangePercent: true,
    		showChangeValue: false,
    		showChangeValueCurrency: false,
    		showLastUpdate: true,
    		showPortfolioValue: true,
    		showPortfolioGrowthPercent: false,
    		showPortfolioGrowth: true,
    		numberDecimalsValues: 2,
    		numberDecimalsPercentages: 1,
    		virtualHorizontalMultiplier: 2,
    		stocks: [
       			{ name: "Astra Space", symbol: "ASTR", quantity: 1},
    		]
    
    	}
    },// end MMM-Jast stock ticker

    Additional info

    No additional info

    pi zero

    is this module work with raspberry pi zero w Magic Mirror??

    Offset with vertical scrolling

    Platform (Hardware/OS):

    Magicmirror Docker Container

    Node version:

    npm: '6.14.13'

    MagicMirror version:

    karsten13/magicmirror:v2.15.0

    Module version:

    v2.4.3

    Description of the issue:

    Just found this module and I love it. Just a little problem with the vertical scrolling. there seems to be some sort of offset.

    Jul-17-2021 16-52-17

    any ideas?

    JAST won't load

    Platform

    Raspbian GNU/Linux 11 (bullseye)

    Node.js Version

    v18.18.0

    MagicMirror Version

    2.25.0

    Module Version

    v2.8.2

    Description

    Module does not allow the whole MagicMirror to load due to an error.

    I have tried the test/debugLogging branch but didn't see more details, and I am using the stock config from the Readme. npm install --only=production was completed at several points, such as when changing branches.

    Expected behavior

    No response

    Current behavior

    No response

    Possible solution

    No response

    Steps to reproduce

    using a fresh config.js file, add the stock config, save, and restart MagicMirror. It results in an error.

    Log

    0|MagicMir | [32084:1005/115806.659799:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.portal.Settings.Read: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.portal.Desktop was not provided by any .service files
    0|MagicMir | ../../buildtools/third_party/libc++/trunk/include/vector:1473: assertion __n < size() failed: vector[] index out of bounds[32084:1005/115937.268347:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=134
    0|MagicMir | [05.10.2023 12:00.58.920] [ERROR] (node:32332) UnhandledPromiseRejectionWarning: SyntaxError: /home/magic/MagicMirror/modules/MMM-Jast/node_modules/tr46/lib/mappingTable.json: Expected ',' or ']' after array element in JSON at position 102912
    0|MagicMir |     at parse (<anonymous>)
    0|MagicMir |     at Object..json (node:internal/modules/cjs/loader:1340:39)
    0|MagicMir |     at Module.load (node:internal/modules/cjs/loader:1126:32)
    0|MagicMir |     at node:internal/modules/cjs/loader:967:12
    0|MagicMir |     at Function._load (node:electron/js2c/asar_bundle:2:13327)
    0|MagicMir |     at Module.require (node:internal/modules/cjs/loader:1150:19)
    0|MagicMir |     at require (node:internal/modules/cjs/helpers:110:18)
    0|MagicMir |     at Object.<anonymous> (/home/magic/MagicMirror/modules/MMM-Jast/node_modules/tr46/index.js:4:20)
    0|MagicMir |     at Module._compile (node:internal/modules/cjs/loader:1271:14)
    0|MagicMir |     at Object..js (node:internal/modules/cjs/loader:1326:10)
    0|MagicMir |     at Module.load (node:internal/modules/cjs/loader:1126:32)
    0|MagicMir |     at node:internal/modules/cjs/loader:967:12
    0|MagicMir |     at Function._load (node:electron/js2c/asar_bundle:2:13327)
    0|MagicMir |     at Module.require (node:internal/modules/cjs/loader:1150:19)
    0|MagicMir |     at require (node:internal/modules/cjs/helpers:110:18)
    0|MagicMir |     at Object.<anonymous> (/home/magic/MagicMirror/modules/MMM-Jast/node_modules/whatwg-url/lib/url-state-machine.js:3:14)
    0|MagicMir | (Use `electron --trace-warnings ...` to show where the warning was created)
    0|MagicMir | [05.10.2023 12:00.58.923] [ERROR] (node:32332) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
    0|MagicMir | [32332:1005/120100.981088:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.portal.Settings.Read: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.portal.Desktop was not provided by any .service files

    config.js

    /* MagicMirror² Config Sample
     *
     * By Michael Teeuw https://michaelteeuw.nl
     * MIT Licensed.
     *
     * For more information on how you can configure this file
     * see https://docs.magicmirror.builders/configuration/introduction.html
     * and https://docs.magicmirror.builders/modules/configuration.html
     *
     * You can use environment variables using a `config.js.template` file instead of `config.js`
     * which will be converted to `config.js` while starting. For more information
     * see https://docs.magicmirror.builders/configuration/introduction.html#enviromnent-variables
     */
    let config = {
    	address: "0.0.0.0",	// 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","::ffff:192.168.1.0/24"],	// 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",
    	locale: "en-US",
    	logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
    	timeFormat: 24,
    	units: "metric",
    
    	modules: [
    		{
    			module: "alert",
    		},
    		{
    			module: "updatenotification",
    			position: "top_bar"
    		},
    		{
    			module: "clock",
    			position: "top_left"
    		},
    		{
    			module: "calendar",
    			header: "US Holidays",
    			position: "top_left",
    			config: {
    				calendars: [
    					{
    						fetchInterval: 7 * 24 * 60 * 60 * 1000,
    						symbol: "calendar-check",
    						url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics"
    					}
    				]
    			}
    		},
    		{
    			module: "compliments",
    			position: "lower_third"
    		},
    		{
    			module: "weather",
    			position: "top_right",
    			config: {
    				weatherProvider: "openweathermap",
    				type: "current",
    				location: "New York",
    				locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
    				apiKey: "YOUR_OPENWEATHER_API_KEY"
    			}
    		},
    		{
    			module: "weather",
    			position: "top_right",
    			header: "Weather Forecast",
    			config: {
    				weatherProvider: "openweathermap",
    				type: "forecast",
    				location: "New York",
    				locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
    				apiKey: "YOUR_OPENWEATHER_API_KEY"
    			}
    		},
    		{
    			module: "newsfeed",
    			position: "bottom_bar",
    			config: {
    				feeds: [
    					{
    						title: "New York Times",
    						url: "https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"
    					}
    				],
    				showSourceTitle: true,
    				showPublishDate: true,
    				broadcastNewsFeeds: true,
    				broadcastNewsUpdates: true
    			}
    		},
            {
                module: "MMM-Jast",
                position: "top_left",
                config: {
                    currencyStyle: "code", // One of ["code", "symbol", "name"]
                    fadeSpeedInSeconds: 3.5,
                    lastUpdateFormat: "HH:mm",
                    maxChangeAge: 1 * 24 * 60 * 60 * 1000,
                    maxWidth: "100%",
                    numberDecimalsPercentages: 1,
                    numberDecimalsValues: 2,
                    scroll: "vertical", // One of ["none", "vertical", "horizontal"]
                    showColors: true,
                    showCurrency: true,
                    showChangePercent: true,
                    showChangeValue: false,
                    showChangeValueCurrency: false,
                    showHiddenStocks: false,
                    showLastUpdate: false,
                    showPortfolioValue: false,
                    showPortfolioGrowthPercent: false,
                    showPortfolioGrowth: false,
                    updateIntervalInSeconds: 300,
                    useGrouping: false,
                    virtualHorizontalMultiplier: 2,
                    stocks: [
                        { name: "BASF", symbol: "BAS.DE", quantity: 10 },
                        { name: "SAP", symbol: "SAP.DE", quantity: 15 },
                        { name: "Henkel", symbol: "HEN3.DE", hidden: true },
                        { name: "Alibaba", symbol: "BABA"}
                    ]
                }
            }
    	]
    };
    
    /*************** DO NOT EDIT THE LINE BELOW ***************/
    if (typeof module !== "undefined") {module.exports = config;}

    Additional info

    No response

    The ticker is choppy since MM 2.26

    Platform

    Pi 4

    Node.js Version

    v18.18.0

    MagicMirror Version

    2.26

    Module Version

    lastest version

    Description

    I have been running the module for a few month w/out issues. Since I updated MM to 2.26 recently the ticker does not run smoothly anymore. It starts stopping ever second or so and then jumps a bit ahead. It is very choppy and nice to look at. Before it has never done that.

    Expected behavior

    No response

    Current behavior

    No response

    Possible solution

    No response

    Steps to reproduce

    same after every restart or Pi reboot

    Log

    No response

    config.js

    module: "MMM-Jast",
    			position: "bottom_bar",
    			config: {
    				currencyStyle: "code", // One of ["code", "symbol", "name"]
    				fadeSpeedInSeconds: 120,
    				lastUpdateFormat: "HH:mm",
    				maxChangeAge: 1 * 24 * 60 * 60 * 1000,
    				maxWidth: "100%",
    				numberDecimalsPercentages: 1,
    				numberDecimalsValues: 2,
    				scroll: "horizontal", // One of ["none", "vertical", "horizontal"]
    				showColors: true,
    				showCurrency: true,
    				showChangePercent: true,
    				showChangeValue: false,
    				showChangeValueCurrency: false,
    				showHiddenStocks: false,
    				showLastUpdate: false,
    				showPortfolioValue: false,
    				showPortfolioGrowthPercent: false,
    				showPortfolioGrowth: false,
    				updateIntervalInSeconds: 300,
    				useGrouping: false,
    				virtualHorizontalMultiplier: 2,
    				stocks: [
    					{ name: "Tesla", symbol: "TSLA"},
    					{ name: "Amazon", symbol: "AMZN"},
    					{ name: "Apple", symbol: "AAPL"},
    				]
    			}

    Additional info

    No response

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.