djack2017 wrote: Wed Feb 25, 2026 6:36 pm
Załączam Ci log z włączonym obciążeniem ok 870W
W logach wyraźnie widać, że Shelly najpierw raportuje surowe dane a dopiero po jakimś czasie przeliczniki, więc począwszy od wersji
1.4.54-26/02/26 "zaszyłem" je "na sztywno" w kodzie.
Wiąże się to z poniższymi zmianami:
z2s_devices_database.h:
Code: Select all
#define Z2S_DEVICE_DESC_SHELLY_RELAY_ELECTRICITY_METER 0x4350
...
{ .manufacturer_name = "Shelly", .model_name = "2PM",
.z2s_device_uid = 32900,
.z2s_device_desc_id = Z2S_DEVICE_DESC_SHELLY_RELAY_ELECTRICITY_METER,
.z2s_device_endpoints_count = 2,
.z2s_device_endpoints ={{ 1, 0, 0, Z2S_DEVICE_DESC_SHELLY_RELAY_ELECTRICITY_METER },
{ 2, 0, 0, Z2S_DEVICE_DESC_SHELLY_RELAY_ELECTRICITY_METER }}},
z2s_devices_table.cpp:
Code: Select all
case Z2S_DEVICE_DESC_RELAY_ELECTRICITY_METER:
case Z2S_DEVICE_DESC_RELAY_ELECTRICITY_METER_1:
case Z2S_DEVICE_DESC_RELAY_ELECTRICITY_METER_2:
case Z2S_DEVICE_DESC_TUYA_RELAY_ELECTRICITY_METER:
case Z2S_DEVICE_DESC_TUYA_RELAY_ELECTRICITY_METER_1:
case Z2S_DEVICE_DESC_TUYA_RELAY_ELECTRICITY_METER_2:
case Z2S_DEVICE_DESC_TUYA_RELAY_ELECTRICITY_METER_A:
case Z2S_DEVICE_DESC_DEVELCO_RELAY_ELECTRICITY_METER:
case Z2S_DEVICE_DESC_BOSCH_RELAY_ELECTRICITY_METER:
case Z2S_DEVICE_DESC_LUMI_SMART_WALL_OUTLET:
case Z2S_DEVICE_DESC_SHELLY_RELAY_ELECTRICITY_METER: {
addZ2SDeviceVirtualRelay(&zbGateway,device, first_free_slot);
z2s_devices_electricity_meter.cpp:
Code: Select all
case Z2S_DEVICE_DESC_SHELLY_RELAY_ELECTRICITY_METER: {
_one_phase = true;
voltage_multiplier = 1;
voltage_divisor = 100;
ac_frequency_multiplier = 1;
ac_frequency_divisor = 100;
current_multiplier = 1;
current_divisor = 1000;
active_power_multiplier = 1;
active_power_divisor = 1;
energy_multiplier = 1;
energy_divisor = 1000000;
ignore_zigbee_scaling = true;
} break;
Bramka po aktualizacji powinna rozpoznać zmianę tego deskryptora i uaktualnić go, natomiast na ten moment nowy deskryptor zacznie działać po restarcie bramki, więc masz dwie opcje:
1. Usunięcie urządzenia z bramki (najlepiej via Cloud), aktualizacja bramki do
1.4.54-26/02/26 i ponowne dodanie Shelly
lub
2. Aktualizacja bramki do
1.4.54-26/02/26, upewnienie się, że urządzenie ma nowy deskryptor w okienku Zigbee devices/channels
0x4350 zamiast
0x4100 - wtedy po ponownym uruchomieniu powinno prawidłowo przeliczać dane V/A/W/kWh, natomiast dane historyczne będą pewnie pomieszane, więc warto zresetować licznik ew. opcja nr 1.