NEWS
Iobroker.hilink
-
Пытаюсь написать драйвер для модема 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. Куда копать для исправления ошибок?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden