Функция, создающая правило cron, не работает при вызове из правила назначенного, например, на нажатие кнопки

Здравствуйте. Ищу возможность переопределять время срабатывания правила, запланированного через cron.
Пока создал функцию создающую cron-правило, куда время срабатывания передаётся переменной.
Столкнулся с проблемой, что если вызывать эту функцию из правила, назначенного, например, на нажатие кнопки, то функция не создаёт cron-правило.
(Пробую по аналогии с этим )

var cron_rule_id = null;
var alarm_clock_time = "5 * * * *";

function setCron(){
  log("setCron function started ");
  cron_rule_id = defineRule("cron_alarm_clock", {
      when: cron(alarm_clock_time),
      then: function () {
        log("Alarmed");
      }  
  });
  log("cron_alarm_clock_id = " + cron_rule_id );
};

//setCron(); // Если вызывать функцию здесь, то работает нормально.

defineVirtualDevice("alarm_clock", {
    title: "alarm_clock",
    cells: {
	  enabled:{
        type: "switch",
        value: false
      },
    }
});

defineRule("alarm_clock_enabled", {
  whenChanged: "alarm_clock/enabled",
  then: function (newValue, devName) {
    if (newValue == true) {
      setCron();     
    }    
  }
});

В итоге в логе только “setCron function started”
Подскажите, что не так?

Чем черт не шутит, попробуйте не указывать имя правила в definerule. Оно тогда внутренне проименуется рандомно.
У меня такой костыль разок сработал, правда в иной ситуации.
Предположение было - что имена рулей где-то кешируются, а при сохранении одного скрипта демон передергивается не весь, ну и коротит где-то.