Overdue Theme Update

Unfortunately, during the last few weeks, I did not find a lot of time to update the blog. My backlog of interesting posts is increasingly growing, but I did not find the time to write them down. I also spend a ridiculous amount of time to browse through potential WordPress themes to find a suitable theme for a blog.

Most themes provide an insane overload of visuals – which does not come in handy when dealing with code snippets, screenshots and so on.

I also did not want to customize the theme as I did for our podcast site, where I had to write several hundred lines of CSS code to get the theme properly working with the content.

Eventually, I found a theme that provides a suitable set of features without a graphical overload with a clean layout, which is called Melos Minimal which is worth a try.

Link: https://wordpress.org/themes/melos-minimal/

Hack-the-Planet Podcast Episode 16

After a three week break, Episode 16 of our podcast went online…

Raspi Network Failure Shenanigan

It seems as I run into a common issue with my Raspberry 4. After an indeterministic uptime, the wifi stops working.

And here is the hotfix, a small script provided by @pitto first restarting the nic and if anything fails just reboots the device:

This bash script checks for wireless internet connection and, if it is failing, tries to fix it.

It is simple and it seems to work.


I just have to write some automation to roll it out automatically including a corresponding cron job once I find some time.

GitHub Repo: https://github.com/ltpitt/bash-network-repair-automation

Automated Installation of exa in WSL

Recently, I was pointed to exa by this tweet from Mathias.

The installation is pretty easy. Unless you are using Ubuntu (as WSL) as there is no package available. But then again, compiling it by yourself is pretty straightforward as well.

1. Download and install Rust for your platform.

2. Install libgit2 and cmake.

3. To download the latest version, run: git clone https://github.com/­ogham/exa.git

4. Run make install in the new directory to compile and install exa into /usr/local/bin.

As you might know, I am using Ansible to install all of my WSL instances. Eventually, things did turn out not so easy. However, two evenings later, I finished an Ansible role doing this fully automated.

Eventually, you have to set the variables for exa_dir and rust_dir to make this role working. That way, you not only get a great tool, but you also get it fully automated into your Ubuntu WSL.

Link: https://the.exa.website/
Gist: https://gist.github.com/aheil/387336a46938ff5c53ea51a1591f6ca5

Use WSL as Integrated Terminal with Powerline fonts

If you are not happy enough just using WSL from Visual Studio Code, you can use it as an integrated shell as well.

Simply open a new Terminal Window in Visual Studio Code, add a new one and select Select Default Shell.

Now chose your WSL as default one.

As I have installed agnoster themed oh-my-zsh using Powerline fonts, the terminal was messed up at the beginning because I was using Cascadia Code as monotyped font. While Cascadia is actually not yet fully Powerline enabled, I am currently using Delugia Nerd Font as a substitute.

All together, this is a wired “hackatory”. However, it’s quite fun, and personally, I like the result:

Keep Calm and use WSL from VS Code

In case you did not know: You can use WSL (Windows Subsystem for Linux) as your shell in Visual Studio Code. This comes in very handy if you did mod the hell out of your WSL, as I did.

The Visual Studio Code Remote – WSL extension lets you use the Windows Subsystem for Linux (WSL) as your full-time development environment right from VS Code. You can develop in a Linux-based environment, use Linux-specific toolchains and utilities, and run and debug your Linux-based applications all from the comfort of Windows.

Link: https://docs.microsoft.com/windows/wsl

Automation of the Home Automation

After we talked a lot about it in our podcast, I finally started with my “Automation of the Home Automation” project.

What I’ve done so far: Set up a Raspi 4 with Ubuntu Server, fully provisioned using Ansible. Also, it seems, the Kernel bug causing USB devices to fail on the 4 GB version of the Raspi 4 seams to be removed with the most recent binaries available.

Deployed MQTT, InfluxDB, Telegraf and Node-Red on Docker containers using Ansible.

Wrote my very first Node-Red flow to get data into the broker and the database:

The data is read from my EZcontrol XS1, which became surprisingly easy using Node-Red.

The EZcontrol XS1 integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official docs for using this gateway.

While I was not sure about the available resources on the Raspberry, it seems there is plenty of space (RAM, CPU) left on the device.

On the other side, using Ansible I will be able to deploy services to other (more) nodes once necessary.

Unfortunately, docker-ce is not yet available for Ubuntu 19.10 Eoan. Therefore, adding the Docker repositories will fail.

A simple workaround is to add the repositories for disco instead.

The Ansible code to do so is quite simple:

- name: Add stabel repository 
  apt_repository: 
    repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu "disco" stable
    state: present  

Also, I realized some issues with Ansible on Ubuntu running on the Raspi and Python. Therefore, I made sure Python 2.7 is entirely uninstalled. Instead, I made sure my inventory file is set to use Python 3 on the target system.

[raspi]
raspi4

[raspi:vars]
ansible_python_interpreter=/usr/bin/python3

There have been some other issues, I came along, especially because for various bits OI was looking for there are no ARM aarch64 releases available. Also, the official Docker images I used do not support Apline on ARM v8 / aarch64 as Alpine seems not to support this target architecture, yet.

More bits and bytes to be added soon…