Author Archives: nico

waters meters on a wall - generated by Stable Diffusion

Conserving resources is an important topic and always worth pursuing. The current energy prices and inflation just add a higher monetary incentive for everyone to make more effort. I took this as a trigger to see if and how much water, especially warm water, I can save in my household. As with all improvement projects, you need to know your current baseline before you can measure any improvements. The nice, but impractible solution Ideally, I would want a continous measurement of my water usage, so every change can be tracked. The usual analog water meters are not ideal for this task, but it is not too complicated to set up an ESP32 with an ESPcam to digitize the meters. A little bit of machine learning to detect the numbers and the spinning wheel will give very precise readings throughout the whole day. Unfortunately, this setup is not practible as I…

Read more

The terminal multiplexer tmux is a very useful and versatile tool. One thing that it apparently can’t do, however, is to automatically log a session to a log file. Such a feature can be very useful for interactive workloads. Sidenote: tmux also has a plugin manager and there are logging plugins available, but they don’t do exactly what I want. The manual way Logging all inputs/outputs can be done with a simple command: Manually executing this command at the creation of a pane, e.g. the start of a new session is possible but let’s be honest: I will forget it the next day already. So, an automatic method is needed. How it should work but doesn’t Tmux has hooks that trigger actions when certain events happen. The after-new-pane or after-new-session hooks would be ideal to execute the logging command whenever a new session or pane is opened. Adding the hook…

Read more

Working on AWS projects in the terminal can be annoying sometimes, especially when you have a large list of accounts and roles to work with. Typing in the multi-part command and the role ARN is just too much work to do over and over again:aws sts assume-role –role-arn arn:aws:iam::123456789012:role/roletoassumeDefining an alias for each role is impracticable, as well, because it would require to edit the AWS CLI config file (~/.aws/config and ~/.aws/credentials) and update the aliases (~/.bash_aliases or similar depending on your shell). It would be so much easier if the assume-role command would just query the AWS config. Just like this: The solution is the little helper programm assume-role in combination with fzf. Installation and setup The following assumes bash as your shell of choice and aptitude as the package manager. Other shells or package managers work just as well. AWS CLI Download and install AWS CLI: This covers…

Read more

Replacing the boring front panels on my rack-mount cases is a great oppurtunity to learn about laser cutting fabrication and sheet metal bending.

Read more

A working approach on how to migrate a network Time Machine backup.

Read more

The old, static website became harder and harder to maintain, so I finally switched to using a CMS. WordPress offers some nice options but it is also frustrating to lose the full control over the page layout and effects. Overall, it should still make the page much easier to update in the future. As a bonus, the update also fixes the broken responsive design of the old page.

The goal for the second iteration of this project is to make it less centralized. Sensors should be independent of logging and visualization. After version 1.5 this is already achieved partially: database and graphing run on my home server and the sensors are connected to an independent Raspberry Pi. Only reading out a few sensors every couple of seconds is no challenge for the Pi but wastes power. Running a full-fledged operating system for this simple task is just too much overhead – almost every micro controller can do that. Since I know python but I’m not as well versed in Arduino, C or similar, I would like to use a micro controller that can run python. Although python requires higher perfomance by design, there is a number of capable micro controllers out there today. The ESP32 is also overkill in terms of performance but I wanted to play around…

Read more

Since I have a NAS/server running a TIG stack (Telegraf/InfluxDB/Grafana) for monitoring, it is straight forward to log all sensor data to this machine instead of the Raspberry Pi. The server is consuming a low amount of power, it is running 24/7 to offer its services around the clock and can deal with a little bit of additionally data no problem. This also has the benefit to deliver long time series much quicker than the small Raspberry Pi. Plotting half a year of 30s intervall data in Grafana on a Raspberry Pi 3B+ is a nice stress test – it maxes out the CPU for several minutes and puts a lot of stress on the SD-Card. Apropos SD cards: A reminder to a note in the first part of this buildNever, and I mean NEVER, run influxdb or any other database for more than a short test on an SD…

Read more

In 2018, a colleague mentioned to me that he found a nice CO2 monitor with an undocumented but open USB connection. On Github, vfilimonov wrote a nice python package to decode the USB connection and show the measured data on a website. From this starting point on, I experimented with further sensors and a more complex data acquisition, storage and visualisation. The current state is an experimental setup running on a Raspberry Pi 3B+. Several sensors are connected to test and compare them. Connected sensors are: TFA Dostmann AirCO2ntrol Mini CO2 Monitor Two DHT22 temperature and humidity MH-Z19 IR absorption CO2 sensor 0-5000ppm TSL 2561 light intensity sensor BMP280 digital barometer The monitoring system in the configuration as used in the following. Raspbian Buster runs from an old SSD that also stores programs and databases (black cable with two USB port because the Pi cannot supply enough current). The white…

Read more

As mentioned in the introduction to the homeclimate monitoring project, I run a small unRAID homeserver with a couple of disks to provide some services in my local network. Besides monitoring the server itself with the TIG stack (Telegraf, InfluxDB, Grafana), it is also interesting to monitor power consumption to find out what the server costs aside from the initial cost for the hardware. Self-made solutions operating on mains voltages is always tricky and the potential risks are large. Luckily, there are a number of cheap and easy commercial options. I opted for the “TP-Link Kasa smart plug HS110” which is available online for typically less than 20€. The HS110 can monitor voltage, current, power and turn on/off the integrated outlet remotely. It also has smart home feature (e.g. Alexa skills, Google Assistant, IFTTT) but I don’t need nor want those. Still, it is one of the cheapest and also…

Read more

Backups with rsync I am currently running an unRAID homeserver to provide data and a few services on my local network. The Synology Diskstation 416 that it replaced, now serves as the backup target.After testing several backup solutions, I think a simple rsync script is enough for what I need. It cannot offer fancy stuff but is a reliable and well tested tool. A few notes on how I came to this conclusion: The backup target (DS 416) is local and set up with disk encryption, so I don’t need a tool with built-in encryption (neither storage, nor transmission). Deduplication is nice to have but in my case reduced the backup size only by a few hundred GB – almost nothing compared to several TB of data. Incremental backups will keep the required disk space low anyway. Hardware function name description backup source homeserver unRAID server with a couple of…

Read more

11/11