Crestron TSW 1060. POE HA dash for $30. Firmware

I’ve spent some time setting up a bunch of properties using the ssh integration. It took quite some time to figure out how to get the sensors to work, given that the Crestron panel isn’t a real shell, so you can’t clean up the output. Therefore, there’s a lot of key: ignored values that have to be added to the sensors list, which eats up empty space and sensors we don’t want.

One caveat, the commands are fairly slow—up to a second per sensor. I set my update interval to 300, so it only checks every 5 minutes. Also, if you don’t have the external LCD panel, you should remove everything related to digitaljoin or analogjoin, as it’ll just add a lot of time on updates.

Here’s a list of what this provides:

  • Actions:
    • Standby
      • I haven’t figured out how to get a sensor to tell me if the screen is in standby or not I figured this out, see in the comment a couple below this.
    • Wake (HomeAssistant will reload every time)
    • Reload
  • Sensors that can be set:
    • Brightness
    • Standby Timeout (set to 0 to disable)
    • Auto Brightness Enabled
    • Auto Brightness Threshold (when to trigger it)
      • I’d like to include the hi & lo values, but Crestron combines them into one line for some reason
    • R/G/B Backlight Enabled
    • R/G/B Backlight Level
  • Other sensors:
    • Hostname

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
      maximum: 600
      value_template: "{{ value|regex_findall_index(find='Current standby timeout: (\\d+)') }}"
      command_set: stbyto @{value}
- 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+)') }}"
- command: getdigitaljoin 30025
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: binary
      name: Red Backlight Enabled
      key: red_enabled
      value_template: "{{ value|regex_findall_index(find='DIGITAL=(\\d)') }}"
      command_on: setdigitaljoin 30025 1
      command_off: setdigitaljoin 30025 0
- command: getdigitaljoin 30026
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: binary
      name: Green Backlight Enabled
      key: green_enabled
      value_template: "{{ value|regex_findall_index(find='DIGITAL=(\\d)') }}"
      command_on: setdigitaljoin 30026 1
      command_off: setdigitaljoin 30026 0
- command: getdigitaljoin 30027
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: binary
      name: Blue Backlight Enabled
      key: blue_enabled
      value_template: "{{ value|regex_findall_index(find='DIGITAL=(\\d)') }}"
      command_on: setdigitaljoin 30027 1
      command_off: setdigitaljoin 30027 0
- command: getanalogjoin 33354
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: number
      name: Red Backlight level
      key: red_level
      value_template: "{{ value|regex_findall_index(find='ANALOG=(\\d+)') }}"
      command_set: setanalogjoin 33354 @{value}
- command: getanalogjoin 33355
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: number
      name: Green Backlight level
      key: green_level
      value_template: "{{ value|regex_findall_index(find='ANALOG=(\\d+)') }}"
      command_set: setanalogjoin 33355 @{value}
- command: getanalogjoin 33356
  sensors:
    - type: text
      key: ignored
      entity_registry_enabled_default: false
    - type: number
      name: Blue Backlight level
      key: blue_level
      value_template: "{{ value|regex_findall_index(find='ANALOG=(\\d+)') }}"
      command_set: setanalogjoin 33356 @{value}

This gives you the following device interface for your screen:

9 Likes