Xiaomi Smart devices only accept command from the same subnet. This is openwrt configuration I used to fix that.
iot is the smart devices subnet, including xiaomi devices
192.168.10.8 is my Home Assistant IP
192.168.88.232 is xiaomi device IP
uci add firewall nat # =cfg1793c8
uci set firewall.@nat[-1].name='nat'
uci add_list firewall.@nat[-1].proto='all'
uci set firewall.@nat[-1].src='iot'
uci set firewall.@nat[-1].src_ip='192.168.10.8'
uci set firewall.@nat[-1].dest_ip='192.168.88.232'
uci set firewall.@nat[-1].target='MASQUERADE'
uci commit firewall
service firewall restart