I know it's a bit late but this might help others, I had the same issue so I made a small Powershell script to restart any AP's that were found in mesh/repeater mode:
#Step 1 Fill in your Meraki API Key here (You can get this from your profile on the Meraki dashboard under API access)
$Meraki_API_KEY = '<Insert Meraki API Key>'
<# Step 2 get your network IDs by running this:
$Meraki_API_KEY = '<Insert Meraki API Key>'
$OrgID = (Invoke-RestMethod -Method GET -Uri "https://api.meraki.com/api/v1/organizations" -Headers $header).id
$header = @{
"X-Cisco-Meraki-API-Key" = "$Meraki_API_KEY"
"Content-Type" = 'application/json'
"Accept" = 'application/json'
}
(Invoke-RestMethod -Method GET -Uri "https://api.meraki.com/api/v1/organizations/$OrgID/networks" -Headers $header) | Select-Object name, id
#>
#Step 3 fill in the target network id below
$Meraki_Network_ID = '<Insert network ID>'
$header = @{
"X-Cisco-Meraki-API-Key" = "$Meraki_API_KEY"
"Content-Type" = 'application/json'
"Accept" = 'application/json'
}
$MeshAPs = Invoke-RestMethod -Method GET -Uri "https://api.meraki.com/api/v1/networks/$Meraki_Network_ID/wireless/meshStatuses" -Headers $header
foreach ($AP in $MeshAPs){
If ($AP.meshRoute -ne "" -and $AP.meshRoute -ne $null)
{
Write-Host "Restarting AP $($AP.serial) as it's online and in repeater mode" -ForegroundColor Green
Invoke-RestMethod -Method Post -Uri "https://api.meraki.com/api/v1/networks/$Meraki_Network_ID/devices/$($AP.serial)/reboot" -Headers $header
}
else {Write-Host "Skipping AP $($AP.serial) as it's not online" -ForegroundColor Red}
}