Hi Thwack community
I'm just wondering if there is any way to schedule a suppression (mute) or unmanagement of a hardware sensor?
It's a frequently question asked in our organization and I've not found any solution to this myself.
Thank you!
Pretty sure there isn't a way to do this at the sensor level. You'd, as I understand it, need to mute the aspect it is attached to. So, for example, an interface.
Not a good option - but you can disable the ones that you don't want
Settings -> All Settings -> Manage Hardware Sensors -> Looks for the sensor on particular node -> Select that sensor -> disable
But as i said not a good option, this would disable it permanently and you can enable it back provided there is no change on the end device (node).
This has been my conclusion as well. Thank you for taking your time to give your insight.
This has actually been our workaround too. But as you can imagine, without the schedule, enabling the sensor again is sometimes forgotten.
Thank you for taking the time to answer anyway, I appreciate it
you can try the solarwinds api
there are verbs to enable and disable the hardware sensors.
you can probably scheduled it.
I've thought some more, and the only other option I can think of is to do it via scripting.
Yeah, this is what I was meaning by scripting it.
Interesting question/subject. It made we wonder if this is possible, but what about disabling certain global hardware for those annoying issues? Then leveraging UnDP for sensors you care or want? In this case it would be easier to opt in rather than disabling sensors
Interesting question! We run a similar setup for monitoring behind bsd-brawl.net, where uptime and performance are key—especially when hosting real-time multiplayer content. While there's no built-in feature to schedule suppression of a hardware sensor in SolarWinds, we've managed temporary unmanagement using scripts and API calls, kind of like toggling specific game modes or modules during peak load times. A built-in scheduler for this would be super helpful to avoid manual intervention during maintenance windows. Definitely something worth pushing for
That's an interesting topic—it got me thinking about whether it's possible to handle this by disabling specific global hardware that's causing persistent issues. Then, instead of managing everything, you could use UnDP to selectively include only the sensors you actually need. This way, it becomes more of an opt-in approach rather than having to go through the trouble of disabling unwanted sensors.
Yep, thinking about creating a Jenkins job that can automate this process. Thanks!
Disclaimer:The content posted herein are provided as a suggestion or recommendation to you for your internal use. The information set forth herein may come from third party website or customers. SolarWinds is not liable for any downtime or any issue that may occur if you perform the following suggestions on the link provided. Your organization should internally review and assess to what extent, if any, such custom scripts or recommendations will be incorporated into your environment.Please try this first in a lab environment, before implementing to your production.You can open a support ticket to get insights, but please take note of our Working with Support Policy, customizations are not supported especially if this would involved custom scripts or queries, support can assist in a best effort practice since our support team is intended as a break fix support.This is a good and frequently asked but overlooked question and unfortunately SolarWinds does not currently support direct scheduling or suppression of individual hardware sensors (e.g., fans, power supplies, temperatures) via native UI or APIs.Below are reasons and some possible workarounds.
Hardware sensors in SolarWinds are sub-entities under nodes (in Orion.HardwareHealth.HardwareSensor).
Orion.HardwareHealth.HardwareSensor
Unlike nodes or interfaces, they do not have the UnmanageFrom / UnmanageUntil fields, so you can't schedule them to be muted or unmanaged.
UnmanageFrom
UnmanageUntil
You can simulate "muting" a sensor by suppressing the alert, not the object.
Steps:
Add a custom property to nodes or sensors:
E.g., SuppressSensorAlert
SuppressSensorAlert
Create a scheduled task (PowerShell or SQL Job) to toggle this value based on a schedule.
Modify your alert to include:
<span>AND (CustomProperty.SuppressSensorAlert <> 'Yes' OR CustomProperty.SuppressSensorAlert IS NULL)</span>
This effectively mutes the sensor only within the alert logic, and you can schedule this change.
You can auto-suppress an alert if it occurs during a maintenance window:
<span><span class="hljs-keyword">WHERE</span> (<br /> DATENAME(dw, GETUTCDATE()) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">IN</span> (<span class="hljs-string">'Saturday'</span>, <span class="hljs-string">'Sunday'</span>) <span class="hljs-comment">-- allow weekdays only</span><br /> <span class="hljs-keyword"> AND</span> DATEPART(<span class="hljs-keyword">HOUR</span>, GETUTCDATE()) <span class="hljs-keyword">BETWEEN</span> <span class="hljs-number">9</span> <span class="hljs-keyword">AND</span> <span class="hljs-number">18</span> <span class="hljs-comment">-- allow 9am–6pm UTC</span></span>
<span>)</span>
Add that into the alert trigger condition for a specific sensor alert.
Query the hardware sensor via SWIS.
Change the status or alert mute flag (if available in your version).
Problem: SolarWinds SDK does not expose hardware sensor unmanage natively.
So this would be a dirty workaround involving:
Disabling polling on the node (not ideal).
Or filtering sensors from alerts using SWQL + script-injected tags.
If your organization frequently asks for this:
Sample PowerShell script to toggle a custom property (e.g., SuppressSensorAlert) on a hardware sensor (or node) in SolarWinds, using the Orion SDK.
Input: Node or Sensor ID
Action: Set SuppressSensorAlert = "Yes" (to mute), or "No" (to unmute)
SuppressSensorAlert = "Yes"
"No"
Usage: Schedule it with Task Scheduler or orchestrate through another system
Install the SolarWinds Orion SDK
Download: https://github.com/solarwinds/OrionSDK/releases
Install the PowerShell module: Install-Module -Name SwisPowerShell (if using PowerShell 5+)
Install-Module -Name SwisPowerShell
Make sure the custom property SuppressSensorAlert is already created:
Go to: Settings > Manage Custom Properties
Apply to Orion.Nodes or Orion.HardwareHealth.HardwareSensor
<span># SolarWinds server and credentials</span>
<span>$swServer = "your-solarwinds-server"</span>
<span>$swUsername = "admin"</span>
<span>$swPassword = "yourpassword"</span>
</code></div><div class="overflow-y-auto p-4" style="padding-left:30px;" dir="ltr"><code class="whitespace-pre! language-powershell"><span># The name of the custom property and desired value</span>
<span>$customPropertyName = "SuppressSensorAlert"</span>
<span>$newValue = "Yes" # Use "No" to unmute</span>
</code></div><div class="overflow-y-auto p-4" style="padding-left:30px;" dir="ltr"><code class="whitespace-pre! language-powershell"><span># Target type: "Node" or "Sensor"</span>
<span>$targetType = "Node" # or "Sensor"</span>
<span>$targetID = 123 # NodeID or SensorID</span>
</code></div><div class="overflow-y-auto p-4" style="padding-left:30px;" dir="ltr"><code class="whitespace-pre! language-powershell"><span># Load Orion SDK module</span>
<span>Import-Module SwisPowerShell# Connect to SWIS</span>
<span>$swis = Connect-Swis -Hostname $swServer -Username $swUsername -Password $swPassword</span>
</code></div><div class="overflow-y-auto p-4" style="padding-left:30px;" dir="ltr"><code class="whitespace-pre! language-powershell"><span>if ($targetType -eq "Node") {</span>
<span> # Node custom property update</span>
<span> $uri = Get-SwisData $swis "SELECT Uri FROM Orion.Nodes WHERE NodeID = @id" @{id = $targetID}</span>
<span>} elseif ($targetType -eq "Sensor") {</span>
<span> # Sensor custom property update (if using Orion SDK v3+ with custom properties extended)</span>
<span> $uri = Get-SwisData $swis "SELECT Uri FROM Orion.HardwareHealth.HardwareSensor WHERE HardwareSensorID = @id" @{id = $targetID} </span>
<span>} else {</span>
<span> Write-Host "Invalid target type. Must be 'Node' or 'Sensor'"</span>
<span> exit 1</span>
<span>}</span>
</code></div><div class="overflow-y-auto p-4" style="padding-left:30px;" dir="ltr"><code class="whitespace-pre! language-powershell"><span>if ($uri) {</span>
<span> Set-SwisObject -SwisConnection $swis -Uri $uri -Properties @{ $customPropertyName = $newValue }</span>
<span> Write-Host "[$targetType ID $targetID] Custom property '$customPropertyName' set to '$newValue'."</span>
<span> W</span>
To automate this: Create two scheduled tasks:
Mute script ($newValue = "Yes") — e.g., run every Saturday 2AM
$newValue = "Yes"
Unmute script ($newValue = "No") — e.g., run every Monday 6AM
$newValue = "No"
Loop over multiple targets from a CSV file
Dynamically evaluate maintenance windows
Log results to a file or email output
Hope this helps.