Skip to content

Commit

Permalink
draft testing
Browse files Browse the repository at this point in the history
  • Loading branch information
myTselection committed Sep 24, 2023
1 parent 5a28017 commit 30dca91
Show file tree
Hide file tree
Showing 6 changed files with 259 additions and 252 deletions.
73 changes: 53 additions & 20 deletions custom_components/MyEnergy/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,54 +21,87 @@
_LOGGER = logging.getLogger(__name__)




def create_schema(entry, option=False):
"""Create a default schema based on if a option or if settings
is already filled out.
"""
if option:
# We use .get here incase some of the texts gets changed.
default_postalcode = entry.data.get("postalcode", "")
default_day_electricity_consumption = entry.data.get("day_electricity_consumption", "")
default_night_electricity_consumption = entry.data.get("night_electricity_consumption", "")
default_excl_night_electricity_consumption = entry.data.get("excl_night_electricity_consumption", "")
default_electricity_digital_counter = entry.data.get("electricity_digital_counter", False)
default_day_electricity_consumption = entry.data.get("day_electricity_consumption", 0)
default_night_electricity_consumption = entry.data.get("night_electricity_consumption", 0)
default_excl_night_electricity_consumption = entry.data.get("excl_night_electricity_consumption", 0)
default_electricity_injection = entry.data.get("electricity_injection", 0)
default_gas_consumption = entry.data.get("gas_consumption", "")
default_directdebit_invoice = entry.data.get("directdebit_invoice", "")
default_email_invoice = entry.data.get("email_invoice", "")
default_online_support = entry.data.get("online_support", "")
default_directdebit_invoice = entry.data.get("directdebit_invoice", False)
default_email_invoice = entry.data.get("email_invoice", False)
default_online_support = entry.data.get("online_support", False)
default_electric_car = entry.data.get("electric_car", False)
else:
default_postalcode = ""
default_day_electricity_consumption = ""
default_night_electricity_consumption = ""
default_excl_night_electricity_consumption = ""
default_electricity_digital_counter = False
default_day_electricity_consumption = 0
default_night_electricity_consumption = 0
default_excl_night_electricity_consumption = 0
default_electricity_injection = 0
default_gas_consumption = ""
default_directdebit_invoice = True
default_email_invoice = True
default_online_support = True
default_electric_car = False

data_schema = OrderedDict()
data_schema[
vol.Required("postalcode", description="postalcode")
] = str
data_schema[
vol.Required("day_electricity_consumption", description="day_electricity_consumption")
] = str
vol.Required("electricity_digital_counter", default=default_electricity_digital_counter, description="electricity_digital_counter")
] = bool
data_schema[
vol.Required("night_electricity_consumption", description="night_electricity_consumption")
] = str
vol.Optional("day_electricity_consumption", description="day_electricity_consumption")
] = int
data_schema[
vol.Required("excl_night_electricity_consumption", description="excl_night_electricity_consumption")
] = str
vol.Optional("night_electricity_consumption", description="night_electricity_consumption")
] = int
data_schema[
vol.Required("gas_consumption", description="gas_consumption")
] = str
vol.Optional("excl_night_electricity_consumption", description="excl_night_electricity_consumption")
] = int
data_schema[
vol.Optional("electricity_injection", description="electricity_injection")
] = int
data_schema[
vol.Required("electric_car", default=default_electric_car, description="electric_car")
] = bool
# data_schema[
# vol.Required("electricity_provider", description="electricity_provider")
# ] = selector({
# "select": {
# "options": electricity_provider.keys(),
# "mode": "dropdown"
# }
# })
data_schema[
vol.Optional("gas_consumption", description="gas_consumption")
] = int
# data_schema[
# vol.Required("gas_provider", description="gas_provider")
# ] = selector({
# "select": {
# "options": gas_providers.keys(),
# "mode": "dropdown"
# }
# })
data_schema[
vol.Required("directdebit_invoice", description="directdebit_invoice")
vol.Required("directdebit_invoice", default=default_directdebit_invoice, description="directdebit_invoice")
] = bool
data_schema[
vol.Required("email_invoice", description="email_invoice")
vol.Required("email_invoice", default=default_email_invoice, description="email_invoice")
] = bool
data_schema[
vol.Required("online_support", description="online_support")
vol.Required("online_support", default=default_online_support, description="online_support")
] = bool

return data_schema
Expand Down
34 changes: 23 additions & 11 deletions custom_components/MyEnergy/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,14 @@

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_USERNAME): cv.string,
vol.Required(CONF_PASSWORD): cv.string
vol.Required("postalcode"): cv.string,
vol.Optional("day_electricity_consumption"): cv.string,
vol.Optional("night_electricity_consumption"): cv.int,
vol.Optional("excl_night_electricity_consumption"): cv.int,
vol.Optional("gas_consumption"): cv.int,
vol.Required("directdebit_invoice"): cv.bool,
vol.Required("email_invoice"): cv.bool,
vol.Required("online_support"): cv.bool
}
)

Expand Down Expand Up @@ -101,13 +107,22 @@ def __init__(self, config, hass):
self._config = config
self._hass = hass
self._session = ComponentSession()
self._cardnumber = config.get(CONF_USERNAME)
self._password = config.get(CONF_PASSWORD)
self._postalcode = config.get("postalcode")
self._electricity_digital_counter = config.get("electricity_digital_counter")
self._day_electricity_consumption = config.get("day_electricity_consumption",0)
self._night_electricity_consumption = config.get("night_electricity_consumption", 0)
self._excl_night_electricity_consumption = config.get("excl_night_electricity_consumption", 0)
self._electricity_injection = config.get("electricity_injection", 0)
self._electric_car = config.get("electric_car", False)
self._gas_consumption = config.get("gas_consumption", 0)
self._directdebit_invoice = config.get("directdebit_invoice", True)
self._email_invoice = config.get("email_invoice", True)
self._online_support = config.get("online_support", True)
self._details = None

@property
def unique_id(self):
return f"{DOMAIN}-{self._cardnumber}"
return f"{DOMAIN}-{self._postalcode}-{self._day_electricity_consumption}-{self._night_electricity_consumption}-{self._gas_consumption}"

# same as update, but without throttle to make sure init is always executed
async def _forced_update(self):
Expand All @@ -116,12 +131,9 @@ async def _forced_update(self):
self._session = ComponentSession()

if self._session:
_LOGGER.debug("Starting with session for " + NAME)
self._details = await self._hass.async_add_executor_job(lambda: self._session.login(self._cardnumber, self._password))
_LOGGER.debug("login completed " + NAME)
self._transactions = await self._hass.async_add_executor_job(lambda: self._session.transactions())
_LOGGER.debug(f"transactions completed {NAME}, transactions: {self._transactions}")

_LOGGER.debug("Getting date for " + NAME)
self._details = await self._hass.async_add_executor_job(lambda: self._session.get_data(self._config))
_LOGGER.debug("Data fetched completed " + NAME)
else:
_LOGGER.debug(f"{NAME} no session available")

Expand Down
59 changes: 0 additions & 59 deletions custom_components/MyEnergy/strings.py

This file was deleted.

Loading

0 comments on commit 30dca91

Please sign in to comment.