Статья

Прошивка датчика Xiaomi Mijia Bluetooth Hygrothermograph 2 LYWSD03MMC и подключение к Home Assistant

Пробовал разные методы подключения, и как-то все не очень хорошо. То данные снимаются не всегда, то опрос датчика раз в 10 минут. А если несколько датчиков, то вообще абракадабра. Установил через HACS - Xiaomi passive BLE monitor sensor platform, начал разбираться. И увидел следующую надпись:

Датчик LYWSD03MMC - небольшой квадратный корпус, сегментный ЖК-дисплей, передает температуру и влажность примерно раз в 10 минут, а уровень заряда батареи раз в час. Поддерживает как датчики с оригинальной, так и кастомной прошивкой, как описано здесь (убедитесь, что вы установили тип рекламы как mi-like). В оригинальной прошивке рекламные объявления зашифрованы, поэтому вам необходимо установить ключ шифрования в вашей конфигурации, см. инструкции в опции encryptors.

Оказывается существует альтернативная прошивка датчика. Git автора. Сам автор в видео показывает, как нужно прошивать этот датчик.

Итак, начнем. По ссылке автора заходим на сайт, лучше телефоном.

Скачиваем этот файл.

Затем переходим по этой ссылке - это программатор датчика, браузером Google Chrom, должно получиться.

Жмем подключить... И вот тут обнаружился неприятный нюанс. У меня телефон Xiaomi и нажатие кнопки подключения не дало результатов. В логе, в самом низу, написало ошибку. Я пробовал и разными браузерами, и пробовал дать разрешения, не помогло. Взял телефон у жены, у нее One Plus, и открылось подключение без проблем. Поэтому если будут проблемы с установкой подключения, пробуйте другие аппараты. Если кто-нибудь разберется в чем проблема, напишите в комментариях.

Сверху выпадает меню выбора устройства. Выбираем по mac адресу нужный датчик. Нажимаем подключить. MAC адрес можно посмотреть в Mihome.

Датчик подключился, это видно по значку блютуза на самом устройстве. В статусе написано состояние подключения. Появляются данные температуры и влажности. В самом низу, в логе написано, что подключено.

Нажимаем "Сделать активацию" или "Do Activanion" в зависимости от выбранного языка.

Появляется идентификатор устройства, Token Mi и Mi Bind Key, датчик подключен. Теперь, если вы передумали его прошивать, придется снова привязывать в MiHome. Потому что MiBindKey после активации всегда выдается новый.

Выбираем файл скачанной прошивки, и жмем "Start Flashing". В статусе, под выбором файла, побежит процент загрузки.

После прошивки устройство перезагрузится. В шкале влажности проморгают последние три разряда mac адреса.

Снова подключаем устройство, но уже название будет другое. АТС_последние три разряда мак адреса.

Теперь можно изменить тонкие настройки датчика, а именно:Улыбку веселую, печальную, моргающую или выключить. Тип данных, нужно выбрать Mi Like. Об этом написано в Xiaomi passive BLE monitor. Показывать температуру в цельсии или фаренгейте. Показывать значок батареи и процент заряда в шкале влажности. Когда светится символ батареи, тогда и процент заряда вместо процента влажности. Настроить погрешность датчика. И настроить передачи датчика при изменении температуры или влажности.

Датчик теперь подключается без проблем к Home Assistent. Появилась возможность подключения к малине напрямую, достаточно в конфиге прописать само устройство. Также имеется возможность подключения через блютуз шлюз, BindKey при этом больше не нужен.

- platform: mitemp_bt rounding: True decimals: 1 period: 60 log_spikes: False use_median: False active_scan: False hci_interface: 0 batt_entities: False whitelist: - 'A4:C1:38:3E:6F:8A' report_unknown: False whitelist: True

  • Вроде все. Всем добра! Буду рад, если кому-нибудь пригодится.


