Отправлять будем, используя сервис SMS.ru. Данный сервис позволяет слать 5 сообщений в день на свой номер бесплатно, а на другие номера тарифы от ~20 коп. до ~2 руб., что весьма бюджетно.
Итак, регистрируемся по ссылке (эта ссылка партнерская, получаем по ней 10 руб. на счет и 20% скидки), идем в раздел "Программистам", копируем свой api_id:
И вставляем вместо "ВАШ_ID_ПОЛУЧЕННЫЙ_НА_САЙТЕ" скрипта IOBROKER:
var request = require('request'); var my_API_ID = 'ВАШ_ID_ПОЛУЧЕННЫЙ_НА_САЙТЕ'; createState('SMS.status',0); createState('SMS.status_code',0); createState('SMS.numbers',0); createState('SMS.message',0); createState('SMS.balance',0); function sendSMS() { // log('Link: ' + link); request('https://sms.ru/sms/send?partner_id=235959&api_id=' + my_API_ID + '&to=' + getState("javascript.0.SMS.numbers").val + '&msg=' + encodeURIComponent(getState("javascript.0.SMS.message").val) + '&json=1', cb(function(error, response, body) { if(error) log('Problem with request: ' + error, 'error'); else { var jsonContent = JSON.parse(body); // log('Body: ' + body); // log('Status: ' + jsonContent.status); // log('Status_code: ' + jsonContent.status_code); // log('Balance: ' + jsonContent.balance); setState("javascript.0.SMS.status", jsonContent.status, true); setState("javascript.0.SMS.status_code", jsonContent.status_code, true); setState("javascript.0.SMS.balance", jsonContent.balance, true); } })); } // schedule("* * * * *", sendSMS);
Использовать просто - заполняем поля message и numbers (номеров можно несколько, через запятую) и вызываем функцию sendSMS();
Лайфхак — регистрируемся (уже своей ссылке) на несколько аккаунтов под номерами, на которые будем потом отправлять оповещения (для жен, детей, бабушек) и используем эти «свои» номера бесплатно (ну почти, в пределах 5 шт. в день...)
Есть npm пакет специально для этого сайта, у меня в скрипте используется он, кода минимум))
5 бесплатных СМС только при условии что текст каждой СМС укладывается в одно сообщение
Использую эту возможность дома и в больших продакшн-проектах
Автор молодец!
А как npm пакет называется?
Думаю скрипт все же меньше памяти отъедает, нежели npm-пакет... а IOB тем и хорош, что цель можно достигнуть различными путями :-)
Спасибо за статью ;) будем ждать следующих )))
на чем этот иоброкер крутиться? У меня стоит на дебиан, попробовал повторить, не появились записи в объектах!
Ubuntu-сервер на апельсинке, но это без разницы. Создаем новый скрипт, копируем в него приведенный в статье код (не забываем поменять id на свой), запускаем и пользуемся, иногда объекты появляются не сразу, надо нажать кнопочку "Обновить"
В логах есть ошибки?
Спасибо за статью. А как вызвать функцию sendSMS();
if (какое-то событие) sendSMS();
https://sms.ru/price
Пишут, что необходима регистрация имени отправителя...