Yio Remote Community

IR / TV remote integration

@marton possibly a dumb question: but were do I find the “IR/TV remote integration”?
I run 0.3.1 on the remote (web configurator says 1.0.0)

@Tom IR is work in progress, but you could try it with updating to development releases and manually editing the config.json. Let me know if you want that, I could write a how to.

@marton If you don’t mind, respectively have the time to write a little how-to: I would definitely try it out!

@marton I am also looking forward to the howto!

+1 for the howto…

@marton in case you manage to squeeze in some instructions between all your other work, that would be great :slight_smile:

Sorry, I’ve been quite busy with work.

Here are the instructions, but please be warned that this is a bit complicated at the moment as it is NOT finished. Only proceed if you know what you are doing and not just blindly follow the instructions.

First you need to update the dock firmware:
Download the firmware from: https://github.com/YIO-Remote/dock-software/releases/download/v0.1.0/YIO-dock-software-v0.1.0.zip

Extract the zip file and navigate to the directory. Run the following command:
curl -F "file=@firmware.bin" http://yio-dock-e1bf713c.local/update

Of course replace the address with the ip address or hostname of your YIO dock. You will see the dock LED blink during the update process.

It might happen that the dock forgets the wifi credentials. In this case you need to send them over via Bluetooth. The WiFi access point was removed due to stability issues.

Connect to the dock via Bluetooth and send the following json via the Bluetooth serial interface:
{"ssid":"your_ssid", "password":"your_wifi_password"}

After this the dock should connect to your network again.

Get the IR codes from the dock:
To put the dock into IR learning mode and get the IR codes, you need to connect to the dock’s websocket API. (I use the Simple WebSocket Client for Chrome)

You’ll be asked to authenticate. Send the following json:
{"type":"auth", "token":"0"}

To turn on IR learning, send the following json:
{"type":"dock", "command":"ir_receive_on"}

After this, aim your IR remote towards the top of the dock and you should see something like this when you press a button:
{"type":"dock","command":"ir_receive","code":"3;0x20DF40BF;32;0"}

Note down the code, and of course what button it relates to :slight_smile:

When you’re done, make sure to turn off IR learning by sending the following json:
{"type":"dock", "command":"ir_receive_off"}

It’s a good idea to check if the code was recorded correctly. To send an IR code to the dock use the following json and replace the code with the code you got before:
{"type":"dock","command":"ir_send","code":"3;0x20DF40BF;32;0", "format":"hex"}

Now that you have verified everything, you need to add these codes to the config.json file on your remote.

Add a remote entity:

"remote": [
    {
        "commands": [
            {
                "button_map": "POWER_TOGGLE",
                "code": "3;0x20DF40BF;32;0",
                "format": "hex"
            },
            {
                "button_map": "CHANNEL_UP",
                "code": "3;0x20DF40BF;32;0",
                "format": "hex"
            }
        ],
        "entity_id": "remote.living_room",
        "friendly_name": "Living room TV",
        "integration": "YIO-Dock-3C71BFE33DEC",
        "settings": {
            "channel_switching": [
                "DIGIT_SEPARATOR",
                "CHANNEL_NUMBER",
                "CHANNEL_END"
            ],
            "delay": 100
        },
        "supported_features": [
            "POWER_TOGGLE",
            "CHANNEL_UP",
            "CHANNEL_DOWN",
            "VOLUME_UP",
            "VOLUME_DOWN",
            "CURSOR_UP",
            "CURSOR_DOWN",
            "CURSOR_LEFT",
            "CURSOR_RIGHT",
            "CURSOR_OK",
            "MUTE_TOGGLE",
            "DIGIT_0",
            "DIGIT_1",
            "DIGIT_2",
            "DIGIT_3",
            "DIGIT_4",
            "DIGIT_5",
            "DIGIT_6",
            "DIGIT_7",
            "DIGIT_8",
            "DIGIT_9",
            "BACK",
            "MENU",
            "SOURCE",
            "GUIDE",
            "INFO",
            "APP"
        ]
    }
]

Make sure to add all the supported features you need, the UI will change based on these. You can check what’s supported here: https://github.com/YIO-Remote/integrations.library/blob/master/src/yio-interface/entities/remoteinterface.h

To add the IR codes, you need to map the commands to buttons. The button_map key defines the command you can see in the interface header file. Here you add the code and the format. Format is always hex.

It’s very important to match the integration key to the unique integration id of your dock integration. So the remote will know where to send the codes.

1 Like

Thanks Marton!

I managed to update the dock firmware, send the Wifi credentials via Bluetooth and get everything back working.

Now I’m having a problem with adding the supported features. I managed to add about 11 supported features, but now, I always get the message “failed to update the config” while saving the config online.

Am I overlooking something?

Are you using the latest of the remote app and dock integration?

Hm, how to check or update the integration?

if you’re on the latest OS you can use the following command to check what you have installed and what’s available on github:
/opt/yio/scripts/update.sh -r

I’m on 0.3.1
I only have a app-update.sh in this folder

Try updating to the latest versions.

Works now, thanks Marton!

1 Like

Hi, my first post here – managed to get the remote to work, thanks for your ongoing great work. One question regarding the new dock software: it’s totally unclear to me how to connect via bluetooth to the dock. Do I have to connect via the remote or via my Mac (doesn’t show up in bluetooth)? New dock firmware is on the device, dock is blinking hence no wifi credentials.

Hi @joergp, I’m glad you managed to get it to work.

The dock LED is blinking when it’s in setup mode, or blinking faster when trying to connect to a wifi network.

You can connect to the dock from your Mac via Bluetooth. Go to System preferences/Bluetooth and wait for the dock to show up. For best results make sure the dock is close to your Mac. It might take a couple of minutes to show up. If it won’t show up, you can try the following:

  • click in the area where devices should show up
  • turn Bluetooth off/on on your Mac
  • go back to System preferences main menu and then enter Bluetooth settings again

These helped me in all of the cases to get the dock show up.

When it’s there, click on connect. After this a device should show up in /dev/. After that you can just echo to that device:
echo "{\"ssid\":\"your_ssid\", \"password\":\"your_password\"}" > /dev/cu.YIO-something

Don’t forget to escape the " as it’s shown above.

Thanks – my Mac was simply not close enough :slight_smile: wifi is set up!

1 Like

@marton I was able to get the IR codes via the WebSocket, but unfortunately the Dock does not seem to send anything. I tried both with and without IR extender (extender from the NEEO should work, right?). Example: {“type”:“dock”,“command”:“ir_send”,“code”:“17;0x2A4C0280E86A;48;0”, “format”:“hex”} (Denon Receiver Volume Up). The dock echoes {“type”:“dock”,“message”:“ir_send”,“success”:true}. Any idea what could be wrong?

I don’t have that IR extender and I don’t know if it works or not. Before plugging anything in it’s a good idea to verify what’s inside and if it will work with the dock circuit. Otherwise you risk damaging the board.

The dock IR LEDs are located on the top in the four “corners” and they are blasting upwards. The dock needs to be fairly close to the receiver and has to have line of sight.

When you were in learning mode, did you press the same button many times to see if you’re receiving the same code?

Well, I’ve tried many times without extender so my idea was it is a hardware fault. What is the specification for the IR extender? Any example which extender will work?

What’t the range of the built-in IR LEDs? Should work over the distance of 4-5m?

Yes, I’ve received the same code several times.