fritzctl - console AVM FRITZ!Box client

Usage

About
fritzctl
is a command line client for the AVM FRITZ!Box primarily focused on the
AVM Home Automation HTTP Interface.
Software is tested with
- FRITZ!Box Fon WLAN 7390 running FRITZ!OS 06.51, 06.80, 06.83
- FRITZ!Box 6490 Cable running FRITZ!OS 06.63, 06.83, 06.84
- FRITZ!Box 7490 running FRITZ!OS 06.83, 06.90
CI Farm


Code metrics

Releases
github release
.deb packages
.rpm packages
.zip windows
Install
Debian/Ubuntu
Add the repository (replace stretch
by 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
.
openSUSE
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
Windows
Windows binaries can found in the windows directory.
From Source
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
As Library
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")
}
Reproducing binaries
Versions >= 1.4.16 can be checked for reproducibility. There is a ready-to-go Dockerfile
which prepares an appropriate environment given several docker 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.
License
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 image was created by Takuya Ueda, licensed under the Creative Commons 3.0 Attributions license. At the time of this writing it was available at golang-samples/gopher-vector.
- The router image was created by Sascha Doerdelmann, licensed under the Creative Commons CC0 Public Domain Dedication. At the time of this writing it was available at pixabay.