Change Light Color based on Outside Temperature

Finally finished the “Weather Outdoor Temperature Light - Automation”. The complete rgb color spectrum for the temperatures (in degrees F) are here:

https://www.strangeplanet.fr/work/gradient-generator/?c=100:FFFFFF:FF1493:9D00FF:0000FF:00FFEE:32D22D:8CFF00:FFFF00:FFAE00:FF2B00:FF0000

Converted the HTML colors to rgb_colors here: https://www.w3schools.com/colors/colors_hwb.asp

- id: Outside_Temp_Color_Change
  alias: 'Outside Temp Color Change'
  initial_state: 'off'
  trigger:
    platform: state
    entity_id: sensor.outdoor_temperature
  action:
    service: light.turn_on
    entity_id: light.marks_office_light
    data_template:
      rgb_color:
        - >
          {% if states.sensor.outdoor_temperature.state | int <= 0 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 1 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 2 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 3 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 4 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 5 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 6 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 7 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 8 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 9 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 10 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 11 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 12 %} 245
          {% elif states.sensor.outdoor_temperature.state | int == 13 %} 235
          {% elif states.sensor.outdoor_temperature.state | int == 14 %} 224
          {% elif states.sensor.outdoor_temperature.state | int == 15 %} 214
          {% elif states.sensor.outdoor_temperature.state | int == 16 %} 207
          {% elif states.sensor.outdoor_temperature.state | int == 17 %} 198
          {% elif states.sensor.outdoor_temperature.state | int == 18 %} 186
          {% elif states.sensor.outdoor_temperature.state | int == 19 %} 175
          {% elif states.sensor.outdoor_temperature.state | int == 20 %} 167
          {% elif states.sensor.outdoor_temperature.state | int == 21 %} 157
          {% elif states.sensor.outdoor_temperature.state | int == 22 %} 140
          {% elif states.sensor.outdoor_temperature.state | int == 23 %} 123
          {% elif states.sensor.outdoor_temperature.state | int == 24 %} 111
          {% elif states.sensor.outdoor_temperature.state | int == 25 %} 93
          {% elif states.sensor.outdoor_temperature.state | int == 26 %} 76
          {% elif states.sensor.outdoor_temperature.state | int == 27 %} 64
          {% elif states.sensor.outdoor_temperature.state | int == 28 %} 47
          {% elif states.sensor.outdoor_temperature.state | int == 29 %} 30
          {% elif states.sensor.outdoor_temperature.state | int == 30 %} 17
          {% elif states.sensor.outdoor_temperature.state | int == 31 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 32 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 33 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 34 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 35 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 36 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 37 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 38 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 39 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 40 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 41 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 42 %} 5
          {% elif states.sensor.outdoor_temperature.state | int == 43 %} 10
          {% elif states.sensor.outdoor_temperature.state | int == 44 %} 15
          {% elif states.sensor.outdoor_temperature.state | int == 45 %} 20
          {% elif states.sensor.outdoor_temperature.state | int == 46 %} 26
          {% elif states.sensor.outdoor_temperature.state | int == 47 %} 31
          {% elif states.sensor.outdoor_temperature.state | int == 48 %} 36
          {% elif states.sensor.outdoor_temperature.state | int == 49 %} 41
          {% elif states.sensor.outdoor_temperature.state | int == 50 %} 46
          {% elif states.sensor.outdoor_temperature.state | int == 51 %} 51
          {% elif states.sensor.outdoor_temperature.state | int == 52 %} 61
          {% elif states.sensor.outdoor_temperature.state | int == 53 %} 66
          {% elif states.sensor.outdoor_temperature.state | int == 54 %} 75
          {% elif states.sensor.outdoor_temperature.state | int == 55 %} 88
          {% elif states.sensor.outdoor_temperature.state | int == 56 %} 96
          {% elif states.sensor.outdoor_temperature.state | int == 57 %} 106
          {% elif states.sensor.outdoor_temperature.state | int == 58 %} 112
          {% elif states.sensor.outdoor_temperature.state | int == 59 %} 122
          {% elif states.sensor.outdoor_temperature.state | int == 60 %} 132
          {% elif states.sensor.outdoor_temperature.state | int == 61 %} 140
          {% elif states.sensor.outdoor_temperature.state | int == 62 %} 153
          {% elif states.sensor.outdoor_temperature.state | int == 63 %} 162
          {% elif states.sensor.outdoor_temperature.state | int == 64 %} 174
          {% elif states.sensor.outdoor_temperature.state | int == 65 %} 187
          {% elif states.sensor.outdoor_temperature.state | int == 66 %} 195
          {% elif states.sensor.outdoor_temperature.state | int == 67 %} 208
          {% elif states.sensor.outdoor_temperature.state | int == 68 %} 221
          {% elif states.sensor.outdoor_temperature.state | int == 69 %} 234
          {% elif states.sensor.outdoor_temperature.state | int == 70 %} 242
          {% elif states.sensor.outdoor_temperature.state | int == 71 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 72 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 73 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 74 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 75 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 76 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 77 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 78 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 79 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 80 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 81 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 82 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 83 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 84 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 85 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 86 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 87 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 88 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 89 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 90 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 91 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 92 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 93 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 94 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 95 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 96 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 97 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 98 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 99 %} 255
          {% elif states.sensor.outdoor_temperature.state | int >= 100 %} 255
          {% else %} 43
          {% endif %}
        - >
          {% if states.sensor.outdoor_temperature.state | int <= 0 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 1 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 2 %} 232
          {% elif states.sensor.outdoor_temperature.state | int == 3 %} 209
          {% elif states.sensor.outdoor_temperature.state | int == 4 %} 184
          {% elif states.sensor.outdoor_temperature.state | int == 5 %} 161
          {% elif states.sensor.outdoor_temperature.state | int == 6 %} 138
          {% elif states.sensor.outdoor_temperature.state | int == 7 %} 115
          {% elif states.sensor.outdoor_temperature.state | int == 8 %} 89
          {% elif states.sensor.outdoor_temperature.state | int == 9 %} 66
          {% elif states.sensor.outdoor_temperature.state | int == 10 %} 43
          {% elif states.sensor.outdoor_temperature.state | int == 11 %} 20
          {% elif states.sensor.outdoor_temperature.state | int == 12 %} 18
          {% elif states.sensor.outdoor_temperature.state | int == 13 %} 15
          {% elif states.sensor.outdoor_temperature.state | int == 14 %} 13
          {% elif states.sensor.outdoor_temperature.state | int == 15 %} 13
          {% elif states.sensor.outdoor_temperature.state | int == 16 %} 10
          {% elif states.sensor.outdoor_temperature.state | int == 17 %} 8
          {% elif states.sensor.outdoor_temperature.state | int == 18 %} 5
          {% elif states.sensor.outdoor_temperature.state | int == 19 %} 3
          {% elif states.sensor.outdoor_temperature.state | int == 20 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 21 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 22 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 23 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 24 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 25 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 26 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 27 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 28 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 29 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 30 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 31 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 32 %} 25
          {% elif states.sensor.outdoor_temperature.state | int == 33 %} 50
          {% elif states.sensor.outdoor_temperature.state | int == 34 %} 75
          {% elif states.sensor.outdoor_temperature.state | int == 35 %} 103
          {% elif states.sensor.outdoor_temperature.state | int == 36 %} 126
          {% elif states.sensor.outdoor_temperature.state | int == 37 %} 155
          {% elif states.sensor.outdoor_temperature.state | int == 38 %} 178
          {% elif states.sensor.outdoor_temperature.state | int == 39 %} 206
          {% elif states.sensor.outdoor_temperature.state | int == 40 %} 228
          {% elif states.sensor.outdoor_temperature.state | int == 41 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 42 %} 250
          {% elif states.sensor.outdoor_temperature.state | int == 43 %} 245
          {% elif states.sensor.outdoor_temperature.state | int == 44 %} 242
          {% elif states.sensor.outdoor_temperature.state | int == 45 %} 237
          {% elif states.sensor.outdoor_temperature.state | int == 46 %} 232
          {% elif states.sensor.outdoor_temperature.state | int == 47 %} 227
          {% elif states.sensor.outdoor_temperature.state | int == 48 %} 222
          {% elif states.sensor.outdoor_temperature.state | int == 49 %} 219
          {% elif states.sensor.outdoor_temperature.state | int == 50 %} 214
          {% elif states.sensor.outdoor_temperature.state | int == 51 %} 209
          {% elif states.sensor.outdoor_temperature.state | int == 52 %} 214
          {% elif states.sensor.outdoor_temperature.state | int == 53 %} 219
          {% elif states.sensor.outdoor_temperature.state | int == 54 %} 222
          {% elif states.sensor.outdoor_temperature.state | int == 55 %} 227
          {% elif states.sensor.outdoor_temperature.state | int == 56 %} 232
          {% elif states.sensor.outdoor_temperature.state | int == 57 %} 237
          {% elif states.sensor.outdoor_temperature.state | int == 58 %} 242
          {% elif states.sensor.outdoor_temperature.state | int == 59 %} 245
          {% elif states.sensor.outdoor_temperature.state | int == 60 %} 250
          {% elif states.sensor.outdoor_temperature.state | int == 61 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 62 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 63 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 64 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 65 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 66 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 67 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 68 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 69 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 70 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 71 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 72 %} 247
          {% elif states.sensor.outdoor_temperature.state | int == 73 %} 238
          {% elif states.sensor.outdoor_temperature.state | int == 74 %} 230
          {% elif states.sensor.outdoor_temperature.state | int == 75 %} 221
          {% elif states.sensor.outdoor_temperature.state | int == 76 %} 213
          {% elif states.sensor.outdoor_temperature.state | int == 77 %} 204
          {% elif states.sensor.outdoor_temperature.state | int == 78 %} 200
          {% elif states.sensor.outdoor_temperature.state | int == 79 %} 191
          {% elif states.sensor.outdoor_temperature.state | int == 80 %} 183
          {% elif states.sensor.outdoor_temperature.state | int == 81 %} 174
          {% elif states.sensor.outdoor_temperature.state | int == 82 %} 162
          {% elif states.sensor.outdoor_temperature.state | int == 83 %} 149
          {% elif states.sensor.outdoor_temperature.state | int == 84 %} 136
          {% elif states.sensor.outdoor_temperature.state | int == 85 %} 119
          {% elif states.sensor.outdoor_temperature.state | int == 86 %} 106
          {% elif states.sensor.outdoor_temperature.state | int == 87 %} 94
          {% elif states.sensor.outdoor_temperature.state | int == 88 %} 81
          {% elif states.sensor.outdoor_temperature.state | int == 89 %} 68
          {% elif states.sensor.outdoor_temperature.state | int == 90 %} 55
          {% elif states.sensor.outdoor_temperature.state | int == 91 %} 43
          {% elif states.sensor.outdoor_temperature.state | int == 92 %} 38
          {% elif states.sensor.outdoor_temperature.state | int == 93 %} 34
          {% elif states.sensor.outdoor_temperature.state | int == 94 %} 30
          {% elif states.sensor.outdoor_temperature.state | int == 95 %} 21
          {% elif states.sensor.outdoor_temperature.state | int == 96 %} 17
          {% elif states.sensor.outdoor_temperature.state | int == 97 %} 13
          {% elif states.sensor.outdoor_temperature.state | int == 98 %} 9
          {% elif states.sensor.outdoor_temperature.state | int == 99 %} 4
          {% elif states.sensor.outdoor_temperature.state | int >= 100 %} 0
          {% else %} 255
          {% endif %}
        - >
          {% if states.sensor.outdoor_temperature.state | int <= 0 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 1 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 2 %} 244
          {% elif states.sensor.outdoor_temperature.state | int == 3 %} 234
          {% elif states.sensor.outdoor_temperature.state | int == 4 %} 222
          {% elif states.sensor.outdoor_temperature.state | int == 5 %} 211
          {% elif states.sensor.outdoor_temperature.state | int == 6 %} 202
          {% elif states.sensor.outdoor_temperature.state | int == 7 %} 190
          {% elif states.sensor.outdoor_temperature.state | int == 8 %} 178
          {% elif states.sensor.outdoor_temperature.state | int == 9 %} 167
          {% elif states.sensor.outdoor_temperature.state | int == 10 %} 156
          {% elif states.sensor.outdoor_temperature.state | int == 11 %} 146
          {% elif states.sensor.outdoor_temperature.state | int == 12 %} 158
          {% elif states.sensor.outdoor_temperature.state | int == 13 %} 169
          {% elif states.sensor.outdoor_temperature.state | int == 14 %} 179
          {% elif states.sensor.outdoor_temperature.state | int == 15 %} 191
          {% elif states.sensor.outdoor_temperature.state | int == 16 %} 200
          {% elif states.sensor.outdoor_temperature.state | int == 17 %} 212
          {% elif states.sensor.outdoor_temperature.state | int == 18 %} 222
          {% elif states.sensor.outdoor_temperature.state | int == 19 %} 232
          {% elif states.sensor.outdoor_temperature.state | int == 20 %} 245
          {% elif states.sensor.outdoor_temperature.state | int == 21 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 22 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 23 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 24 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 25 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 26 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 27 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 28 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 29 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 30 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 31 %} 255
          {% elif states.sensor.outdoor_temperature.state | int == 32 %} 252
          {% elif states.sensor.outdoor_temperature.state | int == 33 %} 250
          {% elif states.sensor.outdoor_temperature.state | int == 34 %} 250
          {% elif states.sensor.outdoor_temperature.state | int == 35 %} 247
          {% elif states.sensor.outdoor_temperature.state | int == 36 %} 245
          {% elif states.sensor.outdoor_temperature.state | int == 37 %} 245
          {% elif states.sensor.outdoor_temperature.state | int == 38 %} 242
          {% elif states.sensor.outdoor_temperature.state | int == 39 %} 242
          {% elif states.sensor.outdoor_temperature.state | int == 40 %} 240
          {% elif states.sensor.outdoor_temperature.state | int == 41 %} 238
          {% elif states.sensor.outdoor_temperature.state | int == 42 %} 217
          {% elif states.sensor.outdoor_temperature.state | int == 43 %} 198
          {% elif states.sensor.outdoor_temperature.state | int == 44 %} 182
          {% elif states.sensor.outdoor_temperature.state | int == 45 %} 161
          {% elif states.sensor.outdoor_temperature.state | int == 46 %} 143
          {% elif states.sensor.outdoor_temperature.state | int == 47 %} 122
          {% elif states.sensor.outdoor_temperature.state | int == 48 %} 101
          {% elif states.sensor.outdoor_temperature.state | int == 49 %} 83
          {% elif states.sensor.outdoor_temperature.state | int == 50 %} 66
          {% elif states.sensor.outdoor_temperature.state | int == 51 %} 46
          {% elif states.sensor.outdoor_temperature.state | int == 52 %} 41
          {% elif states.sensor.outdoor_temperature.state | int == 53 %} 36
          {% elif states.sensor.outdoor_temperature.state | int == 54 %} 31
          {% elif states.sensor.outdoor_temperature.state | int == 55 %} 28
          {% elif states.sensor.outdoor_temperature.state | int == 56 %} 23
          {% elif states.sensor.outdoor_temperature.state | int == 57 %} 18
          {% elif states.sensor.outdoor_temperature.state | int == 58 %} 13
          {% elif states.sensor.outdoor_temperature.state | int == 59 %} 8
          {% elif states.sensor.outdoor_temperature.state | int == 60 %} 5
          {% elif states.sensor.outdoor_temperature.state | int == 61 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 62 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 63 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 64 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 65 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 66 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 67 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 68 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 69 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 70 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 71 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 72 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 73 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 74 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 75 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 76 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 77 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 78 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 79 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 80 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 81 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 82 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 83 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 84 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 85 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 86 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 87 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 88 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 89 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 90 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 91 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 92 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 93 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 94 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 95 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 96 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 97 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 98 %} 0
          {% elif states.sensor.outdoor_temperature.state | int == 99 %} 0
          {% elif states.sensor.outdoor_temperature.state | int >= 100 %} 0
          {% else %} 113
          {% endif %}
2 Likes