Omada API Profil Liste
Hi all,
Der Support von TP-Link ist der schlechteste. Ich verstehe nicht, warum die Nutzung der API so kompliziert ist und warum der Support uns an die Community verweist. Wir haben TP-Link-Geräte im Wert von 100.000 Euro und werden bei Problemen an die Community verwiesen, wo uns auch niemand helfen kann. Weiß jemand, wo die richtige API-Dokumentation zu finden ist und wie eine wirklich funktionierende Verbindung hergestellt werden kann? Wie kann man Profile mit den zugelassenen Geräten lesen und wie fügt man sie hinzu oder entfernt sie?
Das Einzige, was ich gefunden habe, das funktioniert, ist das hier (Powershell):
### PowerShell Example
# set variables
$OMADA_URL = "https://omada.local"
$USERNAME = "admin"
$PASSWORD = "pass"
# get controller id from the API
$CONTROLLER_ID = (Invoke-RestMethod -Uri "${OMADA_URL}/api/info" -Method Get -UseBasicParsing).result.omadacId
# set the login request body as json
$loginRequestBody = @{
username = $USERNAME
password = $PASSWORD
} | ConvertTo-Json
# login, get token, set a session variable
$loginResponse = Invoke-RestMethod -Uri "${OMADA_URL}/${CONTROLLER_ID}/api/v2/login" -Method Post -ContentType "application/json" -Body $loginRequestBody -SessionVariable OmadaSession
# extract the token and create a variable for the headers
$TOKEN = $loginResponse.result.token
$RequestHeaders = @{
"Csrf-Token" = $TOKEN
"Content-Type" = "application/json"
}
# validate login
Invoke-RestMethod -Uri "${OMADA_URL}/${CONTROLLER_ID}/api/v2/loginStatus?token=${TOKEN}" -Method Get -Headers $RequestHeaders -WebSession $OmadaSession
# example to get info on the current user
$CurrentUser = Invoke-RestMethod -Uri "${OMADA_URL}/${CONTROLLER_ID}/api/v2/users/current?token=${TOKEN}¤tPage=1¤tPageSize=1000" -Method Get -Headers $RequestHeaders -WebSession $OmadaSession
$CurrentUser.result
# Sitens
$SITE = (Invoke-RestMethod -Uri "${OMADA_URL}/${CONTROLLER_ID}/api/v2/sites?currentPage=1¤tPageSize=1000" -Method Get -Headers $RequestHeaders -WebSession $OmadaSession).result.data
$SITE_ID = $SITE.id
#devices
(Invoke-RestMethod -Uri "${OMADA_URL}/${CONTROLLER_ID}/api/v2/sites/${SITE_ID}/devices" -Method Get -Headers $RequestHeaders -WebSession $OmadaSession).result | select name
#settings
(Invoke-RestMethod -Uri "${OMADA_URL}/${CONTROLLER_ID}/api/v2/sites/${SITE_ID}/setting?currentPage=1¤tPageSize=1000" -Method Get -Headers $RequestHeaders -WebSession $OmadaSession).result #| select name