Amcrest already supporst it, however we need to implement it on the frontend. At my home, I do like this:
And then I have the configuration below:
#shell_commands.yaml
amcrestcam2_motion_on: /home/hass/.virtualenvs/hass_venv/bin/amcrest-cli --camera amcrestcam2 --motion-detection true
amcrestcam2_motion_off: /home/hass/.virtualenvs/hass_venv/bin/amcrest-cli --camera amcrestcam2 --motion-detection false
amcrestcam2_goto_preset_crib: /home/hass/.virtualenvs/hass_venv/bin/amcrest-cli --camera amcrestcam2 --ptz-goto-preset 0 1
amcrestcam2_goto_preset_crib_zoom: /home/hass/.virtualenvs/hass_venv/bin/amcrest-cli --camera amcrestcam2 --ptz-goto-preset 0 4
amcrestcam2_goto_preset_roomview: /home/hass/.virtualenvs/hass_venv/bin/amcrest-cli --camera amcrestcam2 --ptz-goto-preset 0 2
amcrestcam2_goto_preset_nursechair: /home/hass/.virtualenvs/hass_venv/bin/amcrest-cli --camera amcrestcam2 --ptz-goto-preset 0 3
amcrestcam2_goto_preset_mattress_zoom: /home/hass/.virtualenvs/hass_venv/bin/amcrest-cli --camera amcrestcam2 --ptz-goto-preset 0 5