Custom Output to display



  • Guys, I need to create a Custom Widget wich can work with a few inputs and variables I create!

    So... I already made the logic work, created the tags and etc.. but I'm stuck at the template part!

    How can I make the connection btw the script and the template and what the heck is script binding?

    Here is the code I came up with :

    var myImports = new JavaImporter(java.io, java.lang, java.util); 
    Amp1= mcApi.variable().get("Amp1");
    Consumo1 = mcApi.variable().get("Consumo1");
    var sensorVariable = mcApi.uidTag().getByUid("VoltRaw1");
    var dispItems = [];
    with(myImports)
     {
    Consumo1 = Amp1.value * sensorVariable.sensorVariable.value;
    }
    

  • ADMIN

    @Darvos Script bindings are input to your script. You can read those input as a variable. Example: {"threshold": 85.4, "variable_xyz": 44, "my_text": "hello"}

    I do not understand what you want to do? Could you please elaborate a bit more on this?



  • Sure, I want to multiply an input by a variable , put the result in a variable and show it at my dashboard !

    Example : I'm reading a light sensor, I wanna have both the raw value and the valia of the light multiplied by certain number in my dash board!

    So I create a "sensor viewer " and a "custom viewer " right?

    Well, for the custom viewer I need a script to do the job for me... taking both utags and variables and doing a simple multiplication , then show me the valeu ... right?

    Well I need help finishing the script because, I can make the simple code but can't make it show the valeu at the "custom viewer " . I guess I'm missing both the template and the script binding



  • In other words , how can I display a variable, not a input or a tag, just a variable



  • @jkandasa I forgot the reply you didn't I?

    Sorry, but I'm still hoping you can help me with this.

    Thank you very much


  • ADMIN

    @Darvos You have to do all your calculations on your script and create an HTML template to display the value on the dashboard. Example: http://forum.mycontroller.org/topic/144/how-to-show-several-sensor-readings-in-a-single-widget/4



  • @jkandasa Thaaaats IIIITTT ^^

    Thank you thank you thanks aloooot jkandasa, you beatiful man!!

    I was expecting this for days, and I'm really excited with the outcome of this project


  • ADMIN

    @Darvos

    JavaScript
    var myImports = new JavaImporter(java.io, java.lang, java.util); 
    with(myImports) {
      var amp1 = mcApi.variable().get("Amp1");
      var volt = mcApi.uidTag().getByUid("VoltRaw1").getResource();
      // custom value
      var finalData = amp1.value * volt.value;
    }
    
    HTML template
    <div>My custom value: ${finalData}</div>
    <div>Raw values:[Amp1:${amp1.value}, volt:${volt.value}]</div>
    

    Note: Use the latest version of MyController from here



  • @jkandasa J, my saivior!! the project is working just fine, i only have one question to make!! plz save me!!

    i've been trying to acumulate values (anyvar += anyvar) without sucess...

    I tried loops, timers, no sucess...

    I need to sum all the values I gather since the first reading.. any tip?



  • @jkandasa Gosh, so.. I was doing some research over the forum... and I found this http://forum.mycontroller.org/topic/139/hour-meter wich I've been trying to use with no sucess...

    let me put some good info here!

    0_1497462933454_image.png
    I've made those simple custom widgets, here is the script for them

    var myImports = new JavaImporter(java.io, java.lang, java.util); 
    var Custo = 0;
    with(myImports) {
      var amp1 = mcApi.uidTag().getByUid("AmpRaw1").getResource()
      var volt = mcApi.uidTag().getByUid("VoltRaw1").getResource();
      var taxa = mcApi.variable().get("Taxa"); 
      var Custo_aux = mcApi.variable().get("CustoT"); 
    
      // custom value
      var finalData = (amp1.value * volt.value)/ 1000;
      Custo_aux.value = finalData * taxa.value;
    }
    

    I just need a way to acumulate(a.k.a SUM) the values os the last line like Custo_aux.value += the rest...

    I've been trying to use the .save() without success too..

    Plz master J, help me out!!


  • ADMIN

    @Darvos By default, Repository and SensorVariable values will be stored as String You need to convert it to Integer, Float or as you like.

    var myImports = new JavaImporter(java.io, java.lang, java.util); 
    with(myImports) {
      var amp1 = mcApi.uidTag().getByUid("AmpRaw1").getResource()
      var volt = mcApi.uidTag().getByUid("VoltRaw1").getResource();
      var taxa = mcApi.variable().get("Taxa"); 
      var Custo_aux = mcApi.variable().get("CustoT"); 
    
      // custom value
      var finalData = (parseFloat(amp1.value) * parseFloat(volt.value))/ 1000;
      var currentCusto = finalData * parseFloat(taxa.value);
      Custo_aux.value = parseFloat(Custo_aux.value) + currentCusto; //SUM with previous values
      Custo_aux.save(); //store it on repository
    }
    

    Note: Repository variables Taxa, CustoT should be created with default values. before to execute this script at first time.



  • Thank you thank you!

    you are the best!


Log in to reply
 

5
Online

309
Users

206
Topics

1216
Posts

Looks like your connection to MYCONTROLLER.ORG was lost, please wait while we try to reconnect.