Ok, you need to check for lower case state in your template. So “snowy” not “Snowy”.
And you can simplify your template a bit:
template:
- trigger:
- platform: state
entity_id: weather.forecast_home
to:
image:
- name: Weather Image
unique_id: 7bbd302d-3246-40ab-aad8-3760d1b75a76
url: >
{% if is_state('weather.forecast_home','cloudy') %}
http://192.168.1.107:8123/local/weather_images/Cloudy.jpg
{% elif is_state('weather.forecast_home','snowy') %}
http://192.168.1.107:8123/local/weather_images/Snowy.jpg
{% elif is_state('weather.forecast_home','sunny') %}
http://192.168.1.107:8123/local/weather_images/Sunny.jpg
{% else %}
http://192.168.1.107:8123/local/weather_images/Unknown.jpg
{% endif %}
Note the letter case of the file names in the template are capitalised. This must match your file names exactly. Also you need to restart HA after creating the config/www folder if it does not already exist.
Finally, you can add as many elif tests as you need. e.g. you could add this if the state exists:
``
{% elif is_state('weather.forecast_home','stormy') %}
http://192.168.1.107:8123/local/weather_images/Stormy.jpg