Deutsch Deutsch

MPDPlayer

MPDPlayer is an app for the iPhone, which is released in the App-Store. The purpose is to establish a communication to any MPD-Server (Music Player Daemon - https://www.musicpd.org/). After the installation of MPD, it is possible to play any music on the installed device and control the playback by several clients, like my app.

You can find more informations to my app on corresponding MPDPlayer-Homepage.

HomeKit

HomeKit is a feature from Apple for their devices. If comatible devices are available in the network, like lights or switches, it can easily be controlled by Apple Devices.

Because there exists no adequate implementations for small microcontrollers, like a ESP8266, I worked on a own HomeKit implementation. This implementation can be found at my Gitlab-Server. The implementation is based on the non-commercial HomeKit specification from Apple, which can be downloaded here.

The goal is to further develop the implementation, to provide an universal HomeKit library. With this library an implementation for a device can be easily expanded by the device-specific libraries. Therefore is the HomeKit library not limited to a specific device, such as the current ESP8266 implementation.

YoutubeDownloader

To download songs easy and fast from Youtube, I developed a Backend or REST-API. A description of the API can be found at https://youtubedownloader.a-berisha.de/, where the actual API can be found at https://api.youtubedownloader.a-berisha.de/.

The backend is grouped in four modules. The first and the biggest module, "Playlist-Synchronizer", takes a Youtube Playlist URL as a parameter at initialization to synchronize the playlist regulary. If the Playlist-Synchronizer finds a new video in the playlist, it tries to download the song with the metadata from Youtube. If the artist and the title of the song is given in the Youtube metadata, then the Playlist-Synchronizer will add the song with the needed metadata to the download queue. Otherwise it will be put the video or the song on the other queue, which can be read afterwards and can filled manually with the needed metadata.

Another module provides the important metadata from a Youtube-URL. If a Youtube Playlist URL is given, the module provides a list of all contained videos, as long as it's not limited by the "start" and the "end" parameter. Which information this module returns, can be found at the previously mentioned API description.

With the third module you are be able to download a song with a Youtube URL, a relative path and the metadata.

The fourth module is reponsible for the ID3-Tags. These tags are be used to store song informations, like the artist or the title of the song. The purpose of this module is to list and modify this ID3-Tags of all located songs or files.

There exists a authorization with an API-Key to deny access to third parties.

Homebridge Plugins

Homebridge is a lightweight NodeJS-Server, which can be dynamically expanded by plugins.

A plugin developed by me is the "homebridge-led-strip" plugin, which pursues a simple goal, to control a LED or a LED chain with a given pin. This plugin can be found at my Gitlab-Server and at NPM.

Another plugin, needed for the usage of LEDs, too, is the "homebridge-blinkled", which is used to control the speed of the blinking, by the brightness level of the HomeKit-App, instead of controlling the brightness of the leds. This plugin is available at my Gitlab-Server and at NPM.

To control the delivered Set-Top-Box (STB) from Unitymedia (Horizon-Box), I developed a homebridge plugin to switch it's state and some other functions. Other functions include, for example, changing the program. This plugin is available at my Gitlab-Server and at NPM.

As of now (01.09.2019), retrieving the status of the Horizon-Box has not been possible for about 3 months. Probably due a update. Earlier it was possible to retrieve the status of the STB, so if it's on or off, with following URL "http://IP:62137/DeviceDescription.xml". If the response was successful, the STB was on. If someone has found an alternative to retrieve the status of the Horizon Box, write me an e-mail, then I will work this in.