Category Archives: My OpenSource Projecs

FritzBox Python Class Fritz OS 6.30+ syncing Google Calendar

This project allows to interact with your FritzBox above the new FritzOS 6.30 to 6.60 (tested with Fritzbox 7490 and 7390) by using a self written FritzBox Python Class. It furthermore uses the Google Calendar API to enter phonecalls and online devices status into your google calendar. To use the Google Services you will need to generate your own client api credentials including a valid calendar json. For the expected format see the provided default files.

Of course the FritzBox Python Script also works stand alone, an provides following functionality:

  • read out last 400 phone calls
  • list current network devices

Of course I plan to increase that functionality:

  • add a config.json
  • implement CalDav Support for non google solutions
  • add pictures of google calendar entries
  • enable gant charts of devices (d3js?)
  • get FritzBox phone book(s)
  • sync phone books to Google Contacts
  • sync phone books to CardDav

I’ve you are interested to use or join me developing:

https://github.com/PaulPetring/FritzBox

General Usage FritzBox python class

#constructors
box = FritzBox()
box = FritzBox("password") # should be default constructor
box = FritzBox("password", "username")
box = FritzBox("password", "username", "http://fritz.box")
box = FritzBox("password", "username", "http://fritz.box",false)

# getting a list of active devices as objects of FritzBoxDevice
devices = box.get_devices(self,"active")

# getting a list of passive devices as objects of FritzBoxDevice
devices = box.get_devices(self,"passive")

# getting a list of objects of FritzBoxCall
calls = box.get_foncalls()

# getting a list of objects of FritzBoxFonBookEntry
fon_book = box.get_fonbook()

General Usage Google Calendar Wrapper

For phone calls:

fon_calendar = GoogleCalendarWrapper("YOUR_CALENDAR_ID@group.calendar.google.com")
fon_events = fon_calendar.get_events()
handleFonEntriesToGoogleCalendar(fon_calendar,fon_events,calls)

For active devices tracking:

devices_calendar = GoogleCalendarWrapper("YOUR_CALENDAR_ID@group.calendar.google.com")
device_events = devices_calendar.get_events()
handleDeviceEntriesToGoogleCalendar(devices_calendar,device_events,devices)

 

This also works for multiple FritzBoxes, here you see all phone calls of a week:

FritzBox Python Class - calendar view

FritzBox Python Class – calendar view

It’s pretty easy to add this script to a raspberry pi located in the network of the router. You’ll also can setup an vpnc connection between the box and an server or use a dynamic ip and a custom port.

PaulPetring\audiobook-feeds

I love podcasts.

I use them frequently and automatically downloaded by the Podcatcher BeyondPod onto my smartphone. In contrast to podcasts, I transfered my audiobooks to my smartphone by cable – which usually was very annoying. Therefore I wrote a little script that is able to close the gap by converting all my audiobooks into subscribable podcast feeds!

Of course it is open source and can be found here:  https://github.com/PaulPetring/audiobook-feeds

Some adittional facts:

  • it serves a website to browse your audiobooks and subscribe to certain books
  • serves rss and atom feeds for import
  • it offers a simple password protection to prevent copy right issues
  • runs in docker container (see MakeFile and DockerFile)
  • works when placed in subdirs example.com/audio/ (e.g. reg for ssl without wildcard)
  • allows custom theming and uses material design as default theme
  • handles encoding of filenames at best effort
default

Screenshot of the first available version of my audiobook-feeds project

I use it on regular basis and would like others to enjoy it as much as I do. So please feel free to use, spread and contribute to it. And see you soon 🙂

PaulPetring\audiobook-feeds

I love podcasts.

I use them frequently and automatically downloaded by the Podcatcher BeyondPod onto my smartphone. In contrast to podcasts, I transfered my audiobooks to my smartphone by cable – which usually was very annoying. Therefore I wrote a little script that is able to close the gap by converting all my audiobooks into subscribable podcast feeds!

Of course it is open source and can be found here:  https://github.com/PaulPetring/audiobook-feeds

Some adittional facts:

  • it serves a website to browse your audiobooks and subscribe to certain books
  • serves rss and atom feeds for import
  • it offers a simple password protection to prevent copy right issues
  • runs in docker container (see MakeFile and DockerFile)
  • works when placed in subdirs example.com/audio/ (e.g. reg for ssl without wildcard)
  • allows custom theming and uses material design as default theme
  • handles encoding of filenames at best effort
default

Screenshot of the first available version of my audiobook-feeds project

I use it on regular basis and would like others to enjoy it as much as I do. So please feel free to use, spread and contribute to it. And see you soon 🙂

PaulPetring\audiobook-feeds

I love podcasts.

I use them frequently and automatically downloaded by the Podcatcher BeyondPod onto my smartphone. In contrast to podcasts, I transfered my audiobooks to my smartphone by cable – which usually was very annoying. Therefore I wrote a little script that is able to close the gap by converting all my audiobooks into subscribable podcast feeds!

Of course it is open source and can be found here:  https://github.com/PaulPetring/audiobook-feeds

Some adittional facts:

  • it serves a website to browse your audiobooks and subscribe to certain books
  • serves rss and atom feeds for import
  • it offers a simple password protection to prevent copy right issues
  • runs in docker container (see MakeFile and DockerFile)
  • works when placed in subdirs example.com/audio/ (e.g. reg for ssl without wildcard)
  • allows custom theming and uses material design as default theme
  • handles encoding of filenames at best effort
default

Screenshot of the first available version of my audiobook-feeds project

I use it on regular basis and would like others to enjoy it as much as I do. So please feel free to use, spread and contribute to it. And see you soon 🙂