feat: initial myprimal MQTT bridge service

Dynamic MySolem/MyIndygo IoT bridge with MQTT, Home Assistant
autodiscovery, and Homebridge EasyMQTT compatibility.

- Device discovery via MySolem API on startup (all modules/inputs/outputs)
- Configurable poll engine (fast/normal/slow buckets, per-input overrides)
- MQTT retained state publishing + HA autodiscovery payloads
- Unified manual command routing (linesControl vs sendManualModuleCommand)
- Runtime config via MQTT $config/set, persisted to config.json
- Expression override system (API-provided > hardcoded > passthrough)
- Minimal REST API: /health, /state, /control, /rediscover
- Docker deployment (Dockerfile + docker-compose.yml)
- 38 unit tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-28 01:05:24 +02:00
commit 941abd98d5
48 changed files with 12118 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
# LRPS — Pool Analyser / Master Valve (LRPS-0565C0)
**Module ID**: `6480da07c2c0896da120ecca`
**Serial**: `9400030565C00001`
**Type**: `lr-mas`
**Role**: Pool water quality analyser (temperature, pH, ORP/redox)
---
## Inputs
| Input ID | Metric | Type | Unit | Interval |
|---|---|---|---|---|
| `6480da07c2c0896da120eccc` | Water temperature | 5 | °C | ~30 min |
| `6480da07c2c0896da120eccd` | pH | 6 | — | varies |
| `6480da07c2c0896da120ecce` | ORP / Redox | 7 | mV | varies |
### Latest readings (2026-06-04)
**Temperature**
```
19:03 23.43°C
18:03 23.56°C
17:03 23.75°C
16:33 23.87°C
15:33 24.12°C
```
Peak today: 24.62°C at 12:33, cooling through afternoon.
**pH**
```
2026-06-04T01:03 6.35
2026-06-03T12:33 6.30
2026-06-03T03:03 6.35
2026-06-02T18:03 6.30
2026-06-01T20:03 6.25
```
Slowly rising from 5.98 (2026-05-30). Ideal range: 7.27.6. Currently below target.
**ORP / Redox**
```
2026-06-04T16:33 646 mV
2026-06-04T15:33 666 mV
2026-06-04T15:03 661 mV
2026-06-04T14:33 651 mV
2026-06-04T14:03 646 mV
```
Healthy range: 650750 mV. Currently borderline.
---
## Remote state
```
GET /remote/module/state?moduleId=6480da07c2c0896da120ecca
```
- Battery: 60% (low — alerts were sent Feb 2026)
- Last radio contact: 2026-06-04T20:06:55Z
- Relay: `60ca4276ad69dac1558f7c61` (LRMB10)
---
## Alerts (from LRPC maintenance-logs-data)
| Date | Alert |
|---|---|
| 2026-03-18 | Analyzer LRPS-0565C0 needs calibration |
| 2026-02-03 | Battery too low — measurements may be unreliable |