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
+23
View File
@@ -0,0 +1,23 @@
{
"name": "myprimal",
"version": "1.0.0",
"description": "MySolem/MyIndygo IoT bridge — MQTT + Home Assistant autodiscovery",
"main": "src/index.js",
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js",
"test": "jest"
},
"dependencies": {
"axios": "^1.7.0",
"axios-cookiejar-support": "^4.0.0",
"dotenv": "^16.4.5",
"express": "^4.19.2",
"mqtt": "^5.0.0",
"tough-cookie": "^4.1.4"
},
"devDependencies": {
"jest": "^30.4.2",
"nodemon": "^3.1.0"
}
}