(Windows-версия)
На данной странице рассмотрим пример использования канала GSM для организации уведомлений с помощью sms из системы MajorDoMo.
Что нам понадобиться: Любой GSM Модем марки "Huawei" (использовался E173)
![](http://clip2net.com/clip/m117725/1350304911-clip-12kb.jpg)
Программа "GSM-Modem Controller" (страница программы с описанием возможностей http://serj.kz/content/3)
![](http://clip2net.com/clip/m117725/1350304947-clip-31kb.png)
Далее рассмотрим пример использования sms уведомлений из системы.
Сделаем сценарий запроса текущего баланса.
![](http://clip2net.com/clip/m117725/1350305198-clip-15kb.png)
1 2 3 4 5 6 7 |
include_once(ROOT.'lib/hardware/smsgw.php'); $res=sendUSD("*100#", "Parol"); if (preg_match('/(\d+,\d+)/is',$res,$m)) { $balance=floatval(str_replace(",",".",$m[1])); sg('ThisComputer.Balance', $balance); } say("Баланс ".round(gg("ThisComputer.Balance"))." рублей"); |
На данном примере мы запросили текущий баланс и записали значение в переменную ThisComputer.Balance
(USSD запрос, пароль и переменную меняем на свои)
запрос баланса в автоматическом режиме можно сделать запуском скрипта в определенное время и т.д.
Класс Timer, объект ClockChime , метод ' 'onNewMinute можно прописать запрос баланса например раз в день в вечернее время
1 2 3 |
if (timeIs('22:00')) { runScript('Balans'); } |
результат выведем в меню.
![](http://clip2net.com/clip/m117725/1350305856-clip-11kb.png)
![](http://clip2net.com/clip/m117725/1350305889-clip-21kb.jpg)
Далее рассмотрим пример SMS уведомления при превышении температуры котла более 70 градусов.
Напишем сценарий следующего плана.
![](http://clip2net.com/clip/m117725/1350306047-clip-12kb.png)
1 2 3 |
include_once(ROOT.'lib/hardware/smsgw.php'); $data="Температура котла: ".gg("wireTemp0.temp"); $res=sendSMS("+7953546546546",$data, "Parol"); |
цифры и пароль меняем на свои
Далее приведен пример кода для отправки sms если температура котла превысила 70 °С
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$t=$this->getProperty('temp'); $d=$this->getProperty('direction'); if ($t>=70) { if (((round($t)/5)==round(round($t)/5) && $d!=0) || ($t>70)) { // if ($d>0) { say('Температура котла поднялась до '.$t.' градусов'); runScript('sendSMS'); } else { say('Температура котла снизилась до '.$t.' градусов'); runScript('sendSMS'); } } } |
В итоге мы получили возможность получать уведомления о любых изменениях в системе. Реализация зависит только от Вашей фантазии.
1 |
UPD: Есть возможность отправлять бесплатные SMS через сервис sms.ru |
1. Регистрируемся на сайте.
2. Заходим в раздел "Программистам" и видим там пример отправки sms уже с вашим API key
![](https://lh3.googleusercontent.com/-dgEqedk51H8/VT3dsh2m20I/AAAAAAAAFYw/B6LWu0iRTZE/s640/11f4fc6d3c.png)
3. В MDM делаем например такой сценарий
![](https://lh3.googleusercontent.com/-evTtp3qkF9M/VT3eKQNh3II/AAAAAAAAFY4/r63YFasYPKs/s640/1aa565630c.png)
1 2 |
$data=gg("tempOutdoor.temp"); getUrl("http://sms.ru/sms/send?api_id=ХХХХХХХХХХХХХto=7917ХХХХХХХ&text=Температура:$data"); |
В результате получаем СМС с запрошенной температурой.
One thought on - Отправка СМС из MajorDoMo
Не описан способ отправки при помощи модуля SMS.RU