IPEM SIX 1.00.04
Cosmetic stuff
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user