ReducedArc

joined 1 year ago
 

Greetings Pioneers! I got my local dedicated server stats added to Home Assistant and wanted to share if anyone else is interested.

First off the API documentation can be found at “steamapps/common/Satisfactory/CommunityResources/DedicatedServerAPIDocs.md” or here thanks to redditor /u/suudo.

I generated an API token by opening the game client, clicking Server Manager > Console and entering the command server.GenerateAPIToken and added the following code block below to my configuration.yaml file.

NOTE: I assume this goes without saying, but just wanted to note that you need to input your own server IP at YOUR_DEDICATED_SERVER_IP and input your own API token at YOUR_TOKEN in my example below. If there’s more you want to see please consult the documentation I’ve linked above.

NOTE: I specified a unique_id for each sensor so they are customizable in the UI - this can be literally anything as long as it’s unique.

rest:
  - scan_interval: 60
    method: POST
    resource: "https://YOUR_DEDICATED_SERVER_IP:7777/api/v1"
    verify_ssl: false
    headers:
      Authorization: Bearer YOUR_TOKEN
      Content-Type: "application/json"
    payload: '{ "function": "QueryServerState" }'
    sensor:
      - name: "Satisfactory Connected Players"
        value_template: "{{ value_json.data.serverGameState.numConnectedPlayers | int }}"
        unique_id: 63628608-0139-40f0-b163-d2534d17ca78
        unit_of_measurement: "Players"
      - name: "Satisfactory Tech Tier"
        value_template: "{{ value_json.data.serverGameState.techTier | int }}"
        unique_id: 63628608-0139-40f0-b163-d2534d17ca79
      - name: "Satisfactory Average Tick Rate"
        value_template: "{{ value_json.data.serverGameState.averageTickRate | float | round(1) }}"
        unique_id: 63628608-0139-40f0-b163-d2534d17ca7a
        unit_of_measurement: "Ticks/s"
      - name: "Satisfactory Active Session Name"
        value_template: "{{ value_json.data.serverGameState.activeSessionName }}"
        unique_id: 63628608-0139-40f0-b163-d2534d17ca7b
      - name: "Satisfactory Total Game Duration"
        value_template: "{{ (value_json.data.serverGameState.totalGameDuration | int) // 3600 }}"
        unique_id: 63628608-0139-40f0-b163-d2534d17ca7c
        device_class: "duration"
        unit_of_measurement: "hours"
[–] ReducedArc@lemmy.world 4 points 1 month ago (1 children)

Same here, I have a subscribed list too when I want to look at specifically my interests. But lately it seems like 'hot' kind of sucks, it's all posts with low upvotes and no comments. I've been having to look at top 12 hr now

[–] ReducedArc@lemmy.world 10 points 2 months ago* (last edited 2 months ago)
[–] ReducedArc@lemmy.world 11 points 2 months ago

You doing alright? I hope you're around for longer than that

[–] ReducedArc@lemmy.world 2 points 2 months ago

Things like turning off wifi and/or turning on airplane mode can make a big difference (when you're not needing connectivity of course) The cell modem can really eat away battery life if you have a poor signal. And for my pixel tablet, turning off wifi means the battery can last for a couple weeks instead of a couple days. Heck, turning it off if you won't be using it for more than a few hours can help too.

[–] ReducedArc@lemmy.world 7 points 3 months ago

She could have, like, opened the door..