[Модуль] BLEtool (bletool)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: [Модуль] BLEtool (bletool)

Сообщение directman66 » Пн янв 28, 2019 7:50 pm

vitig писал(а):
Пн янв 28, 2019 9:32 am

Спасибо. Это само собой разумеется. Развернул образ на малине 3б+ и добавил через маркет этот модуль.
Опрос датчика успешно проходит довольно редко, в основном либо процесс зависает, либо не выдаёт данные :roll:
Это означает, что не хватает дальнобойности стика. Ждем доступные mesh ble устройства. Думаю они должны как то помочь. У самого не достает до места установки. Как только заношу датчик в комнату - показания приходят.

Можете тестировать соединение с помощью тестового скрипта
http://192.168.1.39/modules/bletool/test/mi2.php

Только измените в нем мак адрес на свой.
За это сообщение автора directman66 поблагодарил:
vitig (Пн янв 28, 2019 9:17 pm)
Рейтинг: 1.16%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: [Модуль] BLEtool (bletool)

Сообщение directman66 » Пн янв 28, 2019 7:52 pm

vitig писал(а):
Пн янв 28, 2019 11:27 am
Такая ошибка присутствует.

./scripts/cycle_bletool.php
111111111111THREAD CLOSED: [exec php -q ./scripts/cycle_bletool.php --params "a:0:{}">>/var/www/html/cms/debmes/log_2019-01-28-cycle_bletool.php.txt]
111
Backtrace:
#0 /var/www/html/cycle.php(455): registerError('cycle_stop', './scripts/cycle...')
#1 {main}
ошибку можно посмотреть, если остановить цикл и запустить php /var/www/scripts/cycle_bletool.php
За это сообщение автора directman66 поблагодарил:
vitig (Пн янв 28, 2019 9:17 pm)
Рейтинг: 1.16%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
vitig
Сообщения: 6
Зарегистрирован: Вс янв 27, 2019 11:11 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: [Модуль] BLEtool (bletool)

Сообщение vitig » Пн янв 28, 2019 9:17 pm

Спасибо!! Осталось разобраться, как и что делать с pho скриптами :))))) я конечно не совсем профан в подобных вещах, но своими руками давно подобные системы не крутил.
Я сейчас датчик положил непосредственно к малине. Так что расстояние тут ни при чем похоже...
vitig
Сообщения: 6
Зарегистрирован: Вс янв 27, 2019 11:11 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: [Модуль] BLEtool (bletool)

Сообщение vitig » Вт янв 29, 2019 10:02 am

directman66 писал(а):
Пн янв 28, 2019 7:52 pm
ошибку можно посмотреть, если остановить цикл и запустить php /var/www/scripts/cycle_bletool.php
Результат ниже:
Warning: file_get_contents(): Filename cannot be empty in /var/www/html/modules/bletool/bletool.class.php on line 861

Warning: file_get_contents(): Filename cannot be empty in /var/www/html/modules/bletool/bletool.class.php on line 868

Warning: file_get_contents(): Filename cannot be empty in /var/www/html/modules/bletool/bletool.class.php on line 874

Warning: file_get_contents(): Filename cannot be empty in /var/www/html/modules/bletool/bletool.class.php on line 881
gatttool: no process found

Warning: file_get_contents(): Filename cannot be empty in /var/www/html/modules/bletool/bletool.class.php on line 861

Warning: file_get_contents(): Filename cannot be empty in /var/www/html/modules/bletool/bletool.class.php on line 868

Warning: file_get_contents(): Filename cannot be empty in /var/www/html/modules/bletool/bletool.class.php on line 874

Warning: file_get_contents(): Filename cannot be empty in /var/www/html/modules/bletool/bletool.class.php on line 881
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: [Модуль] BLEtool (bletool)

Сообщение directman66 » Вт янв 29, 2019 12:55 pm

Это ворнинги при удалении процесса, на функционал не влиляет. Цикл не останавливают.
Нужно поймать критическую ошибку.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
vitig
Сообщения: 6
Зарегистрирован: Вс янв 27, 2019 11:11 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: [Модуль] BLEtool (bletool)

Сообщение vitig » Вт янв 29, 2019 8:55 pm

directman66 писал(а):
Вт янв 29, 2019 12:55 pm
Это ворнинги при удалении процесса, на функционал не влиляет. Цикл не останавливают.
Нужно поймать критическую ошибку.
Похоже выявил, по крайней мере, косвенную причину... Поскольку я пока только начал свой путь с majordomo и вообще системами умного дома, я для экспериментов установил сразу несколько модулей, связанных с устройствами BT (BLEtool, Bluetooth devices, Устройства Bluetooth). Сегодня я попробовал удалить все, кроме BLEtool и вуаля... все ошибки и предупреждения исчезли! За целый день модуль завис только 1 раз, при этом цикл на вид не прекращался... А выводы из этого делайте сами, поскольку я в этом пока не силен...
Если не трудно, можете еще дополнительно пояснить... BLEtool с заданным интервалом (от 5 минут) опрашивает ТермоГигрометр Xiaomi и получает значения температуры и влажности.. Эти значения куда-то сохраняются? Каким образом построить график изменений, а то при построении графика (по примерам для чайников) берется, как я понял, только одно последнее значение температуры и также влажности... Есть для этого какие-то стандартные инструменты или нужно придумывать механизмы сохранения, обработки и извлечения данных из БД?

