fritz-box v1.2.1
Examples
Basic
import FritzBox from 'fritz-box'
const box = new FritzBox({
host: 'fritz.box',
password: '...',
username: '...'
})
const run = async () => {
await box.getSession()
const settings = await box.getGuestWLAN()
settings.active = true
settings.ssid = 'Example!'
await box.setGuestWLAN(settings)
console.log(await box.overview())
}
run()IFTTT Notify
This will activate the guest WLAN and emit a IFTTT Maker channel notify event. If you create the fitting IFTTT recipe, this snippet should send you the WLAN password right to your smartphone.
import FritzBox from 'fritz-box'
import IFTTT from 'maker-ifttt'
const box = new FritzBox({
host: 'fritz.box',
password: '...',
username: '...'
})
const maker = new IFTTT('IFTTT_MAKER_TOKEN')
const run = async () => {
// generate a random 8-digit hex password
const newPassword = crypto.randomBytes(4).toString('hex');
// sign-in
await box.getSession()
// get current guest WLAN settings
const settings = await box.getGuestWLAN()
// set new password & turn on guest WLAN
settings.key = newPassword
settings.active = true
await box.setGuestWLAN(settings)
// send a message to IFTTT (optional)
maker.triggerEvent('notify', `Guest WLAN password is ${password}.`, response =>
response.on('data', chunk =>
console.info('Response: ' + chunk)
)
)
}
run()Installation
or
API
default class FritzBox <>
({ host = 'fritz.box', password: String, username: String }: Object): FritzBoxCreates a new FritzBox with the given parameters.
const box = new FritzBox({
host: 'fritz.box',
password: '...',
username: '...'
});box.getSession
(): PromiseAttempts to log in and fetches a session ID.
;(async () => {
const box = new FritzBox(/* ... */)
await box.getSession()
// fritz-box is now ready for use
})()box.getGuestWLAN
(): PromiseFetches the guest WLAN configuration from the FRITZ!Box.
;(async () => {
const box = new FritzBox(/* ... */)
await box.getSession()
const settings = await box.getGuestWLAN()
})()box.setGuestWLAN
(settings: Object): PromiseApplies the (modified) settings object.
;(async () => {
const box = new FritzBox(/* ... */)
await box.getSession()
await box.setGuestWLAN(settings)
})()box.overview
(): PromiseReturns the data contained in the overview tab of the FRITZ!Box user interface.
;(async () => {
const box = new FritzBox(/* ... */)
await box.getSession()
console.log(await box.overview())
})()box.getDeviceDetails
(id: String): PromiseGathers more information about a specific device.
;(async () => {
const box = new FritzBox(/* ... */)
await box.getSession()
console.log(await box.getDeviceDetails('some-id'))
})()box.getLog
(type = 'all' : String): PromiseReturns log entries. Supported types: 'all', 'system', 'internet', 'wlan', 'usb'.
;(async () => {
const box = new FritzBox(/* ... */)
await box.getSession()
console.log(await box.getLog())
})()Disclaimer
Tested in FRITZ!OS 6.92 on a FRITZ!Box 7590.
FRITZ!Box and FRITZ!OS are registered trademarks of AVM. This project does not grant you any permissions to use them.
History
1.2.0 add
getLogimprove documentation1.1.0 directly throw errors add
getDeviceDetails