Поймал этот термогигрометр в разделе «Все по одной цене» за 189 рублей и не смог удержаться. Вообще, конкретно эта штука в первую очередь предназначена для работы вместе с Bluetooth-шлюзом, но у меня были другие планы. Дело в том, что с некоторых пор я экспериментирую с платформой WiFi-IoT, которая позволяет легко делать домашнюю автоматику из ESP8266 и ESP32, а этот датчик после прошивки обещал быть с ней совместимым. TL:DR: конечно, что-то пошло не так, но в конечном итоге все получилось.
Итак, сначала про коробочные возможности датчика. Как и всегда, объекты на Aliexpress кажутся больше, чем они есть на самом деле. По картинкам мне казалось, что датчик как минимум размером со старорежимный будильник, а по факту получилось — со спичечный коробок.
Если верить шагу линовки, то размеры — 45х45 мм при толщине в сантиметр. Автономно работает как термогигрометр, показывает температуру, влажность и символ климатического комфорта.
На спине имеется многофункциональная кнопка для подключения к хабу или смартфону и переключения между температурой в градусах Цельсия и Фаренгейта. Корпус собран на защелках, притом затейливо: нижняя часть одновременно служит держателем батарейки CR2032, а пружинные контакты — на плате с другой стороны.
Если честно, мне это дело не очень понравилось, потому что защелки довольно тугие и если их поломать, то термометр перестанет работать, поскольку батарейку к плате уже ничего не будет прижимать. Одна надежда, что батарейку не придется менять слишком часто. Вот, попробовал сбоку эти защелки снять:
Без Bluetooth-хаба термогигрометр можно подключить только к телефону с поддержкой BLE и только для отображения температуры и влажности. Причем подходят не все Tuya-совместимые аппы. К примеру, в Digma SmartLife я не нашел возможности подключения такого датчика. Пришлось сопрягать с фирменным Smart Life от Tuya.
Как видно из скриншота, при наличии калиброванных приборов можно внести поправки в показания TH05F, если требуется. Что еще хорошо — для работы без хаба постоянная связь с телефоном не нужна. Открываешь апп, телефон подключается к датчику, скачивает журнал показаний и все показывает. Какова глубина архива — поди пойми.
На этой торжественной ноте я общение с коробочными возможностями закончил и перешел к переделке термогигрометра под себя. У меня была заранее купленная плата ESP32, лицензия WiFi-IoT и статья из вики WiFi-IoT, что платформа работает с Bluetooth-датчиками с прошивкой pvvx.
Для начала пару слов о том, что такое WiFi-IoT. Это платформа и конструктор прошивок для ESP8266/ESP32 с практически нулевым программированием. Из коробки можно подключать к ESP кучу различных датчиков, исполнителей и экранов, смотреть и рулить всем этим через веб, Telegram и кучу других сервисов. В комплекте фирменное облако с возможностью развернуть и использовать его на собственном железе. В общем, чудо чудное для тех, кто как и я любит автономную и полуавтономную автоматику, а не вот эту вашу Tuya.
Итак, первым делом я пошел читать, как перешить свой датчик на pvvx. Аккуратно вынул плату из корпуса, она там зафиксирована выступами, и так же аккуратно отделил ее от экрана, постаравшись не испачкать токопроводящую резинку и ответные контакты на плате.
Из обозначений на плате выходило, что по классификации pvvx у меня TH05F. Дальше строго следовал инструкции: скачал нужные бинарники, отыскал USB-Serial переходник, подключил RX-TX накрест, землю, питание 3.3В. Поставил Python, разумеется. Говорю же, все по инструкции.
А так как на моем переходнике нет сигнала Reset, то вместо него использовал кнопку на землю, что тоже есть в инструкции. Там написано, что надо постараться успеть нажать-отпустить в начале прошивки. Но по факту там надо постараться не успеть, поскольку пауза довольно щедрая, несколько секунд. Поэтому отсутствие Reset на переходнике — не трагедия.
Сначала сохранил на всякий случай родную прошивку:
Потом прошил загрузчик и следом за ним основную прошивку:
Все получилось без проблем, беспокоило только увижу ли я датчик на ноутбуке, которому стукнуло лет девять, что ли, и который мог не знать про BLE. На удивление увидел (чтобы скрипт подключался быстрее и увереннее, перед поиском датчика нужно однократно нажать на нем кнопку). А вот дальше получилось не очень интересно, потому что ESP32 с прошивкой WiFi-IoT в упор не видела термогигрометр, как датчик.
После этого я немного погрустил, но взял себя в руки и погрузился в проблему. И вот что заметил. В отладке ESP32 были видны посылки от термогигрометра, а в описании pvvx было указано, что прошивка передает данные в формате BTHome.
Из описания протокола следовало, что, во-первых, у периферии BTHome есть фиксированный UUID 0xFCD2, который прекрасно видно в логе. Во-вторых, интересующие меня параметры температуры и влажности предваряются байтами 0x02 и 0x03. В общем, оставалось только написать код на C для выкусывания нужных байтов, благо у WiFi-IoT есть не только фиксированные опции, но и возможность включения в прошивку собственных программных фрагментов — Конструктор кода.
uint16_t pvvxTemp, pvvxHum;
#define ADDLISTSENS {200,LS_MODE_TEMP|LSENSFL2,"pvvxTemperature","pvTemp",&pvvxTemp,NULL},{201,LS_MODE_HUM|LSENSFL2,"pvvxHumidity","pvHum",&pvvxHum,NULL},
void myBleHub(uint8_t *mac,uint8_t ad_type ,uint8_t len,uint8_t *data){
if(mac[4]==0xA2 && mac[5]==0x57) // можно сравнивать МАС только последние 2 байта
{
if(ad_type==0x16) // принимаем Service Data - 16-bit UUID
{
if(*(uint16_t*)(data)==0xFCD2) // первые 2 байта - это номер UUID, фиксированный для pvvx
{
pvvxTemp=*(uint16_t*)(data+8);
pvvxHum=*(uint16_t*)(data+11);
}
}
}
}
void startfunc(){
// выполняется один раз при старте модуля.
cb_bthub_funs=myBleHub;
pvvxTemp = 0;
pvvxHum = 0;
}
void timerfunc(uint32_t timersrc) {
// выполнение кода каждую 1 секунду
if(timersrc%30==0){
// выполнение кода каждые 30 секунд
}
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
void webfunc(char *pbuf) {
os_sprintf(HTTPBUFF,"<br><b>Термогигрометр PVVX:</b>"); // вывод данных на главной модуля
os_sprintf(HTTPBUFF,"<br>1. Температура: %s °C", fltostr(pvvxTemp/10)); // вывод данных на главной модуля
os_sprintf(HTTPBUFF,"<br>2. Влажность: %s %%", fltostr(pvvxHum/10)); // вывод данных на главной модуля
}
Здесь для работы с похожим собственным датчиком нужно поменять два последних байта MAC-адреса. Названия переменных и строки — по желанию. В настройках Конструктора кода глобальные переменные и настройки не нужны. Еще хочу предупредить, что обработчик не проверяет ошибки, поэтому работает как есть.
Слева панель с термогигрометром из ESP32, справа — при прямом подключении через браузер на ноутбуке. Одновременно смотреть и там, и там нельзя, поэтому показания немного разнятся:
Звучит и выглядит, конечно, просто, но так как я не программист, то потратил несколько часов на несколько нужных строчек. И это несмотря на то, что максимально использовал готовые примеры.
Теперь про Яндекс. Дело в том, что автор WiFi-IoT заодно добавил в платформу работу с Умным домом Яндекса. То есть, многие датчики с ESP подключаются как датчики в Яндексе. Именно таким образом я и вывел термогигрометр в их фирменное приложение Умный Дом в дополнение к Telegram-боту и вебу:
В дальнейших планах — купить какой-нибудь похожий датчик и взглянуть, получится ли его тоже так же подключить, да при том — одновременно с этим. Сейчас датчик работает в спальне на изголовье кровати. Расстояние около трех метров по прямой от ESP, но через пару стенок.
Резюме. Датчик мне понравился — маленький, аккуратный, универсальный. Хочешь — подключай к Tuya. Не хочешь — перепрошивай и подключай к ESP32, а через нее — к Яндексу, Народному мониторингу или же к Home Assistant, который, по идее работает с BTHome.
+57 |
3116
111
|
+87 |
4037
38
|
+64 |
3062
38
|
Xiaomi можно, там другая начинка
www.wildberries.ru/catalog/123114973/detail.aspx
Вот такой перешил на прошлой неделе. Вроде бы последняя версия. Делал Zigbee версию.
Прошивал с понижением прошивки.
Спасибо
github.com/pvvx/ATC_MiThermometer
читайте вдумчиво, там есть варианты )
Про WiFi-IoT впервые слышу, если честно. Кто-то может мне пояснить, чем это лучше Tasmota или ESPHome?
Bluetooth датчики и вообще всё от умного дома на Bluetooth ненавижу только за то, что нет никакой авторизации и все девайсы читает кто угодно из зоны доступа.
ZigBee не нравится тем, что батарейки выжирает как не в себя, особенно девайсы от туи. Вы себе представьте, три (ТРИ!) батарейки типа ААА стоят и TH01Z выжрал их за 8 месяцев. Это при настройках, что раз в пол часа данные отправляет. При этом древний круглый ble lcd от сяоми на одной ААА работает 10-12 месяцев, и шлёт данные каждые 5 сек.
Батарейки только жрут (мои часы на 3 ААА батарейках), благо у меня много батареек ААА от «сильноточного» оборудования там треть емкости еще есть (ток не выдавали и заменяли), эти часики высасывают остатки до 0.9В ))
Ну или литий ионная батарейка подойдет хорошо.
https://aliexpress.ru/item/1005002624427071.html
А я её когда брал размышлял… ага, если старый сяоми от одной ААА работает чуть меньше года, то этот с тремя батарейками, поди, пару лет работать будет. Так наивно я полагал.
Мне вполне достаточно того что датчик показывает на экране.
Батарейку одну несвежую за три месяца один датчик выжрал, второй ещё нет.
Простая умная розетка в сценариях не даёт указать в качестве статуса отключение реле от питания.
Пока вижу, что для зарядки нужно протягивать к инвертору ещё один 10м кабель.
1 выключаем зарядку у гибрида.
2. на сухой контакт вешаем внешнюю зарядку через контактор включаемую, както так…
Ну или я ТЗ ни фига не понял…
Если обычный инвертор не связан с зарядкой, а гибридный будет связан, и по действующей схеме при отключении основного источника электричество с выхода гибридного снова придёт ему на вход. Поэтому я ломаю голову как автоматически отключать ввод на гибридный чтобы не менять схему. Мне пришла в голову идея что можно управлять одним устройством (розеткой) используя выключенное состояние реле tuya, которое находится после вводного автомата, но кажется так нельзя.
1 есть акб-1шт
2 есть инверторобычный 1шт
3 есть гибрид 1шт
4 инверторы стоят не в спарке (мастер-слэйв)
Правильно?
5 инверторы подают напряжение в одну сеть? если да, то как идет синхронизация частоты между ними???
самое просто предложение разделить щит на две группы нагрузок, одна питаеться от обычного, одна от гибрида.
Еще можно поставить тупой контактор на один инвертер причем катушку управления запитать от входа щита, тоесть при проподании сетевого питани, тупо будет отключаться от сети ввод в один из инверторов…
Вам проще на листочке однолинейку нарисовать и в личку мне кинуть…
Есть вот такой щиток
И вот такая схема подключения резервного питания на базе картинки из интернета.
Пояснение проблемы)
Переключение между городской электросетью и инвертором происходят автоматически с помощью переключателя, который есть на фото.
У каждого источника есть по одному умному реле. Эти реле поддерживают вайфай, служат защитой от перенапряжения, счётчиками-ваттметрами и индикаторами отключения электроэнергии (Кинетик присылает уведомления о выключении реле).
Двух работающих инверторов не планируется. Только один. Замена инвертора напрашивается потому что отключения света приходятся в любое время суток, нужна автоматическая зарядка аккумуляторов от городской электросети и хочется повысить мощность инвертора.
Если при замене автомобильного инвертора на гибридный я сохраню ту же схему подключения, то подключение ввода в гибридный инвертор будет в ближайшей розетке (распред.коробке). При включении резервного источника (гибридного инвертора) получится, что гибридный инвертор будет запитан сам от себя.
В связи с вышеописанным, я подумал, что во время отключения городской электросети и умного реле нужно автоматически отключать розетку, в которую подключена зарядка гибридного инвертора. Какое это могло быть устройство я не придумал.
В крайнем случае просто протяну кабель на вход гибр. инвертора просто минуя автоматический переключатель.
Розетка, от которой заряжаются аккумуляторы по текущей схеме проводки получается после устройства автоматического ввода резерва (автоматический переключатель), а должна быть до, и сидеть на городской сети.
Вы не хотите тянуть кабель (стены сверлить/штробить/ремонт делать), а поставить датчик наличия сетевого напряжения на Ввод А, при пропадании — обесточивать розетку инвертора.
Выскажу свое мнение. Самый лучший вариант все-таки
Потому что это правильно и максимально надежно. Но есть и другие решения.
Вот, недавно starson сделал датчик наличия 220 из умного выключателя и реле (с катушкой на 220).
Я бы взял 2х ESP8266/32, вот таким модулем проверял наличие 230В, а реле по вкусу. Прошивка ESP Easy, все настраивается через Web интерфейс, есть P2P — ESP могут обмениваться данными без облака и контроллеров умного дома.
А у Starson
А в моем случае таких розеток рядом нет и поэтому спрашивал о беспроводном устройстве.
Так что пока самый перспективный вариант это насверлить новых отверстий в стенах и по улице протянуть ещё один кабель.
1. Если вы берете гибрит то нафига вам вам два РКН (но это ладно), авот зачем переключатель вводов это я не пойму если ДГУ нет.
2. Норм схема-вводной АВ- (узел вводной защиты щита (узип+ркн))-деление резерв/не резерв в щите-Гибридник-резервированные группы.
3. Основная задача любого инвертера обеспечить НЕПРЕРЫВНОСТЬ подачи эл. энергии, иначе весь смысл теряеться.
4. если у вас стоит АВР с мотор приводом, то рекомендую его поставвит в режим сеть/дгу, причем сигнал вкл/вкл дгу брать с сухого контакта гибридника.
5. Всю логику работы сеть/батареи/солнце/заряд повесить на гибридник так как это его штатная функция.
6. Зацепить гибридник в лан через вифи, алучше через конвертер 485/лан и подключить его к НА, протоколы там у китайцев практически все стандарные, рулить будет легко, примеры есть.
7. Проведите 5х2,5мм до гибридника от щита и будет вам счастие… а лучше 5х4мм так как апетит приходит во время еды. (L+N питание гибрида, L+N — гибрид на нагрузку, РЕ)
Не мое дело конечно но использовать АГМ свинец + солнце на постояку, тоесть минимум юзая сеть ну такое… Вы убьете батареи за год, если не быстрее. А с коэффэм извлечения 60% запас энергии 24в*100Ач*0,6(извлечения)*0.95(кпд инвертора)=1,37кВт всего! тоесть это только котел газовый и свет… Я бы сразу делал сборку на 48в и литий-железо ставил ячейки от 180-200Ач. Что собствено и собираюсь делать у себя, гибрдник уже два месяца на 6кВт лежит, ячейки (Лиотех 16штх250Ач) приедут на следующей неделе.
Думал ответить по каждому комментарию, но это сильно отклонится от моего вопроса.
В принципе я уже понял, что решение будет простое проводно-аналоговое)
В таком случае нет смысла покупать гибрид если заряжать посторонней зарядкой. Гибрид нужен, чтобы зарядка начиналась автоматически как только появляется основное электричество. Поэтому с думаю над тем как сделать прерывание электричества от резерва.
П.с. частично ответил в другом комментарии.
Т.е. как бы нет соединения (есть широковещательная передача).
Другое дело, когда я беру клиентскую часть от pvvx и там есть кнопка «Подключиться», тогда, похоже, устанавливается соединение точка-точка и BLE-датчик становится занят для других клиентов.
Автор прошивки pvvx вообще крайне негативно отзывается о работе ESP с BT — подробности можно найти в issues проекта.
Насколько эти опасения оправданы, другой вопрос. Отзывы были разные.
«at normal speed» намекает что используются низкоскоростной режим (пакеты дольше — жор больше) или что то другое?
я вот вообще не очень понимаю зачем усложнять и использовать всяческие шлюзы если можно просто вставить правильный usb bt/zibee свисток в usb где ha запущен. а тут еще и такое
Купили бы хаб за 6-7 баксов и не мучались.
Но в целом меня вообще все устраивает пока. Развлекаюсь больше, чем на что-то серьезное рассчитываю.