Read the statement by Michael Teeuw here.
MMM-iFrame-Ping
-
@agp42 Thanks for the quick help!
-
Dear @AgP42,
one of my use cases for your module is showing a livestream from the ISS on the night-page of my mirror, if a user is present. Looks really good!
Now i thought of enhancing it and playing some curated movies from the ISS during those moments, when it is not flying in daylight.Would it be possible / difficult to add a limited number of youtube links and either select one of them for playback via a notification or play them randomly?

-
@agp42 Would it be possible to have 2 instances in the config file, working independently?
-
@rudibarani Sorry for my late answer. Did you consider to create a youtube playlist and make it run on the Mirror ? (This way of doing is now describe on the readme file) I guest it will fulfill your need !
-
@agp42 Ok, thanks for the tip, I’ll checkup the README file.
-
@johans Hello, in fact I already try to manage this functionality (on another plugin), but it’s very hard to make it work.
Here is an easy way for you :- duplicate the plugin (copy/paste the full folder and rename it, for example “MMM-iFrame-Ping-2”)
- enter the folder and rename the file “MMM-iFrame-Ping.js” into “MMM-iFrame-Ping-2.js” (no need to change the css file, you can also delete it)
- open the file “MMM-iFrame-Ping-2.js” and and the very first line, also change :
Module.register("MMM-iFrame-Ping",{to
Module.register("MMM-iFrame-Ping-2",{- then you can declare this “new” module on your config file and use it with another URL
(Yes this is a very very bad looking solution :grimacing_face: , please don’t tell anyone it comes from me !:winking_face: )
-
Dear @agp42,
unfortunately, a playlist does not help for my use case:
I found a 90 min 4K Video Collection from the ISS and want use a defined / selected / random 35 minute section to fill in for the time when the ISS is in the dark.
Currently, I am circumventing it by having multiple copies of the “Night”-page with MMM-Page-Selector and defining different instances of MMM-iFrame-Ping for each page. Each of these instances get a defined URL and I call the pages via notifications, depending on the daylight-status of the ISS.
Having a little more flexibility in the module would make this a lot easier and more dynamic.Maybe it could be possible to pass on an URL via a notification?
-
@rudibarani
Hello,
to better understand your request, by “notification” do you mean the internal MM notification mecanism ? (describe here on the official doc)
In that case, which module will send the url request to the MMM-iFrame-Ping module ? and what will be the notification request format ?Thanks,
AgP42 -
@AgP42 Thanks for your reply and happy new year!
I using MMM-Remote-Control to inject notifications from my home automation system (FHEM), as it knows all the other relevant states in the house (user-presence, lighting situation, etc.).Maybe your module could listen to
"iFrame_Ping_URL"notifications and take the"URL"from the payload and use it until a new one is provided or until a restart, in which case it would revert back to the standard URL from the setup?This way, it would not change its behavior presented to its current users and just gain an option to change the preconfigured URL on the fly.
-
@rudibarani
Yes it seams possible to do, but then MMM-Remote-Control has also to be modified to be able to send such notification, no ?
Could you let me know the other modules you uses than catch MMM-Remote-Control notification, so I will look the source code please ?Thanks,
AgP -
@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 :
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login
