SLEEP_W = 1.5
LISTEN_W = 40.0
BATTERY_KWH = 12.0

def days(listen_duty, burst_kwh_day=0.2):
    avg_w = (1 - listen_duty) * SLEEP_W + listen_duty * LISTEN_W
    daily_kwh = avg_w * 24 / 1000.0 + burst_kwh_day
    return BATTERY_KWH / daily_kwh

for duty in (0.1, 0.2, 0.35, 1.0):
    print(f"{int(duty*100):>3}% listen -> {days(duty):5.1f} d")
# 100% listen is ~12 d. need the trip-channel wake scheme.