больше спасибо! у меня как раз 2, через шлюз хаоми 3й версии они были видны в ХА, но толку было мало, значений не отдавали. так что обязательно попробую

Полезная статья! а как потом вернуть на сток? 

А, да, забыл написать. Там есть и стоковая прошивка, можно и откатиться обратно. Но сам пользуюсь датчиками уже третий день и не вижу, никаких, причин откатываться на сток.



а где подскажите пожалуйста

Не понял в чем смысл прошивки. У меня и на стоковой все работает отлично и данные отдаются примерно раз в 5 мин.

Ну собственно, вы сами и ответили. Только данные уходят раз в 10 минут, а данные о батарее раз в час. У меня 4 датчика, как-то коряво уходило. На двух датчиках, почему-то, за сутки, ни разу данные батареи не пришли. Да и температура с влажностью, на самих датчиках уже, давно другая, а информация в home assistant ещё не обновилась. Сейчас, все стабильно. И время отправки можно выставлять, минимально 10 секунд. Выставил по минуте, посмотрим на сколько хватит батареи.

Насколько в итоге хватило батареи?
Насколько в итоге хватило батареи?

Хорошая статья, спасибо Вам.

Но заметил одну сложность. Я использую ESP. Поэтому после смены батареи в датчике каждый раз приходится открывать прошивальщик и заново выставлять mi like. Возможно кто то найдёт способ выставить mi like как дефолтный вариант?

Промучал данный датчик сегодня целый день (по инструкции с офиц. cайта HA) - проблема подобная, HA видит объекты датчика, но данные не приходят.


Наткнулся на Вашу статью - перешил согласно инструкции, обновление прошло успешно, но данные всё равно не приходят.


Проблема может быть в том, что у меня HA установлен не через докер? HA я ставил по методу "https://www.home-assistant.io/docs/installation/raspberry-pi/">Home Assistant Core" (https://www.home-assistant.io/docs/installation/raspberry-pi/">https://www.home-assistant.io/...),


использую мини-пк с Ubuntu Server 20.04.



Прошился, но теперь не могу подключиться к датчику


https://sprut.ai/static/media/cache/00/53/58/5/5446515/68546/1000x_image.jpg?1603049940" alt="1000x_image.jpg?1603049940" />

Почему не могу? У вас написано в логе Detected custom Firmware. Все подключилось значит. Нажимайте mi like. Датчик видно должно быть.

Павел, приношу свои извинения! Не конца разобрался, спасибо Вам за пояснения, все получилось.

после прошивки не сопрягается обратно с mihome hub 3 

mi like выбирал, сток прошивки не нашел 

Да не сопрягается. Но если подключено было, то и потом показывает. Сток плохо искал, на git автора внизу.

Как только этот датчик пришел - сразу обновил его по этой инструкции. Но он не сопрягается с Mihome (висит ожидание подключения) и не компилируется в Esphome (хотел его состыковать с бле-шлюзом на плате ESP32): ругается, что такая платформа недоступна, хотя на самом деле просто нужно указывать параметр bindkey (он у них указан как обязательный), а здесь-то его уже нет (как я понимаю). Пустое значение bindkey не прокатывает. Какой выход? У меня НА не на малине крутится, напрямую его подключить к HA не могу. Обратно его что ли прошивать на базовую прошивку?

Вот, ничего не понял. Какой вопрос? У меня в бле шлюзе показывало. Я сначала не прошитые датчики подключал в шлюзе, они работали, но с задержкой. Прошил датчики, в шлюзе ничего не менял, но работать стало стабильно. Правда через hacs установил xiaomi ble monitor. Я это и в статье писал. Вы установили монитор?

В общем, похоже можно bindkey указывать "от-балды" (любой), главное чтобы 32-значное шестнадцатиричное число было. Платка ESP32 (использую ее как ble-шлюз от проекта esphome) прошилась теперь без ошибок и начала передавать значения сенсора. Я через hacs не устанавливал - говорю же, у меня НА-сервер не на малине крутится, на материнке нет встроенного bleutooth.