Добавлено:
похоже поспешил я, сказав, что ошибок нет....
Цикл прерывается, при этом в MD есть сообщения:

cycle_bletool
Backtrace:
#0 /var/www/html/cycle.php(366): registerError('cycle_hang', 'cycle_bletool')
#1 {main}

После этих сообщений возникают несколько следующих:
./scripts/cycle_bletool.php
1111111111111THREAD CLOSED: [exec php -q ./scripts/cycle_bletool.php --params "a:0:{}">>/var/www/html/cms/debmes/log_2019-01-29-cycle_bletool.php.txt]

Backtrace:
#0 /var/www/html/cycle.php(455): registerError('cycle_stop', './scripts/cycle...')
#1 {main}


При этом скрипт проверки, предложенный мне ранее, ничего только не дает, потому что трудно спрогнозировать время остановки цикла...
stellhawk
Сообщения: 264
Зарегистрирован: Чт ноя 08, 2018 5:51 am
Благодарил (а): 10 раз
Поблагодарили: 83 раза

Re: [Модуль] BLEtool (bletool)

Сообщение stellhawk » Чт янв 31, 2019 12:41 pm

вернулся к ковырянию модуля:
1. почему-то все операции с термометром mi очень долгие. можно измерять десятками минут.
2. появилась у меня метка с неё всё намного быстрее. залез в модуль закинул туда кучу дебага разобрался с тем как это работает.
Зачем каждый раз делается сброс hcireset? это постоянно перезагружается устройство плюс имеет зажержку больше 3 секунд?


4. я наконец понял почему всё дохнет:
всё дело в том что термостат от xiaomi очень тупит, даже если лежит рядом.
а в коде написано:
function getrawmiflora($mac) {
$exe_command = 'gatttool -t random -I';
while( ! feof($pipes[1]))
{

}
и нет никакого таймаута.
поэтому висим мы там вечность и ждем ответа.
darsh2004
Сообщения: 2
Зарегистрирован: Сб окт 27, 2018 5:58 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: [Модуль] BLEtool (bletool)

Сообщение darsh2004 » Чт янв 31, 2019 8:33 pm

Подскажите, в модуле сейчас есть весы - mi-scale, yunmai-se, gason-s4. Какаие-то уже реализованы или там программные заглушки? Рискую, но хочу к 8 марта весы прикрутить в систему, но пока в раздумьях - какие весы брать?
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 694 раза
Контактная информация:

Re: [Модуль] BLEtool (bletool)

Сообщение directman66 » Чт янв 31, 2019 9:18 pm

до весов еще не добрался. У меня есть только gason. Можете самостоятельно на примере тестовых скриптов поизучать протокол, если получится, можно добавить. Весы по моему работают через polling режим, такой интеграции я еще не делал.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
GABreal
Сообщения: 2
Зарегистрирован: Вс фев 03, 2019 5:55 am
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: [Модуль] BLEtool (bletool)

Сообщение GABreal » Вс фев 03, 2019 7:56 am

Имею на руках чайник RK-G200S
Через gatttool проверил работоспособность по следующей инструкции:
https://habr.com/ru/post/412583/
Там же есть пример скрипта на Python:
https://yadi.sk/d/7kgnySM90BGwCg
В целом, без расшифровки в интерактивном режиме выглядит так:

char-write-cmd 0x000c 0100 -> подписка
char-write-req 0x000e 5500ffb54c75b1b40c88efaa -> авторизация по уникальному ключу(ключ любой, авторизуем путём удержания кнопки на чайнике, не забыть подписаться!!!)
char-write-req 0x000e 550101aa -> версия прошивки
char-write-req 0x000e 55026e8036565c907e0000aa->синхронизация времени
char-write-req 0x000e 550306aa -> считать текущий режим работы
char-write-req 0x000e 55040500000000000000000000000000800000aa -> задать режим работы
char-write-req 0x000e 550503aa -> запустить режим работы
char-write-req 0x000e 550604aa - остановить
char-write-req 0x000e 550706aa - статус
За это сообщение автора GABreal поблагодарили (всего 2):
directman66 (Вс фев 03, 2019 11:11 am) • Divan (Ср сен 11, 2019 1:06 am)
Рейтинг: 2.33%
Ответить