Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESPHome total daily energy sensor - count even if power sensor didn't change #2202

Closed
krzysiek2788 opened this issue Jun 28, 2021 · 3 comments

Comments

@krzysiek2788
Copy link

Operating environment/Installation (Hass.io/Docker/pip/etc.):

core-2021.6.6
Home Assistant OS 6.0
supervisor-2021.06.6
ESP (ESP32/ESP8266, Board/Sonoff):

ESP32, Board LILYGO® TTGO T-Call V1.3 V1.4 ESP32
ESPHome version (latest production, beta, dev branch)

ESPHome 1.19.4
Affected component:

When sensor which is set to be counted by total daily energy is stable (did not change) Total daily energy still changed please see screenshot's from homeassistant:
https://esphome.io/components/sensor/total_daily_energy.html
main sensors:
Import:
image

Export:
image

Daily energy sensor:
Import:
image
Export:
image

As you can see it counts if sensor is const (Import), also it counts wrongly (export) I have total exported energy about 466 kWh where Daily counts 2000+kWh. Which means it is not counting correctly.

Description of problem:

Problem-relevant YAML-configuration entries:

substitutions:
  devicename: home_lights_notify
  friendly_name: ttgo_home_lights_notify
  ip_address: !secret home_lights_notify

esphome:
  name: $devicename
  platform: ESP32
  board: esp-wrover-kit
  includes:
    - custom_components/sdm/SDM_Config_User.h
    - custom_components/sdm/SDM.h
    - custom_components/sdm/sdm_esphome.h

wifi:
  ssid: !secret wifi_id
  password: !secret wifi_pwd
  manual_ip:
    static_ip: ${ip_address}
    gateway: 192.168.0.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  #ap:
   # ssid: "Home Lights Notify"
    #password: "YiwdlGqxsCgP"

#captive_portal:

# Enable logging
logger:
  level: DEBUG
  baud_rate: 0
  #level: VERBOSE

# Enable Home Assistant API
api:
#  services:
#  - service: send_sms
#    variables:
#      recipient: string
#      message: string
#    then:
#   - sim800l.send_sms:
#        recipient: !lambda 'return recipient;'
#        message: !lambda 'return message;'
        
text_sensor:
- platform: template
  id: sms_sender
  name: "Sms Sender"
- platform: template
  id: sms_message
  name: "Sms Message"
#- platform: ble_scanner
#  name: "BLE Devices Scanner"
  
switch:
  - platform: gpio
    name: "SIM800_PWKEY"
    pin: 4
    restore_mode: ALWAYS_OFF
  - platform: gpio
    name: "SIM800_RST"
    pin: 5
    restore_mode: ALWAYS_ON
  - platform: gpio
    name: "SIM800_POWER"
    pin: 23
    restore_mode: ALWAYS_OFF

uart:
#  - id: sim_uart
#    tx_pin: GPIO33
#    rx_pin: GPIO27
#    baud_rate: 9600
  - id: modbus_uart
    tx_pin: TX
    rx_pin: RX
    baud_rate: 9600
    stop_bits: 1

#sim800l:
#  uart_id: sim_uart
##  on_sms_received:
#  - lambda: |-
#      id(sms_sender).publish_state(sender);
#      id(sms_message).publish_state(message);
ota:

time:
  - platform: homeassistant
    id: homeassistant_time
  - platform: sntp
    id: my_time

#tutaj kod odczytywania licznika

#---------------BT tracker--------------
esp32_ble_tracker:
  scan_parameters:
    duration: 60s
    interval: 256ms
    window: 128ms
    active: False
#Default
#    duration: 300s
#    interval: 512ms
#    window: 48ms
#    active: true

i2c:
  sda: 21
  scl: 22
  scan: True
  id: bus_a
  
mcp23017:
  - id: 'mcp0'
    address: 0x20
    i2c_id: bus_a
