• 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-iFrame-Ping

Scheduled Pinned Locked Moved Utilities
58 Posts 12 Posters 36.0k Views 13 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.
  • A Offline
    AgP42 Project Sponsor Module Developer @rudibarani
    last edited by AgP42 Jan 14, 2019, 10:49 PM Jan 14, 2019, 10:41 PM

    @rudibarani
    Hello,
    I guess I managed what you asked, could you please test it before I release it ?
    This new version is here : https://github.com/AgP42/MMM-iFrame-Ping/tree/dev
    Only the file MMM-iFrame-Ping.js has been modified, so you can copy/paste it on your MM directly and restart your MM.

    Then to allow URL modification through Remote-Control you can use the following request :

    http://192.168.xx.xx:8080/remote?action=NOTIFICATION&notification=iFrame_Ping_URL&payload={%22url%22:%22https://magicmirror.builders/%22}
    

    or

    http://192.168.xx.xx:8080/remote?action=NOTIFICATION&notification=iFrame_Ping_URL&payload={%22url%22:%22https://www.youtube.com/embed/Qwc2Eq6YXTQ?autoplay=1%22}
    

    (edit : the forum text editor seams not to like my link : this strange symbol “&not” has to be remplaced by “& not” (without the space…))
    (edit2 : the “%22” is the URL-encoded form of the symbol ". You can also try directly with ", and if it is not working try with %22 instead)

    It’s a cool new functionality ! :smiling_face:

    R 1 Reply Last reply Feb 7, 2019, 1:55 PM Reply Quote 1
    • R Offline
      rudibarani Project Sponsor
      last edited by Jan 18, 2019, 12:02 PM

      Dear AgP42,

      thank you so much for considering this and spending the time to make it happen. I am traveling at the moment but am looking forward to testing it when I get back home.

      Have a nice weekend!

      A 1 Reply Last reply Jan 18, 2019, 9:16 PM Reply Quote 0
      • A Offline
        AgP42 Project Sponsor Module Developer @rudibarani
        last edited by Jan 18, 2019, 9:16 PM

        @rudibarani
        Thanks and you are welcome, it’s a pleasure to see that my work is useful and appreciated :-)

        I did a little bit more debugging and I also to try to change the URL through a rotating button or through the scheduler and I found some issues on the code I sent you for testing.
        Next week I am also traveling but as soon it look like acceptable I will send the new version.

        This functionality to be able to change dynamically the URL will really make this module much more interesting than the actual version !
        Every module will be able to send a notification to change the url, so many many new possibilities ! :relieved_face:

        1 Reply Last reply Reply Quote 0
        • H Offline
          Horge @AgP42
          last edited by Jan 27, 2019, 7:58 PM

          @agp42 Hi AgP42, your idea to duplicate the PlugIn doesn’t work for me. I made the adjustments as described, but I only see one iFrame at a time. Sometimes the initial display shows the iFrame of the second instance in the first instance. After a few seconds the content is displayed correctly for the second instance. The first instance remains empty.
          If I have understood and researched this correctly so far, there are problems to differentiate between the two instances when displaying the ‘Payload’.
          Do I have to make further changes to the second instance?

          1 Reply Last reply Reply Quote 0
          • B Offline
            bolish
            last edited by Feb 5, 2019, 9:11 AM

            @AgP42
            Hi, Thanks for the work, good module.
            Would it be possible to update the module by adding notification mgt to move to next url, .ie :

            • upon “IFRAMEPING_NEXT_URL” : display the next url of the list
            • Same with previous
            • Add Start / Pause option through notification also.

            I’m using MMM-GroveGestures and would like to be able to switch from URL1 to URL2 with gestures.

            Regards

            A 1 Reply Last reply Feb 8, 2019, 9:29 AM Reply Quote 0
            • R Offline
              rudibarani Project Sponsor @AgP42
              last edited by rudibarani Feb 7, 2019, 1:57 PM Feb 7, 2019, 1:55 PM

              Dear @agp42,
              I am finally getting back at my mirror and get some time to incorporate your updated module. Thanks again for making dynamic URLs possible!

              Would you mind changing this.urlToDisplay = payload.url; to this.urlToDisplay = payload; in your code? Thus, one could send a plain url as payload without the need to process it to be in the format{"url":"http://..."}.
              This would make things easier and as the payload will only contain a URL if the notification is iFrame_Ping_URL, this should not cause any problems with other possible content.

              1 Reply Last reply Reply Quote 0
              • A Offline
                AgP42 Project Sponsor Module Developer
                last edited by Feb 8, 2019, 9:18 AM

                @rudibarani
                Hello rudibarani,

                in fact it was my first try (as it is easier…) but I couldn’t succed to make it work and adding this “url”: is the only way I have found to make it work…
                Did you try to change the code and it was ok ?

                I do my best to find some hours this week end to finally debug my code and be able to release that new version !

                On the next version it will be possible to send a new url through http request, but also with the module scheduler or with a rotating button

                1 Reply Last reply Reply Quote 0
                • A Offline
                  AgP42 Project Sponsor Module Developer @bolish
                  last edited by Feb 8, 2019, 9:29 AM

                  @bolish
                  Hello Bolish,

                  thanks and happy to see that my module is useful,

                  I didn’t know the module MMM-GroveGestures so far but I check its documentation and it will be possible on the next version of the iFrame-Ping module to change the URL through the following code :

                  notificationExec: {
                    notification: "iFrame_Ping_URL",
                    payload: {
                       url: "http:whaturlyoulike.com"
                    }
                  }
                  

                  But it will not be a list of URL to switch between each other, just one url linked to a movement.

                  I will investigate a bit more this week end…

                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    bolish
                    last edited by Feb 8, 2019, 10:50 AM

                    Hi @AgP42 , @rudibarani

                    The modification you will implement for @rudibarani 's need will help me in one sense.
                    Indeed, MMM-GroveGestures is able to send wathever notification we want.
                    So, based on gestures, I will be able to send different URL’s.

                    It’s nevertheless, not covering fully my need as I was hoping for something incremental.
                    MMM-iFrame to manage the list of URL’s and able to move to next URL based on “URL NEXT” notification reception.

                    Maybe a combined proposal (that would make sense to me) would be :

                    • Centralize URL management into MMM-iFrame with :
                      - URL 1 : htpps…
                      - URL 2 : hfkzejrhfzoer

                    This would allow :

                    • any other modules to call for URL 1 or 2 and maybe suiting to @rudibarani
                    • would to avoid people to manage the list of URL into several modules (keep it into MMM-iFrame)
                    • enable the possibility to manage incremental notification mgt (my intial request : “NEXT URL” by managing a kind of counter into mmm-iFrame (to move from URL X to URL X+1 or URLX-1)

                    I hope it’s clear.

                    And I also don’t want to mess up with @rudibarani 's need which was expressed before…

                    So if my proposal (which seems more generic to me, so potentially opening larger possibilities in future for this module), suits to @rudibarani , fine.

                    But if my proposal is not suiting to @rudibarani 's need, go for him first maybe, I will try to adapt myself later.

                    Hope you will have time to dig in soon!

                    1 Reply Last reply Reply Quote 0
                    • A Offline
                      AgP42 Project Sponsor Module Developer
                      last edited by Feb 8, 2019, 10:10 PM

                      Dear all,

                      so before to do a new release, let’s think a bit ! :thinking_face:


                      First, here is a summary of the request/question so far on this forum and on github issue about this module :

                      Major requests :

                      • Be able to display several URL :
                        - to be launched randomly - @rudibarani, Gavin-McLeod (GitHub)
                        - to be able to launch the next one, previous one and play/pause through notification - @bolish
                      • Request new URL to display through notification (and without url formating will be better) - @rudibarani
                      • Be able to declare several instance of the module to display several different video on the same display - @Johans, @Horge, gpapig (github)

                      Minor requests :

                      • remove iFrame border @rudibarani and @THeStigh (github) --> no problem to add a param
                      • be able to scale the content Felisuk (github) --> complex and I don’t really want to spend time on it for now…

                      On a technical point of view, the most complicated part to manage several urls or instances is due to the fact that I use a “node_helper” to be able to manage asynchronous tasks to manage the ping functionality. And this node_helper has to be shared between all instances ; and as it is asynchronous, if a new url notifications arrives before the previous ping answer (or timeout), it causes url inversions…

                      I personally need that ping functionality because I use my module to display the image of a camera that is very oft down…(otherwise I wouldn’t have created this module ! :face_with_stuck-out_tongue_winking_eye: ), but I guess that several of this module users don’t need it, right ? :question_mark:

                      => So my proposal will be to keep this module as it is now (with small bug correction that I found anyway), and to create a new one dedicated to the dynamic url management and able to display several instances.


                      My proposal for this new module (this is a proposal, let’s see after what I can really do !) :

                      • name : MMM-SmartWebDisplay (any other idea welcome ! I don’t want to keep iFrame on the name, nobody care of the technical mechanisms…)
                      • new functions :
                        • several instances possibles, identifiable with a name to be able to send them dedicated notifications
                        • url to display sent through notification (to be able to send a list of URL will be best). This notification could be send :
                          * by external http request, using MMM-RemoteControl. This will open a very big range of possibilities, as for example using IFTTT to change the content to display according to any trigger…
                          * by MMM-ModuleScheduler (according date and time)
                          * by rotating button module (or any other button module or PIR sensor)
                          * in fact by any module able to send a notification to other modules !
                        • management of several url (given on the config file or received by a notification) :
                          * possibility to define a timer to go to the next URL (if the URL is not a video it must be possible also to use the updateInterval time in addition)
                          * possibility to use notification to request the following actions : NEXT or PREVIOUS url. As before this notification can be send by any module, as for example MMM-GroveGestures, but also any physical button or by an http request, …
                        • possibility to send notification to play/pause the rotation of URL and the intervalUpdate (to refresh images)
                          question : for videos what should I do ? Just stop the rotation of URL or stop the playing video too ? It will be possible to stop them (in fact : change the URL to empty), but not to stop the image where it is and restart the video later, because I have no access to this YouTube (or other) embedded function…

                      To clarify : what extra infos to be display bellow the image ? If several URL I can consider to write the name of the next URL.

                      • previous functions of iFrame-Ping that will remains :

                        • management of stop and restart according to USER_PRESENCE and module hidden (in fact it will be the same behavior than on reception of the notification “play”/“stop”)
                      • previous functions that will be removed :

                        • PING before display…

                      This dream list seams to me very interesting ! Any other idea ?

                      Also now… : let’s sleep :sleeping_face: and tomorrow : let’s code !! :smiling_face_with_open_mouth_cold_sweat:

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 2 / 6
                      • 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