148 lines
4.1 KiB
Python
148 lines
4.1 KiB
Python
"""Definition of constants."""
|
|
|
|
from homeassistant.components.automation import EVENT_AUTOMATION_RELOADED
|
|
from homeassistant.components.homeassistant import (
|
|
SERVICE_RELOAD_ALL,
|
|
SERVICE_RELOAD_CORE_CONFIG,
|
|
SERVICE_RELOAD_CUSTOM_TEMPLATES,
|
|
)
|
|
from homeassistant.components.homeassistant.scene import EVENT_SCENE_RELOADED
|
|
from homeassistant.const import SERVICE_RELOAD, Platform
|
|
|
|
DOMAIN = "watchman"
|
|
DOMAIN_DATA = f"{DOMAIN}_data"
|
|
|
|
|
|
CONFIG_ENTRY_VERSION = 2
|
|
CONFIG_ENTRY_MINOR_VERSION = 4
|
|
|
|
DEFAULT_REPORT_FILENAME = f"{DOMAIN}_report.txt"
|
|
DB_FILENAME = f"{DOMAIN}_v2.db"
|
|
LEGACY_DB_FILENAME = f"{DOMAIN}.db"
|
|
CURRENT_DB_SCHEMA_VERSION = 7
|
|
STORAGE_KEY = f"{DOMAIN}.stats"
|
|
STORAGE_VERSION = 1
|
|
LOCK_FILENAME = f"{DOMAIN}.lock"
|
|
DEFAULT_HEADER = "-== WATCHMAN REPORT ==- "
|
|
DEFAULT_CHUNK_SIZE = 3500
|
|
DB_TIMEOUT = 5
|
|
# parsing runs at most once per interval.
|
|
PARSE_COOLDOWN = 60
|
|
# delay before start parsing
|
|
DEFAULT_DELAY = 10
|
|
|
|
PACKAGE_NAME = f"custom_components.{DOMAIN}"
|
|
REPORT_SERVICE_NAME = "report"
|
|
LABELS_SERVICE_NAME = "set_ignored_labels"
|
|
|
|
HASS_DATA_CANCEL_HANDLERS = "cancel_handlers"
|
|
|
|
COORD_DATA_MISSING_ENTITIES = "entities_missing"
|
|
COORD_DATA_MISSING_ACTIONS = "services_missing"
|
|
COORD_DATA_LAST_UPDATE = "last_update"
|
|
COORD_DATA_SERVICE_ATTRS = "service_attrs"
|
|
COORD_DATA_ENTITY_ATTRS = "entity_attrs"
|
|
COORD_DATA_PARSE_DURATION = "parse_duration"
|
|
COORD_DATA_LAST_PARSE = "last_parse"
|
|
COORD_DATA_PROCESSED_FILES = "processed_files"
|
|
COORD_DATA_IGNORED_FILES = "ignored_files"
|
|
|
|
REPORT_ENTRY_TYPE_SERVICE = "service_list"
|
|
REPORT_ENTRY_TYPE_ENTITY = "entity_list"
|
|
|
|
CONF_IGNORED_FILES = "ignored_files"
|
|
CONF_HEADER = "report_header"
|
|
CONF_REPORT_PATH = "report_path"
|
|
CONF_IGNORED_ITEMS = "ignored_items"
|
|
CONF_SERVICE_NAME = "service"
|
|
CONF_ACTION_NAME = "action"
|
|
CONF_SERVICE_DATA = "data"
|
|
CONF_SERVICE_DATA2 = "service_data"
|
|
CONF_INCLUDED_FOLDERS = "included_folders"
|
|
CONF_EXCLUDE_DISABLED_AUTOMATION = "exclude_disabled_automation"
|
|
CONF_IGNORED_STATES = "ignored_states"
|
|
CONF_CHUNK_SIZE = "chunk_size"
|
|
CONF_CREATE_FILE = "create_file"
|
|
CONF_SEND_NOTIFICATION = "send_notification"
|
|
CONF_PARSE_CONFIG = "parse_config"
|
|
CONF_COLUMNS_WIDTH = "columns_width"
|
|
CONF_STARTUP_DELAY = "startup_delay"
|
|
CONF_FRIENDLY_NAMES = "friendly_names"
|
|
CONF_LOG_OBFUSCATE = "log_obfuscate"
|
|
CONF_IGNORED_LABELS = "ignored_labels"
|
|
# configuration parameters allowed in watchman.report service data
|
|
CONF_ALLOWED_SERVICE_PARAMS = [
|
|
CONF_SERVICE_NAME,
|
|
CONF_ACTION_NAME,
|
|
CONF_CHUNK_SIZE,
|
|
CONF_CREATE_FILE,
|
|
CONF_SEND_NOTIFICATION,
|
|
CONF_PARSE_CONFIG,
|
|
CONF_SERVICE_DATA,
|
|
]
|
|
|
|
|
|
|
|
CONF_SECTION_APPEARANCE_LOCATION = "appearance_location_options"
|
|
CONF_SECTION_NOTIFY_ACTION = "notify_action_options"
|
|
|
|
|
|
# events and service calls monitored by Watchman
|
|
# these events indicate that configuration files
|
|
# changed on disk that requires re-parsing
|
|
WATCHED_EVENTS =[
|
|
EVENT_AUTOMATION_RELOADED,
|
|
EVENT_SCENE_RELOADED
|
|
]
|
|
|
|
WATCHED_SERVICES = [
|
|
SERVICE_RELOAD_CORE_CONFIG,
|
|
SERVICE_RELOAD,
|
|
SERVICE_RELOAD_ALL,
|
|
SERVICE_RELOAD_CUSTOM_TEMPLATES
|
|
]
|
|
|
|
SENSOR_LAST_UPDATE = "last_updated"
|
|
SENSOR_MISSING_ENTITIES = "missing_entities"
|
|
SENSOR_MISSING_ACTIONS = "missing_actions"
|
|
SENSOR_STATUS = "status"
|
|
SENSOR_PARSE_DURATION = "parse_duration"
|
|
SENSOR_LAST_PARSE = "last_parse"
|
|
SENSOR_PROCESSED_FILES = "processed_files"
|
|
SENSOR_IGNORED_FILES = "ignored_files"
|
|
MONITORED_STATES = ["unavailable", "unknown", "missing", "disabled"]
|
|
|
|
STATE_WAITING_HA = "waiting_for_ha"
|
|
STATE_PARSING = "parsing"
|
|
STATE_PENDING = "pending"
|
|
STATE_IDLE = "idle"
|
|
STATE_SAFE_MODE = "safe_mode"
|
|
|
|
BUNDLED_IGNORED_ITEMS = [
|
|
"timer.cancelled",
|
|
"timer.finished",
|
|
"timer.started",
|
|
"timer.restarted",
|
|
"timer.paused",
|
|
"event.*",
|
|
"date.*",
|
|
]
|
|
|
|
# Platforms
|
|
PLATFORMS = [Platform.SENSOR, Platform.TEXT, Platform.BUTTON]
|
|
|
|
DEFAULT_OPTIONS = {
|
|
CONF_IGNORED_ITEMS: "",
|
|
CONF_IGNORED_STATES: [],
|
|
CONF_EXCLUDE_DISABLED_AUTOMATION: True,
|
|
CONF_IGNORED_FILES: "",
|
|
CONF_STARTUP_DELAY: 30,
|
|
CONF_LOG_OBFUSCATE: True,
|
|
CONF_SECTION_APPEARANCE_LOCATION: {
|
|
CONF_HEADER: "-== Watchman Report ==-",
|
|
CONF_REPORT_PATH: "",
|
|
CONF_COLUMNS_WIDTH: "30, 8, 60",
|
|
CONF_FRIENDLY_NAMES: False,
|
|
},
|
|
}
|