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
This commit is contained in:
Blaž Kristan 2021-05-21 13:07:55 +02:00
parent c4086b9127
commit 1952505e52

View File

@ -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
}