bpicode / fritzctl Goto Github PK
View Code? Open in Web Editor NEWA lightweight, easy to use console client for the AVM FRITZ!Box Home Automation.
License: MIT License
A lightweight, easy to use console client for the AVM FRITZ!Box Home Automation.
License: MIT License
Not really documented by AVM, but still present since fritzOS 06.80
The .deb package is only indexed for jessie and wheezy. Shoulkd it be like this? I use it without problems on stretch.
It would be great if the README.md would also contain an "How to update this tool" area depending on how it was installed.
There are now two fields indicating indicating if a device has been locked:
<devicelist version="1"> <device....> <switch> <lock>0</lock> <devicelock>0</devicelock> ... <device....> <hkr> <lock>1</lock> <devicelock>1</devicelock> ...
One is a software-defined locking ('lock'), the other stands for a lock directly configured at the device ('devicelock').
Think about github.com/AlecAivazis/survey, at least have an internal API that feels better than https://github.com/bpicode/fritzctl/blob/v1.4.12/config/configurer.go
Most recent version, see
README.md update :)
Recently, golang/dep#1040 was merged.
This should straighten the vendoring for https://github.com/cpuguy83/go-md2man so it seems the override for https://github.com/russross/blackfriday can be removed.
Found by RE:
curl -k 'https://fritz.box/internet/inetstat_monitor.lua?sid=XXXXXXXXXX&useajax=1&action=get_graphic'
with response
[ { "dynamic" : true, "ds_current_bps" : [ 132894, 89739, 101361, 131205, 105378, 127740, 97006, 104110, 86457, 102314, 130923, 84997, 118656, 137208, 362064, 339300, 743, 72, 294, 146 ], "mc_current_bps" : [ 0, 0, 64, 0, 0, 258, 133, 17, 0, 0, 1043, 391, 84, 0, 201, 47, 0, 17, 0, 142 ], "max_us" : 299493, "_node" : "sg0", "downstream" : 30000000, "prio_realtime_bps" : [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "name" : "sync_ata", "prio_default_bps" : [ 0, 0, 0, 42, 0, 0, 0, 0, 18, 0, 18, 0, 0, 0, 0, 3621, 1105, 0, 0, 0 ], "upstream" : 2000000, "prio_low_bps" : [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "max_ds" : 3010632, "mode" : "ATA", "prio_high_bps" : [ 3209, 2360, 3694, 2452, 3560, 2598, 2973, 1702, 3044, 2410, 2997, 2150, 2619, 2834, 5445, 7106, 69, 0, 0, 13 ] } ]
Inferred from the GUI, it seems
prio_realtime_bps = Upstream/"Echtzeitanwendungen"
prio_high_bps = Upstream/"Priorisierte Anwendungen"
prio_low_bps = Upstream/"Hintergrundanwendungen"
prio_default_bps = Upstream/"Normale Anwendungen"
mc_current_bps = Downstream/"IPTV" media?"
ds_current_bps = Downstream/Internet
... once it is released
Reason: according to https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AHA-HTTP-Interface.pdf
253 = OFF
254 = ON
Saving the sessionid and the devicelist locally can improve performance by saving on HTTP round-trips. The sessionid needs be renewed when the session expires. The devicelist is renewed whenever list * is called or when a command is called with a locally unknown device.
Two advantages emerge from this:
E.g. for OS X users.
fritzctl list switches is also listing thermostats. Im pretty sure that shouldn´t be.
cannot obtain LAN devices data: unable to parse remote response: json: cannot unmarshal string into Go struct field LanDevices.network of type []fritz.NetworkElement
Stuff like
XX Reading config file /home/user/.fritzctl.json
XX FRITZ!Box challenge is zzzzzz
XX FRITZ!Box challenge solved, login successful
should be logged on level debug
.
Recently introduced in spf13/cobra#497
Want to adopt it.
ATM we are using go get
directly, always pulling the latest version. If we aim for reproducible builds, we should fix the versions of 3rd party libs.
Candidates for dep-mgmt are:
I like to get rid of o../tablewriter.
Is there a way to turn on/off the thermostats like direct in the Fritz!Box or at the device? In the help it says only: fritzctl temperature [value in °C] [device names] [flags]
It would be great to control groups specified in the FRITZ!Box. But only clean groups should be listet (only switches/only thermostats). And "fritzctl list groups" should also be added if the whole thing is possible and you want to do it.
cannot obtain logs: unable to parse remote response: json: cannot unmarshal array into Go struct field MessageLog.mq_log of type fritz.Message
When using the command "fritzctl toggle" without an device the script is making the challenge instead of showing the usage of the command or an error.
Add another command, such that
source <(fritzctl completion bash)
works.
It can also be used for the deb/rpm packaging.
FRITZ!Box 6490 Cable running FRITZ!OS 06.63
The existing one is rather outdated.
If possible
If feasible:
When using the command "fritzctl temperature x x" with an temperature above 28 degrees the script is giving out an error instead of showing a message with the allowed temperature range.
yet another CI system
On all other platforms it´s 1.4.13 but on github 1.4.12.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.