International Space Station Sensor

Hi there, I am using ISS setup from the documentation and it looks like the following:

iss.yaml

binary_sensor:
- platform: iss
  name: ISS
  show_on_map: false

camera:
- platform: generic
  name: ISS
  still_image_url: http://staticmap.openstreetmap.de/staticmap.php?center={{ state_attr('binary_sensor.iss', 'lat') }},{{ state_attr('binary_sensor.iss', 'long') }}&zoom=4&size=865x512&maptype=mapnik&markers={{ state_attr('binary_sensor.iss', 'lat') }},{{ state_attr('binary_sensor.iss', 'long') }},lightblue
  limit_refetch_to_url_change: true

The states of binary_sensor.iss shows this in HA gui (so I assume the sensor works well):

number_of_people_in_space: 6
next_rise: '2020-01-17T18:37:19'
longitude: '-122.1717'
latitude: '20.6466'
friendly_name: ISS
device_class: visible

But this is what I see in lovelace:

Does anyone know why? (newbie here)

Same here, did you get a solution?
From what I gathered from various Google searches, the openstreetmap option was marked as ā€œUnreliableā€ some time back so probably doesnā€™t work now.
The Googlemaps option requires an API, which is easy to get but you have to set up an billing account, something I donā€™t want to do. Imagine an errant script running up a massive bill for me while Iā€™m at work.
So, the search goes on for an Opensource solution that works.

1 Like

IĀ“ve just set up the tracking for ISS. I get the same picture as @drew-kun posted. I followed the official home assistant instructions https://www.home-assistant.io/integrations/iss/
So IĀ“ve created a google API link and it is working now. But the billing account makes me headache and I totally understand @HemiBob
For everybody who is using Grafana have some interesting code to share with you. You will need the TrackMap add on from Grafana https://grafana.com/grafana/plugins/pr0ps-trackmap-panel and this lines of code:

SELECT mean("lat"), mean("long") FROM "state" WHERE ("domain" = 'binary_sensor' AND "entity_id" = 'iss') AND $timeFilter GROUP BY time($__interval) fill(none)

and then you will get something like this:

Please specify a valid referrer when using the static map script.

Hosting may be unreliable. Possible future shut-down of this service
The live service currently requires referrer headers, but does not support https.

Source: https://wiki.openstreetmap.org/wiki/StaticMapLite

Just used below iss.html in a iframe,

<html>
<head>
  <title>International Space Station</title>
</head>
<body>
<center><script type="text/javascript" src="https://www.n2yo.com/js/widget-tracker.js"></script></center>
</body>

and below rest sensors for info, used templates to extract wanted attributes,

# ISS
  - platform: rest
    name: iss_coordinates
    json_attributes:
      - timestamp
      - iss_position
      - latitude
      - longitude
    resource: 'http://api.open-notify.org/iss-now.json'
    scan_interval:
      seconds: 15

  - platform: rest
    name: ISS Pass times
    json_attributes:
      - request
      - response
    value_template: >
      {{ value_json.message }}
    resource: 'http://api.open-notify.org/iss-pass.json?lat=xx.xxxxx&lon=x.xxxxx'
    scan_interval:
      seconds: 300

  - platform: rest
    name: ISS People in space
    json_attributes:
      - people
      - number
    value_template: "{{ value_json['number'] }}"
    resource: 'http://api.open-notify.org/astros.json'

still learning but works fine for me and no maps or google accounts.



1 Like

Could you post the code for people in space as far as how you split the peoples names from the sensor. Thank you

Right now i have a list of this:

# ISS
  - platform: template
    sensors:
      iss_people_in_space_0_craft:
        value_template: '{% if states.sensor.iss_people_in_space %}{{ states.sensor.iss_people_in_space.attributes["people"][0]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_0_name:
        value_template: '{% if states.sensor.iss_people_in_space %}{{ states.sensor.iss_people_in_space.attributes["people"][0]["name"] }}{% endif %}'
        friendly_name: Name

want to make loops for all these sensors but thatā€™s a future plan.
By the way, today we can see dragon crew goes aboard and leave iss on these sensors. Have seen same with launchā€¦

Thank youi

