Пробелы в названиях топиков mosquitto

Не нравится мне описанный подход. Ну и модифицировать можно одной-двумя строчками в том же правиле, равно как и взводить "таймер.

А можете помочь с кодом, от которого можем оттолкнуться в вашем варианте? У меня сейчас так:

defineVirtualDevice("export", {
	title: "Export",
	cells: {
		main_power_total: {
			type: "power",
			value: 0,
          	order: 1
		},
		main_energy_total: {
			type: "power_consumption",
			value: 0,
          	order: 2
		}
	}
});

defineRule("sendDataToServer", {
	when: cron("@every 5s"),
	then: function () {
		dev["export"]["main_power_total"] = dev["wb-map12e_180"]["Ch 1 Total P"];
		dev["export"]["main_energy_total"] = dev["wb-map12e_180"]["Ch 1 Total AP energy"];
	}
});

Функцию переписать так:

function mqtt_republic(sTopic, dPath, dTopic){
  defineRule("republic_"+sTopic, {
    whenChanged: sTopic, 
  	  then: function (newValue, devName, cellName) {
        publish(dPath+devName+"/"+dTopic, newValue, 2, false);
        //log.info(dPath+devName+"/"+cellName)
      }
  });
}

Ну и добавить в саму функцию примитивную процедуру: Проверка, не запущен ли таймер, если запущен: ничего не делать. Если не запущен - публиковать значение и запускать таймер. Таким образом публикация не чаще чем период таймера.
Ну и значение таймера опционально передавать в функцию.