#-------------------------------------------
# @CCOSTAN
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
###################################
## [SkyBell HD](https://amzn.to/2dcexIB)
###################################

homeassistant:

group:
  skybell:
    name: Skybell HD Front Door

    entities:
      - binary_sensor.skybell_front_door_button
      - binary_sensor.skybell_front_door_motion
      - camera.front_door
      - sensor.skybell_front_door_chime_level
      - sensor.skybell_front_door_motion_sensor
      - switch.skybell_front_door_do_not_disturb
      - switch.skybell_front_door_motion_sensor

skybell:
  username: !secret skybell_username
  password: !secret skybell_password

camera:
  - platform: skybell
    monitored_conditions:
    - avatar
    - activity
    activity_name: "Last Activity"

binary_sensor:
  - platform: skybell
    monitored_conditions:
      - button
      - motion

light:
  - platform: skybell   # Part of the Outdoor Front Lights Group

sensor:
  - platform: skybell
    monitored_conditions:
      - chime_level

switch:
  - platform: skybell
    monitored_conditions:
#      - do_not_disturb
      - motion_sensor

###################################
##  Automations
###################################
## Doorbell Press
automation:
  - alias: 'Log SkyBell Pressed Activity'

    trigger:
       - platform: state
         entity_id:
           - binary_sensor.skybell_front_door_button
         to: 'on'
       - platform: event
         event_type: skybell_pressed

    condition:
      - condition: template
        value_template: >
          {%- if states.binary_sensor.skybell_front_door_button.attributes.last_triggered -%}
            {{ (as_timestamp(now()) - as_timestamp(states.binary_sensor.skybell_front_door_button.attributes.last_triggered)) > 200 }}
          {%- else -%}
            true
          {%- endif -%}

    action:
      - service: script.skybell_pressed


# Motion Sensing
  - alias: 'Log SkyBell Motion detection'

    trigger:
      - platform: event
        event_type: skybell_motion

    action:
      - service: script.front_house_motion

# Turn SkyBell Light and Neato Schedule back on if it's turned off. Like any Good Watchdog.

  - alias: Automated Mismatch WatchDog!

    trigger:
      - platform: state
        entity_id:
          - light.front_door
          - switch.carlo_neato_schedule
        to: 'off'

  #Turn it back on!
    action:
      - service: homeassistant.turn_on
        data_template:
          entity_id: "{{ trigger.entity_id }}"