Youā€™re welcome.
piece of lovelace i used with entity-filter

                  - type: entity-filter
                    entities:
                      - sensor.iss_people_in_space
                      - sensor.iss_people_in_space_0_name
                      - sensor.iss_people_in_space_0_craft
                      - sensor.iss_people_in_space_1_name
                      - sensor.iss_people_in_space_1_craft
                      - sensor.iss_people_in_space_2_name
                      - sensor.iss_people_in_space_2_craft
                      - sensor.iss_people_in_space_3_name
                      - sensor.iss_people_in_space_3_craft
                      - sensor.iss_people_in_space_4_name
                      - sensor.iss_people_in_space_4_craft
                      - sensor.iss_people_in_space_5_name
                      - sensor.iss_people_in_space_5_craft
                      - sensor.iss_people_in_space_6_name
                      - sensor.iss_people_in_space_6_craft
                      - sensor.iss_people_in_space_7_name
                      - sensor.iss_people_in_space_7_craft
                      - sensor.iss_people_in_space_8_name
                      - sensor.iss_people_in_space_8_craft
                      - sensor.iss_people_in_space_9_name
                      - sensor.iss_people_in_space_9_craft
                    state_filter:
                      - operator: "!="
                        value: "unavailable"

so only available sensors show up for now.

1 Like

I know you state you are using an iframe for the map. I assume this means you are using the webpage lovelace card as it appears the map shows up at the top of the screen with all the other related lovelace cards under it. How did you get the map card centered over the 2 columns beneath it? You also appear ot have a narrower column over on the left. Are you using Layout card or something else? Thank you!

  - type: custom:layout-card
    layout: auto
    min_columns: 1
    max_columns: 2
    max_width: 100%
    column_width: 100%
    justify_content: center
    cards:
      - type: vertical-stack
        cards:
          - type: horizontal-stack
            cards:
              - type: custom:button-card
                template: default_header
                name: International Space Station
          - type: horizontal-stack
            cards:
              - type: iframe
                url: https://home.xxx.xx/local/iss.html
                aspect_ratio: 75%

This is what is have in lovelaceā€¦

1 Like

Really nice config, thank you for sharing this. I was watching the SpaceX launch tonight and thought to myself that I needed an ISS integration in my Home Assistant. I prefer your method to the official integration.

Can I ask you to share the template you use to ā€˜translateā€™ the ISS Pass times as you have them?

Also, are the images you show on the right a live video feed?

And you also have a SpaceX Next Mission at the bottom there - how do you get the info for that?

Thanks in advance.

Hi, the launchlibrary (v2.0) has changed to ā€œthespacedevs.comā€.
Some things changed in templates.

My rest sensors:

# ISS
  - platform: rest
    name: iss_coordinates
    json_attributes:
      - timestamp
      - iss_position
      - latitude
      - longitude
    resource: 'http://api.open-notify.org/iss-now.json'
    scan_interval:
      seconds: 15

  - platform: rest
    name: ISS Pass times
    json_attributes:
      - request
      - response
    value_template: >
      {{ value_json.message }}
    resource: 'http://api.open-notify.org/iss-pass.json?lat=51.9867&lon=5.9202'
    scan_interval:
      seconds: 300

  - platform: rest
    name: ISS People in space
    json_attributes:
      - people
      - number
    value_template: "{{ value_json['number'] }}"
    resource: 'http://api.open-notify.org/astros.json'

# Launches
  - platform: rest
    name: Spacelibrary
    scan_interval: 600
    json_attributes:
      - results
    value_template: "{{ value_json.results[0].window_start }}"
    resource: 'https://ll.thespacedevs.com/2.0.0/launch/upcoming/?format=json&limit=3&offset=0'

# Starman
  - platform: rest
    name: Starman Speed
    json_attributes:
      - earth_distance_km
    value_template: '{{ value_json["speed_kph"] }}'
    unit_of_measurement: "km/h"
    resource: 'https://api.spacexdata.com/v2/info/roadster'

# SpaceX Launches
  - platform: rest
    name: SpaceX
    json_attributes:
      - mission_name
      - launch_site
      - rocket
      - details
    value_template: '{{ value_json[0]["launch_date_unix"] }}'
    resource: 'https://api.spacexdata.com/v3/launches/upcoming?limit=1&offset=0'

