Crestron TSW-1060/TSW-1070 Batteryless Wallpanel Configuration Guide

Hi everyone

[edit] This guide is identical for a TSW-1070, with one exception. The Firmware link is different, the TSW-1070 firmware can be found here [/edit]

What is the Crestron TSW-1060? Its a professional room control tablet. Its battery less and runs over PoE. The price tag was quite high, but its EOL now and available off eBay as a bargain. Its performance is not suitable for gaming or anything like it but it will fit the purpose of a wallpanel for HA very well.

There is quite a lengthy thread about the Crestron TSW-1060 as a wallpanel. The setup info can be found accross various posts in that thread, so I thought I might condense it all into this little guide. Thanks everyone who contributed in helping getting these devices up and running, a shout out to @OverZealous and @UserHA8021 who have worked out all the SSH commands to control the device (and its screen from HA).

Once done, you should be able to control the panel from HA, including turning on/off the screen:

Lets dive into it.

Basic Setup
  1. Factory Reset the device by 10 (or 11 ?) times unplugging the PoE cable, plug it back in until the Crestron logo appears - repeat. After 10/11 times, the device will enter the maintenance mode (this can take up to 10min), where you then can factory reset the device.
  2. Connect to the device’s IP address via a webbrowser
  3. Create the first (Admin) account
  4. Connect with PuTTY to the device’s IP address and login
  5. Send the command « initialize » - it will erase all existing User Projects, if there are any left over from the previous owner (these are not erased via a factory reset).
  6. Back on the webbrowser, login with the account you previously created
  7. Click the Settings tab → Applications
  8. Select “EMS” and enter your HA URL
  9. Save (and reboot if the system asks you to do so)
  10. Follow any prompts for a reboot.
  11. Onc rebooted, login again go to Settings → Auto Update → Check for firmware updates and click the “Update Now” button. The latest firmware for a TSW-1060 at the time of writing is tsw-xx60_3.002.1061.001.puf.
    You may also download the firmware manually from here and upload via the webbrowser: https://crestrondevicefiles.blob.core.windows.net/tsx-firmware/touchscreen.txt
  12. Play with the settings of the device. Suggestions:
  • System → Auto Brightness on, play with the thresholds
  • System → Hardkey ilumination off
  • System → Disable screensaver, set time limit for standby to 0
  • System → Camera off
  • Audio → Mute
  • Cloud settings → disable
  1. If Auto Brightness is not working (due to a firmware-bug, depending on your firmware), you can again connect via PuTTY, login and send the command AUTOBRIGHTNESS CRESTRON – this should fix it.

At this point, your panel is basically working. However, we can tweak it it further. To control its screen (on/off) and brightness directly from Home-Assistant, we will connect to it with SSH Keys, instead with Username & PW and then create an SSH device in HA.

Setting up SSH-Keys between Home-Assistant and the Crestron Panel.

For the commands below, [Crestron-IP] refers to the IP address of your Crestron touchpanel and [Crestron-Username] is the username of the account you created on the Crestron panel after factory reset.

  1. If not already done, install the “Terminal & SSH” Addon, from the HA-Addon Store.
  2. Open the Terminal in HA (or SSH into HA via PuTTY) and create the SSH Keys (with ECDSA instead of RSA): ssh-keygen -t ecdsa -b 256 -f ~/.ssh/id_ecdsa
  3. Add the Crestron as a known host: ssh-keyscan -H [Crestron-IP] >> /root/.ssh/known_hosts
  4. Copy the public SSH key from HA tot he Crestron device: scp /root/.ssh/id_ecdsa.pub [Crestron-Username]@[Crestron-IP]:/User/id_ecdsa
  5. You will be promted fort he PW of [Crestron-Username]
  6. Connect via PuTTY to the Crestron touchpanel and login
  7. Add the key to your user: SSHSERVER ADDUSERKEY -N: [Crestron-Username] -K:id_ecdsa → you should see this message: The key has been successfully added to the user
  8. Back on the HA SSH terminal : test the SSH connection with this: ssh -i /root/.ssh/id_ecdsa [Crestron-Username]@[Crestron-IP]
  9. You’re done
Create the Crestron Device in HA

