===== Tasker Variables =====
There are tricks to using Tasker variables in Watchmaker. I learnt this the hard way and after much relearning Lua. Thankfully, Lua is not too difficult a language to get into. If you have done any BASIC or shell scripting, you won't be too lost!
===== How to use them =====
Tasker variables that are sent to Watchmaker are prefixed with a **t** and enclosed around **{ }**. All variable names are converted to lowercase, so bare this in mind when running Tasks. For example, %SomeVar will be **{tsomevar}**. This can result in issues if you use a global and local identical, for example **%loc** and **%LOC** - both will be **{tloc}** to Watcmaker.
In most cases, Tasker variables are seen as Lua tables to Watchmaker. This can make using the raw **{tvariable}** difficult to use in formula or string conversions. So we ideally want to map them to **var_variables** in the Main Script.
===== How often =====
The raw **{tvariables}** will update as you send them through Watchmaker (when screen is bright). This is fine for simple sending of small data sets where no math or string formulas are used. However, to make everything pretty and error free, there are tricks to make them more efficient and usable.
==== Once a minute or longer ====
This includes being updated on_display_bright() as well as results from ontap actions.
In this example, we'll send **%taskerstring** containing a text string //Hello World// and **%taskernumber** containing a number //62.21//
There is a trick to handling both!
function static_variables()
taskerstring=wm_tag('{ttaskerstring}')
var_string=tostring(taskerstring)
taskernumber=wm_tag('{ttaskernumber}')
var_number=tonumber(taskernumber)
end
static_variables()
Now, this alone won't do anything but initialize the **var_** variables to use in faces. What it does, it initializes the variable as Lua only local variable. The next step then sets it to a type, string or number. This is important to know what we are sending to map correctly. If your variable contains both strings and numbers, whether together or alone, use //tostring()//.
We can error check against them easily!
var_string == nil and 'No string yet' or var_string
and
var_number == nil and '-1' or var_number
===== WIP =====
~~socialite~~