Manual on/off/mode/setpoint/fan control for MHI indoor units via the already-verified Intesis Modbus TCP gateway, deliberately NOT wired into the NewBook-driven scheduler yet — that stays deferred. Modbus doesn't depend on the MQTT broker (separate infra, still unbuilt), so this can be deployed and tested standalone. - mhi_gateways table (connection config: host/port/slave id/address base) + zone_devices columns for MHI devices (gateway id, unit index, IU hint, and the per-device register map staged from a MAPS import — ground truth, never re-derived from room/IU at runtime) - drivers/mhi-modbus.js: discover/getStatus/setTarget over modbus-serial, same interface as trv.js/homeassistant.js; per-gateway request queue since Modbus TCP requires serialised requests; falls back to the profile's stride formula (with a loud warning) only if a unit has never been through an import - routes/mhi-gateways.js: gateway CRUD, live test-connection, xlsx import (stages the parsed result for review — never auto-creates devices), per-unit 'assign to zone' as the explicit commit step - routes/override.js: GET .../mhi-status, POST .../mhi-control (control cap) - frontend: GatewaysPanel (add gateway, test connection, import + preview, assign units) and MhiControlPanel (on/off, mode, setpoint, fan) wired into Devices.tsx / ZoneDetailModal.tsx Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
23 lines
519 B
JSON
23 lines
519 B
JSON
{
|
|
"name": "hnf-hvac-backend",
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"start": "node src/index.js",
|
|
"dev": "node --watch src/index.js"
|
|
},
|
|
"dependencies": {
|
|
"@fastify/cookie": "^9.4.0",
|
|
"@fastify/cors": "^9.0.1",
|
|
"@fastify/multipart": "^8.3.0",
|
|
"@fastify/static": "^7.0.4",
|
|
"fastify": "^4.28.1",
|
|
"jose": "^5.9.6",
|
|
"luxon": "^3.5.0",
|
|
"modbus-serial": "^8.0.25",
|
|
"mqtt": "^5.10.3",
|
|
"pg": "^8.13.1",
|
|
"sharp": "^0.33.0",
|
|
"xlsx": "^0.18.5"
|
|
}
|
|
}
|