This aims to be a Framework that provides a clean and modern Swift API for communicating with Fritz!Box routers. The focus is on home automation features.
- Authentication with API
- Load device information (currently limited to thermostats and switches)
- Toggle switches
- Set Thermostat temperature
- Load thermostat timetable
- manipulate thermostat timetable
Create an instance of the SDK with your myfritz URL and user credentials.
let fritzBox = FritzBox(
host: "https://YOURID.myfritz.net:46048",
user: "foo",
password: "bar"
)
Get a session identifier by calling the login
method. This will be used for all further requests.
fritzBox.login { result in
if case .success(let info) = result {
print("Info: \(String(describing: info))")
// We are now ready to do further requests.
}
}
You can now get information about devices and then act on them.
fritzBox.getDevices(completion: { result in
if case .success(let devices) = result {
print("Devices: \(String(describing: devices))")
// Prints a list of devices and their properties.
}
})
As I only have one home, this was only tested with the following setup.
- Fritz!Box 7490 (FRITZ!OS 6.83)
- 3x Fritz Dect 300 thermostat
- 1x Fritz Dect 301 thermostat
When using Swift Package Manager add this:
.package(url: "https://github.com/r-dent/FritzBoxKit.git", from: "0.5.0")
If you´re using CocoaPods, add this to your Podfile:
pod 'FritzBox-Kit'