197 lines
5.7 KiB
Python
197 lines
5.7 KiB
Python
"""energy sensors"""
|
|
from datetime import date, timedelta
|
|
import datetime
|
|
from homeassistant.components.sensor import (
|
|
STATE_CLASS_TOTAL_INCREASING,
|
|
STATE_CLASS_TOTAL,
|
|
)
|
|
from .fplEntity import FplEnergyEntity
|
|
|
|
|
|
class ProjectedKWHSensor(FplEnergyEntity):
|
|
def __init__(self, coordinator, config, account):
|
|
super().__init__(coordinator, config, account, "Projected")
|
|
|
|
@property
|
|
def state(self):
|
|
try:
|
|
self._state = self.getData("projectedKWH")
|
|
except:
|
|
pass
|
|
return self._state
|
|
|
|
def customAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["state_class"] = STATE_CLASS_TOTAL
|
|
return attributes
|
|
|
|
|
|
<<<<<<< HEAD
|
|
class DailyAverageKWHSensor(FplEnergyEntity):
|
|
=======
|
|
def defineAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["friendly_name"] = "Projected KWH"
|
|
attributes["device_class"] = "energy"
|
|
attributes["state_class"] = "total"
|
|
attributes["unit_of_measurement"] = "kWh"
|
|
return attributes
|
|
|
|
|
|
class DailyAverageKWHSensor(FplEntity):
|
|
>>>>>>> master
|
|
def __init__(self, coordinator, config, account):
|
|
super().__init__(coordinator, config, account, "Daily Average KWH")
|
|
|
|
@property
|
|
def state(self):
|
|
try:
|
|
self._state = self.getData("dailyAverageKWH")
|
|
except:
|
|
pass
|
|
return self._state
|
|
|
|
<<<<<<< HEAD
|
|
=======
|
|
@property
|
|
def icon(self):
|
|
return "mdi:flash"
|
|
|
|
<<<<<<< HEAD:custom_components/fpl1/sensor_KWHSensor.py
|
|
def customAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["state_class"] = STATE_CLASS_TOTAL
|
|
return attributes
|
|
|
|
=======
|
|
def defineAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["friendly_name"] = "Daily Average"
|
|
attributes["device_class"] = "energy"
|
|
attributes["state_class"] = "total"
|
|
attributes["unit_of_measurement"] = "kWh"
|
|
return attributes
|
|
|
|
>>>>>>> master
|
|
>>>>>>> master:custom_components/fpl/sensor_KWHSensor.py
|
|
|
|
class BillToDateKWHSensor(FplEnergyEntity):
|
|
def __init__(self, coordinator, config, account):
|
|
super().__init__(coordinator, config, account, "Bill To Date")
|
|
|
|
@property
|
|
def state(self):
|
|
try:
|
|
self._state = self.getData("billToDateKWH")
|
|
except:
|
|
pass
|
|
return self._state
|
|
|
|
def customAttributes(self):
|
|
"""Return the state attributes."""
|
|
|
|
# data = self.getData("daily_usage")
|
|
# date = data[-1]["readTime"]
|
|
asOfDays = self.getData("as_of_days")
|
|
last_reset = date.today() - timedelta(days=asOfDays)
|
|
|
|
attributes = {}
|
|
attributes["state_class"] = STATE_CLASS_TOTAL_INCREASING
|
|
attributes["last_reset"] = last_reset
|
|
return attributes
|
|
|
|
|
|
<<<<<<< HEAD
|
|
class NetReceivedKWHSensor(FplEnergyEntity):
|
|
=======
|
|
def defineAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["friendly_name"] = "Billing Usage"
|
|
attributes["device_class"] = "energy"
|
|
attributes["state_class"] = "total_increasing"
|
|
attributes["unit_of_measurement"] = "kWh"
|
|
if self.getData("billStartDate") is not None:
|
|
attributes["last_reset"] = self.getData("billStartDate")
|
|
return attributes
|
|
|
|
|
|
class NetReceivedKWHSensor(FplEntity):
|
|
>>>>>>> master
|
|
def __init__(self, coordinator, config, account):
|
|
super().__init__(coordinator, config, account, "Received Reading")
|
|
|
|
@property
|
|
def state(self):
|
|
try:
|
|
self._state = self.getData("recMtrReading")
|
|
except:
|
|
pass
|
|
return self._state
|
|
|
|
def customAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["state_class"] = STATE_CLASS_TOTAL_INCREASING
|
|
return attributes
|
|
|
|
<<<<<<< HEAD
|
|
|
|
class NetDeliveredKWHSensor(FplEnergyEntity):
|
|
=======
|
|
def defineAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["friendly_name"] = "Meter Return to Grid"
|
|
attributes["device_class"] = "energy"
|
|
attributes["state_class"] = "total_increasing"
|
|
attributes["unit_of_measurement"] = "kWh"
|
|
if self.getData("billStartDate") is not None:
|
|
attributes["last_reset"] = self.getData("billStartDate")
|
|
|
|
return attributes
|
|
|
|
|
|
class NetDeliveredKWHSensor(FplEntity):
|
|
>>>>>>> master
|
|
def __init__(self, coordinator, config, account):
|
|
super().__init__(coordinator, config, account, "Delivered Reading")
|
|
|
|
@property
|
|
def state(self):
|
|
try:
|
|
self._state = self.getData("delMtrReading")
|
|
except:
|
|
try:
|
|
self._state = self.getData("billToDateKWH")
|
|
except:
|
|
pass
|
|
return self._state
|
|
|
|
<<<<<<< HEAD:custom_components/fpl1/sensor_KWHSensor.py
|
|
def customAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["state_class"] = STATE_CLASS_TOTAL_INCREASING
|
|
=======
|
|
@property
|
|
def icon(self):
|
|
return "mdi:flash"
|
|
|
|
def defineAttributes(self):
|
|
"""Return the state attributes."""
|
|
attributes = {}
|
|
attributes["friendly_name"] = "Meter Consumption"
|
|
attributes["device_class"] = "energy"
|
|
attributes["state_class"] = "total_increasing"
|
|
attributes["unit_of_measurement"] = "kWh"
|
|
if self.getData("billStartDate") is not None:
|
|
attributes["last_reset"] = self.getData("billStartDate")
|
|
|
|
>>>>>>> master:custom_components/fpl/sensor_KWHSensor.py
|
|
return attributes
|