87 lines
2.6 KiB
Python
87 lines
2.6 KiB
Python
"""Constants for Elegoo spaghetti detection."""
|
|
|
|
from homeassistant.const import Platform
|
|
|
|
DOMAIN = "elegoo_spaghetti_detection"
|
|
BRAND = "Elegoo Spaghetti Detection"
|
|
|
|
PLATFORMS = [Platform.BINARY_SENSOR, Platform.SENSOR, Platform.BUTTON]
|
|
|
|
CONF_INSTANCE_ID = "instance_id"
|
|
CONF_HOME_ASSISTANT_HOST = "home_assistant_host"
|
|
CONF_OBICO_HOST = "obico_host"
|
|
CONF_OBICO_AUTH_TOKEN = "obico_auth_token"
|
|
CONF_CAMERA = "camera"
|
|
CONF_SNAPSHOT_URL = "snapshot_url"
|
|
CONF_PRINT_STATUS_SENSOR = "print_status_sensor"
|
|
CONF_ACTIVE_PRINT_STATES = "active_print_states"
|
|
CONF_CHAMBER_LIGHT = "chamber_light"
|
|
CONF_LIGHT_CONTROL_MODE = "light_control_mode"
|
|
CONF_LIGHT_SETTLE_SECONDS = "light_settle_seconds"
|
|
CONF_DETECTION_INTERVAL = "detection_interval"
|
|
CONF_RUN_WITHOUT_PRINTING = "run_without_printing"
|
|
CONF_FAILURE_THRESHOLD = "failure_threshold"
|
|
CONF_WARNING_THRESHOLD = "warning_threshold"
|
|
CONF_SENSITIVITY = "sensitivity"
|
|
CONF_COOLDOWN_SECONDS = "cooldown_seconds"
|
|
CONF_IMAGE_URL = "image_url"
|
|
CONF_CONFIG_ENTRY = "config_entry"
|
|
CONF_DETECTOR = "detector"
|
|
CONF_FORCE = "force"
|
|
|
|
DEFAULT_NAME = "Elegoo Spaghetti Detector"
|
|
DEFAULT_INSTANCE_ID = DOMAIN
|
|
DEFAULT_HOME_ASSISTANT_HOST = "http://homeassistant.local:8123"
|
|
DEFAULT_OBICO_HOST = "http://192.168.1.123:3333"
|
|
DEFAULT_OBICO_AUTH_TOKEN = "obico_api_secret"
|
|
DEFAULT_ACTIVE_PRINT_STATES = "printing"
|
|
DEFAULT_DETECTION_INTERVAL = 10
|
|
DEFAULT_COOLDOWN_SECONDS = 900
|
|
DEFAULT_FAILURE_THRESHOLD = 0.50
|
|
DEFAULT_WARNING_THRESHOLD = 0.30
|
|
DEFAULT_SENSITIVITY = "normal"
|
|
DEFAULT_LIGHT_CONTROL_MODE = "restore"
|
|
DEFAULT_LIGHT_SETTLE_SECONDS = 3
|
|
|
|
LIGHT_CONTROL_OFF = "off"
|
|
LIGHT_CONTROL_LEAVE_ON = "leave_on"
|
|
LIGHT_CONTROL_RESTORE = "restore"
|
|
|
|
REQUIRED_CONFIG_KEYS = frozenset(
|
|
{
|
|
CONF_INSTANCE_ID,
|
|
CONF_HOME_ASSISTANT_HOST,
|
|
CONF_OBICO_HOST,
|
|
CONF_OBICO_AUTH_TOKEN,
|
|
CONF_CAMERA,
|
|
}
|
|
)
|
|
|
|
SENSITIVITY_THRESHOLDS = {
|
|
"high": (0.20, 0.35),
|
|
"normal": (DEFAULT_WARNING_THRESHOLD, DEFAULT_FAILURE_THRESHOLD),
|
|
"low": (0.45, 0.70),
|
|
"custom": (DEFAULT_WARNING_THRESHOLD, DEFAULT_FAILURE_THRESHOLD),
|
|
}
|
|
|
|
EVENT_DETECTION_RESULT = f"{DOMAIN}_result"
|
|
EVENT_SPAGHETTI_DETECTED = f"{DOMAIN}_detected"
|
|
|
|
SERVICE_PREDICT = "predict"
|
|
SERVICE_RUN_DETECTION = "run_detection"
|
|
SERVICE_RESET_STATE = "reset_state"
|
|
|
|
RUNTIME_DATA = "runtime"
|
|
RUNTIME_BY_DETECTOR = "runtime_by_detector"
|
|
RUNTIME_ML_LOCK = "ml_lock"
|
|
|
|
ATTR_CONFIDENCE = "confidence"
|
|
ATTR_RAW_SCORE = "raw_score"
|
|
ATTR_DETECTED = "detected"
|
|
ATTR_DETECTIONS = "detections"
|
|
ATTR_IMAGE_URL = "image_url"
|
|
ATTR_LAST_ERROR = "last_error"
|
|
ATTR_LAST_RUN = "last_run"
|
|
ATTR_NEXT_RUN = "next_run"
|
|
ATTR_STATUS = "status"
|