from .fplEntity import FplEntity class FplProjectedBillSensor(FplEntity): def __init__(self, coordinator, config, account): super().__init__(coordinator, config, account, "Projected Bill") @property def state(self): budget = self.getData("budget_bill") budget_billing_projected_bill = self.getData("budget_billing_projected_bill") try: if budget == True and budget_billing_projected_bill is not None: self._state = self.getData("budget_billing_projected_bill") else: self._state = self.getData("projected_bill") except: self._state = None return self._state def defineAttributes(self): """Return the state attributes.""" attributes = {} attributes["friendly_name"] = "Projected Bill Payment Due" attributes["device_class"] = "monetary" attributes["state_class"] = "total" attributes["unit_of_measurement"] = "$" return attributes @property def icon(self): return "mdi:currency-usd" # Defered Amount class DeferedAmountSensor(FplEntity): def __init__(self, coordinator, config, account): super().__init__(coordinator, config, account, "Deferred Amount") @property def state(self): try: self._state = self.getData("deferred_amount") except: self._state = 0 pass return self._state @property def icon(self): return "mdi:currency-usd" def defineAttributes(self): """Return the state attributes.""" attributes = {} attributes["friendly_name"] = "Deferred Amount" attributes["device_class"] = "monetary" attributes["state_class"] = "total" attributes["unit_of_measurement"] = "$" return attributes class ProjectedBudgetBillSensor(FplEntity): def __init__(self, coordinator, config, account): super().__init__(coordinator, config, account, "Projected Budget Bill") @property def state(self): try: self._state = self.getData("budget_billing_projected_bill") except: pass return self._state @property def icon(self): return "mdi:currency-usd" def defineAttributes(self): """Return the state attributes.""" attributes = {} attributes["friendly_name"] = "Projected Budget Bill" attributes["device_class"] = "monitary" attributes["state_class"] = "total" attributes["unit_of_measurement"] = "$" return attributes class ProjectedActualBillSensor(FplEntity): def __init__(self, coordinator, config, account): super().__init__(coordinator, config, account, "Projected Actual Bill") @property def state(self): try: self._state = self.getData("projected_bill") except: pass return self._state @property def icon(self): return "mdi:currency-usd" def defineAttributes(self): """Return the state attributes.""" attributes = {} attributes["friendly_name"] = "Projected Actual Bill" attributes["device_class"] = "monitary" attributes["state_class"] = "total" attributes["unit_of_measurement"] = "$" return attributes