type: custom:layout-card layout_type: custom:grid-layout cards: - type: vertical-stack cards: - type: markdown content: >-

NASA Data

Data for the next {{state_attr("sensor.neo_watcher_stats","Weeks ahead")}} weeks - from {{state_attr("sensor.neo_watcher_stats","From date")| as_timestamp | timestamp_custom('%-d %B %Y')}} to {{state_attr("sensor.neo_watcher_stats","To date")| as_timestamp | timestamp_custom('%-d %B %Y')}}
Total Near Earth Objects found: {{state_attr("sensor.neo_watcher_stats","Total Near Earth Objects found")}}
Total potentially hazardous Near Earth Ojects found: {{state_attr("sensor.neo_watcher_stats","Total potentially hazardous Near Earth Ojects found")}} - type: horizontal-stack cards: - type: markdown content: >+ {%set object_number="1st"%} {%- if states("sensor.neo_watcher_potentially_hazardous_" + object_number) != "unavailable" and states("sensor.neo_watcher_potentially_hazardous_" + object_number) != "unknown"-%}

{{object_number | regex_findall_index("[0-9]")}}{{object_number | regex_findall_index("[^0-9]+")}} closest potentially hazardous object

Closest date: {{as_timestamp(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"close_approach_date"))| timestamp_custom('%-d %B %Y')}} at {{state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"close_approach_date_full").split(' ')[1]}}
Closest distance: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"miss_distance_mi") | int)}} Miles from Earth
Speed: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"relative_velocity_mi_per_h") | int)}} Miles per hour
Size: {{"{:,.1f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"estimated_diameter_min_mi") | float)}} Miles - {{"{:,.1f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"estimated_diameter_max_mi") | float)}} Miles across

Link to full detail {{state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"nasa_jpl_url")}}

Link to orbital detail {%set x = state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")-%} {{ x[:80] }}... {%- else-%} Unavailable, please check the Neo Watcher integration for more details {%- endif-%} - type: markdown content: > {%set object_number="2nd"%} {%- if states("sensor.neo_watcher_potentially_hazardous_" + object_number) != "unavailable" and states("sensor.neo_watcher_potentially_hazardous_" + object_number) != "unknown"-%}

{{object_number | regex_findall_index("[0-9]")}}{{object_number | regex_findall_index("[^0-9]+")}} closest potentially hazardous object

Closest date: {{as_timestamp(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"close_approach_date"))| timestamp_custom('%-d %B %Y')}} at {{state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"close_approach_date_full").split(' ')[1]}}
Closest distance: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"miss_distance_mi") | int)}} Miles from Earth
Speed: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"relative_velocity_mi_per_h") | int)}} Miles per hour
Size: {{"{:,.1f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"estimated_diameter_min_mi") | float)}} Miles - {{"{:,.1f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"estimated_diameter_max_mi") | float)}} Miles across

Link to full detail {{state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"nasa_jpl_url")}}

Link to orbital detail {%set x = state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")-%} {{ x[:80] }}... {%- else-%} Unavailable, please check the Neo Watcher integration for more details {%- endif-%} - type: markdown content: > {%set object_number="3rd"%} {%- if states("sensor.neo_watcher_potentially_hazardous_" + object_number) != "unavailable" and states("sensor.neo_watcher_potentially_hazardous_" + object_number) != "unknown"-%}

{{object_number | regex_findall_index("[0-9]")}}{{object_number | regex_findall_index("[^0-9]+")}} closest potentially hazardous object

Closest date: {{as_timestamp(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"close_approach_date"))| timestamp_custom('%-d %B %Y')}} at {{state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"close_approach_date_full").split(' ')[1]}}
Closest distance: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"miss_distance_mi") | int)}} Miles from Earth
Speed: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"relative_velocity_mi_per_h") | int)}} Miles per hour
Size: {{"{:,.1f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"estimated_diameter_min_mi") | float)}} Miles - {{"{:,.1f}".format(state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"estimated_diameter_max_mi") | float)}} Miles across

Link to full detail {{state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"nasa_jpl_url")}}

Link to orbital detail {%set x = state_attr("sensor.neo_watcher_potentially_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")-%} {{ x[:80] }}... {%- else-%} Unavailable, please check the Neo Watcher integration for more details {%- endif-%} - type: horizontal-stack cards: - type: markdown content: >- {%set object_number="1st"%} {%- if states("sensor.neo_watcher_non_hazardous_" + object_number) != "unavailable" and states("sensor.neo_watcher_non_hazardous_" + object_number) != "unknown"-%}

{{object_number | regex_findall_index("[0-9]")}}{{object_number | regex_findall_index("[^0-9]+")}} closest non hazardous object

Closest date: {{as_timestamp(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"close_approach_date"))| timestamp_custom('%-d %B %Y')}} at {{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"close_approach_date_full").split(' ')[1]}}
Closest distance: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"miss_distance_mi") | int)}} Miles from Earth
Speed: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"relative_velocity_mi_per_h") | int)}} Miles per hour
Size: {{"{:,.1f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"estimated_diameter_min_mi") | float)}} Miles - {{"{:,.1f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"estimated_diameter_max_mi") | float)}} Miles across