Так что в итоге в ESPHome прописали ? 

Благодарю за статью. Есть вопрос все сделал по пунктам все получилось но к малине не цепляется. Можете поделится configurations.yaml Или проконсультировать?  

Ну вы с начала, прочитали? Там я описывал как подключал. Ble монитор поставьте, там в описании как датчик подключать, только вместо бинд Кей, любые знаки вписать. И в настройках монитора ми лайк выставить.

Благодарю автора за быстрый ответ. Атом то и дело делаю все как написано, прошил датчик в малинке через терминал сканирую и вижу MAC датчика потом вписываю в config перегружаю и..... Нечего не происходит 

Ну во первых надо немного подождать. А во вторых, пишите в телеге, логи скину.

А неудачно прошитый реально вернуть к жизни? В данный момент вообще не включается 

пожалуйста дайте ссылку на стоковую прошивку

У меня вопрос, если я перепрограммирую датчики в соответствии с этим руководством и удалю с них токен, мои ворота xiaomi соединятся с ними или они будут работать только под Home Assistant?

Непонятен вопрос. 

Будут ли эти датчики работать в приложении Xiaomi Home после модификации программного обеспечения?

Ну вот вы и попробуйте, если что обратно откатитесь. Вроде у кого-то работают с третьим шлюзом. 

Я хочу, чтобы эти датчики были в Home Assistant и в приложении Xiaomi Home.

Вроде с третьим шлюзом работают, проверьте сами. В чем проблема? Прошейте, если не пойдет прошьётесь на сток обратно.

Prawdopodobnie zrobię to dzisiaj i dam znać, jaki będzie efekt

Niestety po zmianie oprogramowania w czujniku nie mogę iść do Xiaomi Home i temperatura nie wyświetla się w Home Assistant.


Co do górki?

К сожалению, после изменения программного обеспечения в датчике я не могу подключить его к Xiaomi Home, а температура не отображается в Home Assistant.


Чем это могло быть вызвано?

i najpierw próbowałeś podłączyć urządzenie, a potem trzecią bramę, aby wysłać dane. Następnie sflashuj bez wyjmowania czujników. Cóż, albo zostaw jeden czujnik na bramkę i to wszystko.

Огромная благодарность за эту статью!


  1. В приведенном примере конфигурации два ключа whitelist, hassio ругается на дублирующий ключ. Не могли бы вы исправить?

    whitelist:
- 'A4:C1:38:3E:6F:8A'
report_unknown: False
whitelist: True


  1. На официальной странице интеграции https://www.home-assistant.io/integrations/mitemp_bt">mitemp_bt нет такого количества параметров. Подскажите, где вы взяли полный список?

  1. Для таких как я, приложу ссылку на https://github.com/atc1441/ATC_MiThermometer/blob/master/ATC_Thermometer.bin">альтернативную прошивку, т.к. в мобильном браузере,  по умолчанию, гитхаб прячет файлы, и не очень очевидно, где искать прошивку.


А вы не внимательно читали сначала. А я писал, что установил альтернативный компонент из HACS. https://github.com/custom-components/ble_monitor">Вот ссылка на гит. Но компонент обновился и сейчас так, в конфиге прописано у меня.


https://sprut.ai/static/media/cache/00/30/33/5/6128348/71669/1000x_image.jpg?1607360635" alt="1000x_image.jpg?1607360635" />


Ключ должен быть любой, скорее всего на это ругается. Каждую минуту считывает состояния. Отдельно датчики батарей.

Да, ввело в заблуждение, что альтернативная интеграция называется ble_monitor, а нативная – mitemp_bt. Спасибо за актуальную конфигурацию.

Да, ввело в заблуждение, что альтернативная интеграция называется ble_monitor, а нативная – mitemp_bt. Спасибо за актуальную конфигурацию.

