#pragma once
#include <stdint.h>
#include <Arduino.h>
#include <ArduinoJson.h>

struct EpeverRegDef {
    uint16_t    reg;
    const char *key;
    float       scale;    // raw→float : 0.01 pour les tensions, 1.0 pour les entiers
    float       valMin;
    float       valMax;
    bool        writable;
    const char *unit;
    const char *label;
    const char *aide;
};

extern const EpeverRegDef EPEVER_REGS[];
extern const uint8_t      EPEVER_REGS_COUNT;

// Blocs de registres consécutifs
#define EPEVER_BLOC1_REG   0x9000u
#define EPEVER_BLOC1_QTY   14u
#define EPEVER_BLOC2_REG   0x906Bu
#define EPEVER_BLOC2_QTY   4u

void initConfigEpever();
bool lireConfigEpever();
bool ecrireConfigEpever(JsonObject obj, String &erreur);
bool sauvegarderConfigJson();
bool restaurerConfigJson(String &erreur);
void getConfigJson(String &out);
void getConfigSauvegardeJson(String &out);
