Skip to content

Commit

Permalink
MQTT fix on inverted shutter (#21663)
Browse files Browse the repository at this point in the history
* MQTT fix on inverted shutter

* MQTT fix on inverted shutter
  • Loading branch information
stefanbode authored Jun 21, 2024
1 parent 3537d18 commit d189258
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
10 changes: 4 additions & 6 deletions tasmota/tasmota_xdrv_driver/xdrv_27_esp32_shutter.ino
Original file line number Diff line number Diff line change
Expand Up @@ -1868,12 +1868,10 @@ void CmndShutterPosition(void)
}

int8_t target_pos_percent = (XdrvMailbox.payload < 0) ? (XdrvMailbox.payload == -99 ? ShutterRealToPercentPosition(Shutter[index].real_position, index) : 0) : ((XdrvMailbox.payload > 100) ? 100 : XdrvMailbox.payload);
target_pos_percent = ((ShutterSettings.shutter_options[index] & 1) && ((SRC_MQTT != TasmotaGlobal.last_source) // 1
&& (SRC_SERIAL != TasmotaGlobal.last_source) // 6
&& (SRC_WEBGUI != TasmotaGlobal.last_source) // 7
&& (SRC_WEBCOMMAND != TasmotaGlobal.last_source) // 8
)) ? 100 - target_pos_percent : target_pos_percent;

target_pos_percent = ((ShutterSettings.shutter_options[index] & 1) && ( (SRC_SERIAL != TasmotaGlobal.last_source) // 6
&& (SRC_WEBGUI != TasmotaGlobal.last_source) // 7
&& (SRC_WEBCOMMAND != TasmotaGlobal.last_source) // 8
)) ? 100 - target_pos_percent : target_pos_percent;
// if position is either 0 or 100 reset the tilt to avoid tilt moving at the end
if (target_pos_percent == 0 && ShutterRealToPercentPosition(Shutter[index].real_position, index) > 0 ) {Shutter[index].tilt_target_pos = Shutter[index].tilt_config[4];}
if (target_pos_percent == 100 && ShutterRealToPercentPosition(Shutter[index].real_position, index) < 100) {Shutter[index].tilt_target_pos = Shutter[index].tilt_config[3];}
Expand Down
9 changes: 4 additions & 5 deletions tasmota/tasmota_xdrv_driver/xdrv_27_shutter.ino
Original file line number Diff line number Diff line change
Expand Up @@ -1332,11 +1332,10 @@ void CmndShutterPosition(void)
}

int8_t target_pos_percent = (XdrvMailbox.payload < 0) ? (XdrvMailbox.payload == -99 ? ShutterRealToPercentPosition(Shutter[index].real_position, index) : 0) : ((XdrvMailbox.payload > 100) ? 100 : XdrvMailbox.payload);
target_pos_percent = ((Settings->shutter_options[index] & 1) && ((SRC_MQTT != TasmotaGlobal.last_source)
&& (SRC_SERIAL != TasmotaGlobal.last_source)
&& (SRC_WEBGUI != TasmotaGlobal.last_source)
&& (SRC_WEBCOMMAND != TasmotaGlobal.last_source)
)) ? 100 - target_pos_percent : target_pos_percent;
target_pos_percent = ((Settings->shutter_options[index] & 1) && ( (SRC_SERIAL != TasmotaGlobal.last_source)
&& (SRC_WEBGUI != TasmotaGlobal.last_source)
&& (SRC_WEBCOMMAND != TasmotaGlobal.last_source)
)) ? 100 - target_pos_percent : target_pos_percent;

// if position is either 0 or 100 reset the tilt to avoid tilt moving at the end
if (target_pos_percent == 0 && ShutterRealToPercentPosition(Shutter[index].real_position, index) > 0 ) {Shutter[index].tilt_target_pos = Shutter[index].tilt_config[4];}
Expand Down

0 comments on commit d189258

Please sign in to comment.