Brokly / ESPHome-Mercury230

Home Assistant, ESPhome и счетчик Меркурий 230 AR-01
GNU General Public License v3.0
14 stars 2 forks source link

Перестало компилироваться в ESPHome #11

Open kkdkkd1 opened 3 months ago

kkdkkd1 commented 3 months ago

Всё работало отлично почти год. После очередного обновления 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 =========

Можете что-то посоветовать?

Brokly commented 3 months ago

Используйте старую версию ESPHOME, на данный момент не имею свободного времени для изучения проблемы. Думаю, такая ситуация продлится довольно долго.

UPD: Поправил, теперь все компилится.

kkdkkd1 commented 3 months ago

Что-то какие-то глюки:

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х фаз осталась одна. Но, может я ошибаюсь, тогда извините.

Brokly commented 2 months ago

Вы пытаетесь использовать сенсоры которых нет и никогда не было у устройства. Например "energy_aa" - что это и откуда вы это взяли ?

kkdkkd1 commented 2 months ago

Я, конечно, мог уже что-то забыть. Но делал я всё по Вашей инструкции. Сейчас, при обращении к 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 А по остальным тарифам куда всё делось?

kkdkkd1 commented 2 months ago

Вы знаете, наверное вы правы. Я откуда-то сам дописал ещё для двух тарифов отдельно. Совершенно не помню откуда. Буду искать. Спасибо. Извините.