скажите пожалуйста, как заставить работать эти датчики с альтернативной прошивой в ESPHome. какую платформу использовать ? спасибо. вот https://esphome.io/components/sensor/xiaomi_ble.html#lywsd03mmc">ссылка как они работают на соковой прошивке.

Как написано в описании по вашей ссылке, так и пишите. Вместо ключа любой код.

да прописал так с левым ключем, но он вообще перестал передавать показания. вернул на сток пока.

У меня показывал, но как то не очень работает. Не понравилось. Больше понравилось малинкиной блютузкой, как-то стабильнее.

а если малинкой.... то-есть если выставить в прошивке отправлять данные каждые 5 минут скажет, то стабильно раз в 5 мин и будут приходить данные ? или  все равно не стабильно работает  ? 

Да незнаю, сильно не проверял. Не понравилось сразу.

В общем запустил таки их на альтернативной прошивке в ESPHome. не знаю что именно было не так, но перепрошил их еще раз и все четыре датчика стали работать нормально. Единственное только то что  судя по логам данные отправляются хер пойми как. Условно 2й и 3й датчики шлют приблизительно раз в 2 минуты. 1й и 4й  могут раз в 3 могут раз в 7 минут отправить. Хотя  всем выставлял слать каждые 5 мин. поэтому решил отказаться от Шлюза и перевести их на малину. Здесь по всей видимости они так же гораздо чаще пуляют данные, потому что 3 датчика на альтернативе, после перезагрузки сервака, в течении минуты передали все данные. А один датчик, который на стоке, так не чего и не передал в течении 20 минут. Зашил его тоже альтернативной, передал данные сразу после перезагрузки))). бум наблюдать на сколько хватит батареек.

а что вы писали в конфиг для прошивки есп? я никак разобраться не могу



