Project is archived and no longer maintained
Due to a lack of time to work on this project, I have decided to archive it as of April 2021. Of course, the source code will stay public. Finally, I wish to express my deep gratitude to everyone who contributed. Thanks!
fritzctl is a command line client for the AVM FRITZ!Box primarily focused on the
AVM Home Automation HTTP Interface.
It should work out-of-the-box with most FRITZ!Boxes running a recent FRITZ!OS version. It has been explicitly tested with
| FRITZ!Box | FRITZ!OS |
|---|---|
| FRITZ!Box Fon WLAN 7390 | 06.51, 06.80, 06.83 |
| FRITZ!Box 6490 Cable | 06.63, 06.83, 06.84, 06.87, 07.00 |
| FRITZ!Box 7490 | 06.83, 06.90, 06.93 |
Add the repository (replace stretch by buster, jessie, wheezy or sid depending on your distribution)
echo "deb https://dl.bintray.com/bpicode/fritzctl_deb stretch main" | sudo tee -a /etc/apt/sources.listand its signing key
wget -qO - https://api.bintray.com/users/bpicode/keys/gpg/public.key | sudo apt-key add -The fingerprint of the repository key 3072D/35E71039 is
93AC 2A3D 418B 9C93 2986 6463 15FC CFC9 35E7 1039.
Update your local repository data and install
sudo apt update
sudo apt install fritzctlUpgrades for fritzctl will now be detected by apt update and can be installed via apt upgrade.
Add the repository
wget https://bintray.com/bpicode/fritzctl_rpm/rpm -O bintray-bpicode-fritzctl_rpm.repo && sudo zypper ar -f bintray-bpicode-fritzctl_rpm.repo && rm bintray-bpicode-fritzctl_rpm.repoUpdate your local repository data and install
sudo zypper refresh
sudo zypper in fritzctlInstall using homebrew
brew install bpicode/tap/fritzctlWindows binaries can found in the windows directory.
fritzctl is go-gettable. Set up a go environment guided by How To Write Go Code
and then run
go get github.com/bpicode/fritzctlExample:
package main
import "github.com/bpicode/fritzctl/fritz"
func main() {
h := fritz.NewHomeAuto(
fritz.SkipTLSVerify(),
fritz.Credentials("", "password"),
)
err := h.Login()
if err != nil {
panic(err)
}
h.Off("Socket_Bedroom")
h.Temp(18.5, "Heating_Bedroom")
}Versions >= 1.4.16 can be checked for reproducibility. There is a ready-to-go Dockerfile which prepares an appropriate environment. Of course, the setup instructions can applied to any other build platform. To reproduce a release, prepare a docker image with the help of build-args
docker build -t fritzctl/build docker/build \
--build-arg go_version=1.9.2 \
--build-arg fritzctl_version=1.4.16 \
--build-arg fritzctl_revision=v1.4.16Building the binaries is done in the container phase:
docker run --rm -v fritzctl_build_folder:/root/go/src/github.com/bpicode/fritzctl/build fritzctl/buildThe above command will create a docker volume fritzctl_build_folder containing the binaries. Those can be checked for
equality with the distributed ones.
This project is licensed under the terms of the MIT license, see LICENSE.
The fritzctl image is licensed under the Creative Commons 3.0 Attributions license. It is build upon the following work:
- The Go gopher was designed by Renee French, licensed under the Creative Commons 3.0 Attributions license.
- The Go gopher w/ patch cable image was created by Egon Elbre, licensed under CC0 1.0 Universal.

