Starlink - Dish and network stats

Starlink is Elon Musk’s internet of the future. It is currently in beta testing. The app for starlink has some wonderful stats that I would love to integrate directly into my HA.

There are scripts here: to get information directly from the dish terminal.

I would be more than willing to test the integration.

This is exactly what I’m looking for also. Would be willing to test too.

I’m no techy, but happy to assist here too… +1

Those linked scripts seem to be able to return a lot of useful info, now we just need to find someone with the skills to create an integration :slight_smile:

HA integration would be nice, as in 2022 Starlink user base will explode. I am already coming via SpaceX here I also found a version that takes those grpc scripts and converts the output to json, at that point it should be fairly easy to parse into HA. But I haven’t had time to play with it yet.

have you had time to play with it yet??

I took a crack at creating this. It seems to work on my HA install at the moment. If anyone else would like to try and let me know if it works for you, that would be great. Thanks!

1 Like

Also by the looks of it, there might be an official integration in place soon


Nice work!!! It is working. Could you please fix rounding on Ping Latency and Speeds represent in Mbps ?
Also somewhere i saw that there is availability to get the number of satellites, dish is connected to.

Working a treat. Thank you for taking the time to do this.

Speeds have been updated to Mbps, and numbers have been rounded to 2 decimal places. **This might cause your Downlink Throughput and Uplink Throughput entities to recreate, and give them new names (sensor.downlink_throughput_2), this is because the unit of measurement changed. Also remember that the throughput is just what your dish is currently using, not the max speed it can get at that point. The dish can only connect to one satellite at a time.

That explains a lot!

Thanks for your work! Have you considered integrating the dish control functions to allow rebooting through HA?

1 Like

This has been working great since I got my HP Dish, I submitted a feature request as an issue on GitHub regarding adding the GPS location function.

I have pushed a couple of updates today.

  • The ability to get the GPS location (and the instructions for allowing that are in the readme markdown)
  • The buttons to reboot, stow, and unstow the device.
  • Cleaned up some code and updated the documentation

Fantastic, this is so helpful. Thanks again.

I’m now updating my location based on the dish!

Every 15 minutes (probably can set this to be longer until motion on land is enabled but if you’re on a boat with the maritime plan this’ll work today, I have a High Performance dish on residential so almost the same thing)

I setup this automation in automations, “Start with an empty automation”, then hit the 3 dots and selected “Edit in YAML” saved it and restarted my Home Assistant. Now the map shows home as wherever the dish is. Next up is Auto Time-Zone but that seems to be waiting on: Ability to set timezone when location updates worst case I’ll find a way to just update the time zone each time it updates the location as another part of the automation.

alias: Set Location by Starlink
description: read Starlink GPS and set the location of home to match
  - platform: time_pattern
    minutes: /15
condition: []
  - service: homeassistant.set_location
      latitude: |
        {{ states("sensor.dish_latitude") }}
      longitude: |
        {{ states("sensor.dish_longitude") }}
      elevation: |
        {{ states("sensor.dish_altitude") }}
mode: single
1 Like

Hi @ArcherNE,

Apologies for the perhaps silly question, but I can’t seem to be able to configure the integration on my Home Assistant instance. I’ve added the custom repo in HACS, downloaded the custom components from HACS, however when I try to add the integration via the Home Assistant integrations page I just get a generic “Unknown error occurred”.

Would you have any tip on how to enable verbose logging for this integration so I can better understand what is not working?

Needless to say that I can get to just fine, and I have the Gen. 1 round dish.


Can you add the full stack trace from the log details in an issue on GitHub? I’ll see if I can see something.