# uurwaarden.py - de testweek van de logger (hoofdstuk 30) per uur samenvatten in één CSV-bestand
import csv
from logboek import lees_week, opschonen          # logboek.py uit hoofdstuk 30

rijen = lees_week()
print("opgeschoond:", opschonen(rijen), "regels met onmogelijke waarden")
uren = {}                                          # "2026-10-12 09:00" -> de minuten van dat uur
for r in rijen:
    uren.setdefault(r["tijd"].strftime("%Y-%m-%d %H:00"), []).append(r)


def gemiddelde(waarden):
    geldig = [w for w in waarden if w is not None]
    return sum(geldig) / len(geldig)


with open("week_uur.csv", "w", newline="") as f:
    schrijver = csv.writer(f)
    schrijver.writerow(["uur", "temperatuur_C", "vocht_pct", "verbruik_Wh", "zon_Wh", "licht_lx", "batterij_V"])
    for uur, rs in sorted(uren.items()):
        schrijver.writerow([uur, round(gemiddelde([r["T"] for r in rs]), 2), round(gemiddelde([r["RV"] for r in rs]), 1),
                            round(sum(r["verbruik"] for r in rs), 1), round(sum(r["zon"] for r in rs), 1),
                            round(gemiddelde([r["licht"] for r in rs])), round(gemiddelde([r["bat"] for r in rs]), 2)])
print(len(uren), "uren in week_uur.csv")
