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)/ Теперь все работает. 
 
		
	