Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lights support #139

Merged
merged 9 commits into from
Sep 26, 2024
44 changes: 44 additions & 0 deletions codes/light/1000.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"manufacturer": "Iris Ohyama",
"supportedModels": [
"LEDHCL-R2"
],
"supportedController": "Broadlink",
"commandsEncoding": "Base64",
"brightness": [
26,
51,
77,
102,
128,
153,
179,
204,
230,
255
],
"colorTemperature": [
2700,
3122,
3544,
3967,
4389,
4811,
5233,
5656,
6078,
6500
],
"commands": {
"on": "JgACAbUfMhAQEQ8REBEQERAQEBEQETAREBEQEBAREBEQEBARMRAQERAREBEPERAREBEPERAREg8QEBAREBEPERAREBEQEBARMRAQETEQMRERDzERMBEQAAEntCAyDxAREBEQEQ8REBEQEQ8RMREPERAREBEPERAREBEwERAREBAQERAREBAQERAREBAQEREQEBEPERAREBEPERAREBEwERARMBExEBARMRAxERAAASa1IDEQEBEQEBAREBEQEBAREBEwERAREBEPERAREBEPETERDxEQERAREBAQERAREBAQERAREBAQERAREQ8QEREQEBAQETERDxExETAREBEwETEQEAANBQ==",
"off": [
"JgAEAT8ith4yDxAREBEQEBAREBEQEQ8RMREPERAREBEPERAREBEQEBARERAwERAREBAQERAREBAQEREQEBEPERAREBEPERAREBEwETEQMREwERARMBEQERAAASa1IDEQEBEQEBAREBEQEBAREBEwERAREBEPERAREBEPEREQEBEPETERDxEQERAREBAQERAREBAQERAREBAQERAREBAQETERMBEwETIQEBAxEQ8REAABJ7YeMhAPERAREBEPEREQEBEQEDEREBAREBAREBAQERAREBAQERARMBEQERARDxEREBEQDxEQERAREBAQERAREBAQERARMBExEDERMBEQETAREBEQAA0F",
"JgAEAUAgsyExEg8QEBEQEg8QEBEREBAQMRERDxEQEBEQETERDxEQEBARERAQEBEQEBEQEQ8REg8REA8REBEQEQ8REBERDxARERAwERARMBExETIPMRAQERAAASa0ITEQERAQERAQERAQERAQEBExEBEQERAQEBEQMRAQERAREBEQEBAREBEQEBAREBEQEBAREBEQEBEQEBEQEBASDxEQEDIQEBAyEDERMRAxEBAREAABJrMhMhEPEQ8REBEREA8REBEREDEQERAQEBAREBExEBEQEBAQEREQERAPEREQERAPEREQERAPERERDxEQEBAREBERDxARMRAQETIQMRAxEDIPERARAA0F"
],
"brighten": "JgAEAUMgtCAyDxARERAQEBARERAQERAQMREPEREQEBEPERARERAQEBEQERAQEBARMRAQERAREBAQERAREQ8QERAREBEQEBAREBExEBARMRAREBAQMREQEBEAASa0IDIQDxEREBAREBAQEREQEBAxEREPERAQEREPEBEQERAREBAREBAREBAyEBAQEBEQERAQERAQERAQEBEREBAQEBEQETEQERAwERAREBExEBAREAABJrUfMhAQEQ8RERAREBAQEBEQETEQEBERDxARERAQEBAREBEQEBARERAREDAREBEPERAREBEPERAREBEQEBAREBEQEBARMRAREDEQERAQETEQERARAA0F",
"dim": "JgAEAUAhtCAxEBAREBEREBAQERAREBAQMREQEBARERARDxAREBEQEDIQEQ8REBAREQ8QEREQEBAREBARERAPERARERAPEREQMBExERAQMRExEBARMRAQEREAASW1IDEQEBEQEBAREBERDxAREBEwERARERAPEREQEBEQEBARMRAREBAREBAREBAREBAREBAREBAQEREQEQ8REBAREQ8yEDEQERAyDzEREBAxERAQEQABJrMhMhAQEBEQEBEQEBAREBEQEDEREBAREBEQEQ8QEREQERAxEBARDxEQEREQEQ8QEREQEBAQERAREBAREBEQEBAREDEQMREQETEQMBEQETARERAQAA0F",
"colder": "JgAEAUAgtCAyDxEQERARDxIPERAREBAQMhARDxEQERARDxEQERARDxEQERARDzIQEQ8SDxEQEQ8REBEQEBEQEBEQERARDxEQERAxEBEQEQ8yEBEPMhEQDxEAASa0IDIQEBAREBEQEBAREBEQEQ8yEBEPERAQEREQEBAREBEQEBAQEREQMRAREBAQERAREBAQEBEREBAQERAREBEPERAREDEQERAREDEQERAwERAREAABJrUgMRAREA8REBEREBAQERAREDARERARDxARERARDxARERAQEBARERAwEREQERAQEBEQERAQEBEQERAQEBEQERAQEBARMRAREBEQMBEQETEQEBEQAA0F",
"warmer": "JgAEAUAgtSAxEBAREQ8REBEQEQ8SDxEQMRAQERAREBAREBEQEBAREBARMBEREBAQEBEREBEPEBEREBEPEBEQERAQERAQEREQDxEREBARMRAwERARMg8REBAAASa0ITARERAREBAQERAQERAQERAyDxEQERAQEBEQERARDxEQEBEyDxAREBEPERARERAQEBEQERAQEBARERAQEBEQERAQEBEQEBEyDzEQEg8xERAQEQABJrMhMhAPEREQEBEPEREQEBEPETIQEBAREBEQEQ8REBAREQ8REDEQERAREBAQEBEQERAREBAQEREQEBAREBEQDxEREBEQEBAQETEQMhAQEDIQEBARAA0F",
"night": "JgAEAUAhtCAyEBAQERAREA8RERAREBEPMhARDxARERARDxEQMg8REBEQEQ8REBEQEBAREBEQERAQEBEQERAQEBEQEBEQEBEQEBExEBEQMRAyDxEQERAQEBEAASa0IDIQEBAQEREQEBAQEREQERAxEBEQEBAREBEQEBAxERAQERAREBAQERAQERAQERAREBAQEBEREBEPERAREBEQEBAQETEQEBExEDIQEBAREBEQEQABJbUgMRAREBAQEBEREBEPERAQETEQERARDxARERARDzIQEBEQEBARERAQEBEQERAPEREQERAQEBEQERAQEBEQERAQEBEQMRAREDIPMhAQERAQERARAA0F"
}
}
30 changes: 30 additions & 0 deletions codes/light/1020.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"manufacturer": "NEC",
"supportedModels": [
"RE0201-CH1",
],
"supportedController": "Broadlink",
"commandsEncoding": "Base64",
"brightness": [
26,
51,
77,
102,
128,
153,
179,
204,
230,
255
],
"commands": {
"on": "JgBIAAABJ5QTEhI4EhMTEhMSExITEhM3EzcTEhM3EzgSExI4EjgSExM3ExITNxM3EzcTNxMTEjgSExI4EhMSExMSExITNxMSEwANBQ==",
"off": [
"JgBIAAABJpQTEhI4ExITEhMSExITEhM3EzcTExI4EjgSExI4FTUTEhM3ExITNxM3EzcTOBITEjgSExI4ExITEhMSExITNxMSEwANBQ==",
"JgBOAAABJ5QTEhI4EhMSExITExITEhM3EzcTEhM3EzcTExI4EjgSExITEjgTNxM3EzcTNxMSEzgSOBITEhMSExITExITNxMSEwAH6RYOEgANBQ=="
],
"brighten": "JgBYAAABKJMVERI4EhMSExITEhMSExI4EzcTEhM3EzcTEhM4EjgSExITEjgSExM3EzcTNxMSEzcTOBITEjgSExITEhMSOBMSEwAFYAABJkoSAAxYAAEmShIADQU=",
"dim": "JgBYAAABJpQUERM3ExITEhMSExMSExI4EjgSExM3EzcTEhM3EzcTEhM4EjgSExI4EzcTNxMSEzcTEhMSEzgSExITExISOBITEgAFYQABJkoSAAxYAAEnSRMADQU=",
"night": "JgBIAAABJpQTEhI4ExITEhMSExITEhM3EzcTEhM4EjgSExI4EzcTEhMSExITNxM3EzcTOBITEjgSOBM3ExITEhMSExITNxMSEwANBQ=="
}
}
30 changes: 30 additions & 0 deletions codes/light/1021.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"manufacturer": "NEC",
"supportedModels": [
"RE0201-CH2"
],
"supportedController": "Broadlink",
"commandsEncoding": "Base64",
"brightness": [
26,
51,
77,
102,
128,
153,
179,
204,
230,
255
],
"commands": {
"on": "JgBIAAABJ5QVEBI4EhMSExMSExITEhM3EzcTEhM3EzgSExI4EjgSExU1ExITNxM3EzcWNBMTEhMSExI4EhMSExMSExITNxM3EwANBQ==",
"off": [
"JgBIAAABJ5MUERM4EhMSExITEhMVEBI4EzcTEhM3EzcTEhM3EzgSExI4EhMSOBM3EzcTNxMSExITEhM4EhMSExITEhMSOBI4EwANBQ==",
"JgBIAAABJ5MUERM3ExMSExITEhMSExI4EjgTEhM3EzcTEhM3EzgSExITEjgSOBI4EzcTNxMSExITNxMTEhMSExITEhMSOBI4EwANBQ=="
],
"brighten": "JgBYAAABJ5MUERM3ExITExITEhMSExI4EjgSExM3EzcTEhM3EzcTEhMTEjgSExI4EjgTNxMSExITNxMSEzcTEhMTEhMSOBI4EgAFYAABJ0kTAAxUAAErSRMADQU=",
"dim": "JgBYAAABKpEVEBI4EhMTEhMSExITEhM3FjQTEhM4EjgSExI4EzcTEhM3EzcTEhM4EjgSOBITEhMSExMSEzcTEhMSExITNxM3EwAFYAABJ0kTAAxaAAElShIADQU=",
"night": "JgBIAAABJpQTEhM3ExITEhMSExITEhM3EzgSExI4EjgTEhM3EzcTEhMSExITOBI4EjgSOBMSExITNxM3ExITEhMSExMSOBI4EgANBQ=="
}
}
56 changes: 56 additions & 0 deletions codes/light/1040.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"manufacturer": "Toshiba",
"supportedModels": [
"FRC-199T"
],
"supportedController": "Broadlink",
"commandsEncoding": "Base64",
"brightness": [
16,
32,
48,
64,
80,
96,
112,
128,
144,
160,
176,
192,
208,
224,
240,
255
],
"colorTemperature": [
2700,
2953,
3207,
3460,
3713,
3967,
4220,
4473,
4727,
4980,
5233,
5487,
5740,
5993,
6247,
6500
],
"commands": {
"on": "",
"off": [
"",
""
],
"brighten": "",
"dim": "",
"colder": "",
"warmer": "",
"night": ""
}
}
56 changes: 56 additions & 0 deletions codes/light/1060.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"manufacturer": "Takizumi",
"supportedModels": [
"TLR-002"
],
"supportedController": "Broadlink",
"commandsEncoding": "Base64",
"brightness": [
16,
32,
48,
64,
80,
96,
112,
128,
144,
160,
176,
192,
208,
224,
240,
255
],
"colorTemperature": [
2700,
2953,
3207,
3460,
3713,
3967,
4220,
4473,
4727,
4980,
5233,
5487,
5740,
5993,
6247,
6500
],
"commands": {
"on": "JgDYAAABKY8UERMRFDUUEBQRExITEBQ1FBETNhISFBEROBQQFDUSExMRFDUUEBQREzYUNRITExETNhQQFDYTNhQQFBETNhQ1FAAFoAABKpATERQQFDUUERMRFBAUEBQ2ExEUNRQRERMTNhQQFDYRExQQFDUUERMRFDUSOBMRExEUNRQREzYTNhITExETNhQ1FAAFoAABJ5MTERQQFDYTERQQFBAUERM2FBAUNRQRExEUNRQREzYUEBQQFDYTERQQFDUUNhQQFBAUNhMRFDUUNhMRFBAUNRQ2FAANBQ==",
"off": [
"JgAYAwABJpMVDxQREzYUEBQQFBEUEBM2FBAUNhQQFBAUNRQREzYUEBQQFDYUEBQQFDYTNhQQFBAUNhQQFDUUNhMRFBAUNRQ2EwAFoAABJ5MUEBQQFDYUEBQQFBAUERM2FBAUNhMRExEUNRQQFDYUEBQQFDYTERQQFDUUNhMRFBAUNRQRFDUUNRQRExEROBU0FAAFoAABKZEUEBQQFDUUERMRFBAUEBI4ExEUNRQQFBETNhQQFDUVEBQQEjcUEBQREzYUNRUQExEUNRQQFDYUNRQQFBAUNhQ1FQAFngABJ5MUEBQREzYUEBQQFBETERQ1FBAUNhMRFBAUNhMRFDUUEBQREzYUEBQQFDYTNhQQFBETNhQQFDUUNhMRFBAUNRQ2EwAFoAABJ5MSEhQREzYTERQQFBAUERM2FBAUNRQRExEUNRQREzYTERQQFTUTERQQFDUUNhMRFBETNhMREzYUNRITExESNxQ1FAAFoQABJpMTERMRFDUUERMREhIUEBQ2EhIUNRQQFBETNhISFDYTERMSEzUUERMREzYUNRQRExEUNRQQFDYUNRQQFBETNhQ1FAAFoAABJpMUERMRFDUUEBQRExEUEBQ1FBETNhMRFBAUNhMRFDUUERMREzYUEBQQFDYTNhQQFBEROBMRFDUUNhMRFBAUNhM2EwAFoQABJpMTERQQFDYTEhMQFBETERQ1FBAUNhMRFBAUNRQREzYTERQQFDYTERQREzYTNhMRFBASOBMRFDUSNxITExEUNRQ2EwAFoAABKZESEhQQFDUSExMRFBETEBQ2ExITNRITExESNxQREzYTERMRFDUUERMRFDUSOBMRExEUNRITEzYSNxQQFBETNhI3EgAFogABKZASExMREzYUEBQRExETERQ1FBETNhITExETNhISEzYSExMREzYSEhQREzYSNxITExETNhISFDYROBISExEUNhE4EgAFogABKJESEhQREzYSEhQQFBERExM2FBAUNhETExITNRITEzYSEhQREzYTEhMREzYROBISExEUNhEUEjYSOBETExESNxI4EgANBQ==",
"JgDYAAABJZMUEBISEjgSEhISEhISExE4FBASOBMREhISNxQRETgUEBITERMROBM2EzcROBQ1FBESNxQ1FBERExETEhISExE4EgAFogABKJIVDxISEjgTERISEhISExE4FBATNhMSERMSNxMREzcUEBISExIROBM2EzcTNhI3FBASOBQ1FBATEhETEhISEhI4FAAFoAABJ5MTERISEjcUERETEhISEhI4EhISNxMRExIROBQQEjgRExISEhISOBI3FTQSOBM2FBASOBM2FBASEhITERMSEhI3EwANBQ=="
],
"brighten": "JgDYAAABJpMUEBISEjgSEhISEhISExE4ExESOBISEhISNxMSETgTERISEhMRExISEjcTEhE4ExESOBI3EzYVNRISEjcTERI4EwAFoQABKJEVEBISEjcVEBETEhISEhI4ExESNxMREhMROBMREjgSEhISEhISExETETgTERI4EhISNxM3ETgUNRUPEjgTERI3EwAFoQABJ5MVDxITETgTERISEhMRExI3ExESOBISEhISOBETEjcTERITERMSEhISEjgUEBI3ExESOBE4EzYVNRISEjcTEhE4EwANBQ==",
"dim": "JgCQAAABJ5ESEhITETgSEhISEhMRExE4EhISOBETEhISNxITETgSEhITERMROBISEjgROBI3EhMROBI3EhMROBISEhISExE4EgAFoQABKZESExETEjcSEhITERMSEhI3EhMROBISEhISOBISEjcSExETEhISNxITETgSNxI4ERMSNxI4ERMSNxISEhMRExI3EgANBQ==",
"colder": "JgAgAQABJZMVDxQQFDYUEBQQFBETERE4FBAUNhQQFBAXMxMRFDUUEBQQFBETNhQQFBETERQ1FBAUNhQ1FBAUNhI3EzYUERQ1EwAFoQABJpMVEBMRFDUUERMRExEUERM2ExETNxMQFBETNhMRFDYTERMRFBAUNhMRExEUERM2ERQSNhI4ExETNhQ1EjgSEhM2EgAFogABKZESEhQREzYTEhMRExETERM2EhMTNhITEhITNhETEzYSExMRExETNhITExETERM2EhMTNhI3EhIUNhE4EzYSExE4EgAFogABKZESEhMSEzUSExMRExEUERM2ERQSNhITExETNhMRFDYRExMRFBETNhETExITEBQ2ExETNhI4ERMTNhI4ETgSEhQ1EgANBQ==",
"warmer": "JgDYAAABJ5ERExISEjcSExETEhISEhI4ERMSNxITERMROBISEjgRExISEhMRExMREhITNhI4ERMSNxI4ETgSNxI4ERMSEhI3EgAFowABKZASEhISEjgRExISEhMRExM2EhISOBETEhITNhITETgSEhITERMRExMRExEUNhE4EhISOBE4EjcSOBE4EhISEhI4EgAFoQABKZESEhITEzYSEhQRExETERQ1FBETNhISEhIUNhETEzYSExMRExEUEBQRExETNhI3EhMTNhI3EjgROBI3EhMTERM2EwANBQ==",
"night": "JgDYAAABJpISExETEjcSExETERMSEhI4ERMROBISEhMROBISEjcSExETEhISEhI4EjcSEhI4ERMSNxI4ETgSEhISEjgRExI3EgAFoQABKpESExETETgSEhITERMSEhI3EhMROBITERMROBISEjcSExETEhISEhI4ETgSEhI4ERMROBI4ETgSEhISEjgRExI3EgAFowABKZASEhITETgSEhITERMRFBE3EhMROBISEhISOBETEjcSEhITERMSEhM2EjgSEhI3EhMROBI3EjgRExISEjcSExE4EgANBQ=="
}
}
27 changes: 27 additions & 0 deletions custom_components/smartir/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,11 @@ async def check_file(file_name, device_data, device_class, check_data):
file_name, device_data, device_class, check_data
):
return True
elif device_class == "light":
if DeviceData.check_file_light(
file_name, device_data, device_class, check_data
):
return True
return False

@staticmethod
Expand Down Expand Up @@ -532,6 +537,11 @@ def check_file_fan(file_name, device_data, device_class, check_data):
def check_file_media_player(file_name, device_data, device_class, check_data):
return True

@staticmethod
def check_file_light(file_name, device_data, device_class, check_data):
return True

# round to given precision
@staticmethod
def precision_round(number, precision):
if precision == 0.1:
Expand All @@ -544,3 +554,20 @@ def precision_round(number, precision):
return round(float(number) / int(precision)) * int(precision)
else:
return None

# find the closest match in a sorted list
@staticmethod
def closest_match(value, list):
prev_val = None
for index, entry in enumerate(list):
if entry > (value or 0):
if prev_val is None:
return index
diff_lo = value - prev_val
diff_hi = entry - value
if diff_lo < diff_hi:
return index - 1
return index
prev_val = entry

return len(list) - 1
Loading
Loading