Well, in general it’s not really “bad”. But it’s not great. We should endeavor to avoid writing rules that do nothing most of the time. This is also sometimes called polling. It’s much better to instead react to events and only do work when necessary instead of always doing something even when you don’t need to. The code tends to be simpler to understand and maintain and you avoid being wasteful with resources.
However, is it really bad to do this? No, not really. You’ll be spamming the logs, sure and that can add up to wearing out an SD card a little faster. And you’ll be using probably a barely measurable more amount of energy per day. But those are not really that bad of a problem.
So what is someone to do? You have a number of options actually. A couple are:
-
Create another Switch Item to enable the Blinker. Add a Condition to the rule so it only runs when that Switch is ON.
-
Implement the Blinker as a Design Pattern: Looping Timers. Trigger a rule only when something should start blinking and then create a looping timer to blink it until it’s told to stop. There is an OH 3 compatible implementation of looping timer as a library at https://github.com/rkoshak/openhab-rules-tools/tree/main/looping_timer.