diff --git a/converters/fromZigbee.js b/converters/fromZigbee.js index 3859c4cd051cf..21927f41cb7af 100644 --- a/converters/fromZigbee.js +++ b/converters/fromZigbee.js @@ -4039,7 +4039,7 @@ const converters = { const presetLookup = {0: 'programming', 1: 'manual', 2: 'temporary_manual', 3: 'holiday'}; switch (dp) { case tuya.dataPoints.moesSsystemMode: - return {preset: presetLookup[value]}; + return {preset: presetLookup[value], system_mode: 'heat'}; case tuya.dataPoints.moesSheatingSetpoint: return {current_heating_setpoint: value}; case tuya.dataPoints.moesSlocalTemp: @@ -4049,7 +4049,7 @@ const converters = { case tuya.dataPoints.moesSboostHeatingCountdown: return {boost_heating_countdown: value}; case tuya.dataPoints.moesSreset: - return {valve_state: value ? 'CLOSED' : 'OPEN'}; + return {running_state: value ? 'idle' : 'heat', valve_state: value ? 'CLOSED' : 'OPEN'}; case tuya.dataPoints.moesSwindowDetectionFunktion_A2: return {window_detection: value ? 'ON' : 'OFF'}; case tuya.dataPoints.moesSwindowDetection: diff --git a/converters/toZigbee.js b/converters/toZigbee.js index 1d488224b74b5..18f5cf96c87c8 100644 --- a/converters/toZigbee.js +++ b/converters/toZigbee.js @@ -3420,7 +3420,7 @@ const converters = { return tuya.sendDataPointRaw(entity, tuya.dataPoints.moesSchedule, payload); }, }, - moesS_thermostat_system_mode: { + moesS_thermostat_preset: { key: ['preset'], convertSet: async (entity, key, value, meta) => { const lookup = {'programming': 0, 'manual': 1, 'temporary_manual': 2, 'holiday': 3}; diff --git a/devices/moes.js b/devices/moes.js index f483a79c9f2a5..d89b85f74e78a 100644 --- a/devices/moes.js +++ b/devices/moes.js @@ -299,14 +299,17 @@ module.exports = [ tz.moesS_thermostat_boost_heating, tz.moesS_thermostat_boostHeatingCountdownTimeSet, tz.moesS_thermostat_eco_temperature, tz.moesS_thermostat_max_temperature, tz.moesS_thermostat_min_temperature, tz.moesS_thermostat_moesSecoMode, - tz.moesS_thermostat_system_mode, tz.moesS_thermostat_schedule_programming], + tz.moesS_thermostat_preset, tz.moesS_thermostat_schedule_programming], exposes: [ - e.battery(), e.child_lock(), e.eco_mode(), e.eco_temperature(), e.max_temperature().withValueMax(45), e.min_temperature(), + e.battery(), e.child_lock(), e.eco_mode(), + e.eco_temperature().withValueMin(5), e.max_temperature().withValueMax(45), e.min_temperature().withValueMin(5), e.valve_state(), e.position(), e.window_detection(), exposes.binary('window', ea.STATE, 'OPEN', 'CLOSED').withDescription('Window status closed or open '), exposes.climate() - .withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET) + .withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 5, 35, 1, ea.STATE_SET) .withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET) + .withSystemMode(['heat'], ea.STATE) + .withRunningState(['idle', 'heat'], ea.STATE) .withPreset(['programming', 'manual', 'temporary_manual', 'holiday'], 'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. '+ 'When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). ' +