Прошил датчик, пытаюсь выставить настройки (например отображение улыбки), в логах пишет успешно, а на датчике никаких изменений ((

https://sprut.ai/static/media/cache/00/65/63/5/5805522/73330/1000x_image.png?1610440173" alt="1000x_image.png?1610440173" />


В общем прошил прошивкой из корня репо гита и заработало, до этого пробовал ver 1.2

https://sprut.ai/static/media/cache/00/65/63/5/6824348/73331/1000x_image.png?1610440806" alt="1000x_image.png?1610440806" />

После прошивки датчика странный баг вылез. Периодически с интервалом в секунд в 8 показывается 99% влажности и горит индикатор батареи. Потом через те же 8 секунд возвращается к нормальному состоянию. И это чередуется бесконечно. При этом, подключиться теперь к датчику не удается.

Может кто-то сталкивался с такой проблемой? Как решить?

Здравствуйте, прошил датчик по инструкции, предварительно привязал его к MiHome после прошивки Blu-шлюз его видит, а вот данные не обновляет, всегда висят старые данные, что я делаю не так? 

А вы внимательно, с начала читали? Там написано, что для альтернативного ble. Вроде у кого-то через третий шлюз подключалось. Можно еспэшкой с блютузкой. У меня к малине подключено. В общем читайте с начала.




У меня подключено через MI Smart Power Plug 2 это розетка с блютус.
Вроде читал все внимательно.
Откатился сейчас на сток прошивку, розетка перестала видеть датчик в шлюзе.
Что не так (((
Но mihome его видит и добавляет.

Розетку перезагружали? Я несколько раз, то на штатную прошивку прошивался, то на альтернативную. Михом видит в штатной нормально.

Сейчас опять перепрошил на кастом, розетка видит датчик по блютуз, но данные старые и не меняются, розетку перезагружал 3 раза, не помогает.

Ну она не сразу раз в 5 минут или 10 приходят данные. Уже не помню. Поэтому я лично и прошивал, сейчас раз в минуту.

А старые значения Device known id
Mi Token
Mi Bind key
в кастомную прошивку надо вводить?

Ну они вроде по новому сами меняются, при подключении к михом.

Так если отвязать от  михом, то с кастомной прошивкой михоме его не находит?!

Находит, но данные как-то не идут нормально. Хотя кто-то говорил, что с третьим гетевеем вроде работает.

Вот и у меня проблема.
Вначале привязываю датчик к михом, после прошиваю кастом по инструкции, потом михоме вроде датчик видит 

MI Smart Power Plug 2 (розетка с блютус) в шлюзе его тоже видит, но данные не обновляет, как бы застыли на старых значениях и все ((

Короче мне так и не удалось победить этот "супер" датчик и привязать его к михоме через 

MI Smart Power Plug 2 (розетка с блютус шлюзом) с кастомной прошивкой.
При установки кастомной прошивки, 

MI Smart Power Plug 2 (розетка с блютус шлюзом) видит датчик вроде даже подключается, но значения висят старые и обновление не происходит, хотя шлюз датчик видит.
Пробовал:
Перезагружать розетку с блюпуп шлюзом, роутер. Пробовал отвязать датчик с кастомной прошивкой, но при регистрации его заново, происходит поиск, находит датчик, но при соединении по блюпуп происходит отвал и михоме просит перезагрузить блюпуп и так по кругу. 
Убил весь день....
(((((

Поделюсь мнением начинающего (пытался подцепить их в НА через 

ESP32). До перепрошивки сами термометры определялись, но значения не появлялись. После перепрошивки так и не смог подключиться к НА. Платформа xiaomi_lywsd03mmc датчика не видела (возможно я в чем-то тупил). Сканер определял другое имя (с АТС_...). MiHome также не подключался к нему. После перепрошивки обратно на сток MiHome всё равно не подключился (вероятнее всего, потому что id остался модифицированным). 


Теперь о подключении к НА: После шага с 

"Сделать активацию" или "Do Activanion" попросту скопировал 

Mi Bind key и вставил в программу ESPHom. После этого датчики начали работать. Единственное, у "восстановленного" термометра пока не вижу уровня заряда батареи.

Вчера тоже наконец пришли такие датчики. Телефон у меня Xiaomi. Штатный бразуер не подключается, а при нажатии кнопки выбор файла включает фотоаппарат.

Попробовал chrome, все нормально коннектится, прошил все 4 датчика без проблем. Ввел настройки и подключил через EspHome. 

Подключено 2 штуки с стандартной прошивкой. Через ~0.5 года HA перестал получать данные с одного из них. После повторного получения 

Mi Bind Key снова все заработало

Есть еще вариант подключение перепрошитых датчиков к Home Assistant используя Xiaomi Gateway 3 и https://github.com/AlexxIT/XiaomiGateway3">HA интеграцию Xiaomi Gateway 3. Работает с датчиками LYWSD03MMC и MHO-C401. Основан на https://github.com/pvvx/ATC_MiThermometer/issues/73#issuecomment-797517428">комментаре. Перед прошивкой датчик должен быть привязан к Gateway 3 через приложение Xiaomi Home и виден в Home Assistant интгерацие Xiaomi Gateway 3. Прошиваем датчик кастомной https://github.com/pvvx/ATC_MiThermometer">прошивкой. В https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html">кастомной прошивке восстанавливаем имя устройства Set New Name LYWSD03MMC (или MHO-C401) и выбираем Advertising type- Mi. Пункты AdFlags и Encrypted Mi beacon не должны быть помечены. Другие значение по дефолту. После процедуры перезагрузить шлюз. 

Данные датчика начнут обновляться в Home Assistant но не в приложение Xiaomi Home.



Кто подскажет как восстановить? Прошиваю стоковую прошивку, в ми Хом его уже не цепляет. 

Пишет -"Не удалось подтвердить подлинность критериев (-29).

https://sprut.ai/static/media/cache/00/88/95/5/9835503/81330/1000x_image.png?1631025101" alt="1000x_image.png?1631025101" />https://sprut.ai/static/media/cache/00/88/95/5/9835503/81331/1000x_image.png?1631025102" alt="1000x_image.png?1631025102" />

специально зарегистрировался чтоб ответить как бороться с ошибками -28,-29,-32 и т.п. и вернуть все взад.

Для начала ми хоум с недавних версий проверяет часовой пояс, локацию вайфая и наличие рут доступа! Про рута я не знал и с датчиками возился неделю из-за этого. в ру сегмент цеплялись рандомно, а в китай- нет с ошибкой. Итак что я сделал чтобы в офф приложении работало: 1.в магиске скрыл от михоума официального с ГП полностью то, что имеется рут доступ. 2. Датчики нужно перепрошить заново. причем в последовательности сток-мод-сток, то есть друг на друга прошивки одинаковые не ложатся, а вот заменять можно.(в михоум цепляется только сток) 3. и сразу же как прошьете - пробовать подцепить. в 80% случаях программа зависнет на этапе проверки, на дисплее будет гореть значок синезуба, но через минут 5-10 датчик отключится от телефона и в этот раз при попытке подцепиться уже все пройдет гладко и быстро. я так себе 6 датчиков вернул на свои места. Пока что не нашел мануалов как подцеплять датчики имея не малинку, а обычный виндовый сервак с ВМ машиной под HA + gateway 3 и датчики/лампочки на михоуме. Возню с HA начал из-за желания сделать автономной часть команд, без ущерба для михоума, ну и из спортивного интереса

А в Homekit никак не пробросить? Плагин который есть не работает

Добрый вечер.


Зверушку перешил, настроил все ОК. Дальше начались танцев с бубном. Сделал все по инструкции, но интеграцию использовал стандартную. НА все нашел, но вот данных ожидаемо не показал. Версия 2021.1.5 . Решил поставить как было указанно выше - кастомную интеграцию, но она не завелать, по не известным для меня причинам. Возможно питон 3.7 не понравился, но это не точно.






Вообщем как обычно. Продолжил копать, а именно запустил NODE-RED поставил node-red-contrib-ble-scan и стал смотреть, что творится вокруг. Нашлась зверушка и куча фитнес браслетов MI BAND 3, последние вообще жутко спамили, странно как они так долго живут (а может как раз не долго , но у меня AMAZFIT BIP). Вообщем я отвлекся от темы, продолжу. Смотрю что на выходе и вижу JSON примерно такого вида:








"payload": {




"id": "a4c138c9d0d7",




"address": "a4:c1:38:c9:d0:d7",




"addressType": "public",




"connectable": true,




"advertisement": {




"localName": "ATC_C9D0D7",




"serviceData": [




{




"uuid": "fe95",




"data": [




80,




48,




91,




5,




54,




215,




208,




201,




56,




193,




164,




10,




16,




1,




100,




0,




0,




0




]




}




],




"serviceUuids": [],




"solicitationServiceUuids": [],




"serviceSolicitationUuids": []




},




"rssi": -60,




"mtu": null,




"state": "disconnected"




},




"_msgid": "4f054cc2216c1b62"





В котором наблюдаю массив: "serviceData". Начинаю радоваться, особенно вспоминая выдержку


из документации к прошивке, где сказано следующее:





The custom firmware sends every minute an update of advertising data on the UUID 0x181A




with the Tempereature, Humidity and Battery data.




The format of the advertising data is as follow:




Byte 5-10 MAC in correct order




Byte 11-12 Temperature in int16




Byte 13 Humidity in percent




Byte 14 Battery in percent




Byte 15-16 Battery in mV uint16_t




Byte 17 frame packet counter




Example: 0x0e, 0x16, 0x1a, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa,




0xbb, 0xcc, 0xdd, 0xdd, 0x00





Ну думаю, сейчас все прочитаю и дело в шляпе... но как всегда в программировании все оказалось ни фига не просто. Данные в массиве совсем не похожи на то, что нужно. Посмотрел на них со всех сторон и опечалился. Стал гуглить, что это такое "fe95" и в гитхабе нашел фрагмент функции, которая дешифрует данные:







var r = {};




d = msg.payload.advertisement.serviceData[0].data




if (d[11] == 0x04) {




var temp = d[15] << 8 | d[14];




if (temp & 0x8000) temp -= 0x10000;




r.temp = temp / 10;




} else if (d[11] == 0x06) {




r.humidity = (d[15] << 8 | d[14]) / 10;




} else if (d[11] == 0x0a) {




r.battery = d[14];




} else if (d[11] == 0x0d) {




var temp = d[15] << 8 | d[14];




if (temp & 0x8000) temp -= 0x10000;




r.temp = temp / 10;




r.humidity = (d[17] << 8 | d[16]) / 10;




}





То, что я увидел - мне понравилось. Вставил в node-red запустил и ... увидел в принципе, что надо.






if (msg.payload.address == 'a4:c1:38:c9:d0:d7') {




/*




Byte 5-10 MAC in correct order




Byte 11-12 Temperature in int16




Byte 13 Humidity in percent




Byte 14 Battery in percent




Byte 15-16 Battery in mV uint16_t




Byte 17 frame packet counter




*/




var r = {};




d = msg.payload.advertisement.serviceData[0].data




if (d[11] == 0x04) {




var temp = d[15] << 8 | d[14];




if (temp & 0x8000) temp -= 0x10000;




r.temp = temp / 10;




} else if (d[11] == 0x06) {




r.humidity = (d[15] << 8 | d[14]) / 10;




} else if (d[11] == 0x0a) {




r.battery = d[14];




} else if (d[11] == 0x0d) {




var temp = d[15] << 8 | d[14];




if (temp & 0x8000) temp -= 0x10000;




r.temp = temp / 10;




r.humidity = (d[17] << 8 | d[16]) / 10;




}




/*




node.warn(d[14]);




node.warn('temp');




node.warn(r.temp);




node.warn('humidity');




node.warn(r.humidity);




node.warn('battery');




node.warn(r.battery);




return msg;




*/




if(typeof r.temp != 'undefined') {




msg1 = {};




msg1.temp = r.temp;




msg1.humidity = r.humidity;




msg1.battery = d[13];




msg1.p = msg.payload;




return msg1;




}




}





результат


"temp": 24.3,
"humidity": 39,
"battery": 4, p...


в переменную P записана оригинальная строка для дальнейшего анализа.
У меня стоит период опроса 10 минут, что работает, но не верно показывает заряд батареи. С этим буду разбираться позже. Еще заметил,, что после 10 минутного сна зверушка радостно спамит сообщениями почти минуту, если не больше. В чем причина - пока не понял.

Велосипеды наше все. Долго и с интересом наблюдал, что сыплет в эфир датчик и в конце концов мне это надоело. Решил как и в большинстве аналогичных случаев. В гитхабе с прошивкой есть пример чтения данных через python, которым я и воспользовался. 


Скрипт:


https://yadi.sk/d/sjipeoDQxNmRwA">https://yadi.sk/d/sjipeoDQxNmR...

Ставим запуск в cron с интервалом в 1 минуту и видим публикацию в брокере mqtt, что в принципе полностью решило мою задачу. Далее буду пробовать несколько зверушек, но об этом позже.



Дополнительно отмечу, для тех кто повторит:


  1. 1.Библиотеки ставим из под sudo
  2. 2. Скрипт запускаем из под sudo
  3. 3. crontab -e запускаем из ПОД ПОЛЬЗОВАТЕЛЯ root!!! иначе не взлетит.

Прикольно все это. Но для чего? Странно, что не запустилась. Но там есть ещё пара кастомных прошивок. Может их попробовать.

Как подключить к малине напрямую ? ссылка в статье не активна ! Спасибо

Вернуться назад

Устройства


Raspberry Pi

Raspberry Pi 4

(16 отзывов)

Вернуться назад