Harvest and control vodafone easybox router

Hey all,
just want to show you my current “sort of integration” for easybox routers.
The goal is to harvest and control an vodafone easybox router (only tested with easybox 804 yet).

What is already working?

  • get the current ip
  • get the dsl status (upstream/downstream and maximum upstream/downstream)
  • get network information (how many devices are connected)
  • information requested is based on a csv input file
  • output is written to a json file
  • json file is loaded into HA sensors (manual configuration required)
  • cron job running the script e.g. hourly (manual configuration required)

What is planned?

  • get all currently connected devices - and track them
  • authenticated requests (code is already implemented but not yet activated)
  • control the easybox - e.g. control the wifi - enable/disable guest wifi etc.
  • one nice day I write a full integration for home assistant with all information gathered automatically and provided as devices and entities :slight_smile:

What is technically possible?

  • everything and beyond what the ui can do
  • fully control the device e.g. change network settings, change wifi settings, reboot etc.
  • get information and track all devices connected to the box

What technology is used?

  • the router exposes the TR-069 protocol to its network clients
  • the router webinterface is just a javascript soap client connecting to the exact same interface
  • the protocol is exposed by an soap interface
  • there is a proprietary soap cookie which needs to be handled
  • my script is written in python
  • I’m using the requests module and creating string bodies - no dynamic messages yet
  • preferred usage is csv as input and json as output format

Where can I find the project / code?

I uploaded it to GitHub at: GitHub - m4k2k/pyeasycmd: Simple python tool for communicating with an easybox router

Warning

  • the software is currently written as prototype - without coding style etc.
  • at some points I used rapid/dirty code instead of dynamic code
  • the software is work in progress - use at your own risk

contributions, comments and ideas welcome :slight_smile:

1 Like