Problem using defined variables after upgrade to Version 3.8

I’m trying to monitor the humidity, temperature and light level in the crawlspace under my house via VeraAlert notifications. The VeraAlert sends a Pushover notification and also makes a Sonos text to speech announcement.

The notifications were working well using Reactor Version 3.5, but I was experiencing random Reactor actions that I suspect were being caused by system clock problems.

After reading the changelog for Version 3.6, I decided to update to the latest version (3.8), hoping this will resolve the random reactor actions.

Since the update, I am no longer able to use my expression created variables (e.g., “temp”, “humidity” and “light”) by surrounding the variable’s name with curly braces.

Using Version 3.5 - The alert includes the values for the humidity, temperature and light.

  • Example: “Crawlspace report: The crawlspace humidity level is 65.78 percent, the temperature is 68.94 degrees and the light level is 0.00 lux.”

Using Version 3.8 - The alert includes the words for the humidity, temperature and light instead of their values.

  • Example: “Crawlspace report: The crawlspace humidity level is {humidity} percent, the temperature is {temp} degrees and the light level is {light} lux.”

Can someone advise the proper way to include the variable values in my notifications?


The CHANGELOG file on Github has the information in it right at the top of the 3.6 entries:

  • BREAKING CHANGE: The previously-permitted but inconsistently-supported ability to use variable substitution embedded within strings (e.g. The time is {now}) is no longer supported. Some places could handle expressions, others could handle only variable names, and the embedding within a string was also not consistently supported. In order to make the behavior consistent throughout, a new formatting rule applies. Now, variable/expression substitutions are performed only when the string/parameter/operand begins with a { (left curly brace) and ends with a } (right curly brace). The text between the curly braces may be a variable name or an expression (a variable name alone is, in fact, an expression unto itself). Concatenation operators can be used to build strings from both text and multiple values, as well as any of the functions available. So where previously one might have used The time is {nowtime} and the weather is {weatherwords}, it is now necessary to use { "The time is " .. nowtime .. " and the weather is " .. weatherwords }. This was necessary to support consistent form and use of expression substitution in more places where possible.

Many thanks!!! Problem is resolved. I should have read the V3.6 changelog closer. I guess I was too occupied searching for a solution for the random Reactor notifications I’d been having.

1 Like