Заблокировали или все таки сбой?
NEWS
Latest posts made by bondrogeen
-
RE: Драйвер Paw
Все кто хочет принять участие в тесте!
драйвер ставить с https://github.com/bondrogeen/iobroker.paw
Приложение для iobroker.paw собрано и доработано из исходников paw server. Так как в исходниках только минимальный набор сервера пришлось плотно изучать андройд. Это мое первое приложение. )))
Поддержка от 4.0.3 и выше.
Русский, немецкий и английский.
Теперь не нужно перекидывать доп файлы, просто устанавливаем приложение и настраиваем iobroker.paw драйвер.
Поменялась папка где лежит контент теперь это [home]/iobroker/paw/..
добавлены новые функции:
теперь можно передавать информацию о звонках c телефон или планшета в драйвер в режиме реального времени.
paw.0.dev2.request.call.number +79876554321
paw.0.dev2.request.call.status disconnection | ringing | connection paw.0.dev2.request.call.type incoming | outcoming
Все поступающие смс тоже отправляются.
paw.0.dev2.request.sms.body
paw.0.dev2.request.sms.number
Появилось возможность запускать задачи "таскер" без root, а так же передавать в них параметры. (%par1, %par2 и т.д)
Добавил возможность отключать индикацию батареи (нужен root)
Нужно в тех случаях когда, при отключении батареи планшет все равно продолжал разряжаться и выключался.
Можно это делать командой
sendTo("paw.0",'dev1',{send:'battery_off'});
или запускать скрипт при загрузке из папки [home]/iobroker/paw/autostart
-
RE: Уровень заряда батареи телефона
Не судите строго ,новичок… Не могли бы расписать по подробнее делаю все как на скринах но таскер HTTP GET выдает ошибку ввода вывода `
Не нужно делать все как на скрине, %MYSERVER это переменная которая заранее установлена,
в поле Server:Port в вашем случае нужно ввести свой ip - куда будет отправляться get запрос
например: 192.168.1.100:8087/set/
-
RE: Драйвер Flot
всем привет.
подскажите пожалуйста как сделать свой график для каждой переменной?
есть три переменные,приходят по MQTT. Но у меня получается только все три воткнуть на один график,переплетение линий и воспринимается не очень нормально.
как сделать,чтобы для каждой переменной был собственный график (поле с графиком)? `
Так и делай для каждой переменной свой график.
ссылка генерируется с параметрами своя.
Потом просто копируешь ссылку и вставляешь в vis
-
Драйвер Paw
<size size="200">iobroker.paw</size>
<size size="150">Описание:</size>
Драйвер для управления Android-устройством через приложение PAW server. Может проговаривать текст, управлять громкостью, отправлять SMS, совершать звонки, читать сообщения, получать журнал вызовов и основную информацию (состояние памяти, показание от встроенных датчиков, уровень заряда, пропущенные вызовы, новые смс ) и многое другое …
<size size="150">Установка программы и настройка драйвера.</size>
Скачиваем и устанавливает приложение PAW Server for Android.
https://play.google.com/store/apps/deta … .pawserver
Открываем приложение PAW Server for Android на устройстве
После инициализации нужно перенести в папку ..paw/html
файлы:
****call.xhtml
get.xhtml
set.xhtml
sms.xhtml
settings.xhtml****
Достаточно скачать и перенести только фаил " settings.xhtml " остальные файлы скачаются через драйвер
и при будущих обновлениях драйвера, будут обновляться сами.
файлы брать тут https://github.com/bondrogeen/iobroker. … master/www
Запускаем PAW Server for Android.
Устанавливаем драйвер iobroke.paw
Начало и конец - это время работы оповещение через синтезатор речи.
Например, все сообщения с 7ч до 23ч которые будут отправлены на синтезатор речи (ttl), а в остальное время будут игнорироваться.
Это правило распространяется только на изменения этих переменных
paw.0.[name_device].tts.response (для конкретного устройства)
или
paw.0.all_device.tts_response (для всех устройств)
При отправки через javascript это правило не действует.
Также предусмотрено для ttl буфер , все сообщения поступающие на синтезатор будут сказаны.
То есть если у вас стоит на 10-00 отправка на ttl оповещение (времени или погоды) и в это время поступает какое-то сообщение (хоть 10шт ) , то все сообщения будут сказаны.
игнор - если не нужно получать основную информацию от устройства.
<size size="100">Для управление через vis, можно управлять устройством [name_device] изменяя переменную</size>
paw.0.[name_device].command.command
! lcd_on
! активировать экран
! home
! эмулировать нажатие на кнопку HOME
! endсall
! конец связи (положить трубку)
! scan
! запустить приложение сканер штрих кода.
! speech
! активация голоса
! restart
! перезагрузка paw сервера
! kill
! отключить paw сервер
! gong
! проигрывает файл ..paw/html/gong.mp3
! sound_noti
! проигрывает стандартный звук уведомления
! sound_ring
! проигрывает стандартный звук звонка
! Так же и для остальных переменных, но только некоторые команды
! требуют второго параметра, который вводиться через запятую.
! paw.0.[name_device].command.alert
! Пример: Внимание , Нет связи!!!
! Предупреждения
! paw.0.[name_device].command.alertinput
! Пример: Внимание! , Введите команду
! Предупреждения c запросом, ответ сохраниться в переменной paw..[name_device].request.alertinput
! paw.0.[name_device].command.send_sms
! Пример: 123456789 , Проверка
! Отправить смс сообщение на номер [number] , с текстом [text]
! paw.0.[name_device].command.noti
! Пример: Внимание , Нет ответа от уст.
! Уведомление [название уведомления] , [техт уведомления]
! paw.0.[name_device].command.app_start
! Пример: lcf.clock
! Запуск приложение
! paw.0.[name_device].command.call
! Пример: 123456789
! Позвонить по номеру [number]
! paw.0.[name_device].command.clipboard
! Пример:Ab123
! Сохранить текст в буфере обмена
! paw.0.[name_device].command.dial
! Пример: 123456789
! Набрать номер [number] на уст.
! paw.0.[name_device].command.brightness
! Пример: 255
! уровень яркости подсветки от 1-255
! paw.0.[name_device].command.openurl
! Пример: http://ya.ru
! Открыть url в браузере
! paw.0.[name_device].command.rec
! Пример: 1000 Включить запись длительностью [time(ms)]
! paw.0.[name_device].command.vibrate
! Пример: 500
! Включить вибрацию, время в миллисекундах [time(ms)]
! paw.0.[name_device].command.volume
! Пример: 7
! Установка громкости на устройстве от 0 до максимального значения,
! максимальное значение можно посмотреть тут (обычно это 15)
! paw..[name_device].info.audio_volume.info.music_max<size size="150">Команды для javascript</size>
! dev1 - имя устройства, так же можно вводить IP устройства.
! Можно указывать несколько устройств через запятую 'dev1,dev3,192.168.1.71'
! all - отправить на все устройства.
! /
! //Отправить текст на синтезатор речи.
! sendTo("paw.0",'dev1,dev3',{send: 'say', text: 'проверка'});
! // с callback
! sendTo("paw.0",'all',{
! send: 'say',
! text: 'проверка'},function (response){
! log(JSON.stringify(response));
! });
! //установка времени подсветки экрана в милисек. '-1' - не гасить экран (работает не на всех уст.)
! sendTo("paw.0",'dev1',{send:'screen_off_time',number: '5000'});
! //активировать экран на устройстве.
! sendTo("paw.0",'all',{send:'lcd_on'});
! //уровень яркости подсветки от 1-255
! sendTo("paw.0",'dev1',{send:'brightness',number: '50'});
! //выполнить shell команду (нужен root)
! //"input tap x y" эмулирует нажатие на экран x — координаты по гор. y — координаты по верт.
! //"poweroff -f" выключить устройства
! //"reboot" перезагрузка устройства
! sendTo("paw.0",'all',{send:'exec',text:'input tap 100 100'});
! //эмулировать нажатие на кнопку HOME
! sendTo("paw.0",'all',{send:'home'});
! //запустить приложение, для примера - Tablet Clock указывается "системное название"
! sendTo("paw.0",'all',{send:'app_start',value:'lcf.clock'});
! sendTo("paw.0",'dev1',{
! send:'app_start',
! value:'lcf.clock'
! },function (response){
! log(JSON.stringify(response));
! });
! // Получить список установленных приложений "название":"системное название"
! sendTo("paw.0",'dev1',{
! send: 'apps'
! },function (response){
! log(JSON.stringify(response));
! });
! // Получить список задач из приложения Tasker "tasks": [auto, bubble, call, clock]
! sendTo("paw.0",'dev1',{
! send: 'tasker'
! },function (response){
! log(JSON.stringify(response));
! });
! // Запустите задачу из приложения Tasker. (need root)
! sendTo("paw.0",'dev1',{send:'task',text:'auto'});
! //Отправка смс.
! sendTo("paw.0",'dev1',{send: 'sms', text: 'проверка', number: '8123456789'});
! sendTo("paw.0",'192.168.1.71',{
! send: 'sms',
! text: 'проверка',
! number: '8123456789'
! },function (response){
! log(JSON.stringify(response));
! });
! /
! Установка громкости от 0 до 15, максимальная громкость устанавливается системой,
! также проверяется чтобы не выходило за пределы установленных значений)
! mode= может быть (STREAM_NOTIFICATION, STREAM_MUSIC ,STREAM_ALARM,
! STREAM_RING, STREAM_SYSTEM, STREAM_VOICE_CALL)
! если не указан то по умолчанию стоит STREAM_MUSIC
! */
! sendTo("paw.0",'dev1',{send: 'volume', number: '5'});
! // с callback
! sendTo("paw.0",'192.168.1.71',{
! send: 'volume',
! number: '10',
! mode: 'STREAM_NOTIFICATION'
! },function (response){
! log(JSON.stringify(response));
! });
! //Набрать номер.
! sendTo("paw.0",'dev1',{send: 'call', number: '0611'});
! // с callback
! sendTo("paw.0",'192.168.1.71',{
! send: 'call',
! number: '0611'
! },function (response){
! log(JSON.stringify(response));
! });
! //Позвонить по номеру или выпоннить ussd команду.
! sendTo("paw.0",'dev1',{send: 'call', number: '*100#'});
! // с callback
! sendTo("paw.0",'192.168.1.71',{
! send: 'call',
! number: '0611'
! },function (response){
! log(JSON.stringify(response));
! });
! //Включает вибрацию number (время в милисекундах)
! sendTo("paw.0",'dev1',{send: 'vibrate', number: '1000'});
! sendTo("paw.0",'192.168.1.71',{
! send: 'vibrate',
! number: '100'
! },function (response){
! log(JSON.stringify(response));
! });
! // Отправит уведомления на устройства
! sendTo("paw.0",'dev1',{send: 'noti', texthead: 'Внимание',text: 'проверка'});
! // с callback
! sendTo("paw.0",'192.168.1.71',{
! send: 'noti',
! texthead: 'внимание',
! text: 'проверка'
! },function (response){
! log(JSON.stringify(response));
! });
! //Отправит предупреждение на устройства
! sendTo("paw.0",'dev1',{send: 'alert', texthead: 'Внимание',text: 'проверка'});
! sendTo("paw.0",'192.168.1.71',{
! send: 'alert',
! texthead: 'внимание',
! text: 'проверка'
! },function (response){
! log(JSON.stringify(response));
! });
! //Откроет браузер по указанному адресу
! sendTo("paw.0",'dev1',{send: 'openurl', text: 'http://192.168.1.61:8082'});
! sendTo("paw.0",'192.168.1.71',{
! send: 'openurl',
! text: 'http://ya.ru'
! },function (response){
! log(JSON.stringify(response));
! });
! //Завершить звонок (положить трубку)
! sendTo("paw.0",'dev1',{send: 'endсall'});
! // Отправить текст в буфер обмена
! sendTo("paw.0",'dev1',{send: 'clipboard',text:'текст'});
! // Перезагрузка paw сервера
! sendTo("paw.0",'dev1',{send: 'server',text:'restart'});
! // Остановка paw сервера
! sendTo("paw.0",'dev1',{send: 'server',text:'kill'});
! // получить журнал вызовов
! // [send] обязательный параметр.
! // "now" за сегодняшний день
! // "all" все вызовы,
! // "incoming" входящие вызовы
! // "missed" пропущенные вызовы
! // "outgoing" исходящие вызовы
! // "info" только информация о количеству вызовов
! // [date] - не обязательный параметр.
! // можно получить только за указанный день формат запроса " 01-05-2017 "
! // также можно просто перейти по адресу http://IP:8080/call.xhtml для получения списка виде html страницы
! sendTo("paw.0",'dev1',{
! html:'call',
! send: 'incoming',
! date:'01-05-2017'
! },function (response){
! log(JSON.stringify(response[0]));
! }); -
RE: Iobroker.hilink
Добавил в настройки интервал опроса.
Интегрировал с javascript.
Добавил к общее информации последнее смс
-
RE: Iobroker.hilink
еще вопрос по поводу хранения смс в 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 }
-
RE: Iobroker.hilink
Сделай время опроса настраиваемое через настройки.
А в настройках можно будет задавать параметры подключения к ОпСоСу? `
Основные настройки задаются через 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 понял, буду разбираться, спасибо.