All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
custom_components/solar_of_things/ as required by HACS. Installing via HACS
or manual copy now works without any path adjustments.brand/icon.png added so the integration displays an icon
in the HACS store and HA Integrations page.translation_key +
has_entity_name = True, enabling future multi-language support and aligning
with HA quality-scale best practices.number.py called api.set_battery_charge_limit(),
api.set_battery_discharge_limit(), and api.set_grid_charge_limit() which did not
exist in api.py. Interacting with any number slider raised an AttributeError.
All three methods are now implemented.strings.json defined state keys
(self_use, time_of_use, backup, grid_tie, off_grid) that did not match
the actual API option strings (Utility First (USO), Solar First (SUB), etc.).
State translations now match the real API values exactly.(DOMAIN, station_id, device_id)
as the device identifier while switches, selects, and numbers used the same tuple
but in a different evaluation path. All device-level entities now use
(DOMAIN, device_id) and station-level entities use (DOMAIN, station_id),
eliminating duplicate device entries in the device registry.async_step_reauth declared entry_data as
a required argument; HA 2024+ calls it with no argument. Made the parameter
optional (entry_data: dict | None = None).manifest.json: added integration_type: hub (required since HA 2023.6),
set homeassistant: "2023.6.0" minimum version, updated codeowners.hacs.json: updated homeassistant minimum to 2023.6.0, removed legacy
zip_release / filename / domains fields incompatible with the new layout.strings.json / translations/en.json: corrected select state keys; added
full sensor translation entries (previously absent)..gitignore: added graphify-out/ to exclude local knowledge-graph cache.POST /apis/remote/device/configs/cache/get?deviceId=<id>POST /apis/remote/device/config/write?deviceId=<id>select.py — Operating Mode and Battery Priority selects now use real API keys
(outputSourcePrioritySetting, chargerSourcePrioritySetting) with correct
integer value mappings (USO/SUB/SBU, CSO/SNU/OSO).switch.py — all three switches map to correct API setting keys.fetch_settings AttributeError — added class-level alias so both get_device_settings
and fetch_settings work.SolarOfThingsAPI added
(set_operating_mode, set_battery_priority, set_grid_charging,
set_grid_feed_in, set_backup_mode).rBrTRfAPXz targeting https://solar.siseli.com.
Previous release used the test AppID, causing "account error" for all real users.on_token_refreshed callback persists tokens to config entry.hacs.json and manifest.json metadata updates.POST /apis/device/list.device_id in config flow (blank = auto-discover all devices).