Павел Деревянкин@FA72
Менеджер продукта MyQRcards
Information
- Rating
- 638-th
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity
Specialization
Фулстек разработчик, Менеджер продукта
Средний
From 220,000 ₽
Amplitude
Управление продуктами
A/B тестирование
Продуктовая аналитика
Разработка продуктовой стратегии
Приоритизация
Unit-экономика
.NET
Управление людьми
Планирование
С этим вам к Mobian или postmarketOS
Буду следить за ситуацией, спасибо. В планах ещё сделать отдельную систему оповещения, которая будет срабатывать при прохождении опасных точек. А, возможно, и подключения-таки через внешнюю умную розетку. Вообще, начинаю думать, что можно совместить. Цикл 40-80 на контроллере питания с 45 градусами, а 20-90 сделать на умной розетке "на всякий случай" с границей в 50 градусов и системой оповещения, например, в бота в тг, чтобы если не отработал контроллер питания, было резервирование. Но пока я только с выходом из разряда проблемы испытывал.
Честно говоря, нет. Пытаюсь решить проблему минимальными вмешательствами пока.
А. Собственно, потому что подбирал разные значения. Да, пожалуй, это не имело смысла оставлять в таком виде. Спасибо, сейчас оставлю только в env. Заодно запушу изменения от воскресенья, которые тестировались, собственно, до сегодня. И подтвердили стабильность
В ходе подбора максимального тока на котором происходил запуск драйвера, в какой-то момент на этом значении заработало, так и осталось. Скорее, исторически. Учитывая, что у меня 10Вт зарядник, такой ток никогда не достигнется, конечно.
Нашёл один баг. Надо доработать кусок
if [ "$STATE" = "idle" ];
Тоже интересный вариант! Но всё же, кажется, что ddr3 память и представленный процессор сильно слабее oneplus 6 (нашёл цифру на antutu - 276510), который мне встал немногим дороже. Но, честно говоря, основной идеей была в целом проверка того, насколько просто поставить сервак на телефон и что из этого получится. Я даже немного расстроился, что вышло так просто, потому что рассчитывал поковыряться.
Так что можно сказать, что адекватные простые хорошие решения меня интересовали мало =)
Если я правильно понимаю физику процесса, взрыв всё же происходит, когда аккумулятор уже вздулся и на крайней стадии деградации. Он тем менее вероятно произойдёт, чем лучше состояние батареи, ниже ток, ниже температура, ниже заряд и легче режим работы для аккумулятора. Потому как по факту взрыв - это крайняя стадия распирания внутренними газами или тотальный перегрев.
Да, исключить такой сценарий полностью при постоянном подключении, наверное, нельзя, но, во-первых, в описанной схеме подключение именно что непостоянное (да, кабель воткнут, но батарея питается только, когда идёт заряд). Во-вторых, вероятность взрыва аккумулятора при удержании заряда в цикле 40/80 на низком питании с защитой по температуре, пожалуй, сопоставимо, если не ниже, чем вероятность взрыва аккумулятора обычного смартфона при зарядке, тем более с использованием всяких fastCharge. Да, такие случаи происходят, но это, скорее, исключение, чем правило.
Мне кажется, что основное требование теперь - ревизия "сервера" раз в месяц на предмет отсутствия видимого вздутия. Если оно всё же будет обнаружено - в этот момент, да, риски кратно возрастают и стоит на это как-то реагировать. Как я и сказал выше, первостепенно рассматриваю, если такое произойдёт, просто замену батареи или, если будет желание поэкспериментировать, впаивание схемы-обманки для постоянного питания.
В общем, я чуть-чуть изучил вопрос, управление на стороне устройства зарядкой выглядит немного костыльным. Потому что, если начинаешь управлять зарядом программно, то драйвер зарядки "тупеет" и перестаёт показывать реальное состояние кабеля - подключен/отключен. Он стандартно всегда считает, что зарядка подключена (и на входе просто 0,01 А). Я накидал в итоге такой скрипт управления, который позволяет и состояние заряда проверять и температуру контролировать и при этом всём раз в 15 минут проверять идёт зарядка или нет.
battery-limiter.service
battery-limiter.sh
Мне кажется, лучшее и самое правильное решение для сохранения жизни аккумулятора - это такая же схема, но с умной розеткой. Путь такой:
Телефон только контролирует своё состояние заряда. Если нужно зарядится (ниже 40%) - отправляется сигнал умной розетке, она врубается. Если нужно перейти в разрядку (выше 80% или перегрев) - тоже сигнал розетке, она вырубается. При этом розетка должна управляться по локальной сети, чтобы, если интернет-соединение потеряется, телефон не мог уйти в перегрев.
Ну и да, всё же рано или поздно менять батарею или удалять её в любом случае придётся. Когда момент придёт - я задумаюсь, что именно из этого хочу сделать. Но пока пусть живёт в таком режиме.
Скажу честно, именно касательно вздутия особо не думал, но понимал, что деградация батареи и перегрев - довольно большие проблемы для данного решения. Я уже купил под него отдельный 10-ваттный адаптер, чтобы питание шло не с очень большим током и начал изучать вопрос ограничения заряда, чтобы батарея держалась в зоне 40-80 процентов. Но пока до конца это не реализовал.
Вообще, честно говоря, я готов пойти даже на радикальные меры вплоть до перепайки платы питания, чтобы полностью удалить батарею из устройства (например, прямо сейчас нашёл, как это сделали с аналогичным устройством вот тут -https://blog.kedio.co/post/how-to-run-a-oneplus-6t-without-battery/ с примерно той же мотивацией). Это, конечно, чуть-чуть ухудшит "надёжность сервера", что в нём по сути есть встроенный бесперебойник.
Но на текущий момент план - настроить потребление-разряд, чтобы держать в безопасном диапазоне, не перегревать, смотреть, что будет дальше. Думаю, что буду "ревизировать" устройство на состояние батареи раз в какое-то время (месяц) и, если проблема всё же возникнет, то уже ставить вопрос о "хирургическом вмешательстве". Либо с целью замены, либо с целью удаления батареи.
Но опять же, глобально этот вопрос пока не продумывал и возможно первые поверхностные мысли неидеальны.