public/functions/Homeplug.ps1
|
function Get-AvmHomeplugGenericDeviceEntry { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmHomeplugGenericDeviceEntry .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmHomeplugGenericDeviceEntry .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$NewIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_Homeplug:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_homeplug" $AvmWebrequestBody.Action = "GetGenericDeviceEntry" $AvmWebrequestBody.InnerBody = "<s:NewIndex>{0}</s:NewIndex>" -f $NewIndex [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential Body = $AvmWebrequestBody.GenerateBody() SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Get-AvmHomeplugNumberOfEntry { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmHomeplugNumberOfEntry .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmHomeplugNumberOfEntry .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:X_AVM-DE_Homeplug:1#GetNumberOfDeviceEntries" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_homeplug" XmlResponse = "GetNumberOfDeviceEntriesResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmHomeplugSpecificDeviceEntry { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmHomeplugSpecificDeviceEntry .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmHomeplugSpecificDeviceEntry .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> [Alias("Get-AvmHomeplugSpecificDevicEntry")] Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewMACAddress ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_Homeplug:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_homeplug" $AvmWebrequestBody.Action = "GetSpecificDeviceEntry" $AvmWebrequestBody.InnerBody = "<s:NewMACAddress>{0}</s:NewMACAddress>" -f $NewMACAddress [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential Body = $AvmWebrequestBody.GenerateBody() SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Update-AvmHomeplugDevice { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Update-AvmHomeplugDevice .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Update-AvmHomeplugDevice .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("t")] [Parameter()] [System.String]$Token, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewMACAddress ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.Token = $Token $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_Homeplug:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_homeplug" $AvmWebrequestBody.Action = "DeviceDoUpdate" $AvmWebrequestBody.InnerBody = "<s:NewMACAddress>{0}</s:NewMACAddress>" -f $NewMACAddress [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential Body = $AvmWebrequestBody.GenerateBody() SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } |