• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

MMM-Fireworks

Scheduled Pinned Locked Moved Entertainment
15 Posts 4 Posters 1.3k Views 4 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.
  • S Offline
    sdetweil @chrisfr1976
    last edited by Jan 8, 2025, 11:06 PM

    @chrisfr1976 if the start time is in the past and the event time is in the future, then the start time should be now. (however that gets calculated, literal or adjusted offset…)

    I am not looking at the doc or code

    Sam

    How to add modules

    learning how to use browser developers window for css changes

    P 1 Reply Last reply Jan 12, 2025, 2:24 AM Reply Quote 0
    • P Offline
      plainbroke @sdetweil
      last edited by Jan 12, 2025, 2:24 AM

      @sdetweil
      worked on my mirror

      Slow learner. But trying anyways.

      C 1 Reply Last reply Feb 7, 2025, 12:07 PM Reply Quote 1
      • C cgillinger referenced this topic on Jan 19, 2025, 11:43 AM
      • C Offline
        chrisfr1976 @plainbroke
        last edited by Feb 7, 2025, 12:07 PM

        I have completely reworked the MMM-Fireworks module!

        New:

        • It is now using the p5.js library. So it is now faster and I’ve added more config options.
        • Also the timing problem ist solved. You can define a start date and time. If you need to restart your mm inbetween it continues.
        • you can install it today and enjoy on next new years eve. (The JavaScript’s setTimeout is solved here (has a maximum delay roughly 2³¹–1 milliseconds - only 24.8 days)
        • Added a text overlay
        • runs as before in fullscreen but also “in a box” as every other module
        • And the best: the explosion effect is now really nice!

        Bild Text

        Bild Text

        Regards, Chris.

        C 1 Reply Last reply Feb 7, 2025, 9:32 PM Reply Quote 1
        • C Offline
          chrisfr1976 @chrisfr1976
          last edited by Feb 7, 2025, 9:32 PM

          @chrisfr1976 Hi,
          maybe interesting also for others: There is a canvas opacity parameter set now. So you can can keep all your stuff visible in the background while the fireworks is dancing on your mirror. I didn’t had this feature in mind, but I got this request on GitHub. I like that, too ;-)

          A picture from my playground to explain what I mean:

          Bildschirmfoto 2025-02-07 um 22.30.49.png

          Regards, Chris.

          C 1 Reply Last reply Feb 9, 2025, 12:20 PM Reply Quote 1
          • C Offline
            chrisfr1976 @chrisfr1976
            last edited by chrisfr1976 Feb 9, 2025, 12:44 PM Feb 9, 2025, 12:20 PM

            Hi,
            I’ve just released an update to solve several requests and problems.

            https://github.com/ChrisF1976/MMM-Fireworks

            • Multiple Scheduled Events:
              • The module now accepts an array of scheduled events (each with its own start time and text message). At each event time, the fireworks start with the corresponding overlay text.
            • Two separate notifications have been added:
              • NotificationStart (e.g. “FireFireFire”) starts the fireworks immediately using either the notification’s payload text or a default (textNotification).
              • NotificationStop (e.g. “StopFire”) stops the fireworks immediately if they are running.
              • When a notification is received, it overrides the scheduled events temporarily without affecting future scheduled shows.

            See also updated config!

            You can test the notifications with this simple module. I used it during development. I created a small start and stop button you can use.
            If you want to test the notification sender module you need to change the “fullscreen_above” to any other region of the mirror. Otherwise you cannot click on the buttons because they’re “behind” the MMM-Fireworks module…

            Config:

            {
              module: "MMM-NotificationSender",
              position: "top_left",
              config: {
                startNotification: "FireFireFire",
                stopNotification: "StopFire",
                startText: "Test me!", //leave blank to use text from MMM-Fireworks
                stopText: "Stop Fire", //nothing happens currently - maybe not needed
              }
            },
            

            Module:

            Module.register("MMM-NotificationSender", {
              // Default configuration options. These can be overwritten in config.js.
              defaults: {
                // Notification names to send. Other modules can listen to these names.
                startNotification: "START_NOTIFICATION",
                stopNotification: "STOP_NOTIFICATION",
                // Text payloads for the notifications.
                startText: "This is a start notification.",
                stopText: "This is a stop notification."
              },
            
              // Called when the module is started
              start: function() {
                Log.info("Starting module: " + this.name);
              },
            
              // Override the getDom method to create your custom UI.
              getDom: function() {
                // Create a wrapper element to contain the buttons.
                var wrapper = document.createElement("div");
                wrapper.style.textAlign = "center";
            
                // Create the Start button
                var startBtn = document.createElement("button");
                startBtn.innerHTML = "Start";
                startBtn.style.marginRight = "10px";
                startBtn.addEventListener("click", this.sendStartNotification.bind(this));
                wrapper.appendChild(startBtn);
            
                // Create the Stop button
                var stopBtn = document.createElement("button");
                stopBtn.innerHTML = "Stop";
                stopBtn.addEventListener("click", this.sendStopNotification.bind(this));
                wrapper.appendChild(stopBtn);
            
                return wrapper;
              },
            
              // Function to send the start notification
              sendStartNotification: function() {
                // Log to console and MagicMirror logs to check the button click event.
                console.log("Start button pressed. Sending start notification...");
                Log.info(
                  "Sending start notification: " +
                    this.config.startNotification +
                    " with payload: " +
                    JSON.stringify({ text: this.config.startText })
                );
            
                // Send the notification with the configured name and payload.
                this.sendNotification(this.config.startNotification, { text: this.config.startText });
              },
            
              // Function to send the stop notification
              sendStopNotification: function() {
                // Log to console and MagicMirror logs to check the button click event.
                console.log("Stop button pressed. Sending stop notification...");
                Log.info(
                  "Sending stop notification: " +
                    this.config.stopNotification +
                    " with payload: " +
                    JSON.stringify({ text: this.config.stopText })
                );
            
                // Send the notification with the configured name and payload.
                this.sendNotification(this.config.stopNotification, { text: this.config.stopText });
              }
            });
            
            

            Regards, Chris.

            1 Reply Last reply Reply Quote 1
            • 1
            • 2
            • 2 / 2
            2 / 2
            • First post
              12/15
              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