Сделал логику, когда при нажатии Zigbee кнопки отправляется уведомление в телеграм. Для этого есть код отправки сообщений в телеграм:
var postMsg = "curl -s -X POST https://api.telegram.org/botXXXXXXXX/sendMessage -d chat_id=-12345678 -d text='{}'";
global.__proto__.SendTelegramMsg = function(msg) {
runShellCommand(postMsg.format(msg));
};
И функция ловли изменения кнопки
var allow_actions = ["single", "double", "hold"];
function sendMemoToTelegram(device_id, action) {
if (allow_actions.indexOf(action) !== -1) {
SendTelegramMsg("trackMqtt: " + device_id + ", action=" + action);
}
}
trackMqtt("/devices/0x00158d0006ffd28b/controls/action", function(message){
sendMemoToTelegram("0x00158d0006ffd28b", message.value);
});
Если я редко нажимаю кнопку, скажем, раз в 3-4 секунды - все отлично. Если я начну наживать кнопку раз в секунду, в лог начинает просачиваться вот такие ошибки:
Oct 27 06:07:45 wirenboard-ALLE5D4S wb-rules[25281]:
ERROR: command '/bin/sh -c curl -s -X POST https://api.telegram.org/botXXXXXXXXXX/sendMessage -d
chat_id=-12345678 -d text='trackMqtt: 0x00158d0006ffd5fd, action=hold''
failed with exit status 7
Ошибка 7 - это “Communication Error”. Такое ощущение, что если два запуска curl накладываются друг на друга - то возникает такая ситуация. Может быть можно в конфиге какие-то лимиты поправить или еще что-то, чтобы контроллер отрабатывал несколько одинаковых вызовов одновременно без ошибок?