Arduino TR-064 SOAP Library
Arduino library to facilitate the use of the TR-064 SOAP protocol. With this you can get a lot of information from and control common routers and their peripherals, like the FRITZ!Box or some ZyXEL.
A few examples of what you can do with it include:
- Retrieve devices currently connected to the WIFI or LAN
- Retrieve statistics on internet data usage
- Turn WiFi on or off (e.g. Guest WiFi)
- Make connected DECT phones ring (e.g. as a doorbell replacement)
- Turn on and off connected Telephone answering machines
- Get amount of power passing through connected smart plugs and take decisions on it
- Turn smart plugs on or off
- See more under examples and at the end of this README
This library has been developed on an ESP8266 and tested on an ESP32 and with various hardware of AVM FRITZ!OS.
To get started, I recommend to check out the examples folder, the Wiki and the instructable.
If you still have question please don't hesistate to open an issue here on Github. If you made something cool with this library please provide it as an example. Please create a pull request (or, if you don't know how, an issue) to do that.
For details on the TR-064 SOAP protocol: my "simple" explanation, the definition and an official description).
Installation and usage
Simply go to Tools → Manage Libraries...
in the Arduino IDE and search for TR064
. Press install. The examples can then also be found in the IDE under Examples → TR064
.
Don't forget that you also need to add the board you are using to the IDE;
Example board URLs
Please note, that these might not be the best options and can change at any time. If in doubt, do your own research :)
- ESP8266 https://arduino.esp8266.com/stable/package_esp8266com_index.json
- ESP32 https://dl.espressif.com/dl/package_esp32_index.json
Known routers with TR-064 interface
If you know more/have tested a device not on the list, please let me know!
Press
Contribute
Help is very welcome! For example:
- Check the issue section on Github or the list below and see if you can help
- Please let me know if you came up with a cool use-case (I'd love to add more examples, see also list at the end of this file)
- Let me know if you tested it on hardware not listed here (i.e. other microcontroller and other routers)
- If you have any suggestions on how to improve the library code itself (I'm not particularily good with C++).
- Contributions to the Wiki are also very welcome!
Some of the old issues are:
Library
- Add yield()'s (where sensible)
- Error-handeling can always be improved
- Should some of the calls of the examples be included into the library?
- Get the DOXY to work again
Examples
- Add yield()'s (where sensible)
- Add a few more nice examples
- alternate WPS button
- emergency dial-up to relatives or emergency services
- Start devices through e.g. telegram messages (e.g. coffee machine, washing machine, ...)
- WhoIsHomeIndicator
- Add nice GUI/Website to configure/manage the users/LEDs/MACs/known devices
- Extend doorbell example to also send telegram messages :)
- Do something with the FRITZ!DECT Thermostats