For this, we are using the SSH Integration (this is not the “Terminal & SSH” addon). The SSH integration allows you to control and send commands via SSH to devices. It will create a device where you can click buttons/toggles

  1. Download the SSH Integration from HACS: GitHub - zhbjsh/homeassistant-ssh: Control and monitor devices in Home Assistant by executing commands via SSH, follow the setup-instructions and reboot HA, then add it under HA → Devices & services → +Add Integration
  2. Create a new device/entry
  • Host : [Crestron-IP]
  • Username: [Crestron-Username]
  • Password : leave empty
  • Default commands : none
  • Key file : the integration documentation states that it is automatically looking in the hosts key file – but it did not work in my case, hence I did enter it manually. Key file: /data/.ssh/id_ecdsa
    If that does not work, you can open a SSH session via Terminal or PuTTY to HA and copy the key to the folder where other keys are stored (/homeassistant/ssh/): cp /data/.ssh/id_ecdsa /homeassistant/ssh/
    Now for the Key file path, use /config/ssh/id_ecdsa instead (the folder /config in reality is /homeassistant, but the SSH integration will fail if you put /homeassistant/ssh, hence use /config/ssh
  • Automatically add key to host keys file: on
  • Load system host keys: on
  1. The device will now be created
Add the Commands to the Crestron-Device in HA

Once the device has been created, go to the settings of the device and then you can finally add the commands (the below are the basic commands. If you have additional LED bars for the device, you can find more specific commands here. Settings:

  • Update Interval: 300 (this means how often the sensor-values are pulled from the device. Lower values at your own risk, ask yourself if its really necessary?)

  • Action Commands:

- command: standby
  name: Standby
  key: standby
- command: standby off
  name: Wake
  key: wake
- command: apprestart
  name: Reload
  key: reload
  • Sensor commands:

- command: brightness
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: number
      name: Brightness
      key: brightness
      value_template: >-
        {{ value|regex_findall_index(find='Current LCD brightness level: (\d+)')
        }}
      command_set: brightness @{value}
- command: stbyto
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: number
      name: Standby Timeout
      key: standby_timeout
      value_template: "{{ value|regex_findall_index(find='Current standby timeout: (\\d+)') }}"
      command_set: stbyto @{value}
      maximum: 600
- command: autobrightness
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: binary
      name: Auto Brightness
      key: auto_brightness
      value_template: >-
        {{ value|regex_findall_index(find='LCD Auto-brightness: (\w+)') == 'ON'
        }}
      command_on: AUTOBRIGHTNESS LCDON
      command_off: AUTOBRIGHTNESS LCDOFF
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: number
      name: Auto Brightness Threshold
      key: auto_brightness_threshold
      value_template: "{{ value|regex_findall_index(find='Current LCD Threshold: (\\d+)') }}"
      command_set: AUTOBRIGHTNESS LCDTHRESH @{value}
- command: hostname
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: text
      name: Hostname
      key: hostname
      value_template: "{{ value|regex_findall_index(find='Host Name: (\\w+)') }}"

Your device entry should finally look like this and you can change for example the auto-brightness or reload the EMS application (–> reload the URL you have configured during setup):

Configuring the Wallpanel-Addon

The Crestron devices are designed for 24/7 usage, so why not use it as a photo-carousel during the day, and turn the screen off during the night?
To turn off the screen at any given time, you can simply create an automation to toggle the screen.

To show photos during the day, you can use the awesome Wallpanel integration. You can configure it so that the screensaver (your photos) will turn off and show the dashboard as soon as you tap on the screen, or, when you have a motion sensor close by, that it will trigger an automation to disable the screensaver and right away show your dashboard.

Photo Credit: linked from GitHub - j-a-n/lovelace-wallpanel: 🖼️ Wall panel mode and photo screensaver for your Home Assistant Dashboards

Thats it - have fun! :slight_smile:

4 Likes

This is great stuff!!! any way to use the buttons on the side? Best and Cheers!!

Quite a few people have asked this in the discussion thread. So far I think the answer is no…

There’s something being worked on for this, but it’s not easy in the slightest at the moment

1 Like

Did anyone check out this YouTube tutorial using Node-Red

Link

Does this work for the TSW-760 also? These units seem to be very similar except for the physical dimensions.

Yes it should absolutely, BTW the firmware link also contains the latest FW for the TSW-760

Thank you. Picked up a TSW-1060-B-S on ebay.

Followed the instructions to get to factory reset mode and started the process. Now the unit is in a boot loop after attempting factory reset.

It boots up, says “system maintenance in progress, do not reboot. Please wait” then reboots after 10 minutes and the same process keeps repeating over and over again. This went on for an hour before I disconnected POE. The same behavior happens when POE is restored. It never pulls a DHCP address from the router.

How to fix this loop?

I might be wrong to say this, but I think the SD card in your panel either died or entered a failsafe write-lock state. It’s not fun to fix…

(Edit, ignore me. Seen that you fixed it in the other thread!!)

1 Like

Is it safe to update to the latest crestron firmware? I’ve been hearing that it doesn’t allow 3rd party apps, such as HA

check out the discussion thread for that. If you want to stay safe, stick on 2.x for now. I have updated to 3.x as I will not need the HA app, the browser is enough for me.

I’ve been using a TSW-1060 (TSS version) with EMS for a while now, but honestly, I find it slow in many ways, especially page turns. Am I the only one having this problem?

It depends on how much items/cards and styles you are using on the dashboard. But yes I do have the same problem. I also do have a TS-1070 and that is way faster. I am heavily using custom-button-card, I tried to replace these cards with standard HA cards, to reduce load, but I could not customise them to my liking, hence I stick with what I have… :see_no_evil: