I’ve created this sensor using 6 binary inputs to generate a single int output. I know there has to be a smarter way to go about this but my searching hasn’t helped me out. Could someone point me in the right direction?
template:
- sensor:
- name: Current Displayed Channel
state: >
{% if is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'off') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'off') and is_state('binary_sensor.digit2_g', 'off') %}
1
{% elif is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'on') and is_state('binary_sensor.digit2_f', 'off') and is_state('binary_sensor.digit2_g', 'on') %}
2
{% elif is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'off') and is_state('binary_sensor.digit2_g', 'on') %}
3
{% elif is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'off') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'off') and is_state('binary_sensor.digit2_g', 'on') %}
4
{% elif is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'off') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'on') and is_state('binary_sensor.digit2_g', 'on') %}
5
{% elif is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'off') and is_state('binary_sensor.digit2_e', 'on') and is_state('binary_sensor.digit2_f', 'on') and is_state('binary_sensor.digit2_g', 'on') %}
6
{% elif is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'off') and is_state('binary_sensor.digit2_g', 'off') %}
7
{% elif is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'on') and is_state('binary_sensor.digit2_f', 'on') and is_state('binary_sensor.digit2_g', 'on') %}
8
{% elif is_state('binary_sensor.digit1', 'off') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'on') and is_state('binary_sensor.digit2_g', 'on') %}
9
{% elif is_state('binary_sensor.digit1', 'on') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'on') and is_state('binary_sensor.digit2_f', 'on') and is_state('binary_sensor.digit2_g', 'off') %}
10
{% elif is_state('binary_sensor.digit1', 'on') and is_state('binary_sensor.digit2_a', 'off') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'off') and is_state('binary_sensor.digit2_g', 'off') %}
11
{% elif is_state('binary_sensor.digit1', 'on') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'on') and is_state('binary_sensor.digit2_f', 'off') and is_state('binary_sensor.digit2_g', 'on') %}
12
{% elif is_state('binary_sensor.digit1', 'on') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'off') and is_state('binary_sensor.digit2_g', 'on') %}
13
{% elif is_state('binary_sensor.digit1', 'on') and is_state('binary_sensor.digit2_a', 'off') and is_state('binary_sensor.digit2_b', 'on') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'on') and is_state('binary_sensor.digit2_g', 'on') %}
14
{% elif is_state('binary_sensor.digit1', 'on') and is_state('binary_sensor.digit2_a', 'on') and is_state('binary_sensor.digit2_b', 'off') and is_state('binary_sensor.digit2_e', 'off') and is_state('binary_sensor.digit2_f', 'on') and is_state('binary_sensor.digit2_g', 'on') %}
15
{% else %}
0
{% endif %}