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