From 7fca05c8d81c89153e3a886c15df4ea74811d2a0 Mon Sep 17 00:00:00 2001 From: Sam Stenvall Date: Mon, 12 Feb 2024 19:39:25 +0200 Subject: [PATCH] Add setting switch for "defrosting allowed" Closes #109 --- CHANGELOG.md | 1 + app/enervent.mjs | 1 + app/homeassistant.mjs | 5 +++++ app/modbus.mjs | 8 ++++++++ 4 files changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9804417..8365d9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ * Add optional sensors for control panel temperature, supply fan speed and exhaust fan speed (https://github.com/Jalle19/eda-modbus-bridge/issues/96) * Remove references to "flags", use "modes" everywhere instead * Use HTTP 500 instead of HTTP 400 for generic errors +* Add settings switch for defrosting allowed (https://github.com/Jalle19/eda-modbus-bridge/issues/109) ## 2.7.1 diff --git a/app/enervent.mjs b/app/enervent.mjs index af88528..dca5c83 100644 --- a/app/enervent.mjs +++ b/app/enervent.mjs @@ -35,6 +35,7 @@ export const AVAILABLE_SETTINGS = { 'awayHeatingAllowed': 18, 'longAwayCoolingAllowed': 21, 'longAwayHeatingAllowed': 20, + 'defrostingAllowed': 55, } export const ALARM_REGISTERS_START = 385 diff --git a/app/homeassistant.mjs b/app/homeassistant.mjs index 377c575..89a36a3 100644 --- a/app/homeassistant.mjs +++ b/app/homeassistant.mjs @@ -293,6 +293,11 @@ export const configureMqttDiscovery = async (modbusClient, mqttClient) => { // Not supported by some units { 'enabled_by_default': automationType !== AUTOMATION_TYPE_LEGACY_EDA } ), + 'defrostingAllowed': createSettingSwitchConfiguration( + configurationBase, + 'defrostingAllowed', + 'Defrosting allowed' + ), } // Binary sensors for alarms diff --git a/app/modbus.mjs b/app/modbus.mjs index 7a152be..85ab9f0 100644 --- a/app/modbus.mjs +++ b/app/modbus.mjs @@ -220,6 +220,13 @@ export const getSettings = async (modbusClient) => { } } + // Defrosting allowed + result = await mutex.runExclusive(async () => tryReadCoils(modbusClient, 55, 1)) + settings = { + ...settings, + 'defrostingAllowed': result.data[0], + } + return settings } @@ -263,6 +270,7 @@ export const setSetting = async (modbusClient, setting, value) => { case 'awayHeatingAllowed': case 'longAwayCoolingAllowed': case 'longAwayHeatingAllowed': + case 'defrostingAllowed': coil = true break }