Updated to V5 Version - Hassio Style

Lots of updates here.

Updated my Readme - Added Affiliate Links, added some more information, better organized devices
Updated gitignore with paths realtive to my hassio config
Combined my switches and lights into single yaml files instead of the directory structure previously
Added zigbee2mqtt.yaml to packages - contains automations and such for zigbee2mqtt

Archived my previous version in the V4-config branch.
This commit is contained in:
Jeffrey Stone
2019-11-08 12:54:11 -05:00
parent f00f5bdccb
commit e02d084c92
74 changed files with 1409 additions and 1051 deletions

View File

@@ -0,0 +1,66 @@
#
# Script to fade lights in slowly
# Takes the following inputs
# entity_id = The light you want to fade in
# transition: = # Seconds to go from current to end brightness
# brightness: = # Brightness to end at
# brightness_pct: = # Brightness to end at as a percentage
#
entity_id = data.get('entity_id')
brightness = data.get('brightness', None)
brightness_pct = data.get('brightness_pct', None)
if entity_id is not None and (brightness is not None or brightness_pct is not None):
light = hass.states.get(entity_id)
start_level = light.attributes.get('brightness', 0)
transition = int(data.get('transition', 0))
""" Use brightness or convert brightness_pct """
end_level = int(brightness) if brightness is not None else math.ceil(
float(brightness_pct) * 2.55)
""" Calculate number of steps """
steps = int(math.fabs((start_level - end_level)))
fadeout = True if start_level > end_level else False
""" Calculate the delay time """
delay = round(transition / steps, 3)
""" Disable delay and increase stepping if delay < 3/4 second """
if (delay < .750):
delay = 0
steps = int(steps / 5)
step_by = 5
else:
step_by = 1
logger.info('Setting brightness of ' + str(entity_id) +
' from ' + str(start_level) + ' to ' + str(end_level) +
' steps ' + str(steps) + ' delay ' + str(delay))
new_level = start_level
for x in range(steps):
current_level = light.attributes.get('brightness', 0)
if (fadeout and current_level < new_level):
break
elif (not fadeout and current_level > new_level):
break
else:
data = {"entity_id": entity_id, "brightness": new_level}
hass.services.call('light', 'turn_on', data)
if (fadeout):
new_level = new_level - step_by
else:
new_level = new_level + step_by
""" Do not sleep for 0 delay """
if (delay > 0):
time.sleep(delay)
""" Ensure light ends at the final state """
if (end_level > 0):
data = {"entity_id": entity_id, "brightness": end_level}
hass.services.call('light', 'turn_on', data)
else:
data = {"entity_id": entity_id}
hass.services.call('light', 'turn_off', data)

View File

@@ -0,0 +1,39 @@
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
}
)