and my template sensors:

# ISS
  - platform: template
    sensors:
      iss_timestamp:
        value_template: '{% if states.sensor.iss_coordinates %}{{ states.sensor.iss_coordinates.attributes.timestamp }}{% endif %}'
        friendly_name: ISS Timestamp
      iss_latitude:
        value_template: '{% if states.sensor.iss_coordinates %}{{ states.sensor.iss_coordinates.attributes["iss_position"]["latitude"] }}{% endif %}'
        friendly_name: ISS Latitude
      iss_longitude:
        value_template: '{% if states.sensor.iss_coordinates %}{{ states.sensor.iss_coordinates.attributes["iss_position"]["longitude"] }}{% endif %}'
        friendly_name: ISS Longitude
      iss_number_of_passes:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["request"]["passes"] }}{% endif %}'
        friendly_name: ISS aantal overgangen
      iss_next_rise_0:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][0]["risetime"] | int | timestamp_custom("%d-%m-%Y %H:%M")}}{% endif %}'
        friendly_name: ISS overgang 1
      iss_duration_0:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][0]["duration"] }}{% endif %}'
        friendly_name: ISS Duur overgang 1
        unit_of_measurement: "Seconds"
      iss_next_rise_1:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][1]["risetime"]  | int | timestamp_custom("%d-%m-%Y %H:%M") }}{% endif %}'
        friendly_name: ISS overgang 2
      iss_duration_1:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][1]["duration"] }}{% endif %}'
        friendly_name: ISS Duur overgang 2
        unit_of_measurement: "Seconds"
      iss_next_rise_2:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][2]["risetime"]  | int | timestamp_custom("%d-%m-%Y %H:%M") }}{% endif %}'
        friendly_name: ISS overgang 3
      iss_duration_2:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][2]["duration"] }}{% endif %}'
        friendly_name: ISS Duur overgang 3
        unit_of_measurement: "Seconds"
      iss_next_rise_3:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][3]["risetime"]  | int | timestamp_custom("%d-%m-%Y %H:%M") }}{% endif %}'
        friendly_name: ISS overgang 4
      iss_duration_3:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][3]["duration"] }}{% endif %}'
        friendly_name: ISS Duur overgang 4
        unit_of_measurement: "Seconds"
      iss_next_rise_4:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][4]["risetime"]  | int | timestamp_custom("%d-%m-%Y %H:%M") }}{% endif %}'
        friendly_name: ISS overgang 5
      iss_duration_4:
        value_template: '{% if states.sensor.iss_pass_times %}{{ states.sensor.iss_pass_times.attributes["response"][4]["duration"] }}{% endif %}'
        friendly_name: ISS Duur overgang 5
        unit_of_measurement: "Seconds"
      iss_people_in_space_0_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][0] %}{{ states.sensor.iss_people_in_space.attributes["people"][0]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_0_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][0] %}{{ states.sensor.iss_people_in_space.attributes["people"][0]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_1_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][1] %}{{ states.sensor.iss_people_in_space.attributes["people"][1]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_1_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][1] %}{{ states.sensor.iss_people_in_space.attributes["people"][1]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_2_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][2] %}{{ states.sensor.iss_people_in_space.attributes["people"][2]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_2_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][2] %}{{ states.sensor.iss_people_in_space.attributes["people"][2]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_3_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][3] %}{{ states.sensor.iss_people_in_space.attributes["people"][3]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_3_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][3] %}{{ states.sensor.iss_people_in_space.attributes["people"][3]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_4_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][4] %}{{ states.sensor.iss_people_in_space.attributes["people"][4]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_4_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][4] %}{{ states.sensor.iss_people_in_space.attributes["people"][4]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_5_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][5] %}{{ states.sensor.iss_people_in_space.attributes["people"][5]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_5_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][5] %}{{ states.sensor.iss_people_in_space.attributes["people"][5]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_6_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][6] %}{{ states.sensor.iss_people_in_space.attributes["people"][6]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_6_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][6] %}{{ states.sensor.iss_people_in_space.attributes["people"][6]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_7_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][7] %}{{ states.sensor.iss_people_in_space.attributes["people"][7]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_7_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][7] %}{{ states.sensor.iss_people_in_space.attributes["people"][7]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_8_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][8] %}{{ states.sensor.iss_people_in_space.attributes["people"][8]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_8_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][8] %}{{ states.sensor.iss_people_in_space.attributes["people"][8]["name"] }}{% endif %}'
        friendly_name: Name
      iss_people_in_space_9_craft:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][9] %}{{ states.sensor.iss_people_in_space.attributes["people"][9]["craft"] }}{% endif %}'
        friendly_name: Craft
      iss_people_in_space_9_name:
        value_template: '{% if states.sensor.iss_people_in_space.attributes["people"][9] %}{{ states.sensor.iss_people_in_space.attributes["people"][9]["name"] }}{% endif %}'
        friendly_name: Name

