zmieniałem tylko to
z
def bool_to_percent(value: bool) -> int:
""" convert boolean value to percent: 0 or 100 use case: e.g. battery sensor attribute"""
return 100 if value else 0
na
def bool_to_percent(value: bool) -> int:
""" convert boolean value to percent: 0 or 100 use case: e.g. battery sensor attribute"""
return 0 if value else 100
bo to wydawało mi się sensowne i powinno odwrócić logikę, niestety bez rezultatu cały czas 0%
hmm, jest jeszcze nikła szansa, że to co wchodzi do tej funkcji nie jest ani wartością logiczną ani wartością int, tylko czymś innym - przyjkładowo wartość float. Python niestety na to pozwala, a warunek wtedy zadziała na wartość różną od 0.
Zmień w celu testowym zmień tam kod na :
def bool_to_percent(value: bool) -> int:
""" convert boolean value to percent: 0 or 100 use case: e.g. battery sensor attribute"""
if value == True:
return 0
elif value == False:
return 100
else:
return 50
Jeśli będzie 50 to znaczy, że tam wchodzi coś innego niż prawdziwy boolean.
BTW
a w pyextalife.py nie trzeba zdefiniować, z których urządzeń ma być odczytywana bateria?
Nie, o tym decyduje config w pliku sensor.py