@camstack/addon-provider-enpal 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.3] - 2026-10-27
11
+
10
12
  ### Added
11
13
 
12
14
  - Enpal solar box provider: InfluxDB 2.x source with the local device page as fallback, device adoption for PV, battery, grid, house and heat pump.
package/README.md CHANGED
@@ -1,30 +1,32 @@
1
1
  # @camstack/addon-provider-enpal
2
2
 
3
- Enpal solar box device-provider addon for CamStack — PV production, inverter, battery, grid import/export, house consumption and heat pump as Sensor devices with history.
3
+ Enpal solar box provider for CamStack: the box is an integration, and the equipment it reports (photovoltaic, battery, grid, house, heat pump) is adopted as Container devices with history. There is no device for the box itself.
4
4
 
5
5
  ## What it does
6
6
 
7
- - **Enpal** (`provider-enpal`): add a box by its host; the box is a Hub device that polls the box's InfluxDB 2.x (or, as fallback, its local device page) and offers the data groups it actually reports for adoption.
7
+ - **Enpal** (`provider-enpal`): add an integration with the box's host. The addon polls the box's InfluxDB 2.x (or, as fallback, its local device page) and offers one Container per piece of equipment the box actually reports. Adopting a container adopts its children.
8
8
  - Node placement: `hub-only`.
9
- - Capabilities: `device-provider`.
9
+ - Capabilities: `device-provider`, `device-adoption`.
10
10
 
11
- Devices (each adopted from the box's discovery panel, only when the box reports them):
11
+ Containers and their children (a container is offered only when the box reported at least one of its values; a child only when the box reported its value):
12
12
 
13
- | Device | Caps |
14
- | --- | --- |
15
- | PV production | `power-meter` (W, lifetime kWh) |
16
- | Battery | `battery` (state of charge), `power-meter` (signed W, V, A) |
17
- | Battery charged / discharged | `meter` (lifetime kWh) |
18
- | Grid import / export | `power-meter` (W, lifetime kWh) |
19
- | House consumption | `power-meter` |
20
- | Heat pump, hot water, outside temperature | `power-meter` / `numeric-sensor` |
21
- | Inverter / battery temperature, battery health | `numeric-sensor` |
13
+ | Container | Child | Caps |
14
+ | --- | --- | --- |
15
+ | Photovoltaic | Production | `power-meter` (W, lifetime kWh) |
16
+ | | Inverter temperature | `numeric-sensor` |
17
+ | Battery | Battery | `battery` (state of charge), `power-meter` (signed W, V, A) |
18
+ | | Energy charged / discharged | `meter` (lifetime kWh) |
19
+ | | Temperature, Health | `numeric-sensor` |
20
+ | Grid | Import, Export | `power-meter` (W, lifetime kWh) |
21
+ | House | Consumption | `power-meter` |
22
+ | Heat pump | Consumption | `power-meter` |
23
+ | | Hot water temperature, Outside temperature | `numeric-sensor` |
22
24
 
23
- An unreachable box marks its devices offline; it never publishes zeros. A lifetime counter that drops for one poll is held at its previous value.
25
+ Removing the integration removes its devices. An unreachable box marks its devices offline; it never publishes zeros. A lifetime counter that drops for one poll is held at its previous value.
24
26
 
25
- ## Settings
27
+ ## Integration settings
26
28
 
27
- - **Box host / IP** — the box on the LAN. The box does not advertise itself, so it is added by hand.
29
+ - **Box host / IP** — the box on the LAN. The box does not advertise itself, so the integration is added by hand.
28
30
  - **Source** — `auto` (InfluxDB when a token is set, the device page otherwise or when InfluxDB cannot be read), `influx`, or `page`.
29
31
  - **InfluxDB access token** — issued by Enpal support (ask in the Enpal app chat). Stored in the keychain. Organisation (`enpal`), bucket (`solar`) and port (`8086`) default to the usual values.
30
32
  - **Poll interval** — 30 s by default, 10 s minimum.
@@ -35,3 +37,35 @@ Firmware 8.51 and later render the device rows of the device page only through a
35
37
  ## Requirements
36
38
 
37
39
  - A CamStack hub on the same network as the box.
40
+
41
+ <!-- readme:generated:start (derived from the manifest; edit outside this block) -->
42
+
43
+ Package `@camstack/addon-provider-enpal` on npm.
44
+
45
+ ## What it provides
46
+
47
+ - **Enpal** (`provider-enpal`): Add an Enpal solar box as an integration (InfluxDB, device page as fallback) and adopt its equipment: photovoltaic, battery, grid, house and heat pump. Category: providers.
48
+ - Capabilities: `device-provider`, `device-adoption`.
49
+
50
+ ## Configuration
51
+
52
+ Edit these from System, Addons, this addon, Settings (a device's own settings are on its device page). A password field is stored in the keychain.
53
+
54
+ **Connection**
55
+
56
+ - Box: Box host / IP
57
+ - Data source: Source, InfluxDB access token, InfluxDB organisation, InfluxDB bucket, InfluxDB port, Device page port
58
+ - Polling: Poll interval (ms), Invert battery power sign
59
+
60
+ ## Requirements
61
+
62
+ - Placement: hub-only.
63
+ - A CamStack hub. An agent is used only where the placement above allows it.
64
+
65
+ ## Documentation
66
+
67
+ - [docs/architecture/device-model.md](https://github.com/camstack/server/blob/main/docs/architecture/device-model.md)
68
+
69
+ See [CHANGELOG.md](./CHANGELOG.md) for what changed in each version.
70
+
71
+ <!-- readme:generated:end -->