Shoutout to Pirateweather for still being dogwater...

This commit is contained in:
2023-07-28 22:23:49 -04:00
parent d4bd53ac3d
commit 99b2f7761b

View File

@ -1,10 +1,32 @@
weather:
- platform: template
name: "Iron Nerd Weather Station"
condition_template: "{{ states('weather.iron_nerd_studios') }}"
temperature_template: "{{ states('sensor.pirateweather_temperature') | float }}"
condition_template: >
{% set stations = [
states.weather.iron_nerd_studios,
states.weather.kdfi_daynight,
states.weather.openweathermap
] %}
{% set result = stations | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) }}
temperature_template: >
{% set temps = [
states.sensor.pirateweather_temperature,
states.sensor.kdfi_temperature,
states.sensor.openweathermap_temperature,
states.sensor.myradar_temperature
] %}
{% set sensor = temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(sensor) | float }}
temperature_unit: °F
humidity_template: "{{ states('sensor.pirateweather_humidity') | float }}"
humidity_template: >
{% set humidity = [
states.sensor.pirateweather_humidity,
states.sensor.kdfi_relative_humidity,
states.sensor.openweathermap_humidity
] %}
{% set result = humidity | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
forecast_template: >
{% if state_attr('weather.iron_nerd_studios','forecast') %}
{{ state_attr('weather.iron_nerd_studios','forecast') }}
@ -16,32 +38,78 @@ weather:
{{ state_attr('weather.weatherapi_stratton_ave','forecast') }}
{% endif %}
pressure_template: >
{% if states('sensor.kdfi_barometric_pressure') %}
{{ states('sensor.kdfi_barometric_pressure') }}
{% else %}
{{ states('sensor.myradar_pressure') | float }}
{% endif %}
{% set pressures = [
states.sensor.kdfi_barometric_pressure,
states.sensor.myradar_pressure
] %}
{% set result = pressures | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
pressure_unit: inHg
wind_speed_template: "{{ states('sensor.pirateweather_wind_speed') | float }}"
wind_speed_template: >
{% set windspeeds = [
states.sensor.pirateweather_wind_speed,
states.sensor.kdfi_wind_speed,
states.sensor.openweathermap_wind_speed,
states.sensor.myradar_wind_speed
] %}
{% set result = windspeeds | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
wind_speed_unit: mph
wind_bearing_template: "{{ states('sensor.pirateweather_wind_bearing') | float }}"
wind_bearing_template: >
{% set windbearings = [
states.sensor.pirateweather_wind_bearing,
states.sensor.openweathermap_wind_bearing,
states.sensor.myradar_wind_bearing
] %}
{% set result = windbearings | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
visibility_template: >
{% if states('sensor.kdfi_visibility') %}
{{ states('sensor.kdfi_visibility') | float }}
{% else %}
{{ states('sensor.pirateweather_visibility') }}
{% endif %}
{% set vis = [
states.sensor.kdfi_visibility,
states.sensor.pirateweather_visibility,
states.sensor.openweathermap_visibility
] %}
{% set result = vis | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
visibility_unit: mi
attribution_template: "Daily weather data from Iron Nerd's custom weather station template"
ozone_template: "{{ states('sensor.pirateweather_ozone') | float }}"
ozone_template: >
{% set ozones = [
states.sensor.pirateweather_ozone,
states.sensor.myradar_ozone
] %}
{% set result = ozones | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
precipitation_unit: in
- platform: template
name: "Iron Nerd Weather Station - Hourly"
condition_template: "{{ states('weather.iron_nerd_studios') }}"
temperature_template: "{{ states('sensor.pirateweather_temperature') | float }}"
condition_template: >
{% set stations = [
states.weather.iron_nerd_studios,
states.weather.kdfi_daynight,
states.weather.openweathermap
] %}
{% set result = stations | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) }}
temperature_template: >
{% set temps = [
states.sensor.pirateweather_temperature,
states.sensor.kdfi_temperature,
states.sensor.openweathermap_temperature,
states.sensor.myradar_temperature
] %}
{% set sensor = temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(sensor) | float }}
temperature_unit: °F
humidity_template: "{{ states('sensor.pirateweather_humidity') | float }}"
humidity_template: >
{% set humidity = [
states.sensor.pirateweather_humidity,
states.sensor.kdfi_relative_humidity,
states.sensor.openweathermap_humidity
] %}
{% set result = humidity | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
forecast_template: >
{% if state_attr('weather.kdfi_hourly','forecast') %}
{{ state_attr('weather.kdfi_hourly', 'forecast') }}
@ -49,24 +117,48 @@ weather:
{{ state_attr('weather.iron_nerd_studios_hourly','forecast') }}
{% endif %}
pressure_template: >
{% if states('sensor.kdfi_barometric_pressure') %}
{{ states('sensor.kdfi_barometric_pressure') }}
{% else %}
{{ states('sensor.myradar_pressure') | float }}
{% endif %}
{% set pressures = [
states.sensor.kdfi_barometric_pressure,
states.sensor.myradar_pressure
] %}
{% set result = pressures | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
pressure_unit: inHg
wind_speed_template: "{{ states('sensor.pirateweather_wind_speed') | float }}"
wind_speed_template: >
{% set windspeeds = [
states.sensor.pirateweather_wind_speed,
states.sensor.kdfi_wind_speed,
states.sensor.openweathermap_wind_speed,
states.sensor.myradar_wind_speed
] %}
{% set result = windspeeds | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
wind_speed_unit: mph
wind_bearing_template: "{{ states('sensor.pirateweather_wind_bearing') | float }}"
wind_bearing_template: >
{% set windbearings = [
states.sensor.pirateweather_wind_bearing,
states.sensor.openweathermap_wind_bearing,
states.sensor.myradar_wind_bearing
] %}
{% set result = windbearings | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
visibility_template: >
{% if states('sensor.kdfi_visibility') %}
{{ states('sensor.kdfi_visibility') | float }}
{% else %}
{{ states('sensor.pirateweather_visibility') }}
{% endif %}
{% set vis = [
states.sensor.kdfi_visibility,
states.sensor.pirateweather_visibility,
states.sensor.openweathermap_visibility
] %}
{% set result = vis | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
visibility_unit: mi
attribution_template: "Hourly weather data from Iron Nerd's custom weather station template"
ozone_template: "{{ states('sensor.pirateweather_ozone') | float }}"
ozone_template: >
{% set ozones = [
states.sensor.pirateweather_ozone,
states.sensor.myradar_ozone
] %}
{% set result = ozones | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(result) | float }}
precipitation_unit: in
template: