Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Информация #10

Open
pvvx opened this issue Jan 31, 2024 · 11 comments
Open

Информация #10

pvvx opened this issue Jan 31, 2024 · 11 comments
Labels
documentation Improvements or additions to documentation

Comments

@pvvx
Copy link
Owner

pvvx commented Jan 31, 2024

Описание для программ версии от 1.0.

Распределение Flash 512 килобайт

Адрес Описание Размер
0x00000 Используется ROM 8 килобайт
0x02000 Boot Info для ROM 4 килобайта
0x03000 FW Boot с функцией OTA 52 килобайта
0x10000 FW APP 128 килобайт
0x30000 Запись истории 304 килобайт
0x7C000 Сохранение настроек (EEP) 16 килобайт

FW Boot и OTA

  • FW Boot имеет функцию OTA, но не имеет функции записи истории и прочих дополнений. Служит для обработки OTA при любых неудачных или неправильных обновлениях.

  • FW APP не имеет функции OTA, для OTA перезагружается в FW Boot. Имеет дополнительные функции и расширения.

Поддерживаемые функции и сервисы описываются включенными битами в 32-х битном поле dev_id.services.

FW Boot запускается по старту, и если не нажата кнопка, проверяет есть или нет запись FW APP. Если есть – запускает FW APP. Если кнопка при старте нажата - запускается FW Boot.

При соединении указывается:

Software: Vx.x - значит работает FW APP
Software: Bx.x - значит работает FW Boot

На термометрах с экраном, если не включено отображение времени, при первом старте показывает:

  • "Bot 12" - работает Boot версия 1.2
  • "APP 12" - работает APP версия 1.2

Принудительно перезагрузиться в FW Boot из FW APP возможно двумя способами:

  1. Отключить питание и удерживая кнопку включить питание.
  2. Подать команду 7233 в меню Service программы PHY62x2BTHome.html и отключить соединение.

Полная перезагрузка - Подать команду 7201 в меню Service программы PHY62x2BTHome.html и отключить соединение.


Через USB-UART адаптер App можно записать сразу после boot. Пример:

python3 rdwr_phy62x2.py -p COM11 -e wh ./bin/BOOT_TH05V13_v13.hex
python3 rdwr_phy62x2.py -p COM11 -r we 0x10000 ./bin/TH05V13_v13.bin
@pvvx pvvx added the documentation Improvements or additions to documentation label Jan 31, 2024
@pvvx
Copy link
Owner Author

pvvx commented Feb 9, 2024

Событие Open/Close и счет импульсов

С версии 1.2 поддерживается опрос вывода подключенного к геркону или контакту, замыкающемуся на GND.
Максимальная частота переключения - 100 раз в секунду.
Если контакт имеет дребезг, тогда желательно зашунтировать контакт конденсатором.
При замыкании или размыкании передается блок из 5 BLE реклам следующих друг за другом через период в 50 мс.
При каждом событии "Open" прибавляется счетчик.
Значение счетчика передается совместно с каждым событием "Open/Close".

Входной контакт на плате термометра:

  • На THB2 - маркирован как RX
  • На BTH01 - маркирован как RX2
  • На TH05_V1.4 - маркирован как RX2

image

Вывод управления внешним устройством по температуре и/или влажности

Контакт на печатной плате с маркировкой "TX2" управляется с помощью уставок с гистерезисами по температуре и влажности.
Имеется возможность переключения на инверсное управление выводом.

Настройка производится в PHY62x2BTHome.html.

Работа выхода назначается с помощью установки значения гистерезиса.
Если значение гистерезиса равно нулю - переключений не будет.
Если значение гистерезиса больше нуля - переключение (включение) произойдет при значении ниже уставка + гистерезис.
Если значение гистерезиса меньше нуля - переключение (включение) произойдет при значении выше уставка + гистерезис.

@CMY-Reader
Copy link

А есть возможность запросить счетчик Открытий и состояние Контакта (геркона)?
Или еще лучше историю открытий и закрытий (как история температуры и влажности).

