input_boolean:
  guest_mode:
    name: Guest mode
    initial: off
    icon: mdi:human-greeting

automation:
  - alias: Guest mode · Enable
    trigger:
      platform: state
      entity_id: input_boolean.guest_mode
      from: "off"
      to: "on"
    action:
      - service: automation.turn_off
        entity_id:
          - automation.presence_leaving_home
          - automation.presence_coming_home
      - service: input_boolean.turn_off
        entity_id: input_boolean.speech_notifications

  - alias: Guest mode · Disable
    trigger:
      platform: state
      entity_id: input_boolean.guest_mode
      from: "on"
      to: "off"
    action:
      - service: automation.turn_on
        entity_id:
          - automation.presence_leaving_home
          - automation.presence_coming_home
      - service: input_boolean.turn_on
        entity_id: input_boolean.speech_notifications

  - alias: Guest mode · Enable · From Telegram
    trigger:
      platform: event
      event_type: telegram_command
      event_data:
        command: "/guest_mode_on"
    action:
      - service: input_boolean.turn_on
        entity_id: input_boolean.guest_mode
      - service: notify.telegram
        data:
          title: "⚙️ *System Module · Telegram*"
          message: "Okay, turning Guest mode on!"
      - service: logbook.log
        data:
          name: "⚙️ System Module · "
          message: "Telegram · Turning Guest mode on"
          domain: input_boolean

  - alias: Guest mode · Disable · From Telegram
    trigger:
      platform: event
      event_type: telegram_command
      event_data:
        command: "/guest_mode_off"
    action:
      - service: input_boolean.turn_off
        entity_id: input_boolean.guest_mode
      - service: notify.telegram
        data:
          title: "⚙️ *System Module · Telegram*"
          message: "Okay, turning Guest mode off!"
      - service: logbook.log
        data:
          name: "⚙️ System Module · "
          message: "Telegram · Turning Guest mode off"
          domain: input_boolean
