PowerShell/Docs/switch-shelly1.md

92 lines
2.6 KiB
Markdown
Raw Normal View History

2022-12-04 10:40:18 +01:00
## The *switch-shelly1.ps1* Script
2021-11-08 21:36:42 +01:00
2022-02-10 09:01:07 +01:00
This PowerShell script switches a Shelly1 device in the local network.
2021-11-08 21:36:42 +01:00
## Parameters
```powershell
2023-05-26 12:20:18 +02:00
/home/mf/Repos/PowerShell/Scripts/switch-shelly1.ps1 [[-Host] <String>] [[-TurnMode] <String>] [[-Timer] <Int32>] [<CommonParameters>]
2021-11-08 21:36:42 +01:00
-Host <String>
Specifies either the hostname or IP address of the Shelly1 device
Required? false
Position? 1
Default value
Accept pipeline input? false
Accept wildcard characters? false
-TurnMode <String>
Specifies either 'on', 'off', or 'toggle'
Required? false
Position? 2
Default value
Accept pipeline input? false
Accept wildcard characters? false
-Timer <Int32>
Specifies the timer in seconds (0 = infinite)
Required? false
Position? 3
Default value -999
Accept pipeline input? false
Accept wildcard characters? false
[<CommonParameters>]
This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction,
WarningVariable, OutBuffer, PipelineVariable, and OutVariable.
```
## Example
```powershell
PS> ./switch-shelly1 192.168.100.100 toggle 10
```
## Notes
2022-11-17 19:46:02 +01:00
Author: Markus Fleschutz | License: CC0
2021-11-08 21:36:42 +01:00
## Related Links
https://github.com/fleschutz/PowerShell
2022-11-17 20:02:26 +01:00
## Source Code
2022-11-17 20:05:34 +01:00
```powershell
2022-11-17 20:02:26 +01:00
<#
.SYNOPSIS
Switches a Shelly1 device
.DESCRIPTION
This PowerShell script switches a Shelly1 device in the local network.
.PARAMETER Host
Specifies either the hostname or IP address of the Shelly1 device
.PARAMETER TurnMode
Specifies either 'on', 'off', or 'toggle'
.PARAMETER Timer
Specifies the timer in seconds (0 = infinite)
.EXAMPLE
PS> ./switch-shelly1 192.168.100.100 toggle 10
.LINK
https://github.com/fleschutz/PowerShell
.NOTES
Author: Markus Fleschutz | License: CC0
#>
param([string]$Host = "", [string]$TurnMode = "", [int]$Timer = -999)
try {
if ($Host -eq "") { $Host = read-host "Enter hostname or IP address of the Shelly1 device" }
if ($TurnMode -eq "") { $TurnMode = read-host "Enter turn mode (on/off/toggle)" }
if ($Timer -eq -999) { [int]$Timer = read-host "Enter timer in seconds (0=endless)" }
$Result = Invoke-RestMethod "http://$($Host)/relay/0?turn=$($TurnMode)&timer=$($Timer)"
"✔️ switched Shelly1 device at $Host to $TurnMode for $Timer sec"
exit 0 # success
} catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}
2022-11-17 20:05:34 +01:00
```
2022-11-17 20:02:26 +01:00
2021-11-08 21:36:42 +01:00
*Generated by convert-ps2md.ps1 using the comment-based help of switch-shelly1.ps1*