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

homeassistant:
  customize_glob:
    "sensor.skybell_*":
      icon: mdi:camera-front

      hidden: False
      homebridge_hidden: True

group:
  skybell:
    name: Skybell HD Front Door
    control: hidden
    entities:
      - binary_sensor.skybell_stone_door_button
      - binary_sensor.skybell_stone_door_motion
      - camera.stone_door
      - sensor.skybell_stone_door_chime_level
      - sensor.skybell_stone_door_motion_sensor
      - switch.skybell_stone_door_do_not_disturb
      - switch.skybell_stone_door_motion_sensor

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

camera:
  - platform: skybell

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'
    hide_entity: True
    trigger:
       - platform: state
         entity_id:
           - binary_sensor.skybell_stone_door_button
         to: 'on'
       # - platform: event
       #   event_type: skybell_pressed

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

    action:
      - service: script.skybell_pressed
      - service: script.tweet_engine_image
        data_template:
          tweet: >
            {{ [
            "Oh, that tickled. Someone just pressed the @MySkyBell.",
            "Ouch! That hurt. Who touched the SkyBell Doorbell?",
            "Someone just poked me in the @MySkybell!",
            "I see you! You are at the @MySkyBell and you just pressed it.",
            "Someone answer my door.  Someone just pressed the doorbell.",
            "Knock, Knock.  Housekeeping? Just kiddin', someone just rang the doorbell."
            ] | random + [
            " #Security",
            " (https://github.com/CCOSTAN/Home-AssistantConfig#cameras)",
            " (http://www.vmwareinfo.com/2017/07/my-smart-home-look-at-parts-that-make.html)",
            " #HomeAutomation"
            ] | random }}
          image: >-
            {{ [
            "/config/www/custom_ui/floorplan/images/branding/sleeping.png",
            "/config/www/custom_ui/floorplan/images/branding/door.png",
            "/config/www/custom_ui/floorplan/images/branding/door2.png",
            "/config/www/custom_ui/floorplan/images/branding/light4.png",
            "/config/www/custom_ui/floorplan/images/branding/landscape_light.png",
            "/config/www/custom_ui/floorplan/images/branding/camera.png",
            ] | random }}

# Motion Sensing
  - alias: 'Log SkyBell Motion detection'
    hide_entity: True
    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!
    hide_entity: True
    trigger:
      - platform: state
        entity_id:
          - light.stone_door
          - switch.carloneato_schedule
        to: 'off'

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