pvvx / ATC_MiThermometer

Custom firmware for the Xiaomi Thermometers and Telink Flasher
https://github.com/pvvx/pvvx.github.io/tree/master/ATC_MiThermometer
Other
2.86k stars 198 forks source link

Округление значений на кастоме PVVX LYWSD03MMC #289

Closed KaportsevIA closed 1 year ago

KaportsevIA commented 1 year ago

Доброго времени суток. Можно сделать стандартным округление значений температуры и влажности на кастомной прошивке для термометра LYWSD03MMC. До 1 и 0 (соот-но) знака после запятой, т.е. Температура 26,1, влажность 47 например. Смена формата в флешере почему-то не работает. А писать под каждый датчик конвертер с системах УД немного геморройно, тем более что датчиков может быть много. До 10-15 штук.

pvvx commented 1 year ago

Стандартным с кем или чем? У каждого свой стандарт. При округлении до указанных значений выходят очень кривые и скачкообразные графики в Home Assistan. Невозможно на это смотреть: image Хотя интеграция пытается сгладить и усреднить. А без усреднения всё ещё хуже: image

И это не дело термометра заниматься форматами вывода, которые настраиваются и отображаются в сторонних приложениях по выбору пользователя. Термометр должен предоставить максимально возможные данные, а внешнюю программу вы настраиваете сами под свои предпочтения. Термометр не сможет учесть всех, а любые дополнения и ветвления программы в термометре увеличивают потребление. И многие не согласятся разменять большее потребление от батарейки на ненужные дополнительные настройки. Пример - image

И как потом поддерживать температуру в кладовке, если данные будут урезаны? image И так передается мало знаков и возникает слишком большой гистерезис: image

Или как наблюдать куда изменяется температура и влажность на улице? При текущем формате это наглядно: image

PS: Округленные до нужного вам формата данные передаются при переключении формата рекламы в стандартный вариант "MIJIA (MiHome)". При соединении с термометром форматы передачи температуры, влажности и процентов батареи соответствуют спецификациям стандартов bluetooth

KaportsevIA commented 1 year ago

Честно говоря, не вижу смысла в применении сотых и тысячных долей в градусах/влажности в сценариях умного дома. Те кому нужны датчики, например влажности почвы, скорее всего используют что-то более специализированное, умеющее считать еще и фертильность почвы. А большинство климатической техники (сплиты/обогреватели/осушители/увлажнители) дай бог реагируют на десятые доли. Т.е. такой сценарий когда показатели температуры будут плавать в пределах сотых долей, например от 26.499 д до 27.002 вполне реальны, а если сплит (который реагирует на , 0,5 )настроить на выключение при 27??? И у них нет параметров гистерзиса. Ну и кроме того смена показателей с 26,5, на 26,51 - меняется размер шрифта.
Снимок экрана 2023-01-30 195655

pvvx commented 1 year ago

Честно говоря, не вижу смысла в применении сотых и тысячных долей в градусах/влажности в сценариях умного дома.

Вам же показаны графики управления обогревом. И передачи значений в 0.01 C уже мало для многих применений. Требуется не абсолютная точность, а дифференциальная и как можно больше значений в секунду. Особенно для ПИД регулирования. И не стоит сюда приводить дурные варианты дешевого оборудования, которое не умеет поддерживать параметры с нормальной точностью. Это к термометрам и примененным в них датчиках не относится.

Ну и кроме того смена показателей с 26,5, на 26,51 - меняется размер шрифта.

Это не термометр меняет, а ваша программа. И большинство программ выводят усредненное значение, полученное путем усреднения нескольких принятых значений. И если приято 22.7 девять раз и 22.8 то индикация будет 22.71. Как это исправить термометру? И вам видимо в лом переключить формат рекламы у термометра на вариант "MIJIA (MiHome)" или "ATC441"? Требуете обязательно загрубить форматы передачи с нормальной точность всем?

О ужасной стабильности EPSHome и не дружественности интерфейса к пользователю, как и полного отсутствия настроек претензии тут не принимаются. Исправлять кривизну EPSHome за счет программ термометра?

PS: По поводу влажности - посмотрите на все термометры Xiaomi с индикаторами E-Ink. У них, в большинстве случаев, отображение влажности ведется в 0.1%, а не как вы хотите. И чтобы получить такую точность требуется усреднение нескольких значений с большей точностью. Аналогично и с выводом температуры с точностью в 0.1С. А для реализации вашего "стандарта" приведены все исходные тексты программы - меняйте как захотите. Github не магазин и права пользователя в описываемом вами контексте - "необоснованно хочу то-то и тот-то" тут не рассматриваются. Тем более это уже предусмотрено в имеющихся прошивках с помощью переключения форматов.