# firewall-cmd --get-active-zones public interfaces: p7p1 p2p1 # firewall-cmd --permanent --zone=internal --change-interface=p7p1
The man page doesn't refer to --change be acceptable with --permanent
Just tested this on my laptop ...
firewall-cmd --permanent --zone=internal --add-interface=wlp3s0 systemctl restart firewalld.service
The man page for firewall-cmd states that actions with the --permanent argument are not applied immediately but rather only after a service restart or reboot.
After the above firewall-cmd --get-active-zones showed my wireless in the expected zone.