Przed popadaniem w paranoje bateryjną, trzeba sobie odpowiedzieć na pytanie, czy wyświetlanie w aplikacji, telefonie czy na wyświetlaczu urządzenia 100% jako stanu baterii, to jest 100% czy np 80% faktycznego naładowania? Akumulator może być naładowany do 80% aby dłużej wytrzymywał, a aplikacja pokazywać 100%. To tylko cyferki procentowe konwertowane z parametrów akumulatora.
Dla przykładu czujniki xiaomi raportujące po zigbee w aplikacji xiaomi pokazują np 50% stan baterii, a alternatywne aplikacje pokazują już inny stan, bo mają inny przelicznik i wszystko > 3V wg alternatywnego oprogramowania ma 100%. A wg xiaomi już tylko 50% i już leci się po nową bateryjkę.
if (voltage < 2100) {
percentage = 0;
} else if (voltage < 2440) {
percentage = 6 - ((2440 - voltage) * 6) / 340;
} else if (voltage < 2740) {
percentage = 18 - ((2740 - voltage) * 12) / 300;
} else if (voltage < 2900) {
percentage = 42 - ((2900 - voltage) * 24) / 160;
} else if (voltage < 3000) {
percentage = 100 - ((3000 - voltage) * 58) / 100;
} else if (voltage >= 3000) {
percentage = 100;
}