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; }
-
@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
-
@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
-
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!
I've made those simple custom widgets, here is the script for themvar 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!!
-
@Darvos By default,
Repository
andSensorVariable
values will be stored asString
You need to convert it toInteger
,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!