40 lines
904 B
Python
40 lines
904 B
Python
today = datetime.datetime.now().date()
|
|
|
|
name = data.get('name')
|
|
type = data.get('type')
|
|
sensorName = "sensor.{}_{}".format(type , name.replace(" " , "_"))
|
|
|
|
dateStr = data.get('date')
|
|
dateSplit = dateStr.split("/")
|
|
|
|
dateDay = int(dateSplit[0])
|
|
dateMonth = int(dateSplit[1])
|
|
dateYear = int(dateSplit[2])
|
|
date = datetime.date(dateYear,dateMonth,dateDay)
|
|
|
|
thisYear = today.year
|
|
nextOccur = datetime.date(thisYear , dateMonth , dateDay)
|
|
|
|
numberOfDays = 0
|
|
years = int(thisYear) - dateYear
|
|
|
|
|
|
if today < nextOccur:
|
|
numberOfDays = (nextOccur - today).days
|
|
|
|
elif today > nextOccur:
|
|
nextOccur = datetime.date(thisYear+1 , dateMonth , dateDay)
|
|
numberOfDays = int((nextOccur - today).days)
|
|
years = years+1
|
|
|
|
|
|
hass.states.set(sensorName , numberOfDays ,
|
|
{
|
|
"icon" : "mdi:calendar-star" ,
|
|
"unit_of_measurement" : "days" ,
|
|
"friendly_name" : "{}'s {}".format(name, type) ,
|
|
"years" : years
|
|
}
|
|
)
|
|
|