114 lines
3.9 KiB
Python
114 lines
3.9 KiB
Python
import appdaemon.plugins.hass.hassapi as hass
|
|
import datetime
|
|
import random
|
|
#
|
|
# Entity timer
|
|
# Turn on and off this entities
|
|
#
|
|
# Args:
|
|
#
|
|
# None
|
|
#
|
|
# Release Notes
|
|
#
|
|
# Version 1.0:
|
|
# Initial Version
|
|
|
|
class XmasTreeTimer(hass.Hass):
|
|
effects = []
|
|
def initialize(self):
|
|
self.effects = ['[FX=00] Solid',
|
|
'[FX=01] Blink',
|
|
'[FX=02] Breathe',
|
|
'[FX=03] Wipe',
|
|
'[FX=04] Wipe Random',
|
|
'[FX=05] Random Colors',
|
|
'[FX=06] Sweep',
|
|
'[FX=07] Dynamic',
|
|
'[FX=08] Colorloop',
|
|
'[FX=09] Rainbow',
|
|
'[FX=10] Scan',
|
|
'[FX=11] Dual Scan',
|
|
'[FX=12] Fade',
|
|
'[FX=13] Chase',
|
|
'[FX=14] Chase Rainbow',
|
|
'[FX=15] Running',
|
|
'[FX=16] Saw',
|
|
'[FX=17] Twinkle',
|
|
'[FX=18] Dissolve',
|
|
'[FX=19] Dissolve Rnd',
|
|
'[FX=20] Sparkle',
|
|
'[FX=21] Dark Sparkle',
|
|
'[FX=22] Sparkle+',
|
|
'[FX=23] Strobe',
|
|
'[FX=24] Strobe Rainbow',
|
|
'[FX=25] Mega Strobe',
|
|
'[FX=26] Blink Rainbow',
|
|
'[FX=27] Android',
|
|
'[FX=28] Chase',
|
|
'[FX=29] Chase Random',
|
|
'[FX=30] Chase Rainbow',
|
|
'[FX=31] Chase Flash',
|
|
'[FX=32] Chase Flash Rnd',
|
|
'[FX=33] Rainbow Runner',
|
|
'[FX=34] Colorful',
|
|
'[FX=35] Traffic Light',
|
|
'[FX=36] Sweep Random',
|
|
'[FX=37] Running 2',
|
|
'[FX=38] Red & Blue',
|
|
'[FX=39] Stream',
|
|
'[FX=40] Scanner',
|
|
'[FX=41] Lighthouse',
|
|
'[FX=42] Fireworks',
|
|
'[FX=43] Rain',
|
|
'[FX=44] Merry Christmas',
|
|
'[FX=45] Fire Flicker',
|
|
'[FX=46] Gradient',
|
|
'[FX=47] Loading',
|
|
'[FX=48] In Out',
|
|
'[FX=49] In In',
|
|
'[FX=50] Out Out',
|
|
'[FX=51] Out In',
|
|
'[FX=52] Circus',
|
|
'[FX=53] Halloween',
|
|
'[FX=54] Tri Chase',
|
|
'[FX=55] Tri Wipe',
|
|
'[FX=56] Tri Fade',
|
|
'[FX=57] Lightning',
|
|
'[FX=58] ICU',
|
|
'[FX=59] Multi Comet',
|
|
'[FX=60] Dual Scanner',
|
|
'[FX=61] Stream 2',
|
|
'[FX=62] Oscillate',
|
|
'[FX=63] Pride 2015',
|
|
'[FX=64] Juggle',
|
|
'[FX=65] Palette',
|
|
'[FX=66] Fire 2012',
|
|
'[FX=67] Colorwaves',
|
|
'[FX=68] BPM',
|
|
'[FX=69] Fill Noise',
|
|
'[FX=70] Noise 1',
|
|
'[FX=71] Noise 2',
|
|
'[FX=72] Noise 3',
|
|
'[FX=73] Noise 4',
|
|
'[FX=74] Colortwinkle',
|
|
'[FX=75] Lake',
|
|
'[FX=76] Meteor',
|
|
'[FX=77] Smooth Meteor',
|
|
'[FX=78] Railway',
|
|
'[FX=79] Ripple',
|
|
'[FX=80] Twinklefox',
|
|
'[FX=81] Twinklecat',
|
|
'[FX=82] Halloween Eyes']
|
|
# self.effects = ['FX=00','FX=01','FX=02']
|
|
# self.on_timer = self.run_every(self.on_timer_tick, on_time)
|
|
# self.off_timer = self.run_daily(self.off_timer_tick, off_time)
|
|
self.run_every(self.run_every_c, datetime.datetime.now(), 15)
|
|
|
|
def run_every_c(self, kwargs):
|
|
effect = random.choice(self.effects)
|
|
# rand = random.randint(0, 82)
|
|
# effect = "FX={}".format(rand)
|
|
self.log('random: {}'.format(effect))
|
|
self.call_service("mqtt/publish", topic = 'wled/d85df2/api', payload = effect)
|