Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
acs712 en complement du routeur...
#1
si ca peut interesser ....
soit pour faire du delestage ou tout simplement suivre les consos de qqs appareil 
j ai assemblé un petit code pour esphome 
il y a 4 entrées adc pour le moment sur les 6 possible mais vous pourrez ajuster le nombre...
faudrait que j importe aussi en plus de la tention le cosphy depuis l esp du routeur ca suivra plus tard 

le code fonctione et est integrable a la carte energie ha
par contre sous cette forme il y aura certainement des problemes de tabulation.
je vais demander a andré si je peu et comment deposer le fichier yaml

####################code acs712##########################


esphome:
  name: enfin
  friendly_name: enfin
esp32:
  board: esp32dev
  framework:
    type: arduino
# === LOGGING ===
logger:
# === OTA & API ===
api:
  encryption:
    key: "3jEhUZsfSYUWix+PoQeJPsJxEqQFeFeqTWEiY8FR87U="
ota:
  - platform: esphome
    password: "7ae9573fbc8fbd858728ae6764ec0fd9"
# === WIFI ===
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Enfin Fallback Hotspot"
    password: "xRQ53X4dpqnR"
# === MQTT : récupère la tension secteur du routeur ===
mqtt:
  broker: 192.168.1.50     # <-- à remplacer par l'adresse de ton broker
  username: !secret mqtt_user
  password: !secret mqtt_password
# === TEMPS ===
time:
  - platform: sntp
    id: sntp_time
# === LIBRAIRIE ACS712 ===
external_components:
  - source:
      type: git
      url: https://github.com/marianomd/acs712-esphome
    components: [acs712]
# === CAPTEURS ===
sensor:
  # === TENSION REÇUE VIA MQTT ===
  - platform: mqtt_subscribe
    name: "Tension Secteur Routeur"
    id: line_voltage_remote
    topic: routeur_rms/routeur_rms_tension_m
    unit_of_measurement: "V"
    accuracy_decimals: 1
    device_class: voltage
    state_class: measurement
    entity_category: diagnostic
    icon: mdi:flash
    filters:
      - clamp:
          min_value: 100
          max_value: 260
  # === Offsets pour calibrage ===
  - platform: template
    id: acs_cumulus_offset
    internal: true
  - platform: template
    id: acs_frigo_offset
    internal: true
  - platform: template
    id: acs_plant_offset
    internal: true
  - platform: template
    id: acs_lavevaisselle_offset
    internal: true
  # === CUMULUS ===
  - platform: acs712
    id: acs_cumulus
    pin: 35
    adc_bits: 4095
    voltage: 5
    mv_per_amp: 100
    line_voltage: 230
    noisemV: 21
    current_sensor:
      name: "Cumulus Courant"
      id: current_cumulus
      unit_of_measurement: "A"
      device_class: current
      state_class: measurement
    power_sensor:
      name: "Cumulus Puissance"
      id: power_cumulus
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      filters:
        - lambda: |-
            if (id(line_voltage_remote).has_state()) {
              return x * id(line_voltage_remote).state / 230.0;
            } else {
              return x;
            }
  - platform: total_daily_energy
    name: "Énergie Cumulus Journalière"
    id: energy_cumulus_day
    power_id: power_cumulus
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: integration
    name: "Énergie Cumulus Totale"
    sensor: power_cumulus
    time_unit: h
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    integration_method: trapezoid
  # === FRIGO ===
  - platform: acs712
    id: acs_frigo
    pin: 36
    adc_bits: 4095
    voltage: 5
    mv_per_amp: 100
    line_voltage: 230
    noisemV: 21
    current_sensor:
      name: "Frigo Courant"
      id: current_frigo
      unit_of_measurement: "A"
      device_class: current
      state_class: measurement
    power_sensor:
      name: "Frigo Puissance"
      id: power_frigo
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      filters:
        - lambda: |-
            if (id(line_voltage_remote).has_state()) {
              return x * id(line_voltage_remote).state / 230.0;
            } else {
              return x;
            }
  - platform: total_daily_energy
    name: "Énergie Frigo Journalière"
    id: energy_frigo_day
    power_id: power_frigo
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: integration
    name: "Énergie Frigo Totale"
    sensor: power_frigo
    time_unit: h
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    integration_method: trapezoid
  # === PLANT ===
  - platform: acs712
    id: acs_plant
    pin: 34
    adc_bits: 4095
    voltage: 5
    mv_per_amp: 100
    line_voltage: 230
    noisemV: 21
    current_sensor:
      name: "Plant Courant"
      id: current_plant
      unit_of_measurement: "A"
      device_class: current
      state_class: measurement
    power_sensor:
      name: "Plant Puissance"
      id: power_plant
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      filters:
        - lambda: |-
            if (id(line_voltage_remote).has_state()) {
              return x * id(line_voltage_remote).state / 230.0;
            } else {
              return x;
            }
  - platform: total_daily_energy
    name: "Énergie Plant Journalière"
    id: energy_plant_day
    power_id: power_plant
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: integration
    name: "Énergie Plant Totale"
    sensor: power_plant
    time_unit: h
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    integration_method: trapezoid
  # === LAVE-VAISSELLE ===
  - platform: acs712
    id: acs_lavevaisselle
    pin: 39
    adc_bits: 4095
    voltage: 5
    mv_per_amp: 100
    line_voltage: 230
    noisemV: 21
    current_sensor:
      name: "Lave-Vaisselle Courant"
      id: current_lavevaisselle
      unit_of_measurement: "A"
      device_class: current
      state_class: measurement
    power_sensor:
      name: "Lave-Vaisselle Puissance"
      id: power_lavevaisselle
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      filters:
        - lambda: |-
            if (id(line_voltage_remote).has_state()) {
              return x * id(line_voltage_remote).state / 230.0;
            } else {
              return x;
            }
  - platform: total_daily_energy
    name: "Énergie Lave-Vaisselle Journalière"
    id: energy_lavevaisselle_day
    power_id: power_lavevaisselle
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: integration
    name: "Énergie Lave-Vaisselle Totale"
    sensor: power_lavevaisselle
    time_unit: h
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    integration_method: trapezoid
  # === TOTAL GLOBAL ===
  - platform: template
    name: "Énergie Totale"
    id: energy_total
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 3
    update_interval: 10s
    lambda: |-
      return (
        id(energy_cumulus_day).state +
        id(energy_frigo_day).state +
        id(energy_plant_day).state +
        id(energy_lavevaisselle_day).state
      );
# === CALIBRAGE AUTOMATIQUE ===
interval:
  - interval: 5min
    then:
      - lambda: |-
          id(acs_cumulus_offset).publish_state(id(current_cumulus).state);
          id(acs_frigo_offset).publish_state(id(current_frigo).state);
          id(acs_plant_offset).publish_state(id(current_plant).state);
          id(acs_lavevaisselle_offset).publish_state(id(current_lavevaisselle).state);
          ESP_LOGI("calibration", "Calibration automatique mise à jour.");
# === PORTAIL CAPTIF ===
captive_portal:
Répondre



Atteindre :


Utilisateur(s) parcourant ce sujet :
2 visiteur(s)

Moteur MyBB, © 2002-2025 Melroy van den Berg.