집에 아무도 없을때 Foscam 카메라를 팬/틸트/줌 제어 그리고 모션감지로 사용


이를 위해서 PTZ (팬, 틸트, 줌)과 CGI 기능이 있는 Foscam IP Camera 카메라 (Source)가 필요합니다.

Foscam 카메라는 여러 CGI 명령을 통해 Home Assistant에서 제어할 수 있습니다. 다음은 모션 감지를 제어하는 ​​동안 2개의 사전 설정 대상간에 이동하는데 필요한 스위치, 서비스 그리고 스크립트의 예를 간략히 설명하지만 위에 링크된 Foscam CGI 사용 설명서에 다른 많은 동작 옵션이 ​​제공됩니다.

switch.foscam_motion은 모션 감지의 켜짐 또는 꺼짐을 제어합니다. 이 스위치는 현재 모션 감지 상태를 확인하는 statecmd를 지원합니다.

# Replace admin and password with an "Admin" privileged Foscam user
# Replace ipaddress with the local IP address of your Foscam
switch:
 platform: command_line
 switches:
   #Switch for Foscam Motion Detection
   foscam_motion:
     command_on: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"'
     command_off: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"'
     command_state: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=</isEnable>)"'
     value_template: '{{ value == "1" }}'

shell_command.foscam_turn_off 서비스는 카메라가 녹화중이 아님을 가리키도록 카메라를 아래로 향하게하고, shell_command.foscam_turn_on은 카메라가 내가 녹화하고 싶은 위치를 가리키도록 설정합니다. 이러한 서비스 중 카메라에 사전 설정 지점을 추가해야합니다. 추가 정보는 위의 소스를 참조하십시오.

shell_command:
  #Created a preset point in Foscam Web Interface named Off which essentially points the camera down and away
  foscam_turn_off: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=Off&usr=admin&pwd=password"'
  #Created a preset point in Foscam Web Interface named Main which points in the direction I would like to record
  foscam_turn_on: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=Main&usr=admin&pwd=password"'

script.foscam_off, script.foscam_on을 사용하여 모션 감지를 적절하게 설정한 다음 카메라를 이동할 수 있습니다. 이 스크립트는 Foscam에 대해 home, not_home 모드를 설정하고 home일때 모션 감지 녹화를 비활성화하는 device_tracker 트리거를 사용하여 자동화의 일부로 호출할 수 있습니다.

script:
 foscam_off:
   sequence:
   - service: switch.turn_off
     data:
       entity_id: switch.foscam_motion
   - service: shell_command.foscam_turn_off
 foscam_on:
   sequence:
   - service: switch.turn_off
     data:
       entity_id: switch.foscam_motion
   - service: shell_command.foscam_turn_on
   - service: switch.turn_on
     data:
       entity_id: switch.foscam_motion

Foscam이 “on”으로 설정되도록(모션센서가 켜진 상태에서 정면으로) 자동화하기 위해 다음과 같은 간단한 자동화를 사용했습니다. :

automation:
  - alias: Set Foscam to Away Mode when I leave home
    trigger:
      platform: state
      entity_id: group.family
      from: 'home'
    action:
      service: script.foscam_on
  - alias: Set Foscam to Home Mode when I arrive Home
    trigger:
      platform: state
      entity_id: group.family
      to: 'home'
    action:
      service: script.foscam_off