Overview
My OpenSource Projects¶
DPodcast¶
DPodcast converts youtube channels into mp3 and generates podcasts xml. I use this to have ability to listen to my favorite channels(that have mostly people talking to camera, why they don't share their content in podcast form ?!) on my phone in offline mode without paing for youtube red. All content is shared over IPFS
mqtt2wol¶
mqtt2wol gateway is used to send wol packets over mqtt. This is installed on separate Raspberry PI. HomeAssistant allows to send wol packages but that would require to add host flag but that blows my docker setup up.
mqtt2rf¶
mqtt2rf gateway is used to for relaying 433/315MHz LPD/SRD signals with generic low-cost GPIO RF modules on a Raspberry Pi.
yt-music-download-helper¶
yt-music-download-helper is simple web ui that allows me to download video from YouTube, extract music from it and place it inside my QNAP Nas.
Busix¶
Busix is self hosted web scrapper that extract information from Cracow public transit webpage (that for some reason, still in 2019 uses table in table layout for displayin data.) All scrapped data is exposed through graphql endpoint:
{
departures(from: "Białucha", to: "Wzgórza Krzesławickie", at: "10 minutes from now"){
edges {
node {
line {
name
kind
}
time {
formatted
distance
}
}
}
}
}
Other OpenSource projects¶
HomeAssistan¶
Home Assistant my main home automation software. I decided to use it because all configuration can be done by simple YAML files that can be stored inside git repository and UI is pretty decent and touch friendly.
Ansible¶
Ansible is nice nifty tool that helps me provisioning all running computer in my house(vacuum, smart panel, raspberry pi etc.). All provisioning scripts resides here.
Docker¶
Docker is for managing all containers with software used in my SmartHome. Before I did use hassbian but that was a bit off hassle if on upgrade something did blow or HomeAssistant did break something, and rollback was required. Hass.io hides to much from me so I decided to prepare my own solution.
Ubuntu 18.04 LTS¶
Ubuntu it is pretty good linux with pretty good support.
Appdaemon¶
Appdaemon is pretty decent extension for HomeAssistant automations. At some level I needed to put more logic to automations and YAML files become unreadable for puny human.
PostgreSQL¶
PostgreSQL is main database used by HomeAssistant, Nextcloud and Firefly iii. Alternative would be eating glass or MySQL.
InfluxDB and Grafana¶
Influxdb is backend database optimized for time series data, that is collected from HomeAssistant. Grafana is used as analitics dashboard for analyzing data in form of nice and sexy charts.
UFW and Fail2ban¶
UFW is a firewall for sane people. Used to restrict access to smart home server. There is also a Fail2ban. It looks on logs from nginx, HomeAssistant and other services, and if it detect some kind of funky activity, then blocks it using system firewall
CloudFlare¶
CloudFlare My smart home ip is hidden behind domain and cloudflare dns server. There is a cron job that checks my current phone ip and updates it on the cloudflare.
Plex¶
Pretty nice media server. Plex is running on HomeAssistant computer and consumes photos and videos QNAP NAS. It has native client for Android/LG Web OS/Playstation 4 etc.
NextCloud¶
NextCloud is mainly used for providing calendar with CalDav and nice ui. This calendar is used mainly for triggering automations on specific times(heating, cat feeding etc.) and I wanted to avoid Google Calendar.
Slack¶
Slack is used for sending notifications. I have my own home workspace that is shared with my wife.
IPFS¶
IPFS stands for Interplanetary File System. At its core it is a versioned file system which can store files and track versions over time, very much like Git. It also defines how files move across a network, making it a distributed file system, much like BitTorrent. In combining these two properties, IPFS enables a new permanent web and augments the way we use existing internet protocols like HTTP.
IFTT¶
IFTT is used for triggering stuff using webhooks that don't expose APIs
Sonarr, Bazarr and Transmission¶
Sonarr and Transmission is used for tracking TV shows and Music. If a new show appear it is automatically downloaded using transmission. After download is completed stuff is moved to my NAS and Plex reindex everything. Bazarr is then used for finding polish subtitles.
ESPHome¶
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Firefly III¶
Firefly III is budget managment software.
Librespeed¶
Self hosted speedtest tool, for debugging wifi performance in house