Link to full detail {{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"nasa_jpl_url")}}

{%set x = state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")-%} {%-if x != none -%} Link to orbital detail {%-if x | length() > 80-%}{{ x[:80] }}...{%-else-%}{{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")}}{%-endif-%} {%- endif-%} {%- else-%} Unavailable, please check the Neo Watcher integration for more details {%- endif-%} - type: markdown content: >- {%set object_number="2nd"%} {%- if states("sensor.neo_watcher_non_hazardous_" + object_number) != "unavailable" and states("sensor.neo_watcher_non_hazardous_" + object_number) != "unknown"-%}

{{object_number | regex_findall_index("[0-9]")}}{{object_number | regex_findall_index("[^0-9]+")}} closest non hazardous object

Closest date: {{as_timestamp(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"close_approach_date"))| timestamp_custom('%-d %B %Y')}} at {{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"close_approach_date_full").split(' ')[1]}}
Closest distance: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"miss_distance_mi") | int)}} Miles from Earth
Speed: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"relative_velocity_mi_per_h") | int)}} Miles per hour
Size: {{"{:,.1f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"estimated_diameter_min_mi") | float)}} Miles - {{"{:,.1f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"estimated_diameter_max_mi") | float)}} Miles across

Link to full detail {{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"nasa_jpl_url")}}

{%set x = state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")-%} {%-if x != none -%} Link to orbital detail {%-if x | length() > 80-%}{{ x[:80] }}...{%-else-%}{{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")}}{%-endif-%} {%- endif-%} {%- else-%} Unavailable, please check the Neo Watcher integration for more details {%- endif-%} - type: markdown content: >- {%set object_number="3rd"%} {%- if states("sensor.neo_watcher_non_hazardous_" + object_number) != "unavailable" and states("sensor.neo_watcher_non_hazardous_" + object_number) != "unknown"-%}

{{object_number | regex_findall_index("[0-9]")}}{{object_number | regex_findall_index("[^0-9]+")}} closest non hazardous object

Closest date: {{as_timestamp(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"close_approach_date"))| timestamp_custom('%-d %B %Y')}} at {{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"close_approach_date_full").split(' ')[1]}}
Closest distance: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"miss_distance_mi") | int)}} Miles from Earth
Speed: {{"{:,.0f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"relative_velocity_mi_per_h") | int)}} Miles per hour
Size: {{"{:,.1f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"estimated_diameter_min_mi") | float)}} Miles - {{"{:,.1f}".format(state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"estimated_diameter_max_mi") | float)}} Miles across

Link to full detail {{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"nasa_jpl_url")}}

{%set x = state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")-%} {%-if x != none -%} Link to orbital detail {%-if x | length() > 80-%}{{ x[:80] }}...{%-else-%}{{state_attr("sensor.neo_watcher_non_hazardous_" + object_number,"Neo_Watcher_Orbit_Viewer_URL")}}{%-endif-%} {%- endif-%} {%- else-%} Unavailable, please check the Neo Watcher integration for more details {%- endif-%} - type: markdown content: >-
(Data acquisition took {% if timedelta(seconds=(as_timestamp(state_attr("sensor.neo_watcher_stats","Last Update Time"))) - as_timestamp(state_attr("sensor.neo_watcher_stats","Process Start Time"))).total_seconds() | round(0) | int > 120-%} {{timedelta(seconds=(as_timestamp(state_attr("sensor.neo_watcher_stats","Last Update Time"))) - as_timestamp(state_attr("sensor.neo_watcher_stats","Process Start Time"))).total_seconds() | round(0) | int | timestamp_custom('%-M minutes %S seconds',false)}} {%-elif timedelta(seconds=(as_timestamp(state_attr("sensor.neo_watcher_stats","Last Update Time"))) - as_timestamp(state_attr("sensor.neo_watcher_stats","Process Start Time"))).total_seconds() | round(0) | int > 60-%} {{timedelta(seconds=(as_timestamp(state_attr("sensor.neo_watcher_stats","Last Update Time"))) - as_timestamp(state_attr("sensor.neo_watcher_stats","Process Start Time"))).total_seconds() | round(0) | int | timestamp_custom('%-M minute %S seconds',false)}} {%-else-%} {{timedelta(seconds=(as_timestamp(state_attr("sensor.neo_watcher_stats","Last Update Time"))) - as_timestamp(state_attr("sensor.neo_watcher_stats","Process Start Time"))).total_seconds() | round(0) | int | timestamp_custom('%S seconds',false)}} {%-endif-%} )
layout: width: 100%