diff --git a/usermods/JSON_IR_remote/21-key_ir.json b/usermods/JSON_IR_remote/21-key_ir.json new file mode 100644 index 00000000..cc71b14d --- /dev/null +++ b/usermods/JSON_IR_remote/21-key_ir.json @@ -0,0 +1,119 @@ +{ + "desc": "21-key", + "0xFFA25D": { + "label": "On", + "pos": "1x1", + "cmd": "T=1" + }, + "0xFF629D": { + "label": "Off", + "pos": "1x2", + "cmd": "T=0" + }, + "0xFFE21D": { + "label": "Flash", + "pos": "1x3", + "cmnt": "Cycle Effects", + "cmd": "CY=0&FX=~" + }, + "0xFF22DD": { + "label": "Strobe", + "pos": "2x1", + "cmnt": "Sinelon Dual", + "cmd": "CY=0&FX=93" + }, + "0xFF02FD": { + "label": "Fade", + "pos": "2x2", + "cmnt": "Rain", + "cmd": "CY=0&FX=43" + }, + "0xFFC23D": { + "label": "Smooth", + "pos": "2x3", + "cmnt": "Aurora", + "cmd": "CY=0&FX=38" + }, + "0xFFE01F": { + "label": "Bright +", + "pos": "3x1", + "cmd": "A=~16" + }, + "0xFFA857": { + "label": "Bright -", + "pos": "3x2", + "cmd": "A=~-16" + }, + "0xFF906F": { + "label": "White", + "pos": "3x3", + "cmd": "FP=5&CL=hFFFFFF&C2=hFFFFFF&C3=hA8A8A8" + }, + "0xFF6897": { + "label": "Red", + "pos": "4x1", + "cmnt": "Lava", + "cmd": "FP=8" + }, + "0xFF9867": { + "label": "Green", + "pos": "4x2", + "cmnt": "Forest", + "cmd": "FP=10" + }, + "0xFFB04F": { + "label": "Blue", + "pos": "4x3", + "cmnt": "Breeze", + "cmd": "FP=15" + }, + "0xFF30CF": { + "label": "Tomato", + "pos": "5x1", + "cmd": "FP=5&CL=hFF6347&C2=hFFBF47&C3=hA85859" + }, + "0xFF18E7": { + "label": "LightGreen", + "pos": "5x2", + "cmnt": "Rivendale", + "cmd": "FP=14" + }, + "0xFF7A85": { + "label": "SkyBlue", + "pos": "5x3", + "cmnt": "Ocean", + "cmd": "FP=9" + }, + "0xFF10EF": { + "label": "Orange", + "pos": "6x1", + "cmnt": "Orangery", + "cmd": "FP=47" + }, + "0xFF38C7": { + "label": "Aqua", + "pos": "6x2", + "cmd": "FP=5&CL=hFFFF&C2=h7FFF&C3=h39A895" + }, + "0xFF5AA5": { + "label": "Purple", + "pos": "6x3", + "cmd": "FP=5&CL=h663399&C2=h993399&C3=h473864" + }, + "0xFF42BD": { + "label": "Yellow", + "pos": "7x1", + "cmd": "FP=5&CL=hFFFF00&C2=hFFC800&C3=hFDFFDE" + }, + "0xFF4AB5": { + "label": "Cyan", + "pos": "7x2", + "cmnt": "Beech", + "cmd": "FP=22" + }, + "0xFF52AD": { + "label": "Pink", + "pos": "7x3", + "cmd": "FP=5&CL=hFFC0CB&C2=hFFD4C0&C3=hA88C96" + } +} \ No newline at end of file diff --git a/usermods/JSON_IR_remote/24-key_ir.json b/usermods/JSON_IR_remote/24-key_ir.json new file mode 100644 index 00000000..48be10b9 --- /dev/null +++ b/usermods/JSON_IR_remote/24-key_ir.json @@ -0,0 +1,147 @@ +{ + "desc": "24-key", + "0xF700FF": { + "label": "+", + "pos": "1x1", + "cmnt": "Speed +", + "cmd": "SX=~16" + }, + "0xF7807F": { + "label": "-", + "pos": "1x2", + "cmnt": "Speed -", + "cmd": "SX=~-16" + }, + "0xF740BF": { + "label": "On/Off", + "pos": "1x3", + "cmnt": "Toggle On/Off", + "cmd": "T=2" + }, + "0xF7C03F": { + "label": "W", + "pos": "1x4", + "cmnt": "Cycle color palette", + "cmd": "FP=~" + }, + "0xF720DF": { + "label": "R", + "pos": "2x1", + "cmnt": "Lava", + "cmd": "FP=8" + }, + "0xF7A05F": { + "label": "G", + "pos": "2x2", + "cmnt": "Forest", + "cmd": "FP=10" + }, + "0xF7609F": { + "label": "B", + "pos": "2x3", + "cmnt": "Breeze", + "cmd": "FP=15" + }, + "0xF7E01F": { + "label": "Bright -", + "pos": "2x4", + "cmnt": "Bright -", + "cmd": "A=~-16" + }, + "0xF710EF": { + "label": "Timer1H", + "pos": "3x1", + "cmnt": "Timer 60 min", + "cmd": "NL=60&NT=0" + }, + "0xF7906F": { + "label": "Timer4H", + "pos": "3x2", + "cmnt": "Timer 30 min", + "cmd": "NL=30&NT=0" + }, + "0xF750AF": { + "label": "Timer8H", + "pos": "3x3", + "cmnt": "Timer 15 min", + "cmd": "NL=15&NT=0" + }, + "0xF7D02F": { + "label": "Bright128", + "pos": "3x4", + "cmnt": "Bright 128", + "cmd": "A=128" + }, + "0xF730CF": { + "label": "Music1", + "pos": "4x1", + "cmnt": "Cycle FX +", + "cmd": "FX=~" + }, + "0xF7B04F": { + "label": "Music2", + "pos": "4x2", + "cmnt": "Cycle FX -", + "cmd": "FX=~-1" + }, + "0xF7708F": { + "label": "Music3", + "pos": "4x3", + "cmnt": "Reset FX and FP", + "cmd": "FX=1&PF=6" + }, + "0xF7F00F": { + "label": "Bright +", + "pos": "4x4", + "cmnt": "Bright +", + "cmd": "A=~16" + }, + "0xF708F7": { + "label": "Mode1", + "pos": "5x1", + "cmnt": "Preset 1", + "cmd": "PL=1" + }, + "0xF78877": { + "label": "Mode2", + "pos": "5x2", + "cmnt": "Preset 2", + "cmd": "PL=2" + }, + "0xF748B7": { + "label": "Mode3", + "pos": "5x3", + "cmnt": "Preset 3", + "cmd": "PL=3" + }, + "0xF7C837": { + "label": "Up", + "pos": "5x4", + "cmnt": "Intensity +", + "cmd": "IX=~16" + }, + "0xF728D7": { + "label": "Mode4", + "pos": "6x1", + "cmnt": "Preset 4", + "cmd": "PL=4" + }, + "0xF7A857": { + "label": "Mode5", + "pos": "6x2", + "cmnt": "Preset 5", + "cmd": "PL=5" + }, + "0xF76897": { + "label": "Cycle", + "pos": "6x3", + "cmnt": "Toggle preset cycle", + "cmd": "CY=1&PT=60000" + }, + "0xF7E817": { + "label": "Down", + "pos": "6x4", + "cmnt": "Intensity -", + "cmd": "IX=~-16" + } +} \ No newline at end of file diff --git a/usermods/JSON_IR_remote/32-key_ir.json b/usermods/JSON_IR_remote/32-key_ir.json new file mode 100644 index 00000000..f58c7795 --- /dev/null +++ b/usermods/JSON_IR_remote/32-key_ir.json @@ -0,0 +1,185 @@ +{ + "desc": "32-key", + "0xFF08F7": { + "label": "On", + "pos": "1x1", + "cmd": "T=1" + }, + "0xFFC03F": { + "label": "Off", + "pos": "1x2", + "cmd": "T=0" + }, + "0xFF807F": { + "label": "Auto", + "pos": "1x3", + "cmnt": "Toggle preset cycle", + "cmd": "CY=2" + }, + "0xFF609F": { + "label": "Mode", + "pos": "1x4", + "cmnt": "Cycle effects", + "cmd": "FX=~&CY=0" + }, + "0xFF906F": { + "label": "4H", + "pos": "2x1", + "cmnt": "Timer 60min", + "cmd": "NL=60&NT=0" + }, + "0xFFB847": { + "label": "6H", + "pos": "2x2", + "cmnt": "Timer 90min", + "cmd": "NL=90&NT=0" + }, + "0xFFF807": { + "label": "8H", + "pos": "2x3", + "cmnt": "Timer 120min", + "cmd": "NL=120&NT=0" + }, + "0xFFB04F": { + "label": "Timer Off", + "pos": "2x4", + "cmd": "NL=0" + }, + "0xFF9867": { + "label": "Red", + "pos": "3x1", + "cmnt": "Lava", + "cmd": "FP=8" + }, + "0xFFD827": { + "label": "Green", + "pos": "3x2", + "cmnt": "Forest", + "cmd": "FP=10" + }, + "0xFF8877": { + "label": "Blue", + "pos": "3x3", + "cmnt": "Breeze", + "cmd": "FP=15" + }, + "0xFFA857": { + "label": "White", + "pos": "3x4", + "cmd": "FP=5&CL=hFFFFFF&C2=hFFE4CD&C3=hE4E4FF" + }, + "0xFFE817": { + "label": "OrangeRed", + "pos": "4x1", + "cmnt": "Sakura", + "cmd": "FP=49" + }, + "0xFF48B7": { + "label": "SeaGreen", + "pos": "4x2", + "cmnt": "Rivendale", + "cmd": "FP=14" + }, + "0xFF6897": { + "label": "RoyalBlue", + "pos": "4x3", + "cmnt": "Ocean", + "cmd": "FP=9" + }, + "0xFFB24D": { + "label": "DarkBlue", + "pos": "4x4", + "cmnt": "Breeze", + "cmd": "FP=15" + }, + "0xFF02FD": { + "label": "Orange", + "pos": "5x1", + "cmnt": "Orangery", + "cmd": "FP=47" + }, + "0xFF32CD": { + "label": "YellowGreen", + "pos": "5x2", + "cmnt": "Aurora", + "cmd": "FP=37" + }, + "0xFF20DF": { + "label": "SkyBlue", + "pos": "5x3", + "cmnt": "Beech", + "cmd": "FP=22" + }, + "0xFF00FF": { + "label": "Orchid", + "pos": "5x4", + "cmd": "FP=5&CL=hDA70D6&C2=hDA70A0&C3=h89618F" + }, + "0xFF50AF": { + "label": "Yellow", + "pos": "6x1", + "cmd": "FP=5&CL=hFFFF00&C2=hFFC800&C3=hFDFFDE" + }, + "0xFF7887": { + "label": "DarkGreen", + "pos": "6x2", + "cmnt": "Orange and Teal", + "cmd": "FP=44" + }, + "0xFF708F": { + "label": "RebeccaPurple", + "pos": "6x3", + "cmd": "FP=5&CL=h800080&C2=h800040&C3=h4B1C54" + }, + "0xFF58A7": { + "label": "Plum", + "pos": "6x4", + "cmd": "FP=5&CL=hDDA0DD&C2=hDDA0BE&C3=h8D7791" + }, + "0xFF38C7": { + "label": "Strobe", + "pos": "7x1", + "cmnt": "Dancing Shadows", + "cmd": "FX=112&CY=0" + }, + "0xFF28D7": { + "label": "In Waves", + "pos": "7x2", + "cmnt": "Noise 1", + "cmd": "FX=70&CY=0" + }, + "0xFFF00F": { + "label": "Speed +", + "pos": "7x3", + "cmd": "SX=~16" + }, + "0xFF30CF": { + "label": "Speed -", + "pos": "7x4", + "cmd": "SX=~-16" + }, + "0xFF40BF": { + "label": "Jump", + "pos": "8x1", + "cmnt": "Colortwinkles", + "cmd": "FX=74&CY=0" + }, + "0xFF12ED": { + "label": "Fade", + "pos": "8x2", + "cmnt": "Sunrise", + "cmd": "FX=104&CY=0" + }, + "0xFF2AD5": { + "label": "Flash", + "pos": "8x3", + "cmnt": "Railway", + "cmd": "FX=78&CY=0" + }, + "0xFFA05F": { + "label": "Chase Flash", + "pos": "8x4", + "cmnt": "Washing Machine", + "cmd": "FX=113&CY=0" + } +} \ No newline at end of file diff --git a/usermods/JSON_IR_remote/40-key-black_ir.json b/usermods/JSON_IR_remote/40-key-black_ir.json new file mode 100644 index 00000000..71262b12 --- /dev/null +++ b/usermods/JSON_IR_remote/40-key-black_ir.json @@ -0,0 +1,233 @@ +{ + "desc": "40-key-black", + "0xFF3AC5": { + "label": "Bright +", + "pos": "1x1", + "cmd": "A=~16" + }, + "0xFFBA45": { + "label": "Bright -", + "pos": "1x2", + "cmd": "A=~-16" + }, + "0xFF827D": { + "label": "Off", + "pos": "1x3", + "cmd": "T=0" + }, + "0xFF02FD": { + "label": "On", + "pos": "1x4", + "cmd": "T=1" + }, + "0xFF1AE5": { + "label": "Red", + "pos": "2x1", + "cmnt": "Lava", + "cmd": "FP=8" + }, + "0xFF9A65": { + "label": "Green", + "pos": "2x2", + "cmnt": "Forest", + "cmd": "FP=10" + }, + "0xFFA25D": { + "label": "Blue", + "pos": "2x3", + "cmnt": "Breeze", + "cmd": "FP=15" + }, + "0xFF22DD": { + "label": "White", + "pos": "2x4", + "cmd": "FP=5&CL=hFFFFFF&C2=hFFFFFF&C3=hA8A8A8" + }, + "0xFF2AD5": { + "label": "Tomato", + "pos": "3x1", + "cmnt": "Yelmag", + "cmd": "FP=5&CL=hFF6347&C2=hFFBF47&C3=hA85859" + }, + "0xFFAA55": { + "label": "LightGreen", + "pos": "3x2", + "cmnt": "Rivendale", + "cmd": "FP=14" + }, + "0xFF926D": { + "label": "SkyBlue", + "pos": "3x3", + "cmnt": "Ocean", + "cmd": "FP=9" + }, + "0xFF12ED": { + "label": "WarmWhite", + "pos": "3x4", + "cmnt": "Warm White", + "cmd": "FP=5&CL=hFFE4CD&C2=hFFFCCD&C3=hA89892" + }, + "0xFF0AF5": { + "label": "OrangeRed", + "pos": "4x1", + "cmnt": "Sakura", + "cmd": "FP=49" + }, + "0xFF8A75": { + "label": "Cyan", + "pos": "4x2", + "cmnt": "Beech", + "cmd": "FP=22" + }, + "0xFFB24D": { + "label": "RebeccaPurple", + "pos": "4x3", + "cmd": "FP=5&CL=h663399&C2=h993399&C3=h473864" + }, + "0xFF32CD": { + "label": "CoolWhite", + "pos": "4x4", + "cmnt": "Cool White", + "cmd": "FP=5&CL=hE4E4FF&C2=hF1E4FF&C3=h9C9EA8" + }, + "0xFF38C7": { + "label": "Orange", + "pos": "5x1", + "cmnt": "Orangery", + "cmd": "FP=47" + }, + "0xFFB847": { + "label": "Turquoise", + "pos": "5x2", + "cmd": "FP=5&CL=h40E0D0&C2=h40A0E0&C3=h4E9381" + }, + "0xFF7887": { + "label": "Purple", + "pos": "5x3", + "cmd": "FP=5&CL=h800080&C2=h800040&C3=h4B1C54" + }, + "0xFFF807": { + "label": "MedGray", + "pos": "5x4", + "cmnt": "Cycle palette +", + "cmd": "FP=~" + }, + "0xFF18E7": { + "label": "Yellow", + "pos": "6x1", + "cmd": "FP=5&CL=hFFFF00&C2=h7FFF00&C3=hA89539" + }, + "0xFF9867": { + "label": "DarkCyan", + "pos": "6x2", + "cmd": "FP=5&CL=h8B8B&C2=h458B&C3=h1F5B51" + }, + "0xFF58A7": { + "label": "Plum", + "pos": "6x3", + "cmnt": "Magenta", + "cmd": "FP=40" + }, + "0xFFD827": { + "label": "DarkGray", + "pos": "6x4", + "cmnt": "Cycle palette -", + "cmd": "FP=~-" + }, + "0xFF28D7": { + "label": "Jump3", + "pos": "7x1", + "cmnt": "Colortwinkles", + "cmd": "CY=0&FX=74" + }, + "0xFFA857": { + "label": "Fade3", + "pos": "7x2", + "cmnt": "Rain", + "cmd": "CY=0&FX=43" + }, + "0xFF6897": { + "label": "Flash", + "pos": "7x3", + "cmnt": "Cycle Effects", + "cmd": "CY=0&FX=~" + }, + "0xFFE817": { + "label": "Quick", + "pos": "7x4", + "cmnt": "Fx speed +16", + "cmd": "SX=~16" + }, + "0xFF08F7": { + "label": "Jump7", + "pos": "8x1", + "cmnt": "Sinelon Dual", + "cmd": "CY=0&FX=93" + }, + "0xFF8877": { + "label": "Fade7", + "pos": "8x2", + "cmnt": "Lighthouse", + "cmd": "CY=0&FX=41" + }, + "0xFF48B7": { + "label": "Auto", + "pos": "8x3", + "cmnt": "Toggle preset cycle", + "cmd": "CY=2" + }, + "0xFFC837": { + "label": "Slow", + "pos": "8x4", + "cmnt": "FX speed -16", + "cmd": "SX=~-16" + }, + "0xFF30CF": { + "label": "Custom1", + "pos": "9x1", + "cmnt": "Noise 1", + "cmd": "CY=0&FX=70" + }, + "0xFFB04F": { + "label": "Custom2", + "pos": "9x2", + "cmnt": "Dancing Shadows", + "cmd": "CY=0&FX=112" + }, + "0xFF708F": { + "label": "Music +", + "pos": "9x3", + "cmnt": "FX Intensity +16", + "cmd": "IX=~16" + }, + "0xFFF00F": { + "label": "Timer60", + "pos": "9x4", + "cmnt": "Timer 60 min", + "cmd": "NL=60&NT=0" + }, + "0xFF10EF": { + "label": "Custom3", + "pos": "10x1", + "cmnt": "Twinklefox", + "cmd": "CY=0&FX=80" + }, + "0xFF906F": { + "label": "Custom4", + "pos": "10x2", + "cmnt": "Twinklecat", + "cmd": "CY=0&FX=81" + }, + "0xFF50AF": { + "label": "Music -", + "pos": "10x3", + "cmnt": "FX Intesity -16", + "cmd": "IX=~-16" + }, + "0xFFD02F": { + "label": "Timer120", + "pos": "10x4", + "cmnt": "Timer 120 min", + "cmd": "NL=120&NT=0" + } +} \ No newline at end of file diff --git a/usermods/JSON_IR_remote/40-key-blue_ir.json b/usermods/JSON_IR_remote/40-key-blue_ir.json new file mode 100644 index 00000000..ed25d778 --- /dev/null +++ b/usermods/JSON_IR_remote/40-key-blue_ir.json @@ -0,0 +1,217 @@ +{ + "desc": "40-key-blue", + "0xFF3AC5": { + "label": "Bright +", + "pos": "1x1", + "cmd": "A=~16" + }, + "0xFFBA45": { + "label": "Bright -", + "pos": "1x2", + "cmd": "A=~-16" + }, + "0xFF827D": { + "label": "Off", + "pos": "1x3", + "cmd": "T=0" + }, + "0xFF02FD": { + "label": "On", + "pos": "1x4", + "cmd": "T=1" + }, + "0xFF1AE5": { + "label": "Red", + "pos": "2x1", + "cmnt": "Lava", + "cmd": "FP=8" + }, + "0xFF9A65": { + "label": "Green", + "pos": "2x2", + "cmnt": "Forest", + "cmd": "FP=10" + }, + "0xFFA25D": { + "label": "Blue", + "pos": "2x3", + "cmnt": "Breeze", + "cmd": "FP=15" + }, + "0xFF22DD": { + "label": "White", + "pos": "2x4", + "cmd": "FP=5&CL=hFFFFFF&C2=hFFFFFF&C3=hA8A8A8" + }, + "0xFF2AD5": { + "label": "Tomato", + "pos": "3x1", + "cmnt": "Yelmag", + "cmd": "FP=5&CL=hFF6347&C2=hFFBF47&C3=hA85859" + }, + "0xFFAA55": { + "label": "LightGreen", + "pos": "3x2", + "cmnt": "Rivendale", + "cmd": "FP=14" + }, + "0xFF926D": { + "label": "SkyBlue", + "pos": "3x3", + "cmnt": "Ocean", + "cmd": "FP=9" + }, + "0xFF12ED": { + "label": "WarmWhite", + "pos": "3x4", + "cmnt": "Warm White", + "cmd": "FP=5&CL=hFFE4CD&C2=hFFFCCD&C3=hA89892" + }, + "0xFF0AF5": { + "label": "OrangeRed", + "pos": "4x1", + "cmnt": "Sakura", + "cmd": "FP=49" + }, + "0xFF8A75": { + "label": "Cyan", + "pos": "4x2", + "cmnt": "Beech", + "cmd": "FP=22" + }, + "0xFFB24D": { + "label": "RebeccaPurple", + "pos": "4x3", + "cmd": "FP=5&CL=h663399&C2=h993399&C3=h473864" + }, + "0xFF32CD": { + "label": "CoolWhite", + "pos": "4x4", + "cmnt": "Cool White", + "cmd": "FP=5&CL=hE4E4FF&C2=hF1E4FF&C3=h9C9EA8" + }, + "0xFF38C7": { + "label": "Orange", + "pos": "5x1", + "cmnt": "Orangery", + "cmd": "FP=47" + }, + "0xFFB847": { + "label": "Turquoise", + "pos": "5x2", + "cmd": "FP=5&CL=h40E0D0&C2=h40A0E0&C3=h4E9381" + }, + "0xFF7887": { + "label": "Purple", + "pos": "5x3", + "cmd": "FP=5&CL=h800080&C2=h800040&C3=h4B1C54" + }, + "0xFFF807": { + "label": "MedGray", + "pos": "5x4", + "cmnt": "Cycle palette +", + "cmd": "FP=~" + }, + "0xFF18E7": { + "label": "Yellow", + "pos": "6x1", + "cmd": "FP=5&CL=hFFFF00&C2=h7FFF00&C3=hA89539" + }, + "0xFF9867": { + "label": "DarkCyan", + "pos": "6x2", + "cmd": "FP=5&CL=h8B8B&C2=h458B&C3=h1F5B51" + }, + "0xFF58A7": { + "label": "Plum", + "pos": "6x3", + "cmnt": "Magenta", + "cmd": "FP=40" + }, + "0xFFD827": { + "label": "DarkGray", + "pos": "6x4", + "cmnt": "Cycle palette -", + "cmd": "FP=~-" + }, + "0xFF28D7": { + "label": "W +", + "pos": "7x1" + }, + "0xFFA857": { + "label": "W -", + "pos": "7x2" + }, + "0xFF6897": { + "label": "W On", + "pos": "7x3" + }, + "0xFFE817": { + "label": "W Off", + "pos": "7x4" + }, + "0xFF08F7": { + "label": "W25", + "pos": "8x1" + }, + "0xFF8877": { + "label": "W50", + "pos": "8x2" + }, + "0xFF48B7": { + "label": "W75", + "pos": "8x3" + }, + "0xFFC837": { + "label": "W100", + "pos": "8x4" + }, + "0xFF30CF": { + "label": "Jump3", + "pos": "9x1", + "cmnt": "Colortwinkles", + "cmd": "CY=0&FX=74" + }, + "0xFFB04F": { + "label": "Fade3", + "pos": "9x2", + "cmnt": "Rain", + "cmd": "CY=0&FX=43" + }, + "0xFF708F": { + "label": "Jump7", + "pos": "9x3", + "cmnt": "Sinelon Dual", + "cmd": "CY=0&FX=93" + }, + "0xFFF00F": { + "label": "Quick", + "pos": "9x4", + "cmnt": "Fx speed +16", + "cmd": "SX=~16" + }, + "0xFF10EF": { + "label": "Fade", + "pos": "10x1", + "cmnt": "Lighthouse", + "cmd": "CY=0&FX=41" + }, + "0xFF906F": { + "label": "Flash", + "pos": "10x2", + "cmnt": "Cycle Effects", + "cmd": "CY=0&FX=~" + }, + "0xFF50AF": { + "label": "Auto", + "pos": "10x3", + "cmnt": "Toggle preset cycle", + "cmd": "CY=2" + }, + "0xFFD02F": { + "label": "Slow", + "pos": "10x4", + "cmnt": "Sinelon Dual", + "cmd": "CY=0&FX=93" + } +} \ No newline at end of file diff --git a/usermods/JSON_IR_remote/44-key_ir.json b/usermods/JSON_IR_remote/44-key_ir.json new file mode 100644 index 00000000..bd78e766 --- /dev/null +++ b/usermods/JSON_IR_remote/44-key_ir.json @@ -0,0 +1,241 @@ +{ + "desc": "44-key", + "0xFF3AC5": { + "label": "Bright +", + "pos": "1x1", + "cmd": "A=~16" + }, + "0xFFBA45": { + "label": "Bright -", + "pos": "1x2", + "cmd": "A=~-16" + }, + "0xFF827D": { + "label": "Off", + "pos": "1x3", + "cmd": "T=0" + }, + "0xFF02FD": { + "label": "On", + "pos": "1x4", + "cmd": "T=1" + }, + "0xFF1AE5": { + "label": "Red", + "pos": "2x1", + "cmnt": "Lava", + "cmd": "FP=8" + }, + "0xFF9A65": { + "label": "Green", + "pos": "2x2", + "cmnt": "Forest", + "cmd": "FP=10" + }, + "0xFFA25D": { + "label": "Blue", + "pos": "2x3", + "cmnt": "Breeze", + "cmd": "FP=15" + }, + "0xFF22DD": { + "label": "White", + "pos": "2x4", + "cmd": "FP=5&CL=hFFFFFF&C2=hFFFFFF&C3=hA8A8A8" + }, + "0xFF2AD5": { + "label": "Tomato", + "pos": "3x1", + "cmd": "FP=5&CL=hFF6347&C2=hFFBF47&C3=hA85859" + }, + "0xFFAA55": { + "label": "LightGreen", + "pos": "3x2", + "cmnt": "Rivendale", + "cmd": "FP=14" + }, + "0xFF926D": { + "label": "DeepBlue", + "pos": "3x3", + "cmnt": "Ocean", + "cmd": "FP=9" + }, + "0xFF12ED": { + "label": "Warmwhite2", + "pos": "3x4", + "cmnt": "Warm White", + "cmd": "FP=5&CL=hFFE4CD&C2=hFFFCCD&C3=hA89892" + }, + "0xFF0AF5": { + "label": "Orange", + "pos": "4x1", + "cmnt": "Sakura", + "cmd": "FP=49" + }, + "0xFF8A75": { + "label": "Turquoise", + "pos": "4x2", + "cmnt": "Beech", + "cmd": "FP=22" + }, + "0xFFB24D": { + "label": "Purple", + "pos": "4x3", + "cmd": "FP=5&CL=h663399&C2=h993399&C3=h473864" + }, + "0xFF32CD": { + "label": "WarmWhite", + "pos": "4x4", + "cmd": "FP=5&CL=hE4E4FF&C2=hF1E4FF&C3=h9C9EA8" + }, + "0xFF38C7": { + "label": "Yellowish", + "pos": "5x1", + "cmnt": "Orangery", + "cmd": "FP=47" + }, + "0xFFB847": { + "label": "Cyan", + "pos": "5x2", + "cmnt": "Beech", + "cmd": "FP=22" + }, + "0xFF7887": { + "label": "Magenta", + "pos": "5x3", + "cmd": "FP=5&CL=hFF00FF&C2=hFF007F&C3=h9539A8" + }, + "0xFFF807": { + "label": "ColdWhite", + "pos": "5x4", + "cmd": "FP=5&CL=hE4E4FF&C2=hF1E4FF&C3=h9C9EA8" + }, + "0xFF18E7": { + "label": "Yellow", + "pos": "6x1", + "cmd": "FP=5&CL=hFFFF00&C2=hFFC800&C3=hFDFFDE" + }, + "0xFF9867": { + "label": "Aqua", + "pos": "6x2", + "cmd": "FP=5&CL=hFFFF&C2=h7FFF&C3=h39A895" + }, + "0xFF58A7": { + "label": "Pink", + "pos": "6x3", + "cmd": "FP=5&CL=hFFC0CB&C2=hFFD4C0&C3=hA88C96" + }, + "0xFFD827": { + "label": "ColdWhite2", + "pos": "6x4", + "cmd": "FP=5&CL=hE4E4FF&C2=hF1E4FF&C3=h9C9EA8" + }, + "0xFF28D7": { + "label": "Red +", + "pos": "7x1", + "cmd": "FP=5&R=~16" + }, + "0xFFA857": { + "label": "Green +", + "pos": "7x2", + "cmd": "FP=5&G=~16" + }, + "0xFF6897": { + "label": "Blue +", + "pos": "7x3", + "cmd": "FP=5&B=~16" + }, + "0xFFE817": { + "label": "Quick", + "pos": "7x4", + "cmnt": "Fx speed +16", + "cmd": "SX=~16" + }, + "0xFF08F7": { + "label": "Red -", + "pos": "8x1", + "cmd": "FP=5&R=~-16" + }, + "0xFF8877": { + "label": "Green -", + "pos": "8x2", + "cmd": "FP=5&G=~-16" + }, + "0xFF48B7": { + "label": "Blue -", + "pos": "8x3", + "cmd": "FP=5&B=~-16" + }, + "0xFFC837": { + "label": "Slow", + "pos": "8x4", + "cmnt": "FX speed -16", + "cmd": "SX=~-16" + }, + "0xFF30CF": { + "label": "Diy1", + "pos": "9x1", + "cmd": "CY=0&PL=1" + }, + "0xFFB04F": { + "label": "Diy2", + "pos": "9x2", + "cmd": "CY=0&PL=2" + }, + "0xFF708F": { + "label": "Diy3", + "pos": "9x3", + "cmd": "CY=0&PL=3" + }, + "0xFFF00F": { + "label": "Auto", + "pos": "9x4", + "cmnt": "Toggle preset cycle", + "cmd": "CY=2" + }, + "0xFF10EF": { + "label": "Diy4", + "pos": "10x1", + "cmd": "CY=0&PL=4" + }, + "0xFF906F": { + "label": "Diy5", + "pos": "10x2", + "cmd": "CY=0&PL=5" + }, + "0xFF50AF": { + "label": "Diy6", + "pos": "10x3", + "cmd": "CY=0&PL=6" + }, + "0xFFD02F": { + "label": "Flash", + "pos": "10x4", + "cmnt": "Cycle Effects", + "cmd": "CY=0&FX=~" + }, + "0xFF20DF": { + "label": "Jump3", + "pos": "11x1", + "cmnt": "Colortwinkles", + "cmd": "CY=0&FX=74" + }, + "0xFFA05F": { + "label": "Jump7", + "pos": "11x2", + "cmnt": "Sinelon Dual", + "cmd": "CY=0&FX=93" + }, + "0xFF609F": { + "label": "Fade3", + "pos": "11x3", + "cmnt": "Rain", + "cmd": "CY=0&FX=43" + }, + "0xFFE01F": { + "label": "Fade7", + "pos": "11x4", + "cmnt": "Lighthouse", + "cmd": "CY=0&FX=41" + } +} \ No newline at end of file diff --git a/usermods/JSON_IR_remote/6-key_ir.json b/usermods/JSON_IR_remote/6-key_ir.json new file mode 100644 index 00000000..d4960a4b --- /dev/null +++ b/usermods/JSON_IR_remote/6-key_ir.json @@ -0,0 +1,38 @@ +{ + "desc": "6-key", + "0xFF0FF0": { + "label": "Power", + "pos": "1x1", + "cmd": "T=2" + }, + "0xFF8F70": { + "label": "Channel +", + "pos": "2x1", + "cmnt": "Cycle palette up", + "cmd": "FP=~" + }, + "0xFF4FB0": { + "label": "Channel -", + "pos": "3x1", + "cmnt": "Cycle palette down", + "cmd": "FP=~-" + }, + "0xFFCF30": { + "label": "Volume +", + "pos": "4x1", + "cmnt": "Brighten", + "cmd": "A=~16" + }, + "0xFF2FD0": { + "label": "Volume -", + "pos": "5x1", + "cmnt": "Dim", + "cmd": "A=~-16" + }, + "0xFFAF50": { + "label": "Mute", + "pos": "6x1", + "cmnt": "Cycle effects", + "cmd": "CY=0&FX=~" + } +} \ No newline at end of file diff --git a/usermods/JSON_IR_remote/9-key_ir.json b/usermods/JSON_IR_remote/9-key_ir.json new file mode 100644 index 00000000..f0bdd8f3 --- /dev/null +++ b/usermods/JSON_IR_remote/9-key_ir.json @@ -0,0 +1,47 @@ +{ + "desc": "9-key", + "0xFF629D": { + "label": "Power", + "cmd": "T=2" + }, + "0xFF22DD": { + "label": "A", + "cmnt": "Preset 1", + "cmd": "PL=1" + }, + "0xFF02FD": { + "label": "B", + "cmnt": "Preset 2", + "cmd": "PL=2" + }, + "0xFFC23D": { + "label": "C", + "cmnt": "Preset 3", + "cmd": "PL=3" + }, + "0xFF30CF": { + "label": "Left", + "cmnt": "Speed -", + "cmd": "SI=~-16" + }, + "0xFF7A85": { + "label": "Right", + "cmnt": "Speed +", + "cmd": "SI=~16" + }, + "0xFF9867": { + "label": "Up", + "cmnt": "Bright +", + "cmd": "A=~16" + }, + "0xFF38C7": { + "label": "Down", + "cmnt": "Bright -", + "cmd": "A=~-16" + }, + "0xFF18E7": { + "label": "Select", + "cmnt": "Cycle effects", + "cmd": "CY=0&FX=~" + } +} \ No newline at end of file diff --git a/usermods/JSON_IR_remote/IR_Remote_Codes.xlsx b/usermods/JSON_IR_remote/IR_Remote_Codes.xlsx new file mode 100644 index 00000000..b1f99d3a Binary files /dev/null and b/usermods/JSON_IR_remote/IR_Remote_Codes.xlsx differ diff --git a/usermods/JSON_IR_remote/ir_json_maker.py b/usermods/JSON_IR_remote/ir_json_maker.py new file mode 100644 index 00000000..a6adcc8c --- /dev/null +++ b/usermods/JSON_IR_remote/ir_json_maker.py @@ -0,0 +1,108 @@ +import colorsys +import json +import openpyxl + +named_colors = {'AliceBlue': '0xF0F8FF', 'AntiqueWhite': '0xFAEBD7', 'Aqua': '0x00FFFF', + 'Aquamarine': '0x7FFFD4', 'Azure': '0xF0FFFF', 'Beige': '0xF5F5DC', 'Bisque': '0xFFE4C4', + 'Black': '0x000000', 'BlanchedAlmond': '0xFFEBCD', 'Blue': '0x0000FF', + 'BlueViolet': '0x8A2BE2', 'Brown': '0xA52A2A', 'BurlyWood': '0xDEB887', + 'CadetBlue': '0x5F9EA0', 'Chartreuse': '0x7FFF00', 'Chocolate': '0xD2691E', + 'Coral': '0xFF7F50', 'CornflowerBlue': '0x6495ED', 'Cornsilk': '0xFFF8DC', + 'Crimson': '0xDC143C', 'Cyan': '0x00FFFF', 'DarkBlue': '0x00008B', 'DarkCyan': '0x008B8B', + 'DarkGoldenRod': '0xB8860B', 'DarkGray': '0xA9A9A9', 'DarkGrey': '0xA9A9A9', + 'DarkGreen': '0x006400', 'DarkKhaki': '0xBDB76B', 'DarkMagenta': '0x8B008B', + 'DarkOliveGreen': '0x556B2F', 'DarkOrange': '0xFF8C00', 'DarkOrchid': '0x9932CC', + 'DarkRed': '0x8B0000', 'DarkSalmon': '0xE9967A', 'DarkSeaGreen': '0x8FBC8F', + 'DarkSlateBlue': '0x483D8B', 'DarkSlateGray': '0x2F4F4F', 'DarkSlateGrey': '0x2F4F4F', + 'DarkTurquoise': '0x00CED1', 'DarkViolet': '0x9400D3', 'DeepPink': '0xFF1493', + 'DeepSkyBlue': '0x00BFFF', 'DimGray': '0x696969', 'DimGrey': '0x696969', + 'DodgerBlue': '0x1E90FF', 'FireBrick': '0xB22222', 'FloralWhite': '0xFFFAF0', + 'ForestGreen': '0x228B22', 'Fuchsia': '0xFF00FF', 'Gainsboro': '0xDCDCDC', + 'GhostWhite': '0xF8F8FF', 'Gold': '0xFFD700', 'GoldenRod': '0xDAA520', 'Gray': '0x808080', + 'Grey': '0x808080', 'Green': '0x008000', 'GreenYellow': '0xADFF2F', 'HoneyDew': '0xF0FFF0', + 'HotPink': '0xFF69B4', 'IndianRed': '0xCD5C5C', 'Indigo': '0x4B0082', 'Ivory': '0xFFFFF0', + 'Khaki': '0xF0E68C', 'Lavender': '0xE6E6FA', 'LavenderBlush': '0xFFF0F5', + 'LawnGreen': '0x7CFC00', 'LemonChiffon': '0xFFFACD', 'LightBlue': '0xADD8E6', + 'LightCoral': '0xF08080', 'LightCyan': '0xE0FFFF', 'LightGoldenRodYellow': '0xFAFAD2', + 'LightGray': '0xD3D3D3', 'LightGrey': '0xD3D3D3', 'LightGreen': '0x90EE90', + 'LightPink': '0xFFB6C1', 'LightSalmon': '0xFFA07A', 'LightSeaGreen': '0x20B2AA', + 'LightSkyBlue': '0x87CEFA', 'LightSlateGray': '0x778899', 'LightSlateGrey': '0x778899', + 'LightSteelBlue': '0xB0C4DE', 'LightYellow': '0xFFFFE0', 'Lime': '0x00FF00', + 'LimeGreen': '0x32CD32', 'Linen': '0xFAF0E6', 'Magenta': '0xFF00FF', 'Maroon': '0x800000', + 'MediumAquaMarine': '0x66CDAA', 'MediumBlue': '0x0000CD', 'MediumOrchid': '0xBA55D3', + 'MediumPurple': '0x9370DB', 'MediumSeaGreen': '0x3CB371', 'MediumSlateBlue': '0x7B68EE', + 'MediumSpringGreen': '0x00FA9A', 'MediumTurquoise': '0x48D1CC', 'MediumVioletRed': '0xC71585', + 'MidnightBlue': '0x191970', 'MintCream': '0xF5FFFA', 'MistyRose': '0xFFE4E1', + 'Moccasin': '0xFFE4B5', 'NavajoWhite': '0xFFDEAD', 'Navy': '0x000080', 'OldLace': '0xFDF5E6', + 'Olive': '0x808000', 'OliveDrab': '0x6B8E23', 'Orange': '0xFFA500', 'OrangeRed': '0xFF4500', + 'Orchid': '0xDA70D6', 'PaleGoldenRod': '0xEEE8AA', 'PaleGreen': '0x98FB98', + 'PaleTurquoise': '0xAFEEEE', 'PaleVioletRed': '0xDB7093', 'PapayaWhip': '0xFFEFD5', + 'PeachPuff': '0xFFDAB9', 'Peru': '0xCD853F', 'Pink': '0xFFC0CB', 'Plum': '0xDDA0DD', + 'PowderBlue': '0xB0E0E6', 'Purple': '0x800080', 'RebeccaPurple': '0x663399', 'Red': '0xFF0000', + 'RosyBrown': '0xBC8F8F', 'RoyalBlue': '0x4169E1', 'SaddleBrown': '0x8B4513', 'Salmon': '0xFA8072', + 'SandyBrown': '0xF4A460', 'SeaGreen': '0x2E8B57', 'SeaShell': '0xFFF5EE', 'Sienna': '0xA0522D', + 'Silver': '0xC0C0C0', 'SkyBlue': '0x87CEEB', 'SlateBlue': '0x6A5ACD', 'SlateGray': '0x708090', + 'SlateGrey': '0x708090', 'Snow': '0xFFFAFA', 'SpringGreen': '0x00FF7F', 'SteelBlue': '0x4682B4', + 'Tan': '0xD2B48C', 'Teal': '0x008080', 'Thistle': '0xD8BFD8', 'Tomato': '0xFF6347', + 'Turquoise': '0x40E0D0', 'Violet': '0xEE82EE', 'Wheat': '0xF5DEB3', 'White': '0xFFFFFF', + 'WhiteSmoke': '0xF5F5F5', 'Yellow': '0xFFFF00', 'YellowGreen': '0x9ACD32'} + +def shift_color(col, shift=30, sat=1.0, val=1.0): + r = (col & (255 << 16)) >> 16 + g = (col & (255 << 8)) >> 8 + b = col & 255 + hsv = colorsys.rgb_to_hsv(r, g, b) + h = (((hsv[0] * 360) + shift) % 360) / 360 + rgb = colorsys.hsv_to_rgb(h, hsv[1] * sat, hsv[2] * val) + return (int(rgb[0]) << 16) + (int(rgb[1]) << 8) + int(rgb[2]) + +def parse_sheet(ws): + print(f'Parsing worksheet {ws.title}') + ir = {"desc": ws.title} + rows = ws.rows + keys = [col.value.lower() for col in next(rows)] + for row in rows: + rec = dict(zip(keys, [col.value for col in row])) + if rec.get('code') is None: + continue + cd = {"label": rec.get('label')} + if rec.get('row'): + cd['pos'] = f'{rec["row"]}x{rec["col"]}' + if rec.get('comment'): + cd['cmnt'] = rec.get('comment') + if rec.get('rpt'): + cd['rpt'] = bool(rec['rpt']) + + if rec.get('cmd'): + cd['cmd'] = rec['cmd'] + elif all((rec.get('primary'), rec.get('secondary'), rec.get('tertiary'))): + c1 = int(rec.get('primary'), 16) + c2 = int(rec.get('secondary'), 16) + c3 = int(rec.get('tertiary'), 16) + cd['cmd'] = f'FP=5&CL=h{c1:X}&C2=h{c2:X}&C3=h{c3:X}' + elif all((rec.get('primary'), rec.get('secondary'))): + c1 = int(rec.get('primary'), 16) + c2 = int(rec.get('secondary'), 16) + c3 = shift_color(c1, -1, sat=0.66, val=0.66) + cd['cmd'] = f'FP=5&CL=h{c1:X}&C2=h{c2:X}&C3=h{c3:X}' + elif rec.get('primary'): + c1 = int(rec.get('primary'), 16) + c2 = shift_color(c1, 30) + c3 = shift_color(c1, -10, sat=0.66, val=0.66) + cd['cmd'] = f'FP=5&CL=h{c1:X}&C2=h{c2:X}&C3=h{c3:X}' + elif rec.get('label') in named_colors: + c1 = int(named_colors[rec.get('label')], 16) + c2 = shift_color(c1, 30) + c3 = shift_color(c1, -10, sat=0.66, val=0.66) + cd['cmd'] = f'FP=5&CL=h{c1:X}&C2=h{c2:X}&C3=h{c3:X}' + else: + print(f'Did not find a command or color for {rec["label"]}. Hint use named CSS colors as labels') + ir[rec['code']] = cd + + with open(f'{ws.title}_ir.json', 'w') as fp: + json.dump(ir, fp, indent=2) + +if __name__ == '__main__': + wb = openpyxl.load_workbook('IR_Remote_Codes.xlsx') + for ws in wb.worksheets: + parse_sheet(ws) diff --git a/usermods/JSON_IR_remote/readme.md b/usermods/JSON_IR_remote/readme.md new file mode 100644 index 00000000..ee18aa94 --- /dev/null +++ b/usermods/JSON_IR_remote/readme.md @@ -0,0 +1,33 @@ +# JSON IR remote + +## Purpose + +The JSON IR remote allows users to customize IR remote behavior without writing custom code and compiling. +It also enables using any remote that is compatible with your IR receiver. Using the JSON IR remote, you can +map buttons from any remote to any HTTP request API or JSON API command. + +## Usage + +* Upload the IR config file, named _ir.json_ to your board using the [ip address]/edit url. Pick from one of the included files or create your own. +* On the config > LED settings page, set the correct IR pin. +* On the config > Sync Interfaces page, select "JSON Remote" as the Infrared remote. + +## Modification + +* See if there is a json file with the same number of buttons as your remote. Many remotes will have the same internals and emit the same codes but have different labels. +* In the ir.json file, each key will be the hex encoded IR code. +* The "cmd" property will be the HTTP Request API or JSON API to execute when that button is pressed. +* A limited number of c functions are supported (!incBrightness, !decBrightness, !presetFallback) +* When using !presetFallback, include properties PL (preset to load), FX (effect to fall back to) and FP (palette to fall back to) +* If the command is _repeatable_ and does not contain the "~" character, add a "rpt": true property. +* Other properties are ignored, but having a label property may help when editing. + + +Sample: +{ + "0xFF629D": {"cmd": "T=2", "rpt": true, "label": "Toggle on/off"}, // HTTP command + "0xFF9867": {"cmd": "A=~16", "label": "Inc brightness"}, // HTTP command with incrementing + "0xFF38C7": {"cmd": {"bri": 10}, "label": "Dim to 10"}, // JSON command + "0xFF22DD": {"cmd": "!presetFallback", "PL": 1, "FX": 16, "FP": 6, + "label": "Preset 1 or fallback to Saw - Party"}, // c function +} diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index e771a605..bac853b4 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -350,14 +350,15 @@ Reverse (rotated 180°):
Touch threshold: