Перестало компилироваться в ESPHome
kkdkkd1 opened this issue · 5 comments
Всё работало отлично почти год. После очередного обновления ESPHome при обновлении выдаёт вот это:
...
Compiling .pioenvs/mercury-230/src/esphome/core/util.cpp.o
Compiling .pioenvs/mercury-230/src/main.cpp.o
Generating partitions .pioenvs/mercury-230/partitions.bin
Building .pioenvs/mercury-230/bootloader.bin
Creating esp32 image...
Successfully created esp32 image.
Compiling .pioenvs/mercury-230/lib757/AsyncTCP-esphome/AsyncTCP.cpp.o
Compiling .pioenvs/mercury-230/lib64d/WiFi/WiFi.cpp.o
Compiling .pioenvs/mercury-230/lib64d/WiFi/WiFiAP.cpp.o
Compiling .pioenvs/mercury-230/lib64d/WiFi/WiFiClient.cpp.o
Archiving .pioenvs/mercury-230/lib757/libAsyncTCP-esphome.a
Compiling .pioenvs/mercury-230/lib64d/WiFi/WiFiGeneric.cpp.o
Compiling .pioenvs/mercury-230/lib64d/WiFi/WiFiMulti.cpp.o
In file included from src/main.cpp:115:
src/energy_meter_mercury230.h:23:7: error: redefinition of 'class esphome::energy_meter_mercury230::Mercury'
class Mercury : public Sensor, public PollingComponent {
^~~~~~~
In file included from src/esphome.h:20,
from src/main.cpp:3:
src/esphome/components/energy_meter_mercury230/energy_meter_mercury230.h:23:7: note: previous definition of 'class esphome::energy_meter_mercury230::Mercury'
class Mercury : public Sensor, public PollingComponent {
^~~~~~~
Compiling .pioenvs/mercury-230/lib64d/WiFi/WiFiSTA.cpp.o
*** [.pioenvs/mercury-230/src/main.cpp.o] Error 1
========================= [FAILED] Took 216.45 seconds =========================
========= [ERROR] /config/esphome/mercury-236.yaml =========
Можете что-то посоветовать?
Используйте старую версию ESPHOME, на данный момент не имею свободного времени для изучения проблемы. Думаю, такая ситуация продлится довольно долго.
UPD: Поправил, теперь все компилится.
Что-то какие-то глюки:
INFO ESPHome 2024.6.6
INFO Reading configuration /config/esphome/mercury-236.yaml...
WARNING GPIO15 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
Failed config
sensor.energy_meter_mercury230: [source /config/esphome/mercury-236.yaml:160]
platform: energy_meter_mercury230
name: Mercury-236
uart_id: uart_bus
update_interval: 30s
use_address: 65
password: 111111
pass_in_hex: True
admin: False
voltage_a:
id: VoltA
name: Mercury-236 Volts A
voltage_b:
id: VoltB
name: Mercury-236 Volts B
voltage_c:
id: VoltC
name: Mercury-236 Volts C
current_summ:
id: Amps
name: Mercury-236 Ampers Summ
current_a:
id: AmpA
name: Mercury-236 Ampers A
current_b:
id: AmpB
name: Mercury-236 Ampers B
current_c:
id: AmpC
name: Mercury-236 Ampers C
power_summ:
id: Watts
name: Mercury-236 Watts Summ
power_a:
id: WattA
name: Mercury-236 Watts A
power_b:
id: WattB
name: Mercury-236 Watts B
power_c:
id: WattC
name: Mercury-236 Watts C
power_factor_a:
id: RatioA
name: Mercury-236 Ratio A
power_factor_b:
id: RatioB
name: Mercury-236 Ratio B
power_factor_c:
id: RatioC
name: Mercury-236 Ratio C
phase_angle_a:
id: AngleA
name: Mercury-236 Angle A
phase_angle_b:
id: AngleB
name: Mercury-236 Angle B
phase_angle_c:
id: AngleC
name: Mercury-236 Angle C
[energy_aa] is an invalid option for [sensor.energy_meter_mercury230]. Please check the indentation.
energy_aa:
id: ValueAA
name: Mercury-236 Value A Active
[energy_ra] is an invalid option for [sensor.energy_meter_mercury230]. Please check the indentation.
energy_ra:
id: ValueRA
name: Mercury-236 Value A Reactive
[energy_ab] is an invalid option for [sensor.energy_meter_mercury230]. Please check the indentation.
energy_ab:
id: ValueAB
name: Mercury-236 Value B Active
[energy_rb] is an invalid option for [sensor.energy_meter_mercury230]. Please check the indentation.
energy_rb:
id: ValueRB
name: Mercury-236 Value B Reactive
[energy_ac] is an invalid option for [sensor.energy_meter_mercury230]. Please check the indentation.
energy_ac:
id: ValueAC
name: Mercury-236 Value C Active
[energy_rc] is an invalid option for [sensor.energy_meter_mercury230]. Please check the indentation.
energy_rc:
id: ValueRC
name: Mercury-236 Value C Reactive
Похоже, что где-то вместо 3х фаз осталась одна. Но, может я ошибаюсь, тогда извините.
Вы пытаетесь использовать сенсоры которых нет и никогда не было у устройства. Например "energy_aa" - что это и откуда вы это взяли ?
Я, конечно, мог уже что-то забыть. Но делал я всё по Вашей инструкции. Сейчас, при обращении к web интерфейсу он выглядит вот так:
...
Mercury-236 Uptime | 1d 23h 53m 53s |
Mercury-236 Uptime Sensor | 172433 s |
Mercury-236 Value A Active | 9422.01 kWh |
Mercury-236 Value A Reactive | NA |
Mercury-236 Value B Active | 7849.91 kWh |
Mercury-236 Value B Reactive | 1.82 kWh |
Mercury-236 Value C Active | 12085.51 kWh |
Mercury-236 Value C Reactive | 2.74 kWh |
Mercury-236 Version | 8.00.00 |
Mercury-236 Volts A | 225.54 V |
Mercury-236 Volts B | 226.18 V |
Mercury-236 Volts C | 224.91 V
...
Как я вижу, в текущем примере для настройки yaml у Вас существует только одно значение
Mercury-230 Value для Active и одно для
Mercury-230 Value Reactive
А по остальным тарифам куда всё делось?
Вы знаете, наверное вы правы. Я откуда-то сам дописал ещё для двух тарифов отдельно. Совершенно не помню откуда. Буду искать.
Спасибо. Извините.