"""Constants for the Kostal Plenticore Solar Inverter integration.""" from typing import NamedTuple from homeassistant.components.sensor import ( ATTR_STATE_CLASS, SensorDeviceClass, SensorStateClass, ) from homeassistant.const import ( ATTR_DEVICE_CLASS, ATTR_ICON, ATTR_UNIT_OF_MEASUREMENT, ELECTRIC_CURRENT_AMPERE, ELECTRIC_POTENTIAL_VOLT, ENERGY_KILO_WATT_HOUR, PERCENTAGE, POWER_WATT, ) DOMAIN = "kostal_plenticore" ATTR_ENABLED_DEFAULT = "entity_registry_enabled_default" # Defines all entities for process data. # # Each entry is defined with a tuple of these values: # - module id (str) # - process data id (str) # - entity name suffix (str) # - sensor properties (dict) # - value formatter (str) SENSOR_PROCESS_DATA = [ ( "devices:local", "Inverter:State", "Inverter State", {ATTR_ICON: "mdi:state-machine"}, "format_inverter_state", ), ( "devices:local", "Dc_P", "Solar Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_ENABLED_DEFAULT: True, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local", "Grid_P", "Grid Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_ENABLED_DEFAULT: True, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local", "HomeBat_P", "Home Power from Battery", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, }, "format_round", ), ( "devices:local", "HomeGrid_P", "Home Power from Grid", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local", "HomeOwn_P", "Home Power from Own", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local", "HomePv_P", "Home Power from PV", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local", "Home_P", "Home Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:ac", "P", "AC Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_ENABLED_DEFAULT: True, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:pv1", "P", "DC1 Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:pv1", "U", "DC1 Voltage", { ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_POTENTIAL_VOLT, ATTR_DEVICE_CLASS: SensorDeviceClass.VOLTAGE, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:pv1", "I", "DC1 Current", { ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_CURRENT_AMPERE, ATTR_DEVICE_CLASS: SensorDeviceClass.CURRENT, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_float", ), ( "devices:local:pv2", "P", "DC2 Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:pv2", "U", "DC2 Voltage", { ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_POTENTIAL_VOLT, ATTR_DEVICE_CLASS: SensorDeviceClass.VOLTAGE, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:pv2", "I", "DC2 Current", { ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_CURRENT_AMPERE, ATTR_DEVICE_CLASS: SensorDeviceClass.CURRENT, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_float", ), ( "devices:local:pv3", "P", "DC3 Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:pv3", "U", "DC3 Voltage", { ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_POTENTIAL_VOLT, ATTR_DEVICE_CLASS: SensorDeviceClass.VOLTAGE, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:pv3", "I", "DC3 Current", { ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_CURRENT_AMPERE, ATTR_DEVICE_CLASS: SensorDeviceClass.CURRENT, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_float", ), ( "devices:local", "PV2Bat_P", "PV to Battery Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local", "EM_State", "Energy Manager State", {ATTR_ICON: "mdi:state-machine"}, "format_em_manager_state", ), ( "devices:local:battery", "Cycles", "Battery Cycles", {ATTR_ICON: "mdi:recycle", ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT}, "format_round", ), ( "devices:local:battery", "P", "Battery Power", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "devices:local:battery", "SoC", "Battery SoC", { ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_DEVICE_CLASS: SensorDeviceClass.BATTERY, }, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:Autarky:Day", "Autarky Day", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:chart-donut"}, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:Autarky:Month", "Autarky Month", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:chart-donut"}, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:Autarky:Total", "Autarky Total", { ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:chart-donut", ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:Autarky:Year", "Autarky Year", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:chart-donut"}, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:OwnConsumptionRate:Day", "Own Consumption Rate Day", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:chart-donut"}, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:OwnConsumptionRate:Month", "Own Consumption Rate Month", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:chart-donut"}, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:OwnConsumptionRate:Total", "Own Consumption Rate Total", { ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:chart-donut", ATTR_STATE_CLASS: SensorStateClass.MEASUREMENT, }, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:OwnConsumptionRate:Year", "Own Consumption Rate Year", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:chart-donut"}, "format_round", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHome:Day", "Home Consumption Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHome:Month", "Home Consumption Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHome:Year", "Home Consumption Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHome:Total", "Home Consumption Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomeBat:Day", "Home Consumption from Battery Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomeBat:Month", "Home Consumption from Battery Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomeBat:Year", "Home Consumption from Battery Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomeBat:Total", "Home Consumption from Battery Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomeGrid:Day", "Home Consumption from Grid Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomeGrid:Month", "Home Consumption from Grid Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomeGrid:Year", "Home Consumption from Grid Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomeGrid:Total", "Home Consumption from Grid Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomePv:Day", "Home Consumption from PV Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomePv:Month", "Home Consumption from PV Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomePv:Year", "Home Consumption from PV Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyHomePv:Total", "Home Consumption from PV Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv1:Day", "Energy PV1 Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv1:Month", "Energy PV1 Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv1:Year", "Energy PV1 Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv1:Total", "Energy PV1 Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv2:Day", "Energy PV2 Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv2:Month", "Energy PV2 Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv2:Year", "Energy PV2 Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv2:Total", "Energy PV2 Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv3:Day", "Energy PV3 Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv3:Month", "Energy PV3 Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv3:Year", "Energy PV3 Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyPv3:Total", "Energy PV3 Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:Yield:Day", "Energy Yield Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_ENABLED_DEFAULT: True, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:Yield:Month", "Energy Yield Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:Yield:Year", "Energy Yield Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:Yield:Total", "Energy Yield Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyChargeGrid:Day", "Battery Charge from Grid Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyChargeGrid:Month", "Battery Charge from Grid Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyChargeGrid:Year", "Battery Charge from Grid Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyChargeGrid:Total", "Battery Charge from Grid Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyChargePv:Day", "Battery Charge from PV Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyChargePv:Month", "Battery Charge from PV Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyChargePv:Year", "Battery Charge from PV Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyChargePv:Total", "Battery Charge from PV Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyDischargeGrid:Day", "Energy Discharge to Grid Day", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyDischargeGrid:Month", "Energy Discharge to Grid Month", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyDischargeGrid:Year", "Energy Discharge to Grid Year", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, }, "format_energy", ), ( "scb:statistic:EnergyFlow", "Statistic:EnergyDischargeGrid:Total", "Energy Discharge to Grid Total", { ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: SensorDeviceClass.ENERGY, ATTR_STATE_CLASS: SensorStateClass.TOTAL_INCREASING, }, "format_energy", ), ] # Defines all entities for settings. # # Each entry is defined with a tuple of these values: # - module id (str) # - process data id (str) # - entity name suffix (str) # - sensor properties (dict) # - value formatter (str) SENSOR_SETTINGS_DATA = [ ( "devices:local", "Battery:MinHomeComsumption", "Battery min Home Consumption", { ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: SensorDeviceClass.POWER, }, "format_round", ), ( "devices:local", "Battery:MinSoc", "Battery min Soc", {ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, ATTR_ICON: "mdi:battery-negative"}, "format_round", ), ] class SwitchData(NamedTuple): """Representation of a SelectData tuple.""" module_id: str data_id: str name: str is_on: str on_value: str on_label: str off_value: str off_label: str # Defines all entities for switches. # # Each entry is defined with a tuple of these values: # - module id (str) # - process data id (str) # - entity name suffix (str) # - on Value (str) # - on Label (str) # - off Value (str) # - off Label (str) SWITCH_SETTINGS_DATA = [ SwitchData( "devices:local", "Battery:Strategy", "Battery Strategy", "1", "1", "Automatic", "2", "Automatic economical", ), ] class SelectData(NamedTuple): """Representation of a SelectData tuple.""" module_id: str data_id: str name: str options: list is_on: str # Defines all entities for select widgets. # # Each entry is defined with a tuple of these values: # - module id (str) # - process data id (str) # - entity name suffix (str) # - options # - entity is enabled by default (bool) SELECT_SETTINGS_DATA = [ SelectData( "devices:local", "battery_charge", "Battery Charging / Usage mode", ["None", "Battery:SmartBatteryControl:Enable", "Battery:TimeControl:Enable"], "1", ) ]