I know this thread is super old but so what is the conclusion on this strange behavior: bug or feature? The guide says %BATT is not dynamic but using it as a variable value check target in a state works when the reverse is not allowed.
My previous solution, before I saw this bizarro thread, is this:
event: power level change: set %MyBATT to %BATT
state: check if %MyBATT is > %SpecificBatteryLevel
Is there any advantage for that compared to this?
state: check if %SpecificBatteryLevel < %BATT
It just seems like a bug that while it works, it may get fixed later and so you shouldn't depend on it.