@mega-yfue/eufy-sdk / SOLIX_MODBUS_EMS_MODES
Variable: SOLIX_MODBUS_EMS_MODES
const SOLIX_MODBUS_EMS_MODES: Readonly<Record<number, string>>;The Solarbank EMS operating_mode enumeration from Anker's OWN vendor integration for the newer Modbus-TCP hardware rev (Solarbank 4 E5000 Pro, register operating_mode gated by the 0x8006 capability mask). Value → English label:
0selfConsumption — "Self-Consumption Mode"1timeOfUse — "Time Of Use Mode"3thirdPartyControl — "Third-Party Controlled"4custom — "Custom Mode"5socketOverlay — "Socket Overlay Mode"6smart — "Smart Mode"7dynamicTariff — "Dynamic Tariff Mode"
Value 2 is unassigned there — seven modes across {0,1,3,4,5,6,7}, not eight.
NOT a decoder for this SDK's ff09 mode (state_info tag 0xa9): that OLDER cloud/MQTT AE103 numbering is DIFFERENT on every value — 1=custom, 2=self-consumption, 4=rapid charge, 7=smart, 8=dynamic tariff (recorded on the 0xa9 field above, correlated against the app). Labelling an ff09 mode value with this Modbus map would be confidently wrong. It is exported as the vendor's own reference enumeration and the thing an AE103 0xa9 correlation capture would be checked against — fold the two only if such a capture proves the numbers match.