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.list
and 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 fritzctl
Upgrades 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.repo
Update your local repository data and install
sudo zypper refresh
sudo zypper in fritzctl
Install using homebrew
brew install bpicode/tap/fritzctl
Windows 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/fritzctl
Example:
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.16
Building the binaries is done in the container phase:
docker run --rm -v fritzctl_build_folder:/root/go/src/github.com/bpicode/fritzctl/build fritzctl/build
The 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.