menu "BMU Protection Config"

    choice BMU_PACK_CLASS
        prompt "Classe de tension du parc"
        default BMU_PACK_CLASS_24V
        help
            Fixe les defauts usine des seuils tension (surchargeables via
            NVS/BLE/ecran), les bornes de reglage et le garde de
            plausibilite des lectures INA237.
            24V = packs 7s Li-ion / 8s LFP (fenetre 20-30V).
            48V = packs 13s Li-ion (fenetre 39.0-54.6V) — necessite le
            hardware BMU-v2-48v (sous-carte IRF5210 + buck LM5164), cf.
            docs/superpowers/specs/2026-07-05-bmu-48v-13s-variant-design.md

        config BMU_PACK_CLASS_24V
            bool "24V — packs 7s Li-ion / 8s LFP"

        config BMU_PACK_CLASS_48V
            bool "48V — packs 13s Li-ion"
    endchoice

    config BMU_MIN_VOLTAGE_MV
        int "Seuil sous-tension (mV)"
        default 44600 if BMU_PACK_CLASS_48V
        default 24000
        help
            Deconnexion du pack sous ce seuil. Defauts : 24000 = 3.43 V/el.
            sur 7s ; 44600 = meme politique sur 13s (l'onduleur ~40.3 V et
            le BMS pack restent en filets de securite).

    config BMU_MAX_VOLTAGE_MV
        int "Seuil sur-tension (mV)"
        default 55200 if BMU_PACK_CLASS_48V
        default 30000
        help
            Deconnexion au-dessus de ce seuil. Defauts : 30000 = marge
            600 mV sur la pleine charge 29.4 V (7s) ; 55200 = 4.246 V/el.
            sur 13s, marge 600 mV sur la CV chargeur 54.6 V.

    config BMU_MAX_CURRENT_MA
        int "Seuil sur-courant (mA)"
        default 10000

    config BMU_VOLTAGE_DIFF_MV
        int "Tolerance desequilibre (mV)"
        default 2000 if BMU_PACK_CLASS_48V
        default 1000
        help
            1000 mV @7s = ~143 mV/el. ; a iso-desequilibre par cellule le
            13s tolere ~2000 mV (x13/7). Cf. note de design 48V, point 4.

    config BMU_RECONNECT_DELAY_MS
        int "Delai reconnexion (ms)"
        default 10000

    config BMU_NB_SWITCH_MAX
        int "Coupures max avant verrouillage"
        default 5

    config BMU_OVERCURRENT_FACTOR
        int "Facteur surcourant critique (x1000)"
        default 1400
        help
            ERROR si |I| > (factor/1000) * max_current. 1.4 = 1400.
            Audit H7 : abaissé de 2.0 à 1.4 pour une coupure ferme plus tôt
            (la fenêtre 1.0×–facteur× n'est que déconnexion réversible).
            Valeur par défaut sûre — à valider selon MOSFET/chimie.

    config BMU_LOOP_PERIOD_MS
        int "Periode boucle protection (ms)"
        default 500

    config BMU_DEVICE_NAME
        string "Nom du BMU (identifiant unique par installation)"
        default "kxkm-bmu"
        help
            Nom utilise pour le BLE advertising, le topic MQTT (bmu/{name}/battery/N),
            et le tag InfluxDB. Exemples: gocab, k-led1, k-led2, tender, kryole.

endmenu
