With the exact variable you've given here that shouldn't happen, and I'm unable to reproduce that behaviour. However, if the variable value is "
Good morning MrFood | BNC" (with spaces around the "
|") then it is because it is being treated as a command separator. To get around that issue you need to prevent the %msg variable from being evaluated when the timer is
set so that it is only evaluated when the timer
goes off and knows to treat it as plain text.
.timer 1 1 .msg # $+(%,var)