MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    • Profile
    • Following 0
    • Followers 9
    • Topics 29
    • Posts 952
    • Groups 0
    M Offline
    1. Home
    2. MMRIZE
    3. Posts
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Posts

    Recent Best Controversial
    • RE: MMM-CalendarExt3

      @XDmToter
      That is not my fault. Which is not compatible with default calendar module is MMM-GoogleCalendar, not mine.

      As I wrote in readme, CX3 and her sibling modules don’t parse calendar files directly by themselves. They need “event provider” like default calendar module which can emit events as notification.
      And if some module can/cannot broadcast notifications by its config; that is not CX3’s job. Read the module’s guide carefully.

      posted in Utilities
      M
      MMRIZE
    • RE: MMM-CalendarExt3

      @gonzonia @XDmToter
      But anyway, for shared-calendar (e.g. Family calendar), MMM-GoogleCalendar is worthy. (And there would be the possibility to implement a reminder feature also.)

      I discussed this issue with @randomBrainstorm, and I can bet the fixed version of MMM-GoogleCalendar will be released soon. At that time, the need for conversion will be gone.

      posted in Utilities
      M
      MMRIZE
    • RE: MMM-CalendarExt3

      @XDmToter
      Your configuration seems all right unless you may be missing some brackets matching or commas at the end of the continuous module definitions.

      In MM screen, Ctrl+Shift+i will open dev console. You may see suspicious error messages if they happen.

      posted in Utilities
      M
      MMRIZE
    • RE: MMM-CalendarExt3

      @XDmToter
      Anyway, I requested PR of MMM-GoogleCalendar to solve this incompatible broadcasting. When @randomBrainstorm adopts the PR, this issue will be solved.

      posted in Utilities
      M
      MMRIZE
    • RE: How many modules are working

      @mgustin
      As long as it works properly, there is no need to update it just to look “active”

      “Working or not” implies various cases, not a simple reason.

      • Worked before, but not now, due to obsoleted/deprecated dependencies.
        • Some might be fixable easily with a tiny effort. (e.g. install a few recent/alternative dependencies)
        • Some might need the whole restructuring, and the module owner seems to have abandoned it; <= It can be said that “Not Working”
      • In some cases, A user is just misusing the module. For example, incomplete installation, wrong configuration, mistypes, missing preparation, choosing the wrong module that is not fit for the purpose, etc.
      • And there are many (yes, maybe too many) equivalent/alternative modules you can try. Cheer up.
      posted in Troubleshooting
      M
      MMRIZE
    • RE: MMM-CalendarExt3

      @XDmToter
      Read this. https://github.com/MMRIZE/MMM-CalendarExt3#compatible-with-randombrainstormermmm-googlecalendar

      By the way, this is a pure question.
      Google Calendar provides iCAL format(.ics), so the default calendar module can also parse it. Why people use MMM-GoogleCalendar instead of the default calendar? Is there any special thing?
      I ask this because one of the most frequently asked issues is how to use with MMM-GoogleCalendar.

      posted in Utilities
      M
      MMRIZE
    • RE: multiple modules in a region

      @roth_nj
      This would be just what you looked at in the previous screenshot.
      Only for those modules on the screen, the CSS is severely overridden. So when you add additional modules, you should carefully handle them.
      It is designed for resolution 1920 * 1080 horizon screen.

      config

      modules: [
      	{
      		module: "alert",
      	},
      	{
      		module: "clock",
      		position: "top_left",
      		config: {
      			displaySeconds: false,
      			sendNotifications: false,
      		},
      	},
      	{
      		module: "calendar",
      		//position: "top_left",
      		config: {
      			broadcastEvents: true,
      			broadcastPastEvents: true,
      			maximumEntries: 99,
      			calendars: [
      				{
      					symbol: "calendar-check",
      					url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics",
      					color: "red",
      				},
      
      				{
      					symbol: "calendar-check",
      					url: "https://calendar.google.com/calendar/ical/ko.german.official%23holiday%40group.v.calendar.google.com/public/basic.ics",
      					color: "red",
      				},
      				{
      					symbol: "futbol",
      					url: "webcal://ics.ecal.com/ecal-sub/65254bc972b4f3000d0051df/Tottenham%20Hotspur%20FC.ics",
      					color: "#0066CC",
      				}
      			]
      		}
      	},
      	{
      		module: "weather",
      		position: "top_right",
      		config: {
      			weatherProvider: "openweathermap",
      			type: "current",
      			location: "Frankfurt",
      			apiKey: "..."
      		}
      	},
      	{
      		module: "MMM-CalendarExt3",
      		position: "bottom_bar",
      		config: {
      			locale: "en-US",
      			mode: "month",
      			maxEventLines: 3,
      			headerWeekDayOptions: { weekday: 'narrow' },
      			//firstDayOfWeek: 0,
      			//minimalDaysOfNewYear: 1,
      			useWeather: false,
      		}
      	},
      	{
      		module: "MMM-WeatherBackground",
      	},
      ]
      

      I used MMM-WeatherBackground for leftside background image, but you may use other modules.

      See where the position I put the modules into and how they might be overridden in the CSS.

      CSS (custom.css)

      :root {
        --color-text: #999;
        --color-text-dimmed: #666;
        --color-text-bright: #fff;
        --color-background: black;
        --font-primary: "Roboto Condensed";
        --font-secondary: "Roboto";
        --font-size: 20px;
        --font-size-small: 0.75rem;
        --gap-body-top: 20px;
        --gap-body-right: 20px;
        --gap-body-bottom: 20px;
        --gap-body-left: 20px;
        --gap-modules: 20px;
      }
      
      .fullscreen.below {
        width: 33.3%;
      }
      
      .region.top.bar {
        width: calc(33.3% - 60px);
        padding: 20px;
        height: calc(100vh - 40px);
        position: absolute;
        top: -20px;
        left: 0;
        text-align: right;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        background-image: linear-gradient(to right, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
      }
      
      .region.top.left,
      .region.top.right {
        box-sizing: border-box;
        text-align: right;
        top: 0;
        position: unset;
      }
      
      .region.bottom {
        width: calc(66.7% - 20px);
        padding: 20px;
        height: calc(100vh - 80px);
        position: absolute;
        right: 0;
        top: 0;
      }
      
      .region.bottom.left,
      .region.bottom.right,
      .region.center {
        display: none;
      }
      
      .module.MMM-CalendarExt3 .module-header {
        height: 0;
        visibility: hidden;
        line-height: 0;
      }
      
      .CX3 {
        --cellheaderheight: 80px;
      }
      
      .CX3 .cell {
        border: none;
      }
      
      .CX3 .cw {
        display: none;
      }
      
      .CX3 .thisMonth {
        background-color: unset;
      }
      
      .CX3 .cell:not(.thisMonth) .cellHeader .cellDate * {
        filter: brightness(0.5);
      }
      
      .CX3 .weekGrid .weekday {
        font-size: 250%;
        line-height: 250%;
      }
      
      .CX3 .cellHeader .cellDate {
        font-size: 250%;
        text-align: center;
        display: flex;
        justify-content: center;
        flex-direction: column;
        align-items: center;
      }
      
      .CX3 .cell.today {
        border: none;
      }
      
      .CX3 .cell.today .cellHeader {
        justify-content: center;
      }
      
      .CX3 .cell.today .cellHeader .cellDate {
        border-radius: 50%;
        max-width: 60px;
        max-height: 60px;
      }
      
      .CX3 .cell.today .cellHeader .cellDate .month {
        display: none;
      }
      
      .CX3 .week:nth-child(2) .cell:first-child .cellDate :not(.month) {
        display: none;
      }
      
      .CX3 .date_1 .cellDate .dateParts:not(.month) {
        display: none;
      }
      
      .module.clock .digital {
        display: flex;
        flex-direction: column-reverse;
      }
      
      
      posted in Troubleshooting
      M
      MMRIZE
    • RE: multiple modules in a region

      @roth_nj
      similar?
      mimic

      posted in Troubleshooting
      M
      MMRIZE
    • RE: multiple modules in a region

      @roth_nj
      There is no way to do so.
      However, I think mimicking DAKBoard style to MM with some CSS juggling.

      posted in Troubleshooting
      M
      MMRIZE
    • RE: multiple modules in a region

      @roth_nj
      image

      Is this similar to what you wanted? (DAKBoard style)

      .region.top.left {
        width: calc(25% - 60px);
        backdrop-filter: blur(10px) brightness(60%) grayscale(30%) drop-shadow(4px 4px 10px black);
        padding: 20px;
        border-radius: 20px;
        height: calc(100vh - 160px);
      }
      
      .region.top.right {
        width: calc(75% - 20px);
      }
      
      .region.center {
        display: none;
      }
      
      .module.MMM-CalendarExt3 .module-header {
        font-weight: bold;
        font-size: 300%;
        color: white;
        line-height: 100%;
        border-bottom: none;
      }
      

      I use only 3 regions. top_left top_right, and fullscreen_below.

      posted in Troubleshooting
      M
      MMRIZE
    • RE: multiple modules in a region

      @roth_nj
      If you have a sketch (even with a hand), I may help you.

      posted in Troubleshooting
      M
      MMRIZE
    • RE: Buttons only work if I access via python first

      @gonzonia
      Sorry, I read the module but found nothing suspicious in that. The module and its dependencies look normal. ATM, I cannot guess the issue.

      posted in Troubleshooting
      M
      MMRIZE
    • RE: Buttons only work if I access via python first

      @gonzonia
      Is your issue solved?

      posted in Troubleshooting
      M
      MMRIZE
    • MMM-Scenes2

      MMM-Scenes2

      “Life is a theatre set in which there are but few practicable entrances.”

      ― Victor Hugo, Les Misérables

      MagicMirror module to change screen scenes by time and order with ANIMATION EFFECT.

      Demo

      MMM-Scenes2 Demo Click To Play
      Click it to see the DEMO.
      Its configuration file is in /examples/config.js.example

      Successor of MMM-Scenes

      Since MM 2.25, a new feature, animateCSS is introduced into the MagicMirror.

      By this update, my previous MMM-Scenes will be obsoleted. So I remade a new module for MM 2.25

      • The update can provide more effects now. ( without my effort. :D )
      • I guess custom animation is rarely used, and this update would cover most use-cases. So I decided to drop it.
      • I redesigned the structure more simply and intuitively. (role is introduced.)

      Concept

      The scenario of the MM screen comprises a series of scenes. Each module has its role in its appearance scenes to enter and exit by design.

      When a scene begins, all modules whose roles end will be expelled, and all modules with the parts in that scene will be admitted.

      As described in the scenario, your MM screen will play a drama with modules.

      Features

      • control show/hide modules by assigning role names to the module’s class
      • various animations for modules exit/enter
      • control scenes by notification and WebURL endpoints.
      • Loop control
      • custom indicators

      https://github.com/MMRIZE/MMM-Scenes2

      posted in System
      M
      MMRIZE
    • RE: update

      @pat59
      Or just remove “updatenotification” module from config. Trust me, it would be better.

      posted in System
      M
      MMRIZE
    • RE: Google doesn't want to give me my GooglePhohos Credentials

      @NathanJK
      Without more details (e.g. screenshots of each step), I cannot guess anything.

      posted in Troubleshooting
      M
      MMRIZE
    • RE: MMM-CalendarExt3 how do you create multiple events with color css?

      @Sam-0 said in MMM-CalendarExt3 how do you create multiple events with color css?:

      Okay, I did some further research based on the term symbol and saw that the symbols had to be added in the general calendar. I also saw them in MMM-CalendarExt3 as below.

      That is why I said;

      First,
      You can assign colour or class per each calendar. So check if your events are separated by different calendars. Check it first.

      posted in Utilities
      M
      MMRIZE
    • RE: MMM-CalendarExt3 how do you create multiple events with color css?

      @Sam-0
      If you have some knowledge about CSS, you can almost control the look of this module. Most needed info is described in readme md file.

      posted in Utilities
      M
      MMRIZE
    • RE: MMM-CalendarExt3

      @BKeyport
      What a coincidence.
      Yesterday, a user asked me how to manipulate day-cell and remove events together at the same time. It is ideally the same with your purpose.

      To reach your goal; 1) extracting an icon from an event and 2) putting it into the daycell would be needed.
      However, manipulateDayCell is executed after all events processes are done, so it cannot be achieved with CX3 alone. With manipulateDayCell, you can extract icons and inject them into the daycell, but you cannot remove original events together easily.

      With MMM-ModuleMonkeyPatch, you can remove events after rendering (before revealing)

      /* In MMM-CalendarExt3 config */
        manipulateDateCell: (cellDom, events) => {
          let body = cellDom.querySelector('.cellBody')
          Array.from(events).forEach((e) => {
            if (Array.isArray(e.symbol) && e.symbol.length > 0) {
              let icon = document.createElement('span') 
              icon.className = e.symbol
              body.appendChild(icon)
              icon.style.color = e.color
            }
            
          })
        },
        maxEventLines: 1,
      
      /* MMM-ModuleMonkeyPatch */
      {
        module: "MMM-ModuleMonkeyPatch",
        config: {
          patches: [
            {
              module: "MMM-CalendarExt3",
              method: "getDom",
              patch: function (original, args) {
                let dom = original(args)
                let target = Array.from(dom.querySelectorAll('.event')) || []
                target.forEach((e) => {
                  e.style.display = 'none'
                })
                return dom
              }
            }
          ]
        }
      },
      
      

      These codes are just concept-proof. There are many holes like overflowed events, order of events, … I bet you can improve codes for your purpose.

      posted in Utilities
      M
      MMRIZE
    • RE: MMM-CalendarExt3

      @BKeyport

      Is this what you want?
      ff1c0f88-fc4b-4def-b904-2e49216dc86e-image.png

      posted in Utilities
      M
      MMRIZE
    • 1 / 1