Skip to content

Releases: chikenborgir/avmtools

Release Version 4.0.0

Choose a tag to compare

@chikenborgir chikenborgir released this 01 Nov 11:00

Changelog

4.0.0

A major clean-up and extension release. The whole module was cross-checked against AVM's current TR-064 documentation (FRITZ!OS SCPD files and the 2025 PDF specs), many silently broken functions were fixed, second-factor authentication was added and the module now covers every TR-064 service AVM documents.

⚠️ Breaking changes – please read the first section before upgrading.

⚠️ Breaking changes

  • Add-AvmVoipAccount: -NewVOIPCredential replaced by -NewVoIPUsername and -NewVoIPPassword (SecureString)
  • Set-AvmVoipClient4: -NewClientCredential replaced by -NewClientUsername and -NewClientPassword (SecureString)
  • Set-AvmWlanConfig: -NewMacAddressControlEnabled renamed to -NewMACAddressControlEnabled
  • Set-AvmHostDeviceClassUserByIp/ByMac (new in this release) use -NewSetDeviceClassUser as documented by AVM
  • Parameter naming rule is now applied consistently: parameter name = documented argument name without the X_AVM-DE_ prefix (case-sensitive)

🔐 Second-factor authentication (#39)

  • Every state-changing function accepts an optional -Token (alias -t). The token is sent as <avm:token> in the SOAP header and ignored by actions that do not need it.
  • Get-AvmAuthState and Get-AvmDeviceConfigFile accept -Token as well (they are part of the 2FA flow).
  • The full flow (Set-AvmAuthConfig -NewAction start → confirm on the box → Get-AvmAuthState -Token → repeat the call with -Token) is documented in about_avmtools.

✨ New services (27 functions)

  • X_AVM-DE_Media – Get-AvmMediaInfo, Get-AvmMediaDvbcEnable, Set-AvmMediaDvbcEnable, Start-AvmMediaStationSearch, Get-AvmMediaSearchProgress
  • X_AVM-DE_WANFiber – Get-AvmFiberInfo, Get-AvmFiberGponInfo, Get-AvmFiberStatistic
  • X_AVM-DE_WANMobileConnection – Get-AvmMobileInfo, Get-AvmMobileInfoEx, Get/Set-AvmMobileAccessTechnology, Get/Set-AvmMobilePreferredAccessTechnology, Get-AvmMobileBandCapability, Get/Set-AvmMobileEnabledBandCapability, Set-AvmMobilePin, Set-AvmMobilePuk
  • X_AVM-DE_USPController – Get-AvmUspControllerInfo, Get-AvmUspControllerNumberOfEntry, Get-AvmUspControllerByIndex, Add-AvmUspController, Enable-AvmUspControllerByIndex, Remove-AvmUspControllerByIndex, Get/Set-AvmUspMyFritzEnable

✨ New functions in existing services (28)

  • AppSetup – Get-AvmAppBoxSenderId
  • Dect – Get-AvmDectListPath
  • DeviceConfig – Get/Set-AvmDeviceSupportDataEnable, Get/Set-AvmDeviceUserAgreement
  • DeviceInfo – Get-AvmDeviceLogPath
  • Hosts – Get-AvmHostInfo, Get/Set-AvmHostFriendlyName, Set-AvmHostFriendlyNameByIp/ByMac, Set-AvmHostDeviceClassUserByIp/ByMac, Set-AvmHostPrioritizationByIp
  • HostFilter – Get-AvmHostFilterProfileList, Get-AvmHostFilterProfileById, Get-AvmHostFilterHostEntryByIp, Add-AvmHostFilterHostEntryToProfile, Add-AvmHostFilterTicketTimeByIp
  • MyFritz – Set-AvmMyFritzConfig
  • RemoteAccess – Enable-AvmRemoteAccessLetsEncrypt
  • Speedtest – Get-AvmSpeedtestStatistic
  • VoIP – Get-AvmVoipAccountList, Get-AvmVoipStatus
  • WANCommonInterfaceConfig – Get-AvmWanActiveProvider, Get-AvmWanAddonInfo
  • WLANConfiguration – Set-AvmWlanWpsEnable

📶 WLAN instances

All *-AvmWlan* functions accept -WlanInstance 1..3 (alias -w) to address the 2.4 GHz, 5 GHz and guest network. Previously everything was hard-wired to wlanconfig1.

🗑️ Deprecated (kept, old names remain as aliases)

Functions whose TR-064 action AVM has marked obsolete or removed were renamed to *Deprecated. The old names still work as aliases; calling them prints a warning with the recommended replacement.

Old name New name AVM statement
Enable-AvmOnTel Enable-AvmOnTelDeprecated SetEnable obsolete → Enable-AvmOnTelByIndex
Get-AvmOnTelInfo Get-AvmOnTelInfoDeprecated GetInfo obsolete → Get-AvmOnTelInfoByIndex
Set-AvmOnTelConfig Set-AvmOnTelConfigDeprecated SetConfig obsolete → Enable-AvmOnTelConfigByIndex
Get-AvmVoipClient Get-AvmVoipClientDeprecated X_AVM-DE_GetClient obsolete → Get-AvmVoipClient2/3
Set-AvmVoipClient Set-AvmVoipClientDeprecated X_AVM-DE_SetClient obsolete → Set-AvmVoipClient2/3/4
Get-AvmWlanWepKeyIndex Get-AvmWlanWepKeyIndexDeprecated removed, FRITZ!OS returns 401
Set-AvmWlanDefaultWepKeyIndex Set-AvmWlanDefaultWepKeyIndexDeprecated removed, FRITZ!OS returns 401
Set-AvmWlanBasBeaconSecProperty Set-AvmWlanBasBeaconSecPropertyDeprecated deprecated, FRITZ!OS returns 401 → Set-AvmWlanConfig

✏️ Renamed (old names remain as aliases)

  • Get-AvmHomeplugSpecificDevicEntry → Get-AvmHomeplugSpecificDeviceEntry
  • Get-AvmVoipClientByIp → Get-AvmVoipClientByClientId (the action takes a client id, not an IP)
  • Get-AvmWlanSecruityProperty → Get-AvmWlanSecurityProperty
  • Set-AvmWlanBeaconAdvertisment → Set-AvmWlanBeaconAdvertisement
  • Get-AvmVoipExistingNumber → Get-AvmVoipExistingNumbers, Remove-AvmVoipAccounts → Remove-AvmVoipAccount (these were never exported because of the name mismatch, so no alias)

🐛 Fixes

Wrong service / action

  • Get-AvmDslDiagnoseInfo, Get-AvmDslInterfaceConfigDslInfo, Get-AvmDslTotalStatistic called the Speedtest service instead of WANDSLInterfaceConfig
  • Get-AvmVoipEnableAreaCode called the Speedtest service
  • Set-AvmPppTrigger sent SetUserName instead of SetConnectionTrigger
  • Get-AvmPppSpecificPortMappingEntry sent GetGenericPortMappingEntry
  • Get/Set-AvmPppAutoDisconnectTimeSpan used X_AVM_DE_… instead of X_AVM-DE_…
  • Get-AvmVoipClientByIp sent X_AVM-DE_GetClient3 instead of X_AVM-DE_GetClientByClientId

Wrong / missing arguments

  • Enable-AvmOnTel sent NewIndex instead of NewEnable
  • New-AvmOnTelPhonebook sent NewIndex/NewEnable instead of NewPhonebookExtraID/NewPhonebookName
  • Set-AvmOnTelConfig sent NewIndex instead of NewEnable
  • Get-AvmOnTelPhonebookEntry, Set-AvmOnTelPhonebookEntry referenced an undefined $NewPhonebookExtraID
  • Set-AvmOnTelDectHandsetPhonebook used placeholder {0} twice (phonebook id was never sent)
  • Set-AvmAppMessageFilter sent NewEventId instead of NewFilter
  • Set-AvmVoipConfig sent NewT38FaxEnable instead of NewFaxT38Enable
  • Set-AvmVoipClient, Set-AvmVoipClient2, Set-AvmVoipClient3 never sent the password (undefined variable)
  • Set-AvmVoipClient2/3/4 had stray spaces in XML tags (<s:NewX_AVM-DE_ClientId >)
  • Set-AvmVoipCommonAreaCode sent NewVoIPEnableAreaCode instead of NewVoIPAreaCode
  • Set-AvmVoipDialConfig, Start-AvmVoipDial required a meaningless -NewT38FaxEnable
  • Add-AvmPppPortMapping, Remove-AvmPppPortMapping, Get-AvmPppSpecificPortMappingEntry referenced an undefined $NewRemoteHost
  • Stop-AvmVoipDial had a doubled type cast

Remote access

  • 17 functions ignored -RemoteAccess (hard-coded control URL), 10 functions lacked the parameter entirely

Module

  • Update-AvmUserInterface and Get-AvmVoipNumberOfAlarmClock were listed in the manifest but did not exist (copy/paste duplicates of other functions)
  • Manifest: ; instead of , separators, missing comma, wrong section headers, four misspelled export names
  • WANDSLInterfaceConfig docstrings linked to the wrong wiki pages

📝 Documentation & housekeeping

  • Project moved to chikenborgir/avmtools – all links, author and copyright updated
  • about_avmtools (en-US / de-DE) now explains the second-factor flow
  • README / PSGallery typos fixed
  • Maintenance tooling added under tests/: SCPD and PDF cross-check scripts, module import test, undefined-variable scan and a generator for new service functions

🤖 AI-enhanced code review & refactor

This release was produced with an AI-assisted review and refactoring pass using GitHub Copilot with Claude Fable 5.1. The model

  • cross-checked all 368 functions against the FRITZ!OS SCPD files in docs/xml and the 2025 TR-064 PDFs in docs/pdf (service URN, control URL, action name, argument names and order)
  • scanned every function body for undefined or unused variables
  • generated the new service functions from the PDF specifications
  • identified the deprecated actions and the parameter naming deviations listed above

All changes were validated by parsing, importing (PowerShell 7 and Windows PowerShell 5.1) and PSScriptAnalyzer. They have not been exercised against a live FRITZ!Box as part of this release – please report anything that misbehaves on your device.

📊 Numbers

3.148.44 4.0.0
Exported functions 313 368
Exported aliases 0 12
TR-064 services 33 37

Release Version 3.148.44

Choose a tag to compare

@chikenborgir chikenborgir released this 01 Nov 10:59

Deprecated Version – Kept for Archive