MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Problem with MMM-CalendarExt2 tranforming

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    3 Posts 2 Posters 788 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      haglefar
      last edited by haglefar

      Hello forum!
      My first post here. I have been following this project for a while, and finally got around to making one myself. I have a functioning mirror, with all the modules i want and it is amazing. The only minor problem i have, is with the transform function in MMM-CalendatExt2.

      I use the function as described in the documentation, but i cannot get it to work. Or, it did actually work for about a day, then it broke.

      I try to add icons to my event headers based on the content of the event (either description or title), but as stated, i cannot get this to work. If i try to start MM with this code, the MMM-CalendarExt2 will not load. Everything else works fine.

      I have included the code for the module below, if anyone could take a look and maybe tell me what i am doing wrong, it would be great. The calendar-adresses are removed and the code-snippet for the transform is commented out, for obvious reasons.

      {
                              module: 'MMM-CalendarExt2',
                              config: {
                                      fetchInterval: 60 * 1000 * 15,
                                      rotateInterval: 0,
                                      updateInterval: 60 * 1000 * 15,
                                      firstDrawingDelay: 10000,
                                      calendars: [
                                      {
                                              name: "Johan privat",
                                              url: "******************************************************"
                                              className: "johan",
                                      },
                                      {
                                              name: "Johan Jobb",
                                              url: "******************************************************"
                                              className: "johanjobb",
                                      },
                                      {
                                              name: "Offentlige helligdager",
                                              url: "******************************************************"
                                              className: "holiday",
                                      },
                                      {
                                              name: "Bursdager",
                                              url: "******************************************************"
                                              className: "bursdager",
                                      },
                                      {
                                              name: "Trash",
                                              url: "******************************************************"
                                              className: "trash",
                                      },
                                      {
                                              name: "Mia privat",
                                              url: "******************************************************"
                                              className: "mia",
                                      },
                                      ],
                                      views: [
                                      {
                                              name: "Uke",
                                              mode: "weekly",
                                              locale: "nb_NO",
                                              dateFormat: "nb",
                                              calendars: [],
                                              position: "top_left",
                                              slotCount: 1,
                                              maxItems: 500,
                                              filterPassedEvent: true,
                                              slotMaxHeight: "500px",
                                              dateFormat:"ddd DD/MM",
                                              slotTitleFormat: "[Uke] WW"
                                      },
                                      {
                                              name: "Dag",
                                              mode: "daily",
                                              locale: "nb_NO",
                                              dateFormat: "nb",
                                              calendars: [],
                                              position: "top_left",
                                              dateFormat:"ddd DD/MM",
                                              slotTitleFormat: "[Idag]",
                                              slotCount: 1,
                                              maxItems: 500,
                                      /*      transform: (event)=>{
                                                      if (event.description.search("Bursdag") > -1) { // If the event might include "Birthday" in its $
                                                              event.icon = "fxemoji-birthdaycake"; // Set icon of that event to "fxemoji-birthdaycake"
                                                      }
      
                                                      if (event.title.search("plast") > -1) {
                                                              event.icon = "fxemoji-blackuniversalrecyclingsymbol";
                                                      }
      
                                                      if (event.title.search("Restavfall") > -1) {
                                                              event.icon = "fxemoji-wastebasket";
                                                      }
      
                                                      if (event.title.search("glass og metall") > -1) {
                                                              event.icon = "fxemoji-cocktailglass";
                                                      }
      
                                                      if (event.title.search("papir") > -1) {
                                                              event.icon = "fxemoji-rolledupnewspaper";
                                                      }
      
                                                      if (event.description.search("Katt") > -1) {
                                                              event.icon = "fxemoji-cat";
                                                      }
      
                                                      if (event.description.search("Hjerte") > -1) {
                                                              event.icon = "fxemoji-sparklingheart";
                                                      }
      
                                                      if (event.description.search("Lilla") > -1) {
                                                              event.icon = "fxemoji-heartpurple";
                                                      }
      
                                                      if (event.description.search("Beer") > -1) {
                                                              event.icon = "fxemoji-clinkingbeermugs";
                                                      }
      
                                                      if (event.description.search("Par") > -1) {
                                                              event.icon = "fxemoji-couplekiss";
                                                      }
      
                                                      if (event.title.search("Yoga") > -1) {
                                                              event.icon = "grommet-icons:yoga";
                                                      }
                                                      return event; // Return that event.
                                              },
                              */      },
                                      ],
                                      scenes: [
                                              {
                                              name: "Hovedskjerm",
                                              views: ["Dag", "Uke"],
                                              },
                                      ],
                                      },
                      },
      

      haglefar

      J 1 Reply Last reply Reply Quote 0
      • J Offline
        JohnBachini @haglefar
        last edited by JohnBachini

        @haglefar said in Problem with MMM-CalendarExt2 tranforming:

        documentation

        you have ; should it be a , example in documentation shows no ; or ,

        event.icon = "grommet-icons:yoga";
        
        H 1 Reply Last reply Reply Quote 0
        • H Offline
          haglefar @JohnBachini
          last edited by haglefar

          @johnbachini

          Sorry, forgot to remove those from testing before. Tried again with the “;” removed, same result as before. Module does not show up at all. No errors in the logs.

          EDIT: Here is the new code, properly formatted, (I think):

          /* 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: "nb",
          	locale: "nb-NO",
          	logLevel: ["INFO", "LOG", "WARN", "ERROR", "DEBUG"], // 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: 'MMM-Cursor',
          			config: {
          				timeout: 10000,
          			}
          		},
          		{
          			module: "updatenotification",
          			position: "top_bar"
          		},
          		{
          			module: "clock",
          			position: "top_left"
          		},
          		{
          			module: 'MMM-CalendarExt2',
          			config: {
          				fetchInterval: 60 * 1000 * 15,
          				rotateInterval: 0,
          				updateInterval: 60 * 1000 * 15,
          				firstDrawingDelay: 10000,
          				calendars: [
          			      	{
          					name: "Johan privat",
          			        	url: "******************************************************",
          					className: "johan",
          			      	},
                                          {
                                                  name: "Johan Jobb",
                                                  url: "******************************************************",
                                                  className: "johanjobb",
                                          },
          				{
          					name: "Offentlige helligdager",
          					url: "******************************************************",
          					className: "holiday",
          				},
                                          {
                                                  name: "Bursdager",
                                                  url: "******************************************************",
                                                  className: "bursdager",
                                          },
                                          {
                                                  name: "Trash",
                                                  url: "******************************************************",
                                                  className: "trash",
                                          },
          				{
          					name: "Mia privat",
          					url: "******************************************************",
          					className: "mia",
          				},
          			    	],
          			    	views: [
          			      	{
          					name: "Uke",
          			        	mode: "weekly",
          					locale: "nb_NO",
          					dateFormat: "nb",
          					calendars: [],
          					position: "top_left",
          					slotCount: 1,
          					maxItems: 500,
          					filterPassedEvent: true,
          					slotMaxHeight: "500px",
          					dateFormat:"ddd DD/MM",
          					slotTitleFormat: "[Uke] WW"
          			      	},
          				{
          					name: "Dag",
          					mode: "daily",
          					locale: "nb_NO",
          					dateFormat: "nb",
          					calendars: [],
          					position: "top_left",
          					dateFormat:"ddd DD/MM",
          					slotTitleFormat: "[Idag]",
          					slotCount: 1,
          					maxItems: 500,
          					transform: (event)=>{
            						if (event.description.search("Bursdag") > -1) { // If the event might include "Birthday" in its title,
              							event.icon = "fxemoji-birthdaycake" // Set icon of that event to "fxemoji-birthdaycake"
            						}
          
          						if (event.title.search("plast") > -1) {
                                                                  event.icon = "fxemoji-blackuniversalrecyclingsymbol"
          						}
          
          						if (event.title.search("Restavfall") > -1) {
                                                                  event.icon = "fxemoji-wastebasket"
                                  }
          
          						if (event.title.search("glass og metall") > -1) {
                                                                  event.icon = "fxemoji-cocktailglass"
                                  }
          
          						if (event.title.search("papir") > -1) {
                                                                  event.icon = "fxemoji-rolledupnewspaper"
                                  }
          
          						if (event.description.search("Katt") > -1) {
                                                                  event.icon = "fxemoji-cat"
                                  }
          
          						if (event.description.search("Hjerte") > -1) {
                                                                  event.icon = "fxemoji-sparklingheart"
                                  }
          
          						if (event.description.search("Lilla") > -1) {
                                                                  event.icon = "fxemoji-heartpurple"
          		                }
          
                                  if (event.description.search("Beer") > -1) {
                                      							event.icon = "fxemoji-clinkingbeermugs"
                                  }
                                  if (event.description.search("Par") > -1) {
                                                                  event.icon = "fxemoji-couplekiss"
                                  }
                                  if (event.title.search("Yoga") > -1) {
                                                                  event.icon = "grommet-icons:yoga"
                                  }
            						return event // Return that event.
          					},
          				},
          			    	],
          			    	scenes: [
          			      		{
          			        	name: "Hovedskjerm",
          					views: ["Dag", "Uke"],
          			      		},
          			    	],
          			  	},
          		},
          
          1 Reply Last reply Reply Quote 0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • 1 / 1
          • First post
            Last post
          Enjoying MagicMirror? Please consider a donation!
          MagicMirror created by Michael Teeuw.
          Forum managed by Sam, technical setup by Karsten.
          This forum is using NodeBB as its core | Contributors
          Contact | Privacy Policy