#MCP0 pins setup for lights    
output:
  - platform: gpio
    id: relay_1
    pin: 
      mcp23xxx: mcp0
      number: 0
      mode: OUTPUT
    inverted: true
  - platform: gpio
    id: relay_2
    pin:
      mcp23xxx: mcp0
      number: 1
      mode: OUTPUT
    inverted: true
  - platform: gpio
    id: relay_3
    pin:
      mcp23xxx: mcp0
      number: 2
      mode: OUTPUT
    inverted: true
  - platform: gpio
    id: relay_4
    pin:
      mcp23xxx: mcp0
      number: 3
      mode: OUTPUT
    inverted: true
  - platform: gpio
    id: relay_5
    pin:
      mcp23xxx: mcp0
      number: 4
      mode: OUTPUT
    inverted: true
  - platform: gpio
    id: relay_6
    pin:
      mcp23xxx: mcp0
      number: 5
      mode: OUTPUT
    inverted: true
  - platform: gpio
    id: relay_7
    pin:
      mcp23xxx: mcp0
      number: 6
      mode: OUTPUT
    inverted: true
  - platform: gpio
    id: relay_8
    pin:
      mcp23xxx: mcp0
      number: 7
      mode: OUTPUT
    inverted: true

binary_sensor:
  # https://esphome.io/components/binary_sensor/status.html
  - platform: status
    name: "SDM630 Status"
#---------------Przyciski na MCP0-------------------------------
  - platform: gpio
    pin:
      mcp23xxx: mcp0
      number: 8
      mode: INPUT_PULLUP
      inverted: False
#    filters:
#      - delayed_on: 100ms
    name: "${devicename}_button_1"
    on_state:
      - light.toggle: ${devicename}_Light_1
  - platform: gpio
    pin:
      mcp23xxx: mcp0
      number: 9
      mode: INPUT_PULLUP
      inverted: False
#    filters:
#      - delayed_on: 100ms
    name: "${devicename}_button_2"
    on_state:
      - light.toggle: ${devicename}_Light_2
      

#-------------BT PRESENCE-----------------------
  - platform: ble_presence
    mac_address: F4:34:3A:0C:0F:D3
    name: "Galaxy Watch"
#  - platform: ble_presence
#    mac_address: C4:06:83:CD:2B:09
#    name: "Telefon Krzysiek"

