---
# Main Home Assistant Configuration

homeassistant:
  name: Home

  # Location and Time Zone
  country: US
  latitude: !secret home_latitude # dummy: 0.0
  longitude: !secret home_longitude # dummy: 0.0
  elevation: 10 # meters, WGS84
  time_zone: America/Los_Angeles

  # Measurement System
  unit_system: imperial
  currency: USD

  # URL and Access Control
  internal_url: !secret http_internal_url
  external_url: !secret http_external_url
  auth_mfa_modules:
    - type: totp
  auth_providers:
    - type: homeassistant
    - type: trusted_networks
      trusted_networks:
        - 127.0.0.1
        - !secret lan_net_ip4
        - !secret tablet_net_ip4

  # Customization and Packages
  customize: !include include/customize.yaml
  packages: !include_dir_named packages

# HTTP Access
http:
  ip_ban_enabled: true
  login_attempts_threshold: 3
  use_x_forwarded_for: true
  trusted_proxies:
    - !secret proxy_ip4
    - !secret proxy_ip6
    - !secret gateway_ip4

# Configure Lovelace/Dashboards for YAML Configuration
lovelace:
  mode: yaml
  resources: !include lovelace/resources.yaml
  dashboards: !include lovelace/dashboards.yaml

# MQTT Broker Connection
mqtt:

# Configure Logging
logger:
  default: info

###############################################################################
# Customize Default Integrations
# 
# Not Enabled:
#   - cloud
###############################################################################

# Enable the Configuration UI
config:

# Enable the Energy Dashboard
energy:

# Enable FFmpeg for Streaming
ffmpeg:

# Enable the Front End
frontend:
  themes: !include_dir_merge_named themes
  extra_module_url:
    - /hacsfiles/lovelace-card-mod/card-mod.js

# Configure FontAwesome Icons
fontawesome:
  regular:
  solid:

# Enables support for tracking state changes over time
history:

# View all events in a logbook
logbook:

# Enables a map showing the location of tracked devices
map:

# Enable the Home Assistant Companion Apps
mobile_app:

# Enable Person entities for device tracker grouping
# NOTE: See declaration in Presence package
#person:

# Record events to a database
recorder:

# Enable support for Simple Service Discovery Protocol
# Used by Philips Hue (disable if moving to Zigbee)
ssdp:

# Enable streaming support
stream:

# Track the sun
sun:

# System Health monitor
system_health:

# Enable UPnP/Zeroconf Service Discovery and Advertising
zeroconf:

# Discover some devices automatically (deprecated in 2023.8)
# discovery:

# Setup Includes for UI
automation: !include include/automations.yaml
scene: !include include/scenes.yaml
script: !include include/scripts.yaml
zone: !include include/zones.yaml

# Setup InfluxDB Logging
influxdb:
  api_version: '2'
  ssl: false
  host: !secret influxdb2_host
  port: !secret influxdb2_port
  organization: !secret influxdb2_org
  token: !secret influxdb2_token
  bucket: ha
  measurement_attr: domain__device_class
  default_measurement: state
  precision: ms
  tags_attributes:
    - friendly_name
  exclude:
    domains:
      - automation
      - device_tracker
      - group
      - input_boolean
      - input_select
      - media_player
      - scene
      - script
      - weather
      - zone

# Force ZHA to use Channel 15 or 20
zha:
  zigpy_config:
    network:
      channel: 15
      channels: [15, 20]
    ota:
      inovelli_provider: true
