NEWS
Iobroker.hilink
-
Драйвер для USB модемов Huawei с прошивками Hilink.
Совместимость E3372 (МТС 827F/829F, МегаФон M150-2, Билайн E3372/E3370, TELE2 E3372р-153
-
подключение, отключение от сети и перезагрузка модема
-
чтение входящих и исходящих сообщений.
-
отправка сообщений.
-
отправка ussd запросов.
-
получение основных параметров модема, информация о трафике.
https://github.com/bondrogeen/iobroker.hilink
Настройки драйвера:
-
установка ip адреса модема
-
интервал опроса [мс]
-
выбор отображение статистики трафика стандартное в битах или автоматически (B, KB, MB, GB, TB,)
!
Вывод основных данных в iobroker.
!
// Подключение 'conect', отключение 'desconect' от сети и перезагрузка модема 'reboot' sendTo("hilink.0",'control','reboot',function (response){ log(JSON.stringify( response, null, 2 )); }); sendTo("hilink.0",'control','conect'); // отправка сообщения sendTo("hilink.0",'send',{ phone: '+7123456789', // номер телефона message: 'Проверка работы' // текст сообщение },function (response){ log(JSON.stringify( response, null, 2 )); }); sendTo("hilink.0",'send',{phone:'+7123456789',message: 'Проверка работы'}); // чтение сообщений sendTo("hilink.0",'read','inbox',function (response){ log(JSON.stringify( response, null, 2 )); }); /* 'inbox' входящих, 'outbox' исходящих, 'new' чтение входящих только новые сообщение */ //отправка ussd запроса sendTo("hilink.0",'ussd','*100#',function (response){ log(JSON.stringify( response, null, 2 )); }); // удаление одного сообщения с индексом '40002' sendTo("hilink.0",'delete','40002',function (response){ log(JSON.stringify( response, null, 2 )); }); // очистка всех 'outbox' исходящих, 'inbox' входящих сообщений sendTo("hilink.0",'clear','outbox',function (response){ log(JSON.stringify( response, null, 2 )); }); // изменить статус 'all' всех сообщений на прочитанные или если указать '40002' индекс, только одного sendTo("hilink.0",'setRead','all',function (response){ log(JSON.stringify( response, null, 2 )); }); sendTo("hilink.0",'setRead','40002');
-
-
Пытаюсь написать драйвер для модема huawei c hilink прошивками.
Сделал пакет на nodejs https://www.npmjs.com/package/hilinkhuawei
Реализовано: получение основных параметров от модема, отправка и чтение смс, ussd, подкл. откл. от сети, перезагрузка модема.
Добавил его в драйвер, пока вот, что получилось - https://github.com/bondrogeen/iobroker.hilink
Реализовано в драйвере: установка ip адреса модема и выбор отображение статистики трафика стандартное в битах или автоматически (B, KB, MB, GB, TB,)
! 2.jpg
Вывод основных данных в iobroker.
! 1.jpg
На данный момент все только на начальном уровне.
Разбираюсь во всех нюансах создания драйвера.
Есть пару вопросов:
-
С какой максимальной частотой можно отправлять данный iobroker? (это для общего понимание)
-
Какая оптимальная частота для обновление данных?
-
Как подружить драйвер с драйвером javascript? `
Сделай время опроса настраиваемое через настройки.
А в настройках можно будет задавать параметры подключения к ОпСоСу?
-
-
Сделай время опроса настраиваемое через настройки.
А в настройках можно будет задавать параметры подключения к ОпСоСу? `
Основные настройки задаются через web интерфейс модема.
Я только хочу реализовать получение данных от модема и канал дополнительный канал оповещения через смс, в случаи отсутствия интернета или тревоги.
Какие параметры ? apn ?
или
время подключение и отключение ?
-
Сделай время опроса настраиваемое через настройки.
А в настройках можно будет задавать параметры подключения к ОпСоСу? `
Основные настройки задаются через web интерфейс модема.
Я только хочу реализовать получение данных от модема и канал дополнительный канал оповещения через смс, в случаи отсутствия интернета или тревоги.
Какие параметры ? apn ?
или
время подключение и отключение ? `
АПН, логин пароль… номер телефона для дозвона.если хочешь смс слать из javascript я тебе пул реквест маленький послал.
а в драйвере за это отвечает код:
! ````
adapter.on('message', function (obj) {
if (typeof obj == 'object' && obj.message) {
if (obj.command == 'send') {
// e.g. send email or pushover or whatever
console.log('send command');
! // Send response in callback if required
if (obj.callback) adapter.sendTo(obj.from, obj.command, 'Message received', obj.callback);
}
}
});в скрипте надо будет писать примерно так:
sendTo("hilink.0", {
phone: '+71231233214', //Номер телефона кому шлем смс
message: 'Нет связи, работаем через модем', //Текст сообщения
}); -
Сделай время опроса настраиваемое через настройки.
А в настройках можно будет задавать параметры подключения к ОпСоСу? `
Основные настройки задаются через web интерфейс модема.
Я только хочу реализовать получение данных от модема и канал дополнительный канал оповещения через смс, в случаи отсутствия интернета или тревоги.
Какие параметры ? apn ?
или
время подключение и отключение ? `
АПН, логин пароль… номер телефона для дозвона.если хочешь смс слать из javascript я тебе пул реквест маленький послал.
а в драйвере за это отвечает код:
! ````
adapter.on('message', function (obj) {
if (typeof obj == 'object' && obj.message) {
if (obj.command == 'send') {
// e.g. send email or pushover or whatever
console.log('send command');
! // Send response in callback if required
if (obj.callback) adapter.sendTo(obj.from, obj.command, 'Message received', obj.callback);
}
}
});в скрипте надо будет писать примерно так:
sendTo("hilink.0", {
phone: '+71231233214', //Номер телефона кому шлем смс
message: 'Нет связи, работаем через модем', //Текст сообщения
});
```` `по поводу APN, логина и пароля не вижу смысла задавать их в настройки, они задаются в настройках веб морды самого модема.
а вот команды для подключение и отключения и перезагрузки
сделаю
Сейчас это реализовано в node вот так
Подключиться к сети ('conect',callback)
Отключиться от сети ('desconect',callback)
Перезагрузка модема ('reboot',callback)
hilink.control('conect',function(response ){ console.log( JSON.stringify( response, null, 2 ) ); });
Ответ: *
{ response: 'OK' }
Только как из правильно реализовать управление, допустим из виджета создать переменную "control" и отслеживать ее?
Например пришло изменении переменной значение "reboot" отправили в перезагрузку пришло "conect" - подключились
или есть какие-то другие способы?
по javascript понял, буду разбираться, спасибо.
-
Основные настройки задаются через web интерфейс модема.
Я только хочу реализовать получение данных от модема и канал дополнительный канал оповещения через смс, в случаи отсутствия интернета или тревоги.
Какие параметры ? apn ?
или
время подключение и отключение ? `
АПН, логин пароль… номер телефона для дозвона.если хочешь смс слать из javascript я тебе пул реквест маленький послал.
а в драйвере за это отвечает код:
! ````
adapter.on('message', function (obj) {
if (typeof obj == 'object' && obj.message) {
if (obj.command == 'send') {
// e.g. send email or pushover or whatever
console.log('send command');
! // Send response in callback if required
if (obj.callback) adapter.sendTo(obj.from, obj.command, 'Message received', obj.callback);
}
}
});в скрипте надо будет писать примерно так:
sendTo("hilink.0", {
phone: '+71231233214', //Номер телефона кому шлем смс
message: 'Нет связи, работаем через модем', //Текст сообщения
});
```` `по поводу APN, логина и пароля не вижу смысла задавать их в настройки, они задаются в настройках веб морды самого модема.
а вот команды для подключение и отключения и перезагрузки
сделаю
Сейчас это реализовано в node вот так
Подключиться к сети ('conect',callback)
Отключиться от сети ('desconect',callback)
Перезагрузка модема ('reboot',callback)
hilink.control('conect',function(response ){ console.log( JSON.stringify( response, null, 2 ) ); });
Ответ: *
{ response: 'OK' }
Только как из правильно реализовать управление, допустим из виджета создать переменную "control" и отслеживать ее?
Например пришло изменении переменной значение "reboot" отправили в перезагрузку пришло "conect" - подключились
или есть какие-то другие способы?
по javascript понял, буду разбираться, спасибо. ` так через объекты в драйвере. Драйвер же может подписаться на свои объекты
-
еще вопрос по поводу хранения смс в iobroker
как это можно реализовать, историю, хранить все смс в одной переменной json или разбивать на отдельные смс и с помощью, допустим History, хранить и там?
это для реализации в виджете
{ "response": [
{ "Smstat": "0", "Index": "40010", "Phone": "+123456789", "Content": "test text", "Date": "2017-02-25 20:37:53", "Sca": "", "SaveType": "4", "Priority": "0", "SmsType": "1" },
{ "Smstat": "0", "Index": "40009", "Phone": "+123456789", "Content": "test text", "Date": "2017-02-25 20:37:50", "Sca": "", "SaveType": "4", "Priority": "0", "SmsType": "1" },
{ "Smstat": "0", "Index": "40008", "Phone": "+123456789", "Content": "test new sms", "Date": "2017-02-25 20:37:47", "Sca": "", "SaveType": "4", "Priority": "0", "SmsType": "1" } ],
"Count": 3 }
-
еще вопрос по поводу хранения смс в iobroker
как это можно реализовать, историю, хранить все смс в одной переменной json или разбивать на отдельные смс и с помощью, допустим History, хранить и там?
это для реализации в виджете
{ "response": [
{ "Smstat": "0", "Index": "40010", "Phone": "+123456789", "Content": "test text", "Date": "2017-02-25 20:37:53", "Sca": "", "SaveType": "4", "Priority": "0", "SmsType": "1" },
{ "Smstat": "0", "Index": "40009", "Phone": "+123456789", "Content": "test text", "Date": "2017-02-25 20:37:50", "Sca": "", "SaveType": "4", "Priority": "0", "SmsType": "1" },
{ "Smstat": "0", "Index": "40008", "Phone": "+123456789", "Content": "test new sms", "Date": "2017-02-25 20:37:47", "Sca": "", "SaveType": "4", "Priority": "0", "SmsType": "1" } ],
"Count": 3 } ` если список небольшой то json, а если большой то можно из базы данных вытягивать запросом.
-
Добавил в настройки интервал опроса.
Интегрировал с javascript.
Добавил к общее информации последнее смс
-
не отправляются сообщения.
Остальные команды отрабатывают нормально.
В логах ошибок нет.
Куда смотреть? :lol:
-
Установил драйвер, указал IP модема, но логи постоянно забиты error'ами.
! ````
host.Fazenda 2018-12-25 12:51:34.039 info Restart adapter system.adapter.hilink.0 because enabled
host.Fazenda 2018-12-25 12:51:34.038 error instance system.adapter.hilink.0 terminated with code 0 (OK)
host.Fazenda 2018-12-25 12:51:34.038 error Caught by controller[2]: at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:322:31)
host.Fazenda 2018-12-25 12:51:34.038 error Caught by controller[2]: at SAXParser.write (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:1436:13)
host.Fazenda 2018-12-25 12:51:34.038 error Caught by controller[2]: at closeTag (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:889:7)
host.Fazenda 2018-12-25 12:51:34.038 error Caught by controller[2]: at emitNode (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:629:5)
host.Fazenda 2018-12-25 12:51:34.038 error Caught by controller[2]: at emit (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:624:35)
host.Fazenda 2018-12-25 12:51:34.037 error Caught by controller[2]: at SAXParser.onclosetag (/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:261:26)
host.Fazenda 2018-12-25 12:51:34.037 error Caught by controller[2]: at Parser.emit (events.js:182:13)
host.Fazenda 2018-12-25 12:51:34.037 error Caught by controller[2]: at Parser. <anonymous>(/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:303:18)
host.Fazenda 2018-12-25 12:51:34.037 error Caught by controller[2]: at /opt/iobroker/node_modules/iobroker.hilink/node_modules/hilinkhuawei/bin/hilink.js:494:25
host.Fazenda 2018-12-25 12:51:34.037 error Caught by controller[2]: at /opt/iobroker/node_modules/iobroker.hilink/node_modules/hilinkhuawei/bin/hilink.js:696:35
host.Fazenda 2018-12-25 12:51:34.037 error Caught by controller[2]: TypeError: Cannot read property 'MonthDuration' of undefined
host.Fazenda 2018-12-25 12:51:34.036 error Caught by controller[1]: at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:322:31)
host.Fazenda 2018-12-25 12:51:34.036 error Caught by controller[1]: at SAXParser.write (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:1436:13)
host.Fazenda 2018-12-25 12:51:34.036 error Caught by controller[1]: at closeTag (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:889:7)
host.Fazenda 2018-12-25 12:51:34.036 error Caught by controller[1]: at emitNode (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:629:5)
host.Fazenda 2018-12-25 12:51:34.036 error Caught by controller[1]: at emit (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:624:35)
host.Fazenda 2018-12-25 12:51:34.035 error Caught by controller[1]: at SAXParser.onclosetag (/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:261:26)
host.Fazenda 2018-12-25 12:51:34.035 error Caught by controller[1]: at Parser.emit (events.js:182:13)
host.Fazenda 2018-12-25 12:51:34.035 error Caught by controller[1]: at Parser. <anonymous>(/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:303:18)
host.Fazenda 2018-12-25 12:51:34.035 error Caught by controller[1]: at /opt/iobroker/node_modules/iobroker.hilink/node_modules/hilinkhuawei/bin/hilink.js:494:25
host.Fazenda 2018-12-25 12:51:34.035 error Caught by controller[1]: at /opt/iobroker/node_modules/iobroker.hilink/node_modules/hilinkhuawei/bin/hilink.js:711:35
host.Fazenda 2018-12-25 12:51:34.034 error Caught by controller[1]: TypeError: Cannot read property 'CurrentConnectTime' of undefined
host.Fazenda 2018-12-25 12:51:34.034 error Caught by controller[0]: at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:322:31)
host.Fazenda 2018-12-25 12:51:34.034 error Caught by controller[0]: at SAXParser.write (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:1436:13)
host.Fazenda 2018-12-25 12:51:34.034 error Caught by controller[0]: at closeTag (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:889:7)
host.Fazenda 2018-12-25 12:51:34.034 error Caught by controller[0]: at emitNode (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:629:5)
host.Fazenda 2018-12-25 12:51:34.033 error Caught by controller[0]: at emit (/opt/iobroker/node_modules/iobroker.hilink/node_modules/sax/lib/sax.js:624:35)
host.Fazenda 2018-12-25 12:51:34.033 error Caught by controller[0]: at SAXParser.onclosetag (/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:261:26)
host.Fazenda 2018-12-25 12:51:34.033 error Caught by controller[0]: at Parser.emit (events.js:182:13)
host.Fazenda 2018-12-25 12:51:34.033 error Caught by controller[0]: at Parser. <anonymous>(/opt/iobroker/node_modules/iobroker.hilink/node_modules/xml2js/lib/parser.js:303:18)
host.Fazenda 2018-12-25 12:51:34.032 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.hilink/node_modules/hilinkhuawei/bin/hilink.js:494:25
host.Fazenda 2018-12-25 12:51:34.032 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.hilink/node_modules/hilinkhuawei/bin/hilink.js:554:44
host.Fazenda 2018-12-25 12:51:34.031 error Caught by controller[0]: TypeError: Cannot read property 'CurrentNetworkType' of undefined
hilink.0 2018-12-25 12:50:33.804 info config model: 3372s
hilink.0 2018-12-25 12:50:33.804 info config setTest: true
hilink.0 2018-12-25 12:50:33.804 info config settime: 60
hilink.0 2018-12-25 12:50:33.804 info config trafficInfo: auto
hilink.0 2018-12-25 12:50:33.804 info config getip: 192.168.2.1
hilink.0 2018-12-25 12:50:33.803 info starting. Version 0.2.8 in /opt/iobroker/node_modules/iobroker.hilink, node: v10.9.0
host.Fazenda 2018-12-25 12:50:31.946 info instance system.adapter.hilink.0 started with pid 11938
host.Fazenda 2018-12-25 12:50:01.906 info Restart adapter system.adapter.hilink.0 because enabled</anonymous></anonymous></anonymous>ioBroker установлен на Orange Pi PC с системой ARMBIAN 5.38 stable Ubuntu 16.04.5 LTS 3.4.113-sun8i, NODE версии 10.9.0, ioBroker версии 1.4.2, ioBroker.Admin версии 3.5.1. Куда копать для исправления ошибок?
-
После общения с автором драйвера выяснилось, что для модема E3272, нужно в настройках указать модем E3272h (я указывал E3272s)/ Теперь все работает.