Scheduled restart for MM or module



  • Hi,

    I´m in the middle of building my first MM and know next to nothing about coding. Thanks to Google I came very far, but now I´m stuck.

    Here is my problem: I want to show the stream of my foscam camera to my mirror. I tried the module “MMM-ipCam” but i could not get it to work (it always returned “undefined object”). But I am able to see the stream in a browser via URL. So I got the iframe module and now the stream is shown on my mirror, yeah.

    But: The stream freezes after a few hours. Sometimes it runs for a day and a half, sometimes for only 10 hours. After restarting the mirror, all is fine again.

    This is what I already tried:

    • I copied the “update interval” section from the compliments module and inserted it in the iframe module. I thought this would fetch the stream every few minutes and solve the problem. I don’t even now if I did it right, but it did not help.

    • I looked up cron jobs and thought maybe I could start and stop the mirror every six hours. But since I know nothing about it and I did not find the right command to quit the mirror (I know start is npm start, but what would I say to quit…?) I gave up.

    Can you help me with a few lines of code that I can insert into the module or for restarting the mirror?



  • @CyanKali have you checked out MMM-iFrameReload??



  • Thank you so much, that was exactly what I was looking for!
    I can’t believe I did not find it with by searching, I thought I checked all the modules and forums…

    Someone added the possibility to get rid of the scrolling bars in the iframe module. I just copied the code from the iframe module and it works in the iframe reload module, too.

    I don´t want to take credit for it since I just copied it, but if it helps someone else, here is what I did:
    I added “iframe.scrolling = this.config.scrolling;” in the module file, there:

    // Override dom generator.
    getDom: function() {
    var iframe = document.createElement(“IFRAME”);
    iframe.style = “border:0”
    iframe.width = this.config.width;
    iframe.height = this.config.height;
    iframe.scrolling = this.config.scrolling;
    iframe.src = this.config.url;
    return iframe;
    },

    After that, you can set “scrolling:“no”,” in the within the module in the config file.

    Thanks again!



  • …me again. Unfortunately, iframe reload did not work. There seems to be an known issue with refreshing pages but I tried the suggested fixes and nothing worked:
    https://github.com/TheBogueRat/MMM-iFrameReload/issues/2?_pjax=%23js-repo-pjax-container

    The author of the module does not answer me, maybe I can get some help here? When you click on the link you see my post where I describe what I already tried.



  • Did you ever resolve this? I’m running into the same issue.



  • Unfortunately no. I am still looking for a solution. And I´m still hoping somebody might help with this issue.



  • @CyanKali I’m not sure why the developer didn’t update the git pull for this one.

    I ran into every issue you did when trying to implement the “fix.”



  • @CyanKali can you try iframe.setAttribute("timestamp", new Date().getTime()); between line 32 and 33 of the js file?



  • @strawberry-3.141 This worked for me. Outstanding. Thank you.



  • Hi straawberry, thank you for your help!
    So, my js file now looks like this:

    	getDom: function() {
    		var iframe = document.createElement("IFRAME");
    		iframe.style = "border:0"
    		iframe.width = this.config.width;
    		iframe.height = this.config.height;
    		iframe.scrolling = this.config.scrolling;
    		iframe.src =  this.config.url;
                    iframe.setAttribute("timestamp", new Date().getTime());
    		iframe.id = this.config.id;
    		return iframe;
    

    is that right?

    And my congif.js now looks like this:

    	{
    	module: 'MMM-iFrameReload',
    	position: 'bottom_right', // This can be any of the regions.
    		config: {
    		// See 'Configuration options' for more information.
    		url: "http://MY_URL",
    		width: "80%", // Optional. Default: 400px
    		height: "400px", // Optional. Default: 800px
    		scrolling:"no",
    		refreshInterval: 60, //Optional. Default: 3600 = 1 hour
    		animationSpeed: 4000,
    		}
    	},
    

    Is that right?

    The stream is working right now, but I don´t see any refresh animation. I will have to wait until tomorrow to see if it reloads because most of the times it takes some hours for the stream to freeze.


Log in to reply
 

Looks like your connection to MagicMirror Forum was lost, please wait while we try to reconnect.