Open spitfire opened 9 months ago
I've started working on this, you can check my progress on my fork: https://github.com/SibrenVasse/Foxess-T-series-ESPHome-Home-Assistant
I've started working on this, you can check my progress on my fork: https://github.com/SibrenVasse/Foxess-T-series-ESPHome-Home-Assistant
Hey, first of all thanks for working on that! I've tried to migrate over by changing
includes:
- templates/Foxess-T-series-ESPHome-Home-Assistant/foxess_t_series.h
from this repo to
external_components:
- source:
type: git
url: https://github.com/SibrenVasse/Foxess-T-series-ESPHome-Home-Assistant
shown in your example yaml.
Unfortunately it spawned this error at compile time:
/config/foxess-inverter.yaml: In lambda function:
/config/foxess-inverter.yaml:122:32: error: expected type-specifier before 'foxesscomponent'
auto foxesssensors = new foxesscomponent(id(uart_bus));
^~~~~~~~~~~~~~~
/config/foxess-inverter.yaml:158:7: error: could not convert '{<expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>, <expression error>}' from '<brace-enclosed initializer list>' to 'std::vector<esphome::sensor::Sensor*>'
};
^
which seem to be related to lambda function from https://github.com/assembly12/Foxess-T-series-ESPHome-Home-Assistant/blob/main/foxess-inverter.yaml (line 61-100 here).
Is there any way to cleanly replace that? I've seen your https://github.com/SibrenVasse/Foxess-T-series-ESPHome-Home-Assistant/blob/main/foxess-inverter.yaml.example, but I'm afraid it would completely replace my entity names and anything depending on them in the process.
You have to replace everything below the 'uart:' section with the sections from the new yaml example.
If you're worried about entities changing name in Home Asisstant, you have to make sure the new sensor has the same 'name' field in the yaml file. Like this:
button:
- platform: restart
name: "Foxess inverter restart"
text_sensor:
- platform: template
name: "T-Series Inverter Mode"
id: "inverter_mode_text_sensor"
icon: mdi:solar-power-variant
sensor:
- platform: foxess_solar
phase_a:
voltage:
name: "T-Series Grid Voltage R"
current:
name: "T-Series Grid Current R"
active_power:
name: "T-Series Grid Power R"
frequency:
name: "T-Series Grid Frequency R"
phase_b:
voltage:
name: "T-Series Grid Voltage S"
current:
name: "T-Series Grid Current S"
active_power:
name: "T-Series Grid Power S"
frequency:
name: "T-Series Grid Frequency S"
phase_c:
voltage:
name: "T-Series Grid Voltage T"
current:
name: "T-Series Grid Current T"
active_power:
name: "T-Series Grid Power T"
frequency:
name: "T-Series Grid Frequency T"
pv1:
voltage:
name: "T-Series PV1 Voltage"
current:
name: "T-Series PV1 Current"
active_power:
name: "T-Series PV1 Power"
pv2:
voltage:
name: "T-Series PV2 Voltage"
current:
name: "T-Series PV2 Current"
active_power:
name: "T-Series PV2 Power"
pv3:
voltage:
name: "T-Series PV3 Voltage"
current:
name: "T-Series PV3 Current"
active_power:
name: "T-Series PV3 Power"
pv4:
voltage:
name: "T-Series PV4 Voltage"
current:
name: "T-Series PV4 Current"
active_power:
name: "T-Series PV4 Power"
total_energy_production:
name: "T-Series Generation Total"
energy_production_day:
name: "T-Series Today Yield"
generation_power:
name: "T-Series Generation Power"
grid_power:
name: "T-Series Grid Power"
loads_power:
name: "T-Series loads Power"
inverter_temp:
name: "T-Series Inverter Temperature"
ambient_temp:
name: "T-Series Ambient Temperature"
boost_temp:
name: "T-Series Boost Temperature"
inverter_status:
name: "T-Series Inverter State"
internal: true
on_value:
then:
- lambda: |-
if (x==0) {
id(inverter_mode_text_sensor).publish_state("Offline");
} else if (x==1) {
id(inverter_mode_text_sensor).publish_state("Online");
} else if (x==2) {
id(inverter_mode_text_sensor).publish_state("Error");
} else {
id(inverter_mode_text_sensor).publish_state("Waiting for response...");
}
# Uncomment this sensor and the i2c section to use the AHT10
# - platform: aht10
# temperature:
# name: "Foxess inverter ambient Temperature"
# humidity:
# name: "Foxess inverter ambient Humidity"
#i2c:
https://esphome.io/components/external_components.html#example-of-local-components