def alarm(): """Flash a red alarm.""" click.echo("Alarm!") transitions = tr.alarm(500) flow = yeelight.Flow(count=0, transitions=transitions) for bulb in BULBS: bulb.start_flow(flow)
def alarm(duration=250): """ Red alarm; flashing bright red to dark red. :param int duration: The duration between hi/lo brightness,in milliseconds. :returns: An infinite Flow consisting of 2 transitions. :rtype: Flow """ return Flow(count=0, action=Action.recover, transitions=transitions.alarm(duration))
def set_effect(self, effect) -> None: """Activate effect.""" if effect: from yeelight import (Flow, BulbException) from yeelight.transitions import (disco, temp, strobe, pulse, strobe_color, alarm, police, police2, christmas, rgb, randomloop, slowdown) if effect == EFFECT_STOP: self._bulb.stop_flow() return if effect == EFFECT_DISCO: flow = Flow(count=0, transitions=disco()) if effect == EFFECT_TEMP: flow = Flow(count=0, transitions=temp()) if effect == EFFECT_STROBE: flow = Flow(count=0, transitions=strobe()) if effect == EFFECT_STROBE_COLOR: flow = Flow(count=0, transitions=strobe_color()) if effect == EFFECT_ALARM: flow = Flow(count=0, transitions=alarm()) if effect == EFFECT_POLICE: flow = Flow(count=0, transitions=police()) if effect == EFFECT_POLICE2: flow = Flow(count=0, transitions=police2()) if effect == EFFECT_CHRISTMAS: flow = Flow(count=0, transitions=christmas()) if effect == EFFECT_RGB: flow = Flow(count=0, transitions=rgb()) if effect == EFFECT_RANDOM_LOOP: flow = Flow(count=0, transitions=randomloop()) if effect == EFFECT_FAST_RANDOM_LOOP: flow = Flow(count=0, transitions=randomloop(duration=250)) if effect == EFFECT_SLOWDOWN: flow = Flow(count=0, transitions=slowdown()) if effect == EFFECT_WHATSAPP: flow = Flow(count=2, transitions=pulse(37, 211, 102)) if effect == EFFECT_FACEBOOK: flow = Flow(count=2, transitions=pulse(59, 89, 152)) if effect == EFFECT_TWITTER: flow = Flow(count=2, transitions=pulse(0, 172, 237)) try: self._bulb.start_flow(flow) except BulbException as ex: _LOGGER.error("Unable to set effect: %s", ex)
def showPanel(self): self.bulb = Bulb(self.ipEntry.get(), effect="smooth", duration=1000) self.confirmIp.destroy() self.ipEntry.destroy() self.ipText.destroy() # -------------------------------------| RGB FRAME |--------------------------------------------- self.rgb_handler = tk.Frame(master=self.window, bg='black') self.rgb_handler.grid(row=0, column=0, sticky=tk.N, pady=(15, 0), padx=(50, 0)) self.redLabel = tk.Label(master=self.rgb_handler, text="Red", bg="red", fg='white') self.greenLabel = tk.Label(master=self.rgb_handler, text="Green", bg="green", fg='white') self.blueLabel = tk.Label(master=self.rgb_handler, text="Blue", bg="blue", fg='white') self.redLabel.grid(row=0, column=0, sticky=tk.S, pady=(12, 2)) self.greenLabel.grid(row=0, column=1, sticky=tk.S, pady=(12, 2)) self.blueLabel.grid(row=0, column=2, sticky=tk.S, pady=(12, 2)) self.redSlider = tk.Scale(master=self.rgb_handler, from_=1, to=255, tickinterval=60, orient=tk.VERTICAL, bg="red", fg='white', command=self.setRedText) self.greenSlider = tk.Scale(master=self.rgb_handler, from_=1, to=255, tickinterval=60, orient=tk.VERTICAL, bg="green", fg='white', command=self.setGreenText) self.blueSlider = tk.Scale(master=self.rgb_handler, from_=1, to=255, tickinterval=60, orient=tk.VERTICAL, bg="blue", fg='white', command=self.setBlueText) self.redSlider.grid(row=1, column=0, sticky=tk.W, padx=(10, 10), pady=10) self.greenSlider.grid(row=1, column=1, sticky=tk.W, padx=(10, 10)) self.blueSlider.grid(row=1, column=2, sticky=tk.W, padx=(10, 10)) self.redInput = tk.Entry(master=self.rgb_handler, width=5, bg='red', fg='white') self.greenInput = tk.Entry(master=self.rgb_handler, width=5, bg='green', fg='white') self.blueInput = tk.Entry(master=self.rgb_handler, width=5, bg='blue', fg='white') self.redInput.insert(tk.END, 1) self.greenInput.insert(tk.END, 1) self.blueInput.insert(tk.END, 1) self.redInput.grid(row=2, column=0, sticky=tk.N, padx=(10, 10)) self.greenInput.grid(row=2, column=1, sticky=tk.N, padx=(10, 10)) self.blueInput.grid(row=2, column=2, sticky=tk.N, padx=(10, 10)) self.colorFrame = tk.Frame(master=self.rgb_handler, bg="black", width=40, height=40, relief=tk.RIDGE, borderwidth=2) self.colorFrame.grid(row=3, column=1, sticky=tk.S, padx=(10, 10), pady=(10, 15)) self.applyButton = tk.Button(master=self.rgb_handler, command=self.setColors, text="Apply Color") self.applyButton.grid(row=4, column=1, sticky=tk.S) # ---------------------------------| POWER FRAME |---------------------------------------- self.power_handler = tk.Frame(master=self.window, bg='black') self.power_handler.grid(row=0, column=1, sticky=tk.N, padx=(60, 60), pady=20) self.title = tk.Label(master=self.power_handler, text='Xiaomi led Bulb remote control', fg='white', bg='black', font=('Helvetica', 14, 'bold')) self.title.grid(row=0, column=1, sticky=tk.N) self.buttonsHandler = tk.Frame(master=self.power_handler, bg='black') self.buttonsHandler.grid(row=1, column=1, sticky=tk.N, pady=10) self.turnOnButton = tk.Button(master=self.buttonsHandler, text="ON", width=15, command=self.turnOnBulb, padx=5) self.turnOnButton.grid(row=0, column=0, sticky=tk.N, padx=5) self.turnOffButton = tk.Button(master=self.buttonsHandler, text="OFF", width=15, command=self.turnOffBulb) self.turnOffButton.grid(row=0, column=1, sticky=tk.N, padx=5) self.title = tk.Label(master=self.power_handler, text='Brightness', fg='white', bg='black', font=('Helvetica', 12, 'bold')) self.title.grid(row=2, column=1, sticky=tk.N, pady=(20, 5)) self.brightnessSlider = tk.Scale(master=self.power_handler, from_=0, to=100, tickinterval=20, orient=tk.HORIZONTAL, bg="#FFFFFF", fg='#000000', length=200) self.brightnessSlider.set(80) self.brightnessSlider.grid(row=3, column=1, sticky=tk.N, pady=10) self.applyBrightnessButton = tk.Button(master=self.power_handler, text="Apply Brightness", width=15, command=self.setBrightness) self.applyBrightnessButton.grid(row=4, column=1, sticky=tk.N, pady=10) # ---------------------------| MODES FRAME |---------------------------------- self.modes_handler = tk.Frame(master=self.window, bg='black') self.modes_handler.grid(row=0, column=2, sticky=tk.N, padx=30, pady=50) self.mode_1 = tk.Button(master=self.modes_handler, text="Flow 1 (smooth)", width=15, command=lambda: self.showFlow([ RGBTransition(20, 255, 20, 2000), RGBTransition(255, 20, 20, 2000), RGBTransition(20, 20, 255, 2000), RGBTransition(255, 255, 20, 2000), RGBTransition(255, 20, 255, 2000), RGBTransition(20, 255, 255, 2000) ], 10)) self.mode_1.grid(column=0, row=0, pady=(0, 15)) self.mode_2 = tk.Button(master=self.modes_handler, text="Flow 2 (speed)", width=15, command=lambda: self.showFlow([ RGBTransition(20, 255, 20, 100), RGBTransition(255, 20, 20, 100), RGBTransition(20, 20, 255, 100), RGBTransition(255, 255, 20, 100), RGBTransition(255, 20, 255, 100), RGBTransition(20, 255, 255, 100) ], 30)) self.mode_2.grid(column=0, row=1, pady=(0, 15)) self.mode_3 = tk.Button(master=self.modes_handler, text="Flow 3 (temp)", width=15, command=lambda: self.showFlow([ TemperatureTransition(6500, 1000), TemperatureTransition(5200, 1000), TemperatureTransition(4000, 1000), TemperatureTransition(2800, 1000), TemperatureTransition(1700, 1000) ], 5)) self.mode_3.grid(column=0, row=2, pady=(0, 15)) self.mode_4 = tk.Button(master=self.modes_handler, text="Flow 4 (disco)", width=15, command=lambda: self.showFlow(disco(), 5)) self.mode_4.grid(column=0, row=3, pady=(0, 15)) self.mode_5 = tk.Button(master=self.modes_handler, text="Flow 5 (strobe)", width=15, command=lambda: self.showFlow(strobe(), 20)) self.mode_5.grid(column=0, row=4, pady=(0, 15)) self.mode_6 = tk.Button(master=self.modes_handler, text="Flow 6 (alarm)", width=15, command=lambda: self.showFlow(alarm(), 5)) self.mode_6.grid(column=0, row=5, pady=(0, 15)) self.mode_7 = tk.Button(master=self.modes_handler, text="Flow 7 (police)", width=15, command=lambda: self.showFlow(police(), 10)) self.mode_7.grid(column=0, row=6, pady=(0, 15)) self.mode_8 = tk.Button(master=self.modes_handler, text="Flow 8 (smooth)", width=15, command=lambda: self.showFlow(lsd(), 5)) self.mode_8.grid(column=0, row=7, pady=(0, 15)) self.mode_9 = tk.Button(master=self.modes_handler, text="Flow 9 (christmas)", width=15, command=lambda: self.showFlow(christmas(), 5)) self.mode_9.grid(column=0, row=8, pady=(0, 15)) self.mode_10 = tk.Button( master=self.modes_handler, text="Flow 10 (random)", width=15, command=lambda: self.showFlow(random_loop(), 5)) self.mode_10.grid(column=0, row=9, pady=(0, 15)) self.quitBT = tk.Button(master=self.window, text="Quit", font=('Helvetica', 12, 'bold'), command=self.quit) self.quitBT.grid(column=1, row=1, pady=(0, 15))
import tkinter from tkinter.colorchooser import * from yeelight import Bulb, discover_bulbs, transitions, Flow from PIL import Image import pyautogui listOfBulbs = [] brightness = 100 isFlow = False preMadeTransitions = { 'Alarm': transitions.alarm(), 'Christmas': transitions.christmas(), 'Disco': transitions.disco(), 'LSD': transitions.lsd(), 'Police': transitions.police(), 'Police 2': transitions.police2(), 'Random Loop': transitions.randomloop(), 'RGB': transitions.rgb(), 'Slowdown': transitions.slowdown(), 'Strobe': transitions.strobe(), 'Strobe Color': transitions.strobe_color(), 'Temp': transitions.temp() } def searchForBulbs(): global listOfBulbs listOfBulbs = [] results = discover_bulbs() for bulb in results: listOfBulbs.append(Bulb(bulb.get("ip")))