• 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-NotificationTrigger transform payload

Scheduled Pinned Locked Moved Unsolved Troubleshooting
24 Posts 4 Posters 5.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.
  • L Offline
    lavolp3 Module Developer @corius
    last edited by lavolp3 Jan 14, 2020, 3:23 PM Jan 14, 2020, 3:22 PM

    @corius you need to have a look at how the payload looks. If it’s an array, you should be able to catch the title of specific elements by using something like payload.entries[n].title

    How to troubleshoot modules
    MMM-soccer v2, MMM-AVStock

    S 1 Reply Last reply Jan 14, 2020, 3:36 PM Reply Quote 0
    • L Offline
      lavolp3 Module Developer
      last edited by Jan 14, 2020, 3:27 PM

      @corius Considering you want to alert the next event happening in say 15 minutes, you could first check what event is in a range of the next 15 minutes, then take it’s title and alert that one. Can all be done inside the callback function you’ve shown above.

      Is that what you want?

      How to troubleshoot modules
      MMM-soccer v2, MMM-AVStock

      1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil @lavolp3
        last edited by sdetweil Jan 14, 2020, 3:40 PM Jan 14, 2020, 3:36 PM

        @lavolp3 actually payload IS an array
        (from my system default cal)

        0: {title: "M L King Day", startDate: "1579500000000", endDate: "1579586400000", fullDayEvent: true, location: "United States", …}
        1: {title: "Valentine's Day", startDate: "1581660000000", endDate: "1581746400000", fullDayEvent: true, location: "United States", …}
        2: {title: "Presidents' Day", startDate: "1581919200000", endDate: "1582005600000", fullDayEvent: true, location: "United States", …}
        3: {title: "Good Friday", startDate: "1586494800000", endDate: "1586581200000", fullDayEvent: true, location: "United States", …}
        4: {title: "Easter Sunday", startDate: "1586667600000", endDate: "1586754000000", fullDayEvent: true, location: "United States", …}
        5: {title: "Mother's Day", startDate: "1589086800000", endDate: "1589173200000", fullDayEvent: true, location: "United States", …}
        6: {title: "Memorial Day", startDate: "1590382800000", endDate: "1590469200000", fullDayEvent: true, location: "United States", …}
        7: {title: "Father's Day", startDate: "1592715600000", endDate: "1592802000000", fullDayEvent: true, location: "United States", …}
        8: {title: "Independence Day Holiday", startDate: "1593752400000", endDate: "1593838800000", fullDayEvent: true, location: "United States", …}
        9: {title: "Independence Day", startDate: "1593838800000", endDate: "1593925200000", fullDayEvent: true, location: "United States", …}
        
        

        so the js would be

        payload[0].title 
        

        for the title (cal subject) of the 1st cal entry

        I found this by using the developers window (ctrl-shift-i), selecting the ‘Sources’ tab,
        expanding the modules entry, and then the calendar entry to get to calendar.js

        then knowing it is a notification,(notificationreceived) i searched (ctrl-f) for ‘sendnotification’
        I put a stop on that line, hit refesh(f5), and the web page starts over, and stops on that line, then use the mouse to hover over the eventlist variable name, and it expands to the data layout

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        1 Reply Last reply Reply Quote 0
        • C Offline
          corius
          last edited by Jan 14, 2020, 3:38 PM

          @lavolp3 yes that is exacly wat i want. can you please post the code? Thank you

          L 1 Reply Last reply Jan 14, 2020, 3:40 PM Reply Quote 0
          • L Offline
            lavolp3 Module Developer
            last edited by lavolp3 Jan 14, 2020, 3:41 PM Jan 14, 2020, 3:39 PM

            {
              module: "MMM-NotificationTrigger",
              config: {
                triggers:[
                  {
                    trigger: "CALENDAR_EVENTS",
                    fires: [
                      {
                        fire:"SHOW_ALERT",
                        payload: (payload) => {
                          var testMessage = "";
                          payload.forEach(event => {
                            if (moment(event.startDate) > moment() && moment(event.startDate) < moment().add("15", minutes)) {
                             testMessage += event.title + ", "
                            }
                          });
                          return {
                                  type: "notification",
                                   title: "test",
                                   message: testMessage
                          } 
                        },
                      },
                    ],
                  },
                ]
              }
            },
            

            This will most probably not work and needs to be de-bugged, but might be worth as a starting point. And I hope you get what I’m hinting at.

            How to troubleshoot modules
            MMM-soccer v2, MMM-AVStock

            1 Reply Last reply Reply Quote 0
            • L Offline
              lavolp3 Module Developer @corius
              last edited by lavolp3 Jan 14, 2020, 3:42 PM Jan 14, 2020, 3:40 PM

              @corius

              can you please post the code?

              Took me 10 seconds :smiling_face_with_sunglasses:
              No, of course I was already working on it.

              Seriously, I like the idea, that’s why I did a contribution.But you need to be more specific if you want to have the complete solution

              How to troubleshoot modules
              MMM-soccer v2, MMM-AVStock

              C 1 Reply Last reply Jan 14, 2020, 4:25 PM Reply Quote 0
              • C Offline
                corius
                last edited by Jan 14, 2020, 3:59 PM

                @lavolp3 Thank you for the fast answer. I tried this code. the result is that I get a notification but so far it only contains the title (test) but not the massage (title of the calendar event)

                S L 2 Replies Last reply Jan 14, 2020, 4:30 PM Reply Quote 0
                • C Offline
                  corius @lavolp3
                  last edited by Jan 14, 2020, 4:25 PM

                  @lavolp3 what do you mean by “more specific”?

                  S 1 Reply Last reply Jan 14, 2020, 4:31 PM Reply Quote 0
                  • S Offline
                    sdetweil @corius
                    last edited by Jan 14, 2020, 4:30 PM

                    @corius did u have an event within the next 15 minutes?

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    C 1 Reply Last reply Jan 14, 2020, 4:37 PM Reply Quote 0
                    • S Offline
                      sdetweil @corius
                      last edited by sdetweil Jan 14, 2020, 4:31 PM Jan 14, 2020, 4:31 PM

                      @corius >what do you mean by “more specific”?

                      all the questions we have been asking… title, time filter, number to show, …

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 1 / 3
                      1 / 3
                      • First post
                        10/24
                        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