Під час реєстрації таймера методом tmr.alarm(), отримую помилку і програма, що використовує таймер не працює.

Відповідь:

Починаючи з версії NodeMCU 2.2.1-master_20190405, підтримуються лише іменовані таймери, а індексовані (0-n) таймери не підтримуються.

Джерело: https://github.com/nodemcu/nodemcu-firmware/tree/2.2.1-master_20190405

Цитата: “Breaking changes. Removed index-based timers that have been deprecated for a long time, #2603”.

Аналогічним чином не буде працювати метод tmr.stop(0), або будь-яка інша, аналогічна команда, де потрібно вказати ім’я таймера.

У запитанні наведено застарілий формат створення таймерів. Спробуйте замість методу tmr.alarm() застосовувати формат tmr.create():alarm(1000, tmr.ALARM_AUTO, func(par1, par2)) для швидкого утворення таймеру “на льоту”. Якщо ж вам потрібен повний формат об’явлення таймеру, то використовуйте у коді наступний, об’єктний формат:

Для зупинки таймера, відповідно буде працювати tmr_obj_name:stop().