@pvvx
Copy link
Owner Author

pvvx commented Feb 9, 2024

А есть возможность запросить счетчик Открытий и состояние Контакта (геркона)?

Показывает в PHY62x2BTHome.html.

image

Или еще лучше историю открытий и закрытий (как история температуры и влажности).

Ну-ну - если к контакту прикоснуться пальцем при питании термометра от БП, то имеем наводку в 50Гц. Это кол-во срабатываний 100 шт в секунду. И куда такая история влезет? На SSD в пару ТБайт?

https://youtu.be/v67zi4X5Sag

@CMY-Reader
Copy link

CMY-Reader commented Feb 9, 2024

А есть возможность запросить счетчик Открытий и состояние Контакта (геркона)?

Показывает в PHY62x2BTHome.html.

Как я понимаю он счетчик получает вместе с беконами в "момент срабатывания".

Вопрос был про чтение счетчика "через час" после открытия.

Или еще лучше историю открытий и закрытий (как история температуры и влажности).

Ну-ну - если к контакту прикоснуться пальцем при питании термометра от БП, то имеем наводку в 50Гц. Это кол-во срабатываний 100 шт в секунду. И куда такая история влезет? На SSD в пару ТБайт?

https://youtu.be/v67zi4X5Sag

Тут вопрос к аппаратному методу борьбы с дребезгом. Но можно и на программном уровне. Например можно историю писать не чаще чем раз в секунду. Так сказать "усреднять" значение параметра. Добавить в историю время и значение счетчика если за этот период он изменился.

@pvvx
Copy link
Owner Author

pvvx commented Feb 9, 2024

Смысл этого всего, если тот-же HA ведет историю?
А исполнительному устройству безразлично время и история.
Тут необходима только скорость срабатывания. А она ныне до 10 мс уже на исполнительном устройстве c BLE приемником. Если и пропустит первую передачу BLE рекламы на 3-х каналах, то со второго через 50 мс сработает. И так дублируется 5 раз, если в это время не произойдет изменение уровня на пине - будет новая итерация.

На ESP32 это не будет работать - там пропуски приема к 90%.

@CMY-Reader
Copy link

Во-первых все радио можно заглушить.
Во-вторых сервер можно выключить..перезагрузить.
В-третьих. Один из xiaomi сенсоров вожу в сумке велосипеда. И данные температуры за поездку считываются по возвращению.

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

@pvvx
Copy link
Owner Author

pvvx commented Feb 9, 2024

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

Считать кол-во оборотов колеса :)

@CMY-Reader
Copy link

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

Считать кол-во оборотов колеса :)

Или ям на дороге :)

@pvvx
Copy link
Owner Author

pvvx commented Feb 9, 2024

История open/close возможно будет в https://pvvx.github.io/TS0207_TZ3000/ , https://pvvx.github.io/TS0202_TZ3000/ , https://pvvx.github.io/DS01_zbeacon/ , https://pvvx.github.io/iSearching/ , ... и в аналогичных

Во-первых все радио можно заглушить.

Нормальный адаптер (и сниффер) принимает до 300 рекламных пакетов в секунду. Типичное время передачи BLE рекламы последовательно на 3-х каналах составляет около 3 мс. И приемник выбирает сигнал с максимальным уровнем - удаленные не помешают.
Самый скоростной из дешевых USB-BT адаптеров - это CSR8510 A10. Но он всего BT4.2. Все остальные = тормоз.
Скорости USB2.0 FS не хватает для передачи по HCI 300 рекламных пакетов в секунду. И никаких BT адаптеров с UART интерфейсами не хватает. Требуется PCIe адаптер, т.к. с USB2.0 HS или с USB3.0 BT адаптеров нет.

@Romno7
Copy link

Romno7 commented Mar 21, 2024

Как обнулить (сбросить) счетчик?

@pvvx
Copy link
Owner Author

pvvx commented Mar 21, 2024

Питанием

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

3 participants