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
+22
View File
@@ -0,0 +1,22 @@
# MySolem credentials
SOLEM_EMAIL=your@email.com
SOLEM_PASSWORD=yourpassword
SOLEM_BASE=https://qualif.mysolem.com
INDYGO_BASE=https://qualif.myindygo.com
# Optional: override user ID (default from CLAUDE.md)
# SOLEM_USER_ID=5de53bca7ed4c45c2cfe067f
# MQTT broker
MQTT_URL=mqtt://localhost:1883
MQTT_USERNAME=
MQTT_PASSWORD=
MQTT_TOPIC_PREFIX=myprimal
# REST API port
PORT=3001
# Poll intervals (seconds) — also tunable at runtime via MQTT $config/set
POLL_FAST=60
POLL_NORMAL=300
POLL_SLOW=900