IPEM SIX 1.00.04

Cosmetic stuff
This commit is contained in:
Dave Williams | DitroniX | G8PUO
2026-06-21 03:13:51 +01:00
parent b6b3e5d996
commit f422bba286
@@ -46,10 +46,32 @@ esp32:
framework: framework:
type: esp-idf type: esp-idf
################################## ESPHOME ##################################
# ======================== ESPHome - Enter Below our Key/pasaword ===========================
api:
encryption:
key: "xxxx"
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: IPEM SIX C5 Fallback Hotspot
password: "xxxx"
################################## SUBSTITUTIONS ##################################
substitutions: substitutions:
# ======================== Current Input Names ===========================
author: "DitroniX - Dave Williams" author: "DitroniX - Dave Williams"
firmware_version: "1.00.03" firmware_version: "1.00.04"
release_date: "2026-06-20" release_date: "2026-06-21"
board_name: "IPEM SIX" board_name: "IPEM SIX"
board_mcu: "ESP32-C5" board_mcu: "ESP32-C5"
board_rev: "1.2606.102" board_rev: "1.2606.102"
@@ -64,11 +86,13 @@ substitutions:
bank_b_3_name: "CTB-3" bank_b_3_name: "CTB-3"
# ======================== MAINS CONFIG =========================== # ======================== MAINS CONFIG ===========================
line_frequency: "50Hz" # Change to "60Hz" for US/Canada/etc. # For UK/Europe/Eastern Japan/Most of World etc.
line_voltage: "230V" # For status thresholds and comments line_frequency: "50Hz"
line_voltage: "230V"
# line_frequency: "60Hz" # Change to "60Hz" for US/Canada/etc. # For US/Canada/Western Japan/etc.
# line_voltage: "110" # For status thresholds and comments # line_frequency: "60Hz"
# line_voltage: "110"
# =============================================================== # ===============================================================
# ======================== BOARD CONFIG =========================== # ======================== BOARD CONFIG ===========================
@@ -93,21 +117,6 @@ substitutions:
name: "ditronix.ipem_six" name: "ditronix.ipem_six"
version: "${firmware_version}" version: "${firmware_version}"
api:
encryption:
key: "xxxx"
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: IPEM SIX C5 Fallback Hotspot
password: "xxxx"
captive_portal: captive_portal:
logger: logger:
@@ -834,39 +843,33 @@ sensor:
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
state_class: measurement state_class: measurement
update_interval: 10s
lambda: |- lambda: |-
return id(bank_a_1_power).state > 0 ? return id(bank_a_1_power).state > 0 ?
id(bank_a_1_power).state : 0; id(bank_a_1_power).state : 0;
update_interval: 10s
- platform: template - platform: template
name: "${bank_a_2_name} Import Power" name: "${bank_a_2_name} Import Power"
id: bank_a_2_import_power id: bank_a_2_import_power
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
state_class: measurement state_class: measurement
update_interval: 10s
lambda: |- lambda: |-
return id(bank_a_2_power).state > 0 ? return id(bank_a_2_power).state > 0 ?
id(bank_a_2_power).state : 0; id(bank_a_2_power).state : 0;
update_interval: 10s
- platform: template - platform: template
name: "${bank_a_3_name} Import Power" name: "${bank_a_3_name} Import Power"
id: bank_a_3_import_power id: bank_a_3_import_power
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
state_class: measurement state_class: measurement
update_interval: 10s
lambda: |- lambda: |-
return id(bank_a_3_power).state > 0 ? return id(bank_a_3_power).state > 0 ?
id(bank_a_3_power).state : 0; id(bank_a_3_power).state : 0;
update_interval: 10s
- platform: integration - platform: integration
name: "${bank_a_1_name} Energy" name: "${bank_a_1_name} Energy"
sensor: bank_a_1_import_power sensor: bank_a_1_import_power
@@ -940,39 +943,33 @@ sensor:
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
state_class: measurement state_class: measurement
update_interval: 10s
lambda: |- lambda: |-
return id(bank_b_1_power).state > 0 ? return id(bank_b_1_power).state > 0 ?
id(bank_b_1_power).state : 0; id(bank_b_1_power).state : 0;
update_interval: 10s
- platform: template - platform: template
name: "${bank_b_2_name} Import Power" name: "${bank_b_2_name} Import Power"
id: bank_b_2_import_power id: bank_b_2_import_power
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
state_class: measurement state_class: measurement
update_interval: 10s
lambda: |- lambda: |-
return id(bank_b_2_power).state > 0 ? return id(bank_b_2_power).state > 0 ?
id(bank_b_2_power).state : 0; id(bank_b_2_power).state : 0;
update_interval: 10s
- platform: template - platform: template
name: "${bank_b_3_name} Import Power" name: "${bank_b_3_name} Import Power"
id: bank_b_3_import_power id: bank_b_3_import_power
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
state_class: measurement state_class: measurement
update_interval: 10s
lambda: |- lambda: |-
return id(bank_b_3_power).state > 0 ? return id(bank_b_3_power).state > 0 ?
id(bank_b_3_power).state : 0; id(bank_b_3_power).state : 0;
update_interval: 10s
# ===================================================== # =====================================================
# BANK TOTAL CURRENT # BANK TOTAL CURRENT
# ===================================================== # =====================================================
@@ -999,14 +996,12 @@ sensor:
device_class: current device_class: current
state_class: measurement state_class: measurement
accuracy_decimals: 2 accuracy_decimals: 2
update_interval: 10s
lambda: |- lambda: |-
return id(bank_b_1_current).state + return id(bank_b_1_current).state +
id(bank_b_2_current).state + id(bank_b_2_current).state +
id(bank_b_3_current).state; id(bank_b_3_current).state;
update_interval: 10s
# ===================================================== # =====================================================
# BANK TOTAL POWER # BANK TOTAL POWER
# ===================================================== # =====================================================
@@ -1018,14 +1013,12 @@ sensor:
device_class: power device_class: power
state_class: measurement state_class: measurement
accuracy_decimals: 1 accuracy_decimals: 1
update_interval: 10s
lambda: |- lambda: |-
return id(bank_a_1_power).state + return id(bank_a_1_power).state +
id(bank_a_2_power).state + id(bank_a_2_power).state +
id(bank_a_3_power).state; id(bank_a_3_power).state;
update_interval: 10s
- platform: template - platform: template
name: "Bank B Total Power" name: "Bank B Total Power"
id: bank_b_total_power id: bank_b_total_power
@@ -1033,14 +1026,12 @@ sensor:
device_class: power device_class: power
state_class: measurement state_class: measurement
accuracy_decimals: 1 accuracy_decimals: 1
update_interval: 10s
lambda: |- lambda: |-
return id(bank_b_1_power).state + return id(bank_b_1_power).state +
id(bank_b_2_power).state + id(bank_b_2_power).state +
id(bank_b_3_power).state; id(bank_b_3_power).state;
update_interval: 10s
# ===================================================== # =====================================================
# TOTAL POWER # TOTAL POWER
# ===================================================== # =====================================================
@@ -1050,11 +1041,9 @@ sensor:
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
state_class: measurement state_class: measurement
update_interval: 10s
lambda: |- lambda: |-
return return
id(bank_a_1_power).state + id(bank_a_1_power).state +
id(bank_a_2_power).state + id(bank_a_2_power).state +
id(bank_a_3_power).state + id(bank_a_3_power).state +
@@ -1062,8 +1051,6 @@ sensor:
id(bank_b_2_power).state + id(bank_b_2_power).state +
id(bank_b_3_power).state; id(bank_b_3_power).state;
update_interval: 10s
# ===================================================== # =====================================================
# NET POWER # NET POWER
# ===================================================== # =====================================================
@@ -1075,13 +1062,11 @@ sensor:
device_class: power device_class: power
state_class: measurement state_class: measurement
accuracy_decimals: 1 accuracy_decimals: 1
update_interval: 10s
lambda: |- lambda: |-
return id(import_power).state - return id(import_power).state -
id(export_power).state; id(export_power).state;
update_interval: 10s
# ===================================================== # =====================================================
# IMPORT EXPORT # IMPORT EXPORT
# ===================================================== # =====================================================
@@ -1091,18 +1076,14 @@ sensor:
id: import_power id: import_power
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
lambda: |- lambda: |-
float t=0; float t=0;
if(id(bank_a_1_power).state>0)t+=id(bank_a_1_power).state; if(id(bank_a_1_power).state>0)t+=id(bank_a_1_power).state;
if(id(bank_a_2_power).state>0)t+=id(bank_a_2_power).state; if(id(bank_a_2_power).state>0)t+=id(bank_a_2_power).state;
if(id(bank_a_3_power).state>0)t+=id(bank_a_3_power).state; if(id(bank_a_3_power).state>0)t+=id(bank_a_3_power).state;
if(id(bank_b_1_power).state>0)t+=id(bank_b_1_power).state; if(id(bank_b_1_power).state>0)t+=id(bank_b_1_power).state;
if(id(bank_b_2_power).state>0)t+=id(bank_b_2_power).state; if(id(bank_b_2_power).state>0)t+=id(bank_b_2_power).state;
if(id(bank_b_3_power).state>0)t+=id(bank_b_3_power).state; if(id(bank_b_3_power).state>0)t+=id(bank_b_3_power).state;
return t; return t;
- platform: template - platform: template
@@ -1110,18 +1091,14 @@ sensor:
id: export_power id: export_power
unit_of_measurement: W unit_of_measurement: W
device_class: power device_class: power
lambda: |- lambda: |-
float t=0; float t=0;
if(id(bank_a_1_power).state<0)t+=abs(id(bank_a_1_power).state); if(id(bank_a_1_power).state<0)t+=abs(id(bank_a_1_power).state);
if(id(bank_a_2_power).state<0)t+=abs(id(bank_a_2_power).state); if(id(bank_a_2_power).state<0)t+=abs(id(bank_a_2_power).state);
if(id(bank_a_3_power).state<0)t+=abs(id(bank_a_3_power).state); if(id(bank_a_3_power).state<0)t+=abs(id(bank_a_3_power).state);
if(id(bank_b_1_power).state<0)t+=abs(id(bank_b_1_power).state); if(id(bank_b_1_power).state<0)t+=abs(id(bank_b_1_power).state);
if(id(bank_b_2_power).state<0)t+=abs(id(bank_b_2_power).state); if(id(bank_b_2_power).state<0)t+=abs(id(bank_b_2_power).state);
if(id(bank_b_3_power).state<0)t+=abs(id(bank_b_3_power).state); if(id(bank_b_3_power).state<0)t+=abs(id(bank_b_3_power).state);
return t; return t;
# ===================================================== # =====================================================
@@ -1156,13 +1133,10 @@ sensor:
update_interval: 5s update_interval: 5s
lambda: |- lambda: |-
float t = 0; float t = 0;
if (id(bank_a_total_current).has_state()) if (id(bank_a_total_current).has_state())
t += abs(id(bank_a_total_current).state); t += abs(id(bank_a_total_current).state);
if (id(bank_b_total_current).has_state()) if (id(bank_b_total_current).has_state())
t += abs(id(bank_b_total_current).state); t += abs(id(bank_b_total_current).state);
return t; return t;
# ===================================================== # =====================================================
@@ -1197,20 +1171,15 @@ sensor:
entity_category: diagnostic entity_category: diagnostic
unit_of_measurement: "V" unit_of_measurement: "V"
accuracy_decimals: 2 accuracy_decimals: 2
lambda: |- lambda: |-
float voltage; float voltage;
voltage = voltage =
(id(adc0_raw).state * (id(adc0_raw).state *
id(dc_voltage_factor)) id(dc_voltage_factor))
+ +
id(dc_voltage_drop); id(dc_voltage_drop);
if (voltage < 0.010) if (voltage < 0.010)
voltage = 0; voltage = 0;
return voltage; return voltage;
# ----------------------------------------- # -----------------------------------------
@@ -1232,16 +1201,12 @@ sensor:
entity_category: diagnostic entity_category: diagnostic
unit_of_measurement: "V" unit_of_measurement: "V"
accuracy_decimals: 3 accuracy_decimals: 3
lambda: |- lambda: |-
float voltage = float voltage =
(id(adc1_raw).state * (id(adc1_raw).state *
id(adc_voltage_factor)) id(adc_voltage_factor))
+ +
id(dc_voltage_drop); id(dc_voltage_drop);
if (voltage < 0.65) if (voltage < 0.65)
voltage = 0; voltage = 0;
return voltage; return voltage;