"""Constants for the Goal Zero Yeti integration.""" from datetime import timedelta from homeassistant.components.binary_sensor import ( DEVICE_CLASS_BATTERY_CHARGING, DEVICE_CLASS_CONNECTIVITY, DEVICE_CLASS_POWER, ) from homeassistant.components.sensor import ( ATTR_STATE_CLASS, DEVICE_CLASS_BATTERY, DEVICE_CLASS_CURRENT, DEVICE_CLASS_ENERGY, DEVICE_CLASS_SIGNAL_STRENGTH, DEVICE_CLASS_TEMPERATURE, DEVICE_CLASS_VOLTAGE, STATE_CLASS_MEASUREMENT, ) from homeassistant.const import ( ATTR_DEVICE_CLASS, ATTR_NAME, ATTR_UNIT_OF_MEASUREMENT, ELECTRICAL_CURRENT_AMPERE, ENERGY_WATT_HOUR, PERCENTAGE, POWER_WATT, SIGNAL_STRENGTH_DECIBELS, TEMP_CELSIUS, TIME_MINUTES, TIME_SECONDS, VOLT, ) ATTR_DEFAULT_ENABLED = "default_enabled" CONF_IDENTIFIERS = "identifiers" CONF_MANUFACTURER = "manufacturer" CONF_MODEL = "model" CONF_SW_VERSION = "sw_version" DATA_KEY_COORDINATOR = "coordinator" DOMAIN = "goalzero" DEFAULT_NAME = "Yeti" DATA_KEY_API = "api" MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=30) BINARY_SENSOR_DICT = { "backlight": ["Backlight", None, "mdi:clock-digital"], "app_online": [ "App Online", DEVICE_CLASS_CONNECTIVITY, None, ], "isCharging": ["Charging", DEVICE_CLASS_BATTERY_CHARGING, None], "inputDetected": ["Input Detected", DEVICE_CLASS_POWER, None], } SENSOR_DICT = { "wattsIn": { ATTR_NAME: "Watts In", ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_DEFAULT_ENABLED: True, }, "ampsIn": { ATTR_NAME: "Amps In", ATTR_DEVICE_CLASS: DEVICE_CLASS_CURRENT, ATTR_UNIT_OF_MEASUREMENT: ELECTRICAL_CURRENT_AMPERE, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_DEFAULT_ENABLED: False, }, "wattsOut": { ATTR_NAME: "Watts Out", ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_DEFAULT_ENABLED: True, }, "ampsOut": { ATTR_NAME: "Amps Out", ATTR_DEVICE_CLASS: DEVICE_CLASS_CURRENT, ATTR_UNIT_OF_MEASUREMENT: ELECTRICAL_CURRENT_AMPERE, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_DEFAULT_ENABLED: False, }, "whOut": { ATTR_NAME: "WH Out", ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_DEFAULT_ENABLED: False, }, "whStored": { ATTR_NAME: "WH Stored", ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, ATTR_UNIT_OF_MEASUREMENT: ENERGY_WATT_HOUR, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_DEFAULT_ENABLED: True, }, "volts": { ATTR_NAME: "Volts", ATTR_DEVICE_CLASS: DEVICE_CLASS_VOLTAGE, ATTR_UNIT_OF_MEASUREMENT: VOLT, ATTR_DEFAULT_ENABLED: False, }, "socPercent": { ATTR_NAME: "State of Charge Percent", ATTR_DEVICE_CLASS: DEVICE_CLASS_BATTERY, ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_DEFAULT_ENABLED: True, }, "timeToEmptyFull": { ATTR_NAME: "Time to Empty/Full", ATTR_DEVICE_CLASS: TIME_MINUTES, ATTR_UNIT_OF_MEASUREMENT: TIME_MINUTES, ATTR_DEFAULT_ENABLED: True, }, "temperature": { ATTR_NAME: "Temperature", ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE, ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, ATTR_DEFAULT_ENABLED: True, }, "wifiStrength": { ATTR_NAME: "Wifi Strength", ATTR_DEVICE_CLASS: DEVICE_CLASS_SIGNAL_STRENGTH, ATTR_UNIT_OF_MEASUREMENT: SIGNAL_STRENGTH_DECIBELS, ATTR_DEFAULT_ENABLED: True, }, "timestamp": { ATTR_NAME: "Up Time", ATTR_UNIT_OF_MEASUREMENT: TIME_SECONDS, ATTR_DEFAULT_ENABLED: False, }, } SWITCH_DICT = { "v12PortStatus": "12V Port Status", "usbPortStatus": "USB Port Status", "acPortStatus": "AC Port Status", }