sensor:
  - platform: uptime
    name: "SDM630 Uptime Sensor"
    
  - platform: custom
    lambda: |-
      auto sdm_sensors = new SDMComponent();
      App.register_component(sdm_sensors);
      return {sdm_sensors->voltage_sensor_1,sdm_sensors->voltage_sensor_2,sdm_sensors->voltage_sensor_3, sdm_sensors->current_sensor_1,sdm_sensors->current_sensor_2,sdm_sensors->current_sensor_3,sdm_sensors->currentsum_sensor, sdm_sensors->power_sensor_1,sdm_sensors->power_sensor_2,sdm_sensors->power_sensor_3,sdm_sensors->powersum_sensor,sdm_sensors->vars_sensor_1,sdm_sensors->vars_sensor_2,sdm_sensors->vars_sensor_3,sdm_sensors->varssum_sensor, sdm_sensors->frequency_sensor,sdm_sensors->active_energy_import_sensor,sdm_sensors->active_energy_export_sensor,sdm_sensors->reactive_energy_import_sensor,sdm_sensors->reactive_energy_export_sensor,sdm_sensors->import_kwh_sensor_1,sdm_sensors->import_kwh_sensor_2,sdm_sensors->import_kwh_sensor_3,sdm_sensors->importsum_kwh_sensor,sdm_sensors->export_kwh_sensor_1,sdm_sensors->export_kwh_sensor_2,sdm_sensors->export_kwh_sensor_3,sdm_sensors->exportsum_kwh_sensor,sdm_sensors->power_factor_sensor_1,sdm_sensors->power_factor_sensor_2,sdm_sensors->power_factor_sensor_3,sdm_sensors->power_factor_total_sensor,sdm_sensors->energy_total_sensor_1,sdm_sensors->energy_total_sensor_2,sdm_sensors->energy_total_sensor_3,sdm_sensors->energy_totalsum_sensor};
    sensors:
      - name: "Voltage Phase 1"
        unit_of_measurement: V
        accuracy_decimals: 1
      - name: "Voltage Phase 2"
        unit_of_measurement: V
        accuracy_decimals: 1
      - name: "Voltage Phase 3"
        unit_of_measurement: V
        accuracy_decimals: 1

      - name: "Current Phase 1"
        unit_of_measurement: A
        accuracy_decimals: 2
      - name: "Current Phase 2"
        unit_of_measurement: A
        accuracy_decimals: 2
      - name: "Current Phase 3"
        unit_of_measurement: A
        accuracy_decimals: 2
      - name: "Current Sum"
        unit_of_measurement: A
        accuracy_decimals: 2

      - name: "Power Phase 1"
        unit_of_measurement: W
        accuracy_decimals: 2
      - name: "Power Phase 2"
        unit_of_measurement: W
        accuracy_decimals: 2
      - name: "Power Phase 3"
        unit_of_measurement: W
        accuracy_decimals: 2
      - name: "Power Sum"
        unit_of_measurement: W
        accuracy_decimals: 2

      - name: "VArs Phase 1"
        unit_of_measurement: VAr
        accuracy_decimals: 2
      - name: "VArs Phase 2"
        unit_of_measurement: VAr
        accuracy_decimals: 2
      - name: "VArs Phase 3"
        unit_of_measurement: VAr
        accuracy_decimals: 2
      - name: "VArs Sum"
        unit_of_measurement: VAr
        accuracy_decimals: 2

      - name: "Frequency"
        unit_of_measurement: Hz
        accuracy_decimals: 1

      - name: "Active Energy Import"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Active Energy Export"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Reactive Energy Import"
        unit_of_measurement: VARh
        accuracy_decimals: 2
      - name: "Reactive Energy Export"
        unit_of_measurement: VARh
        accuracy_decimals: 2

      - name: "Import Phase 1"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Import Phase 2"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Import Phase 3"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Import Sum"
        unit_of_measurement: kWh
        accuracy_decimals: 2
        id: import

      - name: "Export Phase 1"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Export Phase 2"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Export Phase 3"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Export Sum"
        unit_of_measurement: kWh
        accuracy_decimals: 2
        id: ene_export

      - name: "Power Factor Phase 1"
        accuracy_decimals: 2
      - name: "Power Factor Phase 2"
        accuracy_decimals: 2
      - name: "Power Factor Phase 3"
        accuracy_decimals: 2
      - name: "Power Factor Sum"
        accuracy_decimals: 2

      - name: "Energy Total Phase 1"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Energy Total Phase 2"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Energy Total Phase 3"
        unit_of_measurement: kWh
        accuracy_decimals: 2
      - name: "Energy Total Sum"
        unit_of_measurement: kWh
        accuracy_decimals: 2
        
#Auto create daily total energy counter for each Phase
  - platform: total_daily_energy
    name: "Daily Energy Import"
    icon: "mdi:counter"
    power_id: import
    unit_of_measurement: kWh
  - platform: total_daily_energy
    name: "Daily Energy Export"
    icon: "mdi:counter"
    power_id: ene_export
    unit_of_measurement: kWh


light:
  - platform: binary
    id: ${devicename}_Light_1
    name: ${devicename}_Light_1
    output: relay_1
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    id: ${devicename}_Light_2
    name: ${devicename}_Light_2
    output: relay_2
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    id: ${devicename}_Light_3
    name: ${devicename}_Light_3
    output: relay_3
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    id: ${devicename}_Light_4
    name: ${devicename}_Light_4
    output: relay_4
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    id: ${devicename}_Light_5
    name: ${devicename}_Light_5
    output: relay_5
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    id: ${devicename}_Light_6
    name: ${devicename}_Light_6
    output: relay_6
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    id: ${devicename}_Light_7
    name: ${devicename}_Light_7
    output: relay_7
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: binary
    id: ${devicename}_Light_8
    name: ${devicename}_Light_8
    output: relay_8
    restore_mode: RESTORE_DEFAULT_OFF

Logs (if applicable):

PASTE DEBUG LOG HERE

Additional information and things you've tried:

@probot-esphome
Copy link

@OttoWinter
Copy link
Member

No, that is correct.

total_daily_energy is for integrating power data (with unit W or kW) over time to get energy data with units Wh/kWh. You can think of it as summing up all values its base sensor puts out.

@krzysiek2788
Copy link
Author

Oh I thought it will work like Total daily in home Assistant. I thought I can create Total daily energy with kWh as well. Oh well maybe some day you will add this function as well.

@github-actions github-actions bot locked and limited conversation to collaborators Oct 30, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants