Home Assistant Basic Sun Automations Sunrise / Sunset Mqtt Lights On / Off

##############################################
## First the Switches in Configuration.yaml file #####
##############################################


###############################################################
# MOSQUITTO MQTT ##########################################
###############################################################

mqtt:
  broker: localhost
  port: 1883
  client_id: home-assistant-1
  keepalive: 60
  username: newuser
  password: 12345
  protocol: 3.1

###############################################################
# SWITCHES ##################################################
###############################################################


switch 1:
  - platform: mqtt
    name: "Wall Light"
    state_topic: "/house/switchConfirm1/"
    command_topic: "/house/switch1/"
    payload_on: "1"
    payload_off: "0"
    qos: 0
    retain: true
#####################

switch 2:
  - platform: mqtt
    name: "Garage Light One"
    state_topic: "/house/switchConfirm2/"
    command_topic: "/house/switch2/"
    payload_on: "1"
    payload_off: "0"
    qos: 0
    retain: true
#####################

switch 3:
  - platform: mqtt
    name: "Garage Light Two"
    state_topic: "/house/switchConfirm3/"
    command_topic: "/house/switch3/"
    payload_on: "1"
    payload_off: "0"
    qos: 0
    retain: true
#####################

switch 4:
  - platform: mqtt
    name: "Garage Light Three"
    state_topic: "/house/switchConfirm4/"
    command_topic: "/house/switch4/"
    payload_on: "1"
    payload_off: "0"
    qos: 0
    retain: true


####################

switch 5:
  - platform: mqtt
    name: "Switch Sleep"
    state_topic: "/house/switchSleepConfirm/"
    command_topic: "/house/switchSleep/"
    payload_on: "1"
    payload_off: "0"
    qos: 0
    retain: true
####################

switch 6:
  - platform: mqtt
    name: "Switch Reset"
    state_topic: "/house/switchResetConfirm/"
    command_topic: "/house/switchReset/"
    payload_on: "1"
    payload_off: "0"
    qos: 0
    retain: true
######################


##########################################################################
##########################################################################


# NOTE : when using "switch " like above the Service "switch.turn_on" will work
# but if you use " light " the "light.turn_on" will work with it 
# for example : if mqtt switches are defined as "light" below:





################################################################
# LIGHTS ######################################################
###############################################################
#light 1:
# - platform: mqtt
#  name: "Light 01"
#    state_topic: "/house/switchConfirm5/"
#    command_topic: "/house/switch5/"
#    payload_on: "1"
#    payload_off: "0"
#    qos: 0
#    retain: true
#####################


####################################################################
# in the " light 1 " example above the  name: "Light 01 " can be changed but 
# the top light 1 is important here as it will change the service name too 
# see at the end of this post 
####################################################################








###########################################
## This is my Automations.yaml file right now ##
###########################################



#############################################################
## TURN ON OUTSIDE LIGHTS AT SUN-SET ###################
############################################################################


## Copy it so that the minus sign before " id:" is on extreme left the rest should be as it is 
## for example the letter "a" in alias should be beneath the letter " i" in id 

############################################################################

- id: auto_one
  alias: 'Turn On Outside Lights at Sunset'
  trigger:
  - platform: sun
    event: sunset
    offset: '+00:17:00'
  action:
  - service: switch.turn_on
    entity_id: switch.garage_light_one
  - delay: 00:02:00
  - service: switch.turn_on
    entity_id: switch.garage_light_two
  - delay: 00:02:00
  - service: switch.turn_on
    entity_id: switch.garage_light_three
  - delay: 00:03:00
  - service: switch.turn_on
    entity_id: switch.wall_light

#############################################################
## TURN OFF OUTSIDE LIGHTS AT SUN-RISE #################
#############################################################

############################################################################
## Note that the dash/minus sign " - " before id is on extreme left with NO spaces from left
############################################################################

- id: auto_two
  alias: 'Turn Off Outside Lights at Sunrise'
  trigger:
  - platform: sun
    event: sunrise
    offset: '-00:25:00'
  action:
  - service: switch.turn_off
    entity_id: switch.wall_light
  - delay: 00:05:00
  - service: switch.turn_off
    entity_id: switch.garage_light_one
  - delay: 00:04:00
  - service: switch.turn_off
    entity_id: switch.garage_light_two
  - delay: 00:03:00
  - service: switch.turn_off
    entity_id: switch.garage_light_three


###########################################################################

###########################################################################
#############################################################
## TURN ON LIGHTS AT SUNSET ###           Using light            #####
#############################################################



#- id: auto
#  alias: 'Turn On Lights'
#  trigger:
#  - platform: sun
#    event: sunset
#    offset: '-02:44:00'
#  action:
#  - service: light.turn_on
#    entity_id: light.light_01
#  - delay: 00:00:05
#  - service: light.turn_on
#    entity_id: light.light_02
#  - delay: 00:00:05
#  - service: light.turn_on
#    entity_id: light.light_03
#  - delay: 00:00:05
#  - service: light.turn_on
#    entity_id: light.light_04