Repository navigation
Releases: chikenborgir/avmtools
Release list
Release Version 4.0.0
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:-NewVOIPCredentialreplaced by-NewVoIPUsernameand-NewVoIPPassword(SecureString)Set-AvmVoipClient4:-NewClientCredentialreplaced by-NewClientUsernameand-NewClientPassword(SecureString)Set-AvmWlanConfig:-NewMacAddressControlEnabledrenamed to-NewMACAddressControlEnabledSet-AvmHostDeviceClassUserByIp/ByMac(new in this release) use-NewSetDeviceClassUseras 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-AvmAuthStateandGet-AvmDeviceConfigFileaccept-Tokenas 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 inabout_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-AvmHomeplugSpecificDeviceEntryGet-AvmVoipClientByIp→Get-AvmVoipClientByClientId(the action takes a client id, not an IP)Get-AvmWlanSecruityProperty→Get-AvmWlanSecurityPropertySet-AvmWlanBeaconAdvertisment→Set-AvmWlanBeaconAdvertisementGet-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-AvmDslTotalStatisticcalled the Speedtest service instead ofWANDSLInterfaceConfigGet-AvmVoipEnableAreaCodecalled the Speedtest serviceSet-AvmPppTriggersentSetUserNameinstead ofSetConnectionTriggerGet-AvmPppSpecificPortMappingEntrysentGetGenericPortMappingEntryGet/Set-AvmPppAutoDisconnectTimeSpanusedX_AVM_DE_…instead ofX_AVM-DE_…Get-AvmVoipClientByIpsentX_AVM-DE_GetClient3instead ofX_AVM-DE_GetClientByClientId
Wrong / missing arguments
Enable-AvmOnTelsentNewIndexinstead ofNewEnableNew-AvmOnTelPhonebooksentNewIndex/NewEnableinstead ofNewPhonebookExtraID/NewPhonebookNameSet-AvmOnTelConfigsentNewIndexinstead ofNewEnableGet-AvmOnTelPhonebookEntry,Set-AvmOnTelPhonebookEntryreferenced an undefined$NewPhonebookExtraIDSet-AvmOnTelDectHandsetPhonebookused placeholder{0}twice (phonebook id was never sent)Set-AvmAppMessageFiltersentNewEventIdinstead ofNewFilterSet-AvmVoipConfigsentNewT38FaxEnableinstead ofNewFaxT38EnableSet-AvmVoipClient,Set-AvmVoipClient2,Set-AvmVoipClient3never sent the password (undefined variable)Set-AvmVoipClient2/3/4had stray spaces in XML tags (<s:NewX_AVM-DE_ClientId >)Set-AvmVoipCommonAreaCodesentNewVoIPEnableAreaCodeinstead ofNewVoIPAreaCodeSet-AvmVoipDialConfig,Start-AvmVoipDialrequired a meaningless-NewT38FaxEnableAdd-AvmPppPortMapping,Remove-AvmPppPortMapping,Get-AvmPppSpecificPortMappingEntryreferenced an undefined$NewRemoteHostStop-AvmVoipDialhad a doubled type cast
Remote access
- 17 functions ignored
-RemoteAccess(hard-coded control URL), 10 functions lacked the parameter entirely
Module
Update-AvmUserInterfaceandGet-AvmVoipNumberOfAlarmClockwere 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 WANDSLInterfaceConfigdocstrings 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/xmland the 2025 TR-064 PDFs indocs/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
Deprecated Version – Kept for Archive