#  - platform: template
#    sensors:
#      iss_next_rise:
#        value_template: >
#          {% set response = state_attr('sensor.iss_pass_times', 'response') %}
#          {% if as_timestamp(now()) > response[0].risetime | int and
#                as_timestamp(now()) < response[0].risetime | int + response[0].duration | int %}
#            {% set nextrise = 'Visible Now!' %}
#          {% elif as_timestamp(now()) < response[0].risetime | int and
#                  response[0].risetime | timestamp_custom ('%Y-%m-%d') == states('sensor.date') %}
#            {% set nextrise = 'Today at ' ~ response[0].risetime  | timestamp_custom ('%H:%M') %}
#          {% else %}
#            {% set nextrise = 'Tomorrow at ' ~ response[0].risetime  | timestamp_custom ('%H:%M') %}
#          {% endif %}
#          {{ nextrise }}

# SpaceX
      spacex_next_launch_time:
        value_template: '{{ states.sensor.spacex.state | int | timestamp_custom("%d-%m-%Y %H:%M") }}'
        friendly_name: Lanceertijd
      spacex_next_mission_name:
        value_template: '{{ states.sensor.spacex.attributes.mission_name }}'
        friendly_name: Missie
      spacex_next_launch_site:
        value_template: '{{ states.sensor.spacex.attributes["launch_site"]["site_name_long"] }}'
        friendly_name: Lanceerplatform
      spacex_next_rocket:
        value_template: '{{ states.sensor.spacex.attributes["rocket"]["rocket_name"] }}'
        friendly_name: Raket
#      spacex_next_details:
#        value_template: "{{ state_attr('sensor.spacex', 'details') }}"
#        friendly_name: Beschrijving
      starman_earth_distance:
        value_template: '{{ states.sensor.starman_speed.attributes.earth_distance_km }}'
        friendly_name: Afstand Starman vanaf Aarde

# launchlibrary
      spacelibrary_first_launch:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][0]["name"] }}'
        friendly_name: Missie
      spacelibrary_second_launch:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][1]["name"] }}'
        friendly_name: Missie
      spacelibrary_third_launch:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][2]["name"] }}'
        friendly_name: Missie
      spacelibrary_first_startdate:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][0]["net"] }}'
        friendly_name: Lanceertijd utc
      spacelibrary_first_startdate_local:
        value_template: '{{as_timestamp(states.sensor.spacelibrary_first_startdate.state) | timestamp_custom ("%d-%m-%Y %H:%M") }}'
        friendly_name: Lanceertijd
      spacelibrary_second_startdate:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][1]["net"] }}'
        friendly_name: Lanceertijd utc
      spacelibrary_second_startdate_local:
        value_template: '{{as_timestamp(states.sensor.spacelibrary_second_startdate.state) | timestamp_custom ("%d-%m-%Y %H:%M") }}'
        friendly_name: Lanceertijd
      spacelibrary_third_startdate:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][2]["net"] }}'
        friendly_name: Lanceertijd utc
      spacelibrary_third_startdate_local:
        value_template: '{{as_timestamp(states.sensor.spacelibrary_third_startdate.state) | timestamp_custom ("%d-%m-%Y %H:%M") }}'
        friendly_name: Lanceertijd
      spacelibrary_first_launchsite:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][0]["pad"]["location"]["name"] }}'
        friendly_name: Lanceerplatform
      spacelibrary_second_launchsite:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][1]["pad"]["location"]["name"] }}'
        friendly_name: Lanceerplatform
      spacelibrary_third_launchsite:
        value_template: '{{ states.sensor.spacelibrary.attributes["results"][2]["pad"]["location"]["name"] }}'
        friendly_name: Lanceerplatform

