Read the statement by Michael Teeuw here.
Need help - New programmer
-
@sdetweil Hello. I did and still am not receiving any alert on the screen
-
@smart_user show me the config block. Minimum is this. MUST have a position
{ module:"SampleModule", position:"middle", },
-
euh …
position
needed ONLY if you have to show something on the mirror (getDom).
If you have nothing to show THENposition
is not neededNote: verified in my lasted module (position is not needed because no visual)
-
@Bugsounet yes, my sample module DOES want to display something
-
@sdetweil Yes! I missed adding the position to the config file. Just have another clarification. Can these messages show up for a few seconds then disappear and then appear again after 30 minutes? If so, how do I do that?
-
@smart_user sure. When u want the message to go away, set the string to empty, or not create any content in getDom()…
U would start a timer after u display the text, and the call updateDom() in the timer routine.
Wait, display. Wait. Remove output
Repeat -
@sdetweil Hello, I am facing the same problem - and I want the same feature @smart_user mentioned. But I am sorry, I didn’t get the timer part. Which string are you talking about? and where will I add the updateDom()? Please help
-
@innovation i have my grandson for a few hours will get back to you
-
sure @sdetweil, no problem!
-
@innovation the ‘string’ is the value used in the getDom() function to create the html content
somestring:“this is just a test string”,
counter: 0,getDom(){ var wrapper=createElement("div") wrapper.innerText=this.somestring return wrapper; }
there is no stopping the module, it MUST always be running… so, if u want to change the string,
you can start a timer, and when the timer expires, call a routine that does the work.timerRoutine: function(){ this.somestring="some other string" }
but how does MM know u changed the value?
u tell MM there is new content…timerRoutine: function(){ this.somestring="some other string "+ this.counter++; this.updateDom(time_to_delay_in_ms, 0 = immediately) }
now we need to start a timer… lets say, 15 seconds after we do it in getDom, lets change the text
getDom(){ var wrapper=createElement("div') wrapper.innerText=this.somestring // use the value of the somestring variable to display setTimeout(this.timerRoutine, 15000) // call the timerRoutine in 15000 milliseconds return wrapper; // after here , MM will put the html tree defined in wrapper, // in the 'position' the module defined in config.js }
another way is to use the repeating timer, instead of the single event version
start: { // now the timerRoutine will be called every 15 seconds, forever // it will change the string, and then inform MM to call to get new content setInterval(this.timerRoutine,15000) // start a repeating timer every 15 seconds }, getDom(){ var wrapper=createElement("div') wrapper.innerText=this.somestring // use the value of the somestring variable to display return wrapper; }
you can do this same updateDom() call after receiving a message back from your node helper with new content.
(my sample module does this)