소스 검색

v2.1.1: bump version, update changelog, add release notes

conexocasa 7 달 전
부모
커밋
0d61ed2f0b
3개의 변경된 파일과 295개의 추가작업 그리고 1개의 파일을 삭제
  1. 9 0
      CHANGELOG.md
  2. 285 0
      RELEASE_NOTES_v2.1.1.md
  3. 1 1
      manifest.json

+ 9 - 0
CHANGELOG.md

@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [2.1.1] - 2026-03-05
+
+### Added
+- `.github/PULL_REQUEST_TEMPLATE.md` — standardised PR template for HACS default submission.
+
+### Changed
+- `hacs.json` updated: added all integration platforms (`sensor`, `number`, `select`, `switch`), enabled `zip_release: true`, and set `filename: solar-of-things-ha.zip` so HACS fetches the correct release asset.
+- `manifest.json` version bumped to 2.1.1.
+
 ## [2.1.0] - 2026-02-26
 
 ### Added

+ 285 - 0
RELEASE_NOTES_v2.1.1.md

@@ -0,0 +1,285 @@
+# Solar of Things — Home Assistant Integration
+## Release v2.1.1
+
+> **Tag:** `v2.1.1` | **Branch:** `main` | **Date:** 2026-03-05
+> **Repository:** https://github.com/conexocasa/solar-of-things-ha
+> **Portal:** https://solar.siseli.com
+
+---
+
+## What's new in v2.1.1
+
+This is a **housekeeping and packaging release**. It adds HACS metadata
+and a GitHub PR template so that:
+
+1. HACS can install directly from the release ZIP asset.
+2. A future HACS default-repository submission has a consistent PR
+   template to work from.
+
+### Added
+- **`.github/PULL_REQUEST_TEMPLATE.md`**
+  Standardised pull-request template covering the HACS default
+  submission checklist (integration name, domain, validation steps,
+  documentation links).
+
+### Changed
+- **`hacs.json`** — four updates:
+  - Added all platforms: `sensor`, `number`, `select`, `switch`
+  - `zip_release: true` — tells HACS to fetch the release ZIP asset
+    instead of cloning the repo
+  - `filename: solar-of-things-ha.zip` — exact asset name HACS looks
+    for on the GitHub Release page
+  - `homeassistant: "2023.1.0"` — minimum supported HA version
+- **`manifest.json`** — version bumped from `2.1.0` → `2.1.1`
+
+---
+
+## Complete Changelog
+
+### v2.1.1 (2026-03-05)
+- Added HACS release packaging support (`zip_release`, `filename`)
+- Added GitHub PR template (`.github/PULL_REQUEST_TEMPLATE.md`)
+- Bumped `manifest.json` version to `2.1.1`
+
+### v2.1.0 (2026-02-26)
+- **Station-based device auto-discovery** via `POST /apis/device/list`
+  — no need to manually enter every `deviceId`
+- Config flow: `station_id` required; `device_id` optional
+  (blank = all devices, set = single device only)
+- Updated documentation/issue-tracker URLs in `manifest.json`
+
+### v2.0.0 (2024-02-10)
+- **8 control entities** added:
+  - `Number` — Battery Charge Limit (0–100 %)
+  - `Number` — Battery Discharge Limit (0–100 %)
+  - `Number` — Grid Charge Power Limit (0–5 000 W)
+  - `Select` — Operating Mode (Self-Use / TOU / Backup / Grid-Tie / Off-Grid)
+  - `Select` — Battery Priority (Solar First / Battery First / Grid First)
+  - `Switch` — Grid Charging
+  - `Switch` — Grid Feed-In
+  - `Switch` — Backup Mode
+- Settings API integration (read + update device configuration)
+- Comprehensive control documentation (`CONTROL_FEATURES.md`)
+- 15+ automation examples
+
+### v1.0.0 (2024-02-10)
+- Initial release
+- Real-time sensors: PV power, AC output, battery (current/voltage/SOC/power),
+  grid feed-in/import, load power
+- Monthly PV generation via station summary API
+- 5-minute polling with Home Assistant coordinator pattern
+- Multi-station support through multiple config entries
+- Energy Dashboard compatible
+- IOT-Token authentication
+
+---
+
+## Installation
+
+### Option A — HACS Custom Repository (recommended)
+
+```
+1. Open HACS → Integrations
+2. Click ⋮ → Custom repositories
+3. Add:  https://github.com/conexocasa/solar-of-things-ha
+         Category: Integration
+4. Click "Solar of Things" → Install
+5. Restart Home Assistant
+```
+
+### Option B — Release ZIP (manual)
+
+```
+1. Download solar-of-things-ha.zip from this release (see Assets below)
+2. Unzip — you will see:
+       custom_components/
+       └── solar_of_things/
+           ├── __init__.py
+           ├── api.py
+           ├── config_flow.py
+           ├── const.py
+           ├── manifest.json
+           ├── number.py
+           ├── select.py
+           ├── sensor.py
+           ├── strings.json
+           ├── switch.py
+           └── translations/
+               └── en.json
+3. Copy custom_components/solar_of_things/ →
+       /config/custom_components/solar_of_things/
+4. Restart Home Assistant
+```
+
+### Option C — Git clone (developers)
+
+```bash
+cd /config/custom_components
+git clone https://github.com/conexocasa/solar-of-things-ha.git solar_of_things_repo
+cp -r solar_of_things_repo/custom_components/solar_of_things ./solar_of_things
+# Restart Home Assistant
+```
+
+---
+
+## Upgrading from a previous version
+
+### From v2.1.0
+No breaking changes. Replace files and restart.
+
+```bash
+# Manual upgrade
+cp -r custom_components/solar_of_things /config/custom_components/
+# Restart Home Assistant
+```
+
+Via HACS: HACS → Integrations → Solar of Things → Update → Restart.
+
+### From v2.0.0 or v1.0.0
+No breaking changes, but **re-configure the integration**:
+- `station_id` is now **required** (was optional in v1/v2.0)
+- `device_id` is now **optional** (leave blank for auto-discovery)
+
+Steps:
+1. Settings → Devices & Services → Solar of Things → Delete
+2. Restart Home Assistant
+3. Settings → Devices & Services → + Add Integration → Solar of Things
+4. Enter IOT Token + Station ID (Device ID optional)
+
+---
+
+## Configuration
+
+### Getting your credentials
+
+| Credential | Where to find it | Format |
+|------------|-----------------|--------|
+| IOT Token | DevTools → Network → any `/apis/` request → Request Headers → `IOT-Token` | String |
+| Station ID | DevTools → Network → request payload → `stationId` | 18 digits |
+| Device ID | DevTools → Network → request payload → `deviceId` | 18 digits (optional) |
+
+1. Log in to https://solar.siseli.com
+2. Open Developer Tools (F12)
+3. Go to the **Network** tab and refresh the page
+4. Click any `/apis/` request and copy the values above
+
+### Config flow fields
+
+| Field | Required | Description |
+|-------|----------|-------------|
+| IOT Token | ✅ | Authentication token from the Siseli portal |
+| Station ID | ✅ | 18-digit station identifier; used to discover all devices |
+| Device ID | ☑ Optional | 18-digit device ID; set to restrict entities to one device |
+| Time Zone | ☑ Optional | Sent as `IOT-Time-Zone` header (default: `Asia/Manila`) |
+
+---
+
+## Available entities (per device)
+
+### Sensors (updated every 5 minutes)
+
+| Entity | Unit | Notes |
+|--------|------|-------|
+| PV Input Power | W | DC solar panel power |
+| AC Output Power | W | AC inverter output |
+| Battery Discharge Current | A | — |
+| Battery Charging Current | A | — |
+| Battery Voltage | V | — |
+| Battery Power | W | Calculated: (discharge − charge) × voltage |
+| Battery State of Charge | % | May be `null` on some devices |
+| Grid Feed-in Power | W | Export to grid |
+| Grid Import Power | W | Import from grid (calculated) |
+| Load Power | W | Total home load |
+
+### Monthly sensors (station level, updated every 30 minutes)
+
+| Entity | Unit | Notes |
+|--------|------|-------|
+| Monthly PV Generated | kWh | Current calendar month |
+
+### Control entities
+
+| Entity | Type | Range / Options |
+|--------|------|----------------|
+| Battery Charge Limit | Number | 0–100 % |
+| Battery Discharge Limit | Number | 0–100 % |
+| Grid Charge Power Limit | Number | 0–5 000 W |
+| Operating Mode | Select | Self-Use, Time-of-Use, Backup, Grid-Tie, Off-Grid |
+| Battery Priority | Select | Solar First, Battery First, Grid First |
+| Grid Charging | Switch | On / Off |
+| Grid Feed-In | Switch | On / Off |
+| Backup Mode | Switch | On / Off |
+
+> **Note:** Control endpoints may vary by device model and firmware.
+> If sliders/switches have no effect, check the Troubleshooting guide.
+
+---
+
+## API endpoints used
+
+This integration uses the same endpoints as the Siseli web portal
+and the reference client implementation:
+
+| Purpose | Method | Endpoint |
+|---------|--------|----------|
+| Station → device list | POST | `/apis/device/list` |
+| Time-series telemetry | POST | `/apis/deviceState/simple/attribute/keys/history/v1` |
+| Monthly station summary | POST | `/apis/stationOverView/stateAttributeSummary/category/yearly` |
+
+Reference client: https://github.com/Hyllesen/solar-of-things-solar-usage
+
+---
+
+## Troubleshooting
+
+See the full guide: [TROUBLESHOOTING.md](TROUBLESHOOTING.md)
+
+### Quick reference
+
+| Symptom | Likely cause | Fix |
+|---------|-------------|-----|
+| "Cannot connect" in config flow | Expired / wrong IOT-Token | Grab a fresh token from the portal network tab |
+| 401 / 403 in HA logs | Expired token or wrong timezone header | Refresh token; set correct Time Zone |
+| No devices created | Wrong Station ID or empty device list | Verify Station ID; check logs for `/apis/device/list` response |
+| Entities "Unavailable" | Coordinator update failed | Check HA logs; verify HA can reach `solar.siseli.com` |
+| Sensors show "Unknown" | API returns `null` for that field | Normal for some sensors (e.g. battery SOC on batteryless systems) |
+| Control entities do nothing | Settings endpoints vary by firmware | Capture the portal network request and compare to integration endpoints |
+
+Enable debug logs by adding to `configuration.yaml`:
+
+```yaml
+logger:
+  default: info
+  logs:
+    custom_components.solar_of_things: debug
+```
+
+---
+
+## Release assets
+
+| File | Description |
+|------|-------------|
+| `solar-of-things-ha.zip` | HACS-ready ZIP (`custom_components/solar_of_things/…`) |
+| Source code (zip) | Full repository snapshot |
+| Source code (tar.gz) | Full repository snapshot |
+
+---
+
+## Links
+
+| Resource | URL |
+|----------|-----|
+| Repository | https://github.com/conexocasa/solar-of-things-ha |
+| Issues | https://github.com/conexocasa/solar-of-things-ha/issues |
+| Siseli portal | https://solar.siseli.com |
+| API reference client | https://github.com/Hyllesen/solar-of-things-solar-usage |
+| HACS | https://hacs.xyz |
+| Home Assistant | https://www.home-assistant.io |
+
+---
+
+## Disclaimer
+
+This is an unofficial integration and is not affiliated with or endorsed
+by Siseli / Solar of Things. Use at your own risk.

+ 1 - 1
manifest.json

@@ -7,5 +7,5 @@
   "iot_class": "cloud_polling",
   "issue_tracker": "https://github.com/conexocasa/solar-of-things-ha/issues",
   "requirements": [],
-  "version": "2.1.0"
+  "version": "2.1.1"
 }