For now max 10 people in space, works fine.
Still have to learn to write nicer templates but it is working.
No livefeed but pictures.

4 Likes

Hi,
Thank you so much for sharing all this - and for the link to thespacedevsā€¦com - so much information there! I think your config is so much better and complete than the official integration and works very well!
The templates work much better than what I was trying - and Iā€™ve just learn from you that I donā€™t have to write a separate template entry for each sensor, I can just group all template sensors in the same entry - that will clean my yaml quite a bit!
Just one thing - the state filter in lovelace you posted before to show only available sensors doesnā€™t seem to work now for some reason - has the attribute or value changed (it was working yesterday with your earlier config)

            state_filter:
              - operator: '!='
                value: unavailable

Thank once again!

Youā€™re right, some things were changed.

So my lovelace:

cards:
  - type: custom:layout-card
    layout: auto
    min_columns: 1
    max_columns: 2
    max_width: 100%
    column_width: 100%
    justify_content: center
    cards:
      - type: vertical-stack
        cards:
          - type: custom:button-card
            template: default_header
            name: International Space Station
          - type: iframe
            url: https://mydomain/local/iss.html
            aspect_ratio: 55%

          - type: horizontal-stack
            cards:
              - type: vertical-stack
                cards:
                  - type: entities
                    entities:
                      - type: section
                        label: ISS current location
                      - sensor.iss_latitude
                      - sensor.iss_longitude
                      - type: section
                        label: Volgende 5 overgangen
                      - sensor.iss_next_rise_0
                      - sensor.iss_duration_0
                      - sensor.iss_next_rise_1
                      - sensor.iss_duration_1
                      - sensor.iss_next_rise_2
                      - sensor.iss_duration_2
                      - sensor.iss_next_rise_3
                      - sensor.iss_duration_3
                      - sensor.iss_next_rise_4
                      - sensor.iss_duration_4
                      - type: section
                        label: People in space
                  - type: entity-filter
                    entities:
                      - entity: sensor.iss_people_in_space
                      - entity: sensor.iss_people_in_space_0_name
                      - entity: sensor.iss_people_in_space_0_craft
                      - entity: sensor.iss_people_in_space_1_name
                      - entity: sensor.iss_people_in_space_1_craft
                      - entity: sensor.iss_people_in_space_2_name
                      - entity: sensor.iss_people_in_space_2_craft
                      - entity: sensor.iss_people_in_space_3_name
                      - entity: sensor.iss_people_in_space_3_craft
                      - entity: sensor.iss_people_in_space_4_name
                      - entity: sensor.iss_people_in_space_4_craft
                      - entity: sensor.iss_people_in_space_5_name
                      - entity: sensor.iss_people_in_space_5_craft
                      - entity: sensor.iss_people_in_space_6_name
                      - entity: sensor.iss_people_in_space_6_craft
                      - entity: sensor.iss_people_in_space_7_name
                      - entity: sensor.iss_people_in_space_7_craft
                      - entity: sensor.iss_people_in_space_8_name
                      - entity: sensor.iss_people_in_space_8_craft
                      - entity: sensor.iss_people_in_space_9_name
                      - entity: sensor.iss_people_in_space_9_craft
                    state_filter:
                      - operator: ">"
                        value: "0"

              - type: vertical-stack
                cards:
                  - type: picture-entity
                    entity: sensor.iss_people_in_space
                    image: /local/images/iss2.jpg
                  - type: entities
                    entities:
                      - type: weblink
                        name: ISS big map
                        url: 'https://mydomain/local/iss-large.html'
                      - type: weblink
                        name: N2YO.com
                        url: 'https://www.n2yo.com/?s=25544'
                      - type: weblink
                        name: Docking Simulator ISS
                        url: 'https://iss-sim.spacex.com/'
                  - type: picture-entity
                    entity: sensor.iss_people_in_space
                    image: /local/images/dragon.jpg
                  - type: entities
                    entities:
                      - type: weblink
                        name: SpaceX
                        url: 'https://www.spacex.com/'
                      - type: weblink
                        name: NASA
                        url: 'https://www.nasa.gov/'
                  - type: picture-entity
                    entity: sensor.iss_people_in_space
                    image: /local/images/crewdragondocking.jpg

          - type: vertical-stack
            cards:
              - type: custom:button-card
                template: default_header
                name: SpaceX Next Mission
              - type: horizontal-stack
                cards:
                  - type: picture-entity
                    entity: sensor.spacex_next_mission_name
                    image: /local/images/crew_dragon_fire.jpg
                  - type: entities
                    entities:
                      - sensor.spacex_next_mission_name
                      - sensor.spacex_next_launch_time
                      - sensor.spacex_next_launch_site
                      - sensor.spacex_next_rocket
