Read the statement by Michael Teeuw here.
MMM-iFrame-Ping
-
@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¬ification=iFrame_Ping_URL&payload={%22url%22:%22https://magicmirror.builders/%22}
or
http://192.168.xx.xx:8080/remote?action=NOTIFICATION¬ification=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 “¬” 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:
-
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!
-
@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: -
@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? -
@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
-
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;
tothis.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. -
@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
-
@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…
-
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!
- Centralize URL management into MMM-iFrame with :
-
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:
- Be able to display several URL :