WLED/usermods/JSON_IR_remote/readme.md

34 lines
1.8 KiB
Markdown
Raw Normal View History

Squashed commit of the following: commit 7893cb9ebc66faa39d430148e6dd66894cd2fc90 Merge: c4086b9 4e139d7 Author: Blaž Kristan <blaz@kristan-sp.si> Date: Fri May 21 12:57:43 2021 +0200 Merge branch 'master' of https://github.com/scottrbailey/WLED into scottrbailey-master commit 4e139d7c0ab1ff7a82a9c386626a0461af27025c Author: Artacus <40248830+scottrbailey@users.noreply.github.com> Date: Tue May 18 12:57:20 2021 -0700 Update ir.cpp Handle both 24-key and 24-key old in decodeIR switch statement commit 9a405d374bd40e14acc45f4ae52e2a8cf1eac171 Author: Artacus <40248830+scottrbailey@users.noreply.github.com> Date: Tue May 18 11:05:42 2021 -0700 Update readme.md commit 94af6d0561a2a0e6b3c1106996c264e59402dedf Merge: 1ed687a bfb27c4 Author: Artacus <40248830+scottrbailey@users.noreply.github.com> Date: Sun May 16 22:00:15 2021 -0700 Merge branch 'Aircoookie:master' into master commit 1ed687a51a971d53abc980ba29416b3bb1b9a5e1 Author: Scott Bailey <scottrbailey@gmail.com> Date: Sun May 2 21:27:33 2021 -0700 remove colorUpdated notifier that was pasted in accidentally commit 845dcabe0c6500e37038af71bef9b90cdd366609 Author: Scott Bailey <scottrbailey@gmail.com> Date: Sat May 1 12:53:34 2021 -0700 Handle setting palette when effect is still on default solid and will not display it commit 90e8ae1457c4423dda22a3b59cafa0c263875495 Author: Scott Bailey <scottrbailey@gmail.com> Date: Sat May 1 02:07:47 2021 -0700 refactor decodeIRJson to change how ir.json is loaded add support for calling several c functions commit e4f9fa311702505c8036abcfcc217a072f178a2c Author: Scott Bailey <scottrbailey@gmail.com> Date: Thu Apr 29 23:33:01 2021 -0700 comment out printing API commands in IR handling commit 26247b247eb6f555b46c2f7cb67dd6a9813552f4 Author: Scott Bailey <scottrbailey@gmail.com> Date: Thu Apr 29 23:31:30 2021 -0700 removed code that forced IR codes in a certain range to be decoded by decodeIR24. Generate default ir.json files for currently supported remotes. commit 5acecda6a0ad863c6eb5c5e622bd74e0573950b0 Author: Scott Bailey <scottrbailey@gmail.com> Date: Thu Apr 29 11:25:24 2021 -0700 handle JSON API commands also commit 754e3e092a4b5e2fba4a5a0090c9d42ca7546d0d Author: Scott Bailey <scottrbailey@gmail.com> Date: Wed Apr 28 22:53:27 2021 -0700 add decodeIRJson and JSON remote option
2021-05-21 13:07:55 +02:00
# 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
}