#                      - sensor.spacex_next_details

          - type: vertical-stack
            cards:
              - type: custom:button-card
                template: default_header
                name: Starman - Tesla (roadster) in space
              - type: horizontal-stack
                cards:
                  - type: entities
                    entities:
                      - sensor.starman_speed
                      - sensor.starman_earth_distance
                  - type: picture-entity
                    entity: sensor.starman_speed
                    image: /local/images/tesla_roadster.jpg
              - type: horizontal-stack
                cards:
                  - type: custom:button-card
                    template: default_header
                    name: Next 3 launches
              - type: horizontal-stack
                cards:
                  - type: picture-entity
                    entity: sensor.spacelibrary
                    image: /local/images/spacex-falcon-heavy.jpg
                  - type: entities
                    entities:
                      - sensor.spacelibrary_first_launch
                      - sensor.spacelibrary_first_startdate_local
                      - sensor.spacelibrary_first_launchsite
              - type: horizontal-stack
                cards:
                  - type: entities
                    entities:
                      - sensor.spacelibrary_second_launch
                      - sensor.spacelibrary_second_startdate_local
                      - sensor.spacelibrary_second_launchsite
                  - type: picture-entity
                    entity: sensor.spacelibrary_second_startdate
                    image: /local/images/long-march.jpg
              - type: horizontal-stack
                cards:
                  - type: picture-entity
                    entity: sensor.spacelibrary_third_startdate
                    image: /local/images/spacex-falcon-9.jpg
                  - type: entities
                    entities:
                      - sensor.spacelibrary_third_launch
                      - sensor.spacelibrary_third_startdate_local
                      - sensor.spacelibrary_third_launchsite

my iss.html:

<html>
<head>
  <title>International Space Station</title>
</head>
<body>
<center><script type="text/javascript" src="https://www.n2yo.com/js/widget-tracker.js"></script></center>
</body>

So this is the current config.

3 Likes

Was just looking at thespacedevs.com for the above and saw that they have also a spacestation part. Url for ISS:

ā€œhttps://ll.thespacedevs.com/2.0.0/spacestation/4/?format=jsonā€

2 Likes

This is awesome, thank you so much for sharing! It works and looks great!

Iā€™ve added a live feed from the space station using the ustream feed and copying your html template - it works great, maybe is of interest?

<html>
<head>
  <title>ISS Live Stream</title>
</head>
<body>
<iframe width="480" height="270" src="https://ustream.tv/embed/17074538" scrolling="no" allowfullscreen webkitallowfullscreen frameborder="0" style="border: 0 none transparent;"></iframe>
</body>

and Iā€™ve used a iframe card to display it:

type: iframe
url: /local/iss-stream.html
aspect_ratio: 60%

There may be better ways to do it but works good enough for me. The stream goes black often when the iss is in the shadow (night) so if itā€™s just a black screen you may have to wait untill the station crosses to the light side of the planet.

Once again, much appreciated for the config!

Thank you, nice feed. Have it now integrated in my space tab;-)

This is awesome! Just integrated this to my setup! :smiley:

Can you share